From 4148a771605924da0f04d67f32b81f6b5fc56c77 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sun, 11 Sep 2022 21:38:29 -0400 Subject: [PATCH 001/103] first oop commit --- src/Tree.cpp | 65 ++++++++++++++++++++ src/Tree.h | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/globals.h | 75 +++++++++++++++++++++++ 3 files changed, 300 insertions(+) create mode 100644 src/Tree.cpp create mode 100644 src/Tree.h create mode 100644 src/globals.h diff --git a/src/Tree.cpp b/src/Tree.cpp new file mode 100644 index 00000000..db265861 --- /dev/null +++ b/src/Tree.cpp @@ -0,0 +1,65 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Tree.h" + + namespace aorsf { + + Tree::Tree() : + x_input(0), + y_input(0), + mtry(0), + max_retry(DEFAULT_MAX_RETRY), + split_rule(DEFAULT_SPLITRULE_SURVIVAL), + n_split(DEFAULT_N_SPLIT), + leaf_min_obs(0), + split_min_obs(0), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + pred_type(DEFAULT_PRED_TYPE), + oobag_eval_every(0), + variable_importance(DEFAULT_IMPORTANCE), + seed(0) { + + } + + void Tree::init( + double* x_input, + double* y_input, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ) { + + + this->x_input = x_input; + this->y_input = y_input; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + } + + + + } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h new file mode 100644 index 00000000..bdf642f2 --- /dev/null +++ b/src/Tree.h @@ -0,0 +1,160 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef TREE_H_ +#define TREE_H_ + +#include + +#include "globals.h" + + namespace aorsf { + + class Tree { + public: + + // Default constructor with no arguments + Tree(); + + // Create from loaded forest + // Tree(arma::mat& coef, + // arma::umat& coef_indices, + // arma::vec& cutpoint, + // arma::uvec& next_left_node, + // arma::mat& pred, + // arma::umat& pred_indices); // TODO: pred_indices to survival tree + + // Expect to redefine constructors for survival/classif/regression + virtual ~Tree() = default; + + // Don't allow unitialized trees + // Tree(const Tree&) = delete; + // Tree& operator=(const Tree&) = delete; + + void init( + double* x_input, + double* y_input, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ); + + int get_mtry() const { + return mtry; + } + + int get_max_retry() const { + return max_retry; + } + + SplitRule get_split_rule() const { + return split_rule; + } + + int get_n_split() const { + return n_split; + } + + int get_leaf_min_obs() const { + return leaf_min_obs; + } + + int get_split_min_obs() const { + return split_min_obs; + } + + int get_split_min_stat() const { + return split_min_stat; + } + + int get_pred_type() const { + return pred_type; + } + + int get_oobag_eval_every() const { + return oobag_eval_every; + } + + VariableImportance get_variable_importance() const { + return variable_importance; + } + + // INPUTS + + // Pointer to original data + double* x_input; + double* y_input; + + // number of predictors used to split a node + int mtry; + + // maximum number of retry attempts to split a node + int max_retry; + + // how to measure quality of a node split + SplitRule split_rule; + + // number of cutpoints to assess during node split + int n_split; + + // minimum number of observations needed in a leaf node + int leaf_min_obs; + + // minimum number of observations needed to split a node + int split_min_obs; + + // minimum value of split statistic needed to split a node + int split_min_stat; + + // what type of oobag prediction to compute + PredType pred_type; + + // evaluate oobag error every X trees + int oobag_eval_every; + + // what type of variable importance to compute + VariableImportance variable_importance; + + // random seed to be set before growing + int seed; + + protected: + + // OUTPUTS + + // coefficients for linear combinations; + // one row per variable (mtry rows), one column per node + // leaf nodes have all coefficients=0 + arma::mat coef; + + // indices of the predictors used by + arma::umat coef_indices; + + // cutpoints used to split the node + arma::vec cutpoint; + + // directions to the next node (right node = left node + 1) + arma::uvec next_left_node; + + // predicted values (only in leaf nodes) + arma::mat pred; + + // indices of predicted values for each leaf node + arma::umat pred_indices; + + }; + + } // namespace aorsf + +#endif /* TREE_H_ */ diff --git a/src/globals.h b/src/globals.h new file mode 100644 index 00000000..ba060d0d --- /dev/null +++ b/src/globals.h @@ -0,0 +1,75 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef GLOBALS_H_ +#define GLOBALS_H_ + +#include + + namespace aorsf { + + typedef unsigned int uint; + + // Tree types + enum TreeType { + TREE_CLASSIFICATION = 1, + TREE_REGRESSION = 3, + TREE_SURVIVAL = 5, + TREE_PROBABILITY = 9 + }; + + // Variable importance + enum VariableImportance { + VI_NONE = 0, + VI_NEGATE = 1, + VI_PERM_BREIMAN = 2, + VI_ANOVA = 3 + }; + + // Split mode + enum SplitRule { + SPLIT_LOGRANK = 1, + SPLIT_GINI = 2 + }; + + // Linear combination method + enum LinearCombination { + NEWTON_RAPHSON = 1, + USER_FUNCTION = 2 + }; + + // Prediction type + enum PredType { + RISK = 1, + SURVIVAL = 2, + CUMULATIVE_HAZARD = 3, + MORTALITY = 4, + MEAN = 5, + PROBABILITY = 6, + CLASS = 7, + TERMINAL_NODES = 6 + }; + + // Default values + const int DEFAULT_N_TREE = 500; + const int DEFAULT_N_THREADS = 0; + const VariableImportance DEFAULT_IMPORTANCE = VI_NONE; + + const int DEFAULT_LEAF_MIN_OBS_CLASSIFICATION = 1; + const int DEFAULT_LEAF_MIN_OBS_REGRESSION = 5; + const int DEFAULT_LEAF_MIN_OBS_SURVIVAL = 10; + const int DEFAULT_LEAF_MIN_OBS_PROBABILITY = 10; + const int DEFAULT_MAX_RETRY = 3; + const double DEFAULT_SPLIT_MIN_STAT = 3.84; + + const SplitRule DEFAULT_SPLITRULE_SURVIVAL = SPLIT_LOGRANK; + + const PredType DEFAULT_PRED_TYPE = RISK; + const int DEFAULT_N_SPLIT = 5; + + } // namespace aorsf + +#endif /* GLOBALS_H_ */ From e2f5db2cc38b772190a59061c4481d9663e9c503 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Thu, 15 Sep 2022 20:44:21 -0400 Subject: [PATCH 002/103] data object for pointers to arma objects --- R/RcppExports.R | 4 +++ src/Data.h | 85 +++++++++++++++++++++++++++++++++++++++++++++ src/RcppExports.cpp | 14 ++++++++ src/orsf_oop.cpp | 38 ++++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 src/Data.h create mode 100644 src/orsf_oop.cpp diff --git a/R/RcppExports.R b/R/RcppExports.R index 39170331..3872eb79 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -65,3 +65,7 @@ pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_ .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) } +orsf_cpp <- function(x, y_ctns, y_intg, weights) { + invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) +} + diff --git a/src/Data.h b/src/Data.h new file mode 100644 index 00000000..cd55769a --- /dev/null +++ b/src/Data.h @@ -0,0 +1,85 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef DATA_H_ +#define DATA_H_ + +#include +#include +#include "globals.h" + + namespace aorsf { + + class Data { + + public: + + Data() = default; + + Data(arma::mat& x, + arma::vec& y_dbl, + arma::ivec& y_int, + arma::vec& weights) { + + // arma::mat x_ = arma::mat(x.begin(), x.nrow(), x.ncol(), false); + // arma::vec y_dbl_ = arma::vec(y_dbl.begin(), y_dbl.length(), false); + // arma::ivec y_int_ = arma::ivec(y_int.begin(), y_int.length(), false); + // arma::vec weights_ = arma::vec(weights.begin(), weights.length(), false); + + this->x = x; + this->y_dbl = y_dbl; + this->y_int = y_int; + this->weights = weights; + + } + + arma::uword get_n_rows() const { + return(x.n_rows); + } + + arma::uword get_n_cols() const { + return(x.n_cols); + } + + arma::mat get_x_rows(arma::uvec vector_of_row_indices) const { + return(x.rows(vector_of_row_indices)); + } + + arma::mat get_x_cols(arma::uvec vector_of_column_indices) const { + return(x.cols(vector_of_column_indices)); + } + + double get_x_at(arma::uword i, arma::uword j) const { + return(x.at(i, j)); + } + + arma::vec get_y_dbl_rows(arma::uvec vector_of_row_indices) const { + return(y_dbl.rows(vector_of_row_indices)); + } + + arma::ivec get_y_int_rows(arma::uvec vector_of_row_indices) const { + return(y_int.rows(vector_of_row_indices)); + } + + double get_y_dbl_at(arma::uword i) const { + return(y_dbl.at(i)); + } + + int get_y_int_at(arma::uword i) const { + return(y_int.at(i)); + } + + private: + arma::mat x; + arma::vec y_dbl; + arma::ivec y_int; + arma::vec weights; + }; + + + } // namespace aorsf + +#endif /* DATA_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index fae54ec7..01eb7cf9 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -274,6 +274,19 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// orsf_cpp +void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +BEGIN_RCPP + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); + Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); + orsf_cpp(x, y_ctns, y_intg, weights); + return R_NilValue; +END_RCPP +} static const R_CallMethodDef CallEntries[] = { {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, @@ -292,6 +305,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, {NULL, NULL, 0} }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp new file mode 100644 index 00000000..e7d143d9 --- /dev/null +++ b/src/orsf_oop.cpp @@ -0,0 +1,38 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf, which is distributed under the MIT license + + You should have received a copy of the MIT License along with aorsf. + If not, see . + + Authors: + - Byron C. Jaeger (http://byronjaeger.com) +#----------------------------------------------------------------------------*/ + +#include + +#include "Data.h" +#include "globals.h" + +// [[Rcpp::depends(RcppArmadillo)]] + +using namespace Rcpp; +using namespace arma; +using namespace aorsf; + + + +// [[Rcpp::export]] +void orsf_cpp(arma::mat& x, + arma::vec& y_ctns, + arma::ivec& y_intg, + arma::vec& weights){ + + Data data = Data(x, y_ctns, y_intg, weights); + + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data.get_n_rows() << std::endl; + Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "------------------------------------"; + Rcout << std::endl << std::endl << std::endl; + +} From 78ef315e9ab59a1556009e942de8deb284c640ab Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Fri, 16 Sep 2022 19:06:27 -0400 Subject: [PATCH 003/103] trying to use sample --- src/Tree.cpp | 35 +------------------------------- src/Tree.h | 52 +++++++++++++++++++++++++++++++++++++++++------- src/orsf_oop.cpp | 3 +++ 3 files changed, 49 insertions(+), 41 deletions(-) diff --git a/src/Tree.cpp b/src/Tree.cpp index db265861..90c3a7ec 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -12,8 +12,7 @@ namespace aorsf { Tree::Tree() : - x_input(0), - y_input(0), + data(0), mtry(0), max_retry(DEFAULT_MAX_RETRY), split_rule(DEFAULT_SPLITRULE_SURVIVAL), @@ -28,38 +27,6 @@ } - void Tree::init( - double* x_input, - double* y_input, - const int mtry, - const int max_retry, - SplitRule split_rule, - const int n_split, - const int leaf_min_obs, - const int split_min_obs, - const int split_min_stat, - PredType pred_type, - const int oobag_eval_every, - VariableImportance variable_importance, - const int seed - ) { - - - this->x_input = x_input; - this->y_input = y_input; - this->mtry = mtry; - this->max_retry = max_retry; - this->split_rule = split_rule; - this->n_split = n_split; - this->leaf_min_obs = leaf_min_obs; - this->split_min_obs = split_min_obs; - this->split_min_stat = split_min_stat; - this->pred_type = pred_type; - this->oobag_eval_every = oobag_eval_every; - this->variable_importance = variable_importance; - - } - } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index bdf642f2..16e52de3 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,10 +7,12 @@ #ifndef TREE_H_ #define TREE_H_ -#include - +#include +#include "Data.h" #include "globals.h" +// [[Rcpp::depends(RcppArmadillo)]] + namespace aorsf { class Tree { @@ -35,8 +37,7 @@ // Tree& operator=(const Tree&) = delete; void init( - double* x_input, - double* y_input, + const Data* data, const int mtry, const int max_retry, SplitRule split_rule, @@ -48,7 +49,21 @@ const int oobag_eval_every, VariableImportance variable_importance, const int seed - ); + ) { + + this->data = data; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + }; int get_mtry() const { return mtry; @@ -90,11 +105,34 @@ return variable_importance; } + // @description sample weights to mimic a bootstrap sample + arma::ivec bootstrap_sample() const { + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + + arma::uword n_rows = data->get_n_rows(); + + int n_rows_int = n_rows; + + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows_int, 1.0/n_rows_int, false); + + return( + Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ) + ); + + } + // INPUTS // Pointer to original data - double* x_input; - double* y_input; + const Data* data; // number of predictors used to split a node int mtry; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index e7d143d9..518d4867 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -35,4 +35,7 @@ void orsf_cpp(arma::mat& x, Rcout << "------------------------------------"; Rcout << std::endl << std::endl << std::endl; + + + } From b4cdd3fbcb3bab0d2b7b539d3042823e8052c083 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sat, 17 Sep 2022 11:54:37 -0400 Subject: [PATCH 004/103] rcpp arma sample can only be defined once --- R/RcppExports.R | 64 - src/RcppExports.cpp | 279 -- src/orsf.cpp | 8134 +++++++++++++++++++++---------------------- 3 files changed, 4067 insertions(+), 4410 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 3872eb79..2e06b32e 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,70 +1,6 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -std_setdiff <- function(x, y) { - .Call(`_aorsf_std_setdiff`, x, y) -} - -x_node_scale_exported <- function(x_, w_) { - .Call(`_aorsf_x_node_scale_exported`, x_, w_) -} - -leaf_kaplan_testthat <- function(y, w) { - .Call(`_aorsf_leaf_kaplan_testthat`, y, w) -} - -newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { - .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) -} - -lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { - .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) -} - -oobag_c_harrell_testthat <- function(y_mat, s_vec) { - .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) -} - -ostree_pred_leaf_testthat <- function(tree, x_pred_) { - .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) -} - -orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) { - .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) -} - -orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { - .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) -} - -orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { - .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) -} - -pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - orsf_cpp <- function(x, y_ctns, y_intg, weights) { invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 01eb7cf9..119fd19f 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,269 +11,6 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// std_setdiff -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); -RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); - rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); - return rcpp_result_gen; -END_RCPP -} -// x_node_scale_exported -List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); -RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); - return rcpp_result_gen; -END_RCPP -} -// leaf_kaplan_testthat -arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); -RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); - rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); - return rcpp_result_gen; -END_RCPP -} -// newtraph_cph_testthat -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); -RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); - Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); - return rcpp_result_gen; -END_RCPP -} -// lrt_multi_testthat -List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); -RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); - Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); - rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); - return rcpp_result_gen; -END_RCPP -} -// oobag_c_harrell_testthat -double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); -RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); - Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); - rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); - return rcpp_result_gen; -END_RCPP -} -// ostree_pred_leaf_testthat -arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); -RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); - rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_fit -List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); - Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); - Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); - Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); - Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); - Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); - Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); - Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); - Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); - Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_negate_vi -arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_permute_vi -arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_uni -arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_multi -arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_smry -arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_smry -arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_ice -arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_ice -arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} // orsf_cpp void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { @@ -289,22 +26,6 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, - {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, - {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, - {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, - {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, - {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, - {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, - {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 29}, - {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, - {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, - {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, - {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, - {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, - {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, - {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, - {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, {NULL, NULL, 0} }; diff --git a/src/orsf.cpp b/src/orsf.cpp index ecd79d0e..07d7ab96 100644 --- a/src/orsf.cpp +++ b/src/orsf.cpp @@ -1,4067 +1,4067 @@ -#include -#include - -// [[Rcpp::depends(RcppArmadillo)]] - - -using namespace Rcpp; -using namespace arma; - -// ---------------------------------------------------------------------------- -// ---------------------------- global parameters ----------------------------- -// ---------------------------------------------------------------------------- - -// special note: dont change these doubles to uword, -// even though some of them could be uwords; -// operations involving uwords and doubles are not -// straightforward and may break the routine. -// also: double + uword is slower than double + double. - -double - weight_avg, - weight_events, - w_node_sum, - denom_events, - denom, - cph_eps, - // the n_ variables could be integers but it - // is safer and faster when they are doubles - n_events, - n_events_total, - n_events_right, - n_events_left, - n_risk, - n_risk_right, - n_risk_left, - n_risk_sub, - g_risk, - temp1, - temp2, - temp3, - halving, - stat_current, - stat_best, - w_node_person, - xb, - risk, - loglik, - cutpoint, - observed, - expected, - V, - pred_t0, - leaf_min_obs, - leaf_min_events, - split_min_events, - split_min_obs, - split_min_stat, - time_pred, - ll_second, - ll_init, - net_alpha; - -int - // verbose=0, - max_retry, - n_retry, - tree, - mtry_int, - net_df_target, - oobag_eval_every; - -char - type_beta, - type_oobag_eval, - oobag_pred_type, - oobag_importance_type, - pred_type_dflt = 'S'; - -// armadillo unsigned integers -uword - i, - j, - k, - iter, - mtry, - mtry_temp, - person, - person_leaf, - person_ref_index, - n_vars, - n_rows, - cph_method, - cph_iter_max, - n_split, - nodes_max_guess, - nodes_max_true, - n_cols_to_sample, - nn_left, - leaf_node_counter, - leaf_node_index_counter, - leaf_node_col, - oobag_eval_counter; - -bool - break_loop, // a delayed break statement - oobag_pred, - oobag_importance, - use_tree_seed, - cph_do_scale; - -// armadillo vectors (doubles) -vec - vec_temp, - times_pred, - eval_oobag, - node_assignments, - nodes_grown, - surv_pvec, - surv_pvec_output, - denom_pred, - beta_current, - beta_new, - beta_fit, - vi_pval_numer, - vi_pval_denom, - cutpoints, - w_input, - w_inbag, - w_user, - w_node, - group, - u, - a, - a2, - XB, - Risk; - -// armadillo unsigned integer vectors -uvec - iit_vals, - jit_vals, - rows_inbag, - rows_oobag, - rows_node, - rows_leaf, - rows_node_combined, - cols_to_sample_01, - cols_to_sample, - cols_node, - leaf_node_index, - nodes_to_grow, - nodes_to_grow_next, - obs_in_node, - children_left, - leaf_pred; - -// armadillo iterators for unsigned integer vectors -uvec::iterator - iit, - iit_best, - jit, - node; - -// armadillo matrices (doubles) -mat - x_input, - x_transforms, - y_input, - x_inbag, - y_inbag, - x_node, - y_node, - x_pred, - // x_mean, - vmat, - cmat, - cmat2, - betas, - leaf_node, - leaf_nodes, - surv_pmat; - -umat - col_indices, - leaf_indices; - -cube - surv_pcube; - -List ostree; - -NumericMatrix - beta_placeholder, - xx, - yy; - -CharacterVector yy_names = CharacterVector::create("time","status"); - -NumericVector ww; - -Environment base_env("package:base"); - -Function set_seed_r = base_env["set.seed"]; - -// Set difference for arma vectors -// -// @description the same as setdiff() in R -// -// @param x first vector -// @param y second vector -// -// [[Rcpp::export]] -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { - - std::vector a = conv_to< std::vector >::from(sort(x)); - std::vector b = conv_to< std::vector >::from(sort(y)); - std::vector out; - - std::set_difference(a.begin(), a.end(), - b.begin(), b.end(), - std::inserter(out, out.end())); - - return conv_to::from(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- scaling functions ----------------------------- -// ---------------------------------------------------------------------------- - -// scale observations in predictor matrix -// -// @description this scales inputs in the same way as -// the survival::coxph() function. The main reasons we do this -// are to avoid exponential overflow and to prevent the scale -// of inputs from impacting the estimated beta coefficients. -// E.g., you can try multiplying numeric inputs by 100 prior -// to calling orsf() with orsf_control_fast(do_scale = FALSE) -// and you will see that you get back a different forest. -// -// @param x_node matrix of predictors -// @param w_node replication weights -// @param x_transforms matrix used to store the means and scales -// -// @return modified x_node and x_transform filled with values -// -void x_node_scale(){ - - // set aside memory for outputs - // first column holds the mean values - // second column holds the scale values - - x_transforms.zeros(n_vars, 2); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; - - x_node.col(i) -= means.at(i); - - scales.at(i) = sum(w_node % abs(x_node.col(i))); - - if(scales(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; - - x_node.col(i) *= scales.at(i); - - } - -} - -// same as above function, but just the means -// (currently not used) -void x_node_means(){ - - x_transforms.zeros(n_vars, 1); - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; - - } - -} - -// Same as x_node_scale, but this can be called from R -// [[Rcpp::export]] -List x_node_scale_exported(NumericMatrix& x_, - NumericVector& w_){ - - x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - w_node = vec(w_.begin(), w_.length(), false); - n_vars = x_node.n_cols; - - x_node_scale(); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - -} - -// ---------------------------------------------------------------------------- -// -------------------------- leaf_surv functions ----------------------------- -// ---------------------------------------------------------------------------- - -// Create kaplan-meier survival curve in leaf node -// -// @description Modifies leaf_nodes by adding data from the current node, -// where the current node is one that is too small to be split and will -// be converted to a leaf. -// -// @param y the outcome matrix in the current leaf -// @param w the weights vector in the current leaf -// @param leaf_indices a matrix that indicates where leaf nodes are -// inside of leaf_nodes. leaf_indices has three columns: -// - first column: the id for the leaf -// - second column: starting row for the leaf -// - third column: ending row for the leaf -// @param leaf_node_index_counter keeps track of where we are in leaf_node -// @param leaf_node_counter keeps track of which leaf node we are in -// @param leaf_nodes a matrix with three columns: -// - first column: time -// - second column: survival probability -// - third column: cumulative hazard - -void leaf_kaplan(const arma::mat& y, - const arma::vec& w){ - - leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; - i = leaf_node_counter; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(i, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - i++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(i, 0) = y.at(person,0); - temp2 = y.at(person, 0); - i++; - - } - - } - - // reset for kaplan meier loop - n_risk = sum(w); - person = 0; - temp1 = 1.0; - temp3 = 0.0; - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - - temp3 = temp3 + n_events / n_risk; - - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_nodes.at(leaf_node_counter, 2) = temp3; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - - leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; - leaf_node_index_counter++; - - if(leaf_node_index_counter >= leaf_indices.n_rows){ - leaf_indices.insert_rows(leaf_indices.n_rows, 10); - } - -} - -// Same as above, but this function can be called from R and is -// used to run tests with testthat (hence the name). Note: this -// needs to be updated to include CHF, which was added to the -// function above recently. -// [[Rcpp::export]] -arma::mat leaf_kaplan_testthat(const arma::mat& y, - const arma::vec& w){ - - - leaf_nodes.set_size(y.n_rows, 3); - leaf_node_counter = 0; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - leaf_node_counter++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); - temp2 = y.at(person, 0); - leaf_node_counter++; - - } - - } - - - // reset for kaplan meier loop - i = leaf_node_counter; - n_risk = sum(w); - person = 0; - temp1 = 1.0; - leaf_node_counter = 0; - - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - leaf_nodes.resize(leaf_node_counter, 3); - - return(leaf_nodes); - -} - - - - -// ---------------------------------------------------------------------------- -// ---------------------------- cholesky functions ---------------------------- -// ---------------------------------------------------------------------------- - -// cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// prepares vmat for cholesky_solve() - - -void cholesky(){ - - double eps_chol = 0; - double toler = 1e-8; - double pivot; - - for(i = 0; i < n_vars; i++){ - - if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); - - // copy upper right values to bottom left - for(j = (i+1); j eps_chol) { - - for(j = (i+1); j < n_vars; j++){ - - temp1 = vmat.at(j,i) / pivot; - vmat.at(j,i) = temp1; - vmat.at(j,j) -= temp1*temp1*pivot; - - for(k = (j+1); k < n_vars; k++){ - - vmat.at(k, j) -= temp1 * vmat.at(k, i); - - } - - } - - } else { - - vmat.at(i, i) = 0; - - } - - } - -} - -// solve cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. Prepares u, the vector used to update beta. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// -void cholesky_solve(){ - - for (i = 0; i < n_vars; i++) { - - temp1 = u[i]; - - for (j = 0; j < i; j++){ - - temp1 -= u[j] * vmat.at(i, j); - u[i] = temp1; - - } - - } - - - for (i = n_vars; i >= 1; i--){ - - if (vmat.at(i-1, i-1) == 0){ - - u[i-1] = 0; - - } else { - - temp1 = u[i-1] / vmat.at(i-1, i-1); - - for (j = i; j < n_vars; j++){ - temp1 -= u[j] * vmat.at(j, i-1); - } - - u[i-1] = temp1; - - } - - } - -} - -// invert the cholesky in the lower triangle -// -// @description this function is copied from the survival package and -// translated into arma. Inverts vmat -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// - -void cholesky_invert(){ - - for (i=0; i0) { - - // take full advantage of the cholesky's diagonal of 1's - vmat.at(i,i) = 1.0 / vmat.at(i,i); - - for (j=(i+1); j 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= weight_events * log(denom); - - for (i=0; i 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= denom_events * log(denom); - - for (i=0; i 1 && stat_best < R_PosInf){ - - for(iter = 1; iter < cph_iter_max; iter++){ - - // if(verbose > 0){ - // - // Rcout << "--------- Newt-Raph algo; iter " << iter; - // Rcout << " ---------" << std::endl; - // Rcout << "beta: " << beta_new.t(); - // Rcout << "loglik: " << stat_best; - // Rcout << std::endl; - // Rcout << "------------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // - // } - - // do the next iteration - stat_current = newtraph_cph_iter(beta_new); - - cholesky(); - - // don't go trying to fix this, just use the last - // set of valid coefficients - if(std::isinf(stat_current)) break; - - // check for convergence - // break the loop if the new ll is ~ same as old best ll - if(fabs(1 - stat_best / stat_current) < cph_eps){ - break; - } - - if(stat_current < stat_best){ // it's not converging! - - halving++; // get more aggressive when it doesn't work - - // reduce the magnitude by which beta_new modifies beta_current - for (i = 0; i < n_vars; i++){ - beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); - } - - // yeah its not technically the best but I need to do this for - // more reasonable output when verbose = true; I should remove - // this line when verbosity is taken out. - stat_best = stat_current; - - } else { // it's converging! - - halving = 0; - stat_best = stat_current; - - cholesky_solve(); - - for (i = 0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - beta_new[i] = beta_new[i] + u[i]; - - } - - } - - } - - } - - // invert vmat - cholesky_invert(); - - for (i=0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - - if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ - beta_current[i] = 0; - } - - if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ - vmat.at(i, i) = 1.0; - } - - // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; - - if(cph_do_scale){ - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); - } - - // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; - - if(oobag_importance_type == 'A'){ - - if(beta_current.at(i) != 0){ - - temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), - 1, false, false); - - if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; - - } - - vi_pval_denom[cols_node[i]]++; - - } - - } - - // if(verbose > 1) Rcout << std::endl; - - return(beta_current); - -} - -// same function as above, but exported to R for testing -// [[Rcpp::export]] -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, - NumericMatrix& y_in, - NumericVector& w_in, - int method, - double cph_eps_, - int iter_max){ - - - x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); - y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); - w_node = vec(w_in.begin(), w_in.length(), false); - - cph_do_scale = true; - - cph_method = method; - cph_eps = cph_eps_; - cph_iter_max = iter_max; - n_vars = x_node.n_cols; - - vi_pval_numer.zeros(x_node.n_cols); - vi_pval_denom.zeros(x_node.n_cols); - cols_node = regspace(0, x_node.n_cols - 1); - - x_node_scale(); - - vec out = newtraph_cph(); - - return(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- node functions -------------------------------- -// ---------------------------------------------------------------------------- - -// Log rank test w/multiple cutpoints -// -// this function returns a cutpoint obtaining a local maximum -// of the log-rank test (lrt) statistic. The default value (+Inf) -// is really for diagnostic purposes. Put another way, if the -// return value is +Inf (an impossible value for a cutpoint), -// that means that we didn't find any valid cut-points and -// the node cannot be grown with the current XB. -// -// if there is a valid cut-point, then the main side effect -// of this function is to modify the group vector, which -// will be used to assign observations to the two new nodes. -// -// @param group the vector that determines which node to send each -// observation to (left node = 0, right node = 1) -// @param y_node matrix of outcomes -// @param w_node vector of weights -// @param XB linear combination of predictors -// -// the group vector is modified by this function and the value returned -// is the maximal log-rank statistic across all the possible cutpoints. -double lrt_multi(){ - - break_loop = false; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB[*(iit+1)] << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB[*iit] != XB[*(iit+1)]){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - group[*iit] = 1; - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if ( XB[*iit] != XB[*(iit-1)] ) { - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - - // adjust k to indicate the number of valid cut-points - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - // protection from going out of bounds with jit_vals(k) below - if(j == 0) jit_vals(jit_vals.size()-1)--; - - // put the indices of potential cut-points into vec_temp - for(k = 0; k < vec_temp.size(); k++){ - vec_temp[k] = XB(*(iit_best - jit_vals[k])); - } - - // back to how it was! - if(j == 0) jit_vals(jit_vals.size()-1)++; - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - // switch group values from 0 to 1 until you get to the next cut-point - for( ; j < *jit; j++){ - group[*iit] = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp[k] == vec_temp[k+1] || - vec_temp[k] == vec_temp[0] || - *jit <= 1){ - - do_lrt = false; - - } else { - - while( XB[*iit] == XB[*(iit - 1)] ){ - - group[*iit] = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB[*iit] << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB[*iit] << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < split_min_stat) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group[*iit] = 0; - ++iit; - } - - // XB at *iit_best is the cut-point that maximized the log-rank test - return(XB[*iit_best]); - -} - -// this function is the same as above, but is exported to R for testing -// [[Rcpp::export]] -List lrt_multi_testthat(NumericMatrix& y_node_, - NumericVector& w_node_, - NumericVector& XB_, - int n_split_, - int leaf_min_events_, - int leaf_min_obs_ -){ - - y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); - w_node = vec(w_node_.begin(), w_node_.length(), false); - XB = vec(XB_.begin(), XB_.length(), false); - - n_split = n_split_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - - // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // this function returns a cutpoint obtaining a local maximum - // of the log-rank test (lrt) statistic. The default value (+Inf) - // is really for diagnostic purposes. Put another way, if the - // return value is +Inf (an impossible value for a cutpoint), - // that means that we didn't find any valid cut-points and - // the node cannot be grown with the current XB. - // - // if there is a valid cut-point, then the main side effect - // of this function is to modify the group vector, which - // will be used to assign observations to the two new nodes. - // - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - break_loop = false; - - vec cutpoints_used(n_split); - vec lrt_statistics(n_split); - uword list_counter = 0; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit+1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit+1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - group(*iit) = 1; - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit-1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - - // adjust k to indicate steps taken in the outer loop. - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - if(j == 0) jit_vals(jit_vals.size()-1)--; - - for(k = 0; k < vec_temp.size(); k++){ - vec_temp(k) = XB(*(iit_best - jit_vals(k))); - } - - if(j == 0) jit_vals(jit_vals.size()-1)++; - - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - for( ; j < *jit; j++){ - group(*iit) = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp(k) == vec_temp(k+1) || - vec_temp(k) == vec_temp(0) || - *jit <= 1){ - - do_lrt = false; - - } else { - - while(XB(*iit) == XB(*(iit - 1))){ - - group(*iit) = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB(*iit) << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - cutpoints_used(list_counter) = XB(*iit); - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - lrt_statistics(list_counter) = stat_current; - - list_counter++; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB(*iit) << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < 3.841459) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group(*iit) = 0; - ++iit; - } - - return(List::create(_["cutpoints"] = cutpoints_used, - _["statistic"] = lrt_statistics)); - -} - - -// out-of-bag prediction for single prediction horizon -// -// @param pred_type indicates what type of prediction to compute -// @param leaf_pred a vector indicating which leaf each observation -// landed in. -// @param leaf_indices a matrix that contains indices for each leaf node -// inside of leaf_nodes -// @param leaf_nodes a matrix with ids, survival, and cumulative hazard -// functions for each leaf node. -// -// @return matrix with predictions, dimension n by 1 - -void oobag_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred[*iit]; - - // find the current leaf - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - // get submat view for this leaf - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node.at(i-1, leaf_node_col); - break; - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } - - // running mean: mean_k = mean_{k-1} + (new val - old val) / k - // compute new val - old val - // be careful, every oob row has a different denom! - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 0){ - // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - -// out-of-bag prediction evaluation, Harrell's C-statistic -// -// @param pred_type indicates what type of prediction to compute -// @param y_input matrix of outcomes from input -// -// @return the C-statistic - -double oobag_c_harrell(char pred_type){ - - vec time = y_input.unsafe_col(0); - vec status = y_input.unsafe_col(1); - iit_vals = find(status == 1); - - k = y_input.n_rows; - - double total=0, concordant=0; - - switch(pred_type){ - - case 'S': case 'R': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for survival, current value > next vals is good - // risk is the same as survival until just before we output - // the oobag predictions, when we say pvec = 1-pvec, - if (surv_pvec[j] > surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - - case 'H': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for risk & chf current value < next vals is good. - if (surv_pvec[j] < surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - } - - return(concordant / total); - -} - -// same function as above but exported to R for testing -// [[Rcpp::export]] -double oobag_c_harrell_testthat(NumericMatrix y_mat, - NumericVector s_vec) { - - y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); - surv_pvec = vec(s_vec.begin(), s_vec.length(), false); - - return(oobag_c_harrell(pred_type_dflt)); - -} - -// this function is the same as oobag_pred_surv_uni, -// but it operates on new data rather than out-of-bag data -// and it allows for multiple prediction horizons instead of one -void new_pred_surv_multi(char pred_type){ - - // allocate memory for output - // surv_pvec.zeros(x_pred.n_rows); - - surv_pvec.set_size(times_pred.size()); - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - for(j = 0; j < times_pred.size(); j++){ - - time_pred = times_pred(j); - - if(time_pred < leaf_node(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - - if (leaf_node(i, 0) > time_pred){ - - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node(i-1, leaf_node_col); - - break; - - } else if (leaf_node(i, 0) == time_pred){ - - temp1 = leaf_node(i, leaf_node_col); - break; - - } - - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); - - } - - surv_pvec(j) = temp1; - - } - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - -} - -// this function is the same as new_pred_surv_multi, -// but only uses one prediction horizon -void new_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), - leaf_indices.at(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - - if(i == 0){ - - temp1 = pred_t0; - - } else { - - temp1 = leaf_node.at(i - 1, leaf_node_col); - - // experimental - does not seem to help! - // weighted average of surv est from before and after time of pred - // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); - // - // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + - // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; - - } - - break; - - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ - - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); - - // --- EXPERIMENTAL ADD-ON --- // - // if you are predicting beyond the max time in a node, - // then determine how much further out you are and assume - // the survival probability decays at the same rate. - - // temp2 = (1.0 - temp1) * - // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; - // - // temp1 = temp1 * (1.0-temp2); - - } - - surv_pvec(*iit) += temp1; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - surv_pvec(*iit) += temp1; - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 1){ - // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - - -// ---------------------------------------------------------------------------- -// --------------------------- ostree functions ------------------------------- -// ---------------------------------------------------------------------------- - -// increase the memory allocated to a tree -// -// this function is used if the initial memory allocation isn't enough -// to grow the tree. It modifies all elements of the tree, including -// betas, col_indices, children_left, and cutpoints -// -void ostree_size_buffer(){ - - // if(verbose > 1){ - // Rcout << "---------- buffering outputs ----------" << std::endl; - // Rcout << "betas before: " << std::endl << betas.t() << std::endl; - // } - - betas.insert_cols(betas.n_cols, 10); - // x_mean.insert_cols(x_mean.n_cols, 10); - col_indices.insert_cols(col_indices.n_cols, 10); - children_left.insert_rows(children_left.size(), 10); - cutpoints.insert_rows(cutpoints.size(), 10); - - // if(verbose > 1){ - // Rcout << "betas after: " << std::endl << betas.t() << std::endl; - // Rcout << "---------------------------------------"; - // Rcout << std::endl << std::endl; - // } - - -} - -// transfer memory from R into arma types -// -// when trees are passed from R, they need to be converted back into -// arma objects. The intent of this function is to convert everything -// back into an arma object without copying any data. -// -// nothing is modified apart from types - -void ostree_mem_xfer(){ - - // no data copied according to tracemem. - // not including boot rows or x_mean (don't always need them) - - NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; - NumericMatrix betas_ = ostree["betas"]; - NumericVector cutpoints_ = ostree["cut_points"]; - IntegerMatrix col_indices_ = ostree["col_indices"]; - IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; - IntegerVector children_left_ = ostree["children_left"]; - - leaf_nodes = mat(leaf_nodes_.begin(), - leaf_nodes_.nrow(), - leaf_nodes_.ncol(), - false); - - betas = mat(betas_.begin(), - betas_.nrow(), - betas_.ncol(), - false); - - cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); - - col_indices = conv_to::from( - imat(col_indices_.begin(), - col_indices_.nrow(), - col_indices_.ncol(), - false) - ); - - leaf_indices = conv_to::from( - imat(leaf_indices_.begin(), - leaf_indices_.nrow(), - leaf_indices_.ncol(), - false) - ); - - children_left = conv_to::from( - ivec(children_left_.begin(), - children_left_.length(), - false) - ); - -} - -// drop observations down the tree -// -// @description Determine the leaves that are assigned to new data. -// -// @param children_left vector of child node ids (right node = left node + 1) -// @param x_pred matrix of predictors from new data -// -// @return a vector indicating which leaf each observation was mapped to -void ostree_pred_leaf(){ - - // reset values - // this is needed for pred_leaf since every obs gets a new leaf in - // the next tree, but it isn't needed for pred_surv because survival - // probs get aggregated over all the trees. - leaf_pred.fill(0); - - for(i = 0; i < betas.n_cols; i++){ - - if(children_left[i] != 0){ - - if(i == 0){ - obs_in_node = regspace(0, 1, leaf_pred.size()-1); - } else { - obs_in_node = find(leaf_pred == i); - } - - - if(obs_in_node.size() > 0){ - - // Fastest sub-matrix multiplication i can think of. - // Matrix product = linear combination of columns - // (this is faster b/c armadillo is great at making - // pointers to the columns of an arma mat) - // I had to stop using this b/c it fails on - // XB.zeros(obs_in_node.size()); - // - // uvec col_indices_i = col_indices.unsafe_col(i); - // - // j = 0; - // - // jit = col_indices_i.begin(); - // - // for(; jit < col_indices_i.end(); ++jit, ++j){ - // - // vec x_j = x_pred.unsafe_col(*jit); - // - // XB += x_j(obs_in_node) * betas.at(j, i); - // - // } - - // this is slower but more clear matrix multiplication - XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); - - jit = obs_in_node.begin(); - - for(j = 0; j < XB.size(); ++j, ++jit){ - - if(XB[j] <= cutpoints[i]) { - - leaf_pred[*jit] = children_left[i]; - - } else { - - leaf_pred[*jit] = children_left[i]+1; - - } - - } - - // if(verbose > 0){ - // - // uvec in_left = find(leaf_pred == children_left(i)); - // uvec in_right = find(leaf_pred == children_left(i)+1); - // - // Rcout << "N to node_" << children_left(i) << ": "; - // Rcout << in_left.size() << "; "; - // Rcout << "N to node_" << children_left(i)+1 << ": "; - // Rcout << in_right.size() << std::endl; - // - // } - - } - - } - - } - - - -} - -// same as above but exported to R for testins -// [[Rcpp::export]] -arma::uvec ostree_pred_leaf_testthat(List& tree, - NumericMatrix& x_pred_){ - - - x_pred = mat(x_pred_.begin(), - x_pred_.nrow(), - x_pred_.ncol(), - false); - - leaf_pred.set_size(x_pred.n_rows); - - ostree = tree; - ostree_mem_xfer(); - ostree_pred_leaf(); - - return(leaf_pred); - -} - -// Fit an oblique survival tree -// -// @description used in orsf_fit, which has parameters defined below. -// -// @param f_beta the function used to find linear combinations of predictors -// -// @return a fitted oblique survival tree -// -List ostree_fit(Function f_beta){ - - betas.fill(0); - // x_mean.fill(0); - col_indices.fill(0); - cutpoints.fill(0); - children_left.fill(0); - node_assignments.fill(0); - leaf_nodes.fill(0); - - node_assignments.zeros(x_inbag.n_rows); - nodes_to_grow.zeros(1); - nodes_max_true = 0; - leaf_node_counter = 0; - leaf_node_index_counter = 0; - - // ---------------------- - // ---- main do loop ---- - // ---------------------- - - do { - - nodes_to_grow_next.set_size(0); - - // if(verbose > 0){ - // - // Rcout << "----------- nodes to grow -----------" << std::endl; - // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; - // Rcout << "-------------------------------------" << std::endl << - // std::endl << std::endl; - // - // - // } - - for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ - - if(nodes_to_grow[0] == 0){ - - // when growing the first node, there is no need to find - // which rows are in the node. - rows_node = linspace(0, - x_inbag.n_rows-1, - x_inbag.n_rows); - - } else { - - // identify which rows are in the current node. - rows_node = find(node_assignments == *node); - - } - - y_node = y_inbag.rows(rows_node); - w_node = w_inbag(rows_node); - - // if(verbose > 0){ - // - // n_risk = sum(w_node); - // n_events = sum(y_node.col(1) % w_node); - // Rcout << "-------- Growing node " << *node << " --------" << std::endl; - // Rcout << "No. of observations in node: " << n_risk << std::endl; - // Rcout << "No. of events in node: " << n_events << std::endl; - // Rcout << "No. of rows in node: " << w_node.size() << std::endl; - // Rcout << "--------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // - // } - - // initialize an impossible cut-point value - // if cutpoint is still infinite later, node should not be split - cutpoint = R_PosInf; - - // ------------------------------------------------------------------ - // ---- sample a random subset of columns with non-zero variance ---- - // ------------------------------------------------------------------ - - mtry_int = mtry; - cols_to_sample_01.fill(0); - - // constant columns are constant in the rows where events occurred - - for(j = 0; j < cols_to_sample_01.size(); j++){ - - temp1 = R_PosInf; - - for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ - - if(y_inbag.at(*iit, 1) == 1){ - - if (temp1 < R_PosInf){ - - if(x_inbag.at(*iit, j) != temp1){ - - cols_to_sample_01[j] = 1; - break; - - } - - } else { - - temp1 = x_inbag.at(*iit, j); - - } - - } - - } - - } - - n_cols_to_sample = sum(cols_to_sample_01); - - if(n_cols_to_sample > 1){ - - n_events_total = sum(y_node.col(1) % w_node); - - if(n_cols_to_sample < mtry){ - - mtry_int = n_cols_to_sample; - - // if(verbose > 0){ - // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; - // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; - // Rcout << std::endl; - // Rcout << "-------------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - if (type_beta == 'C'){ - - // make sure there are at least 3 event per predictor variable. - // (if using CPH) - while(n_events_total / mtry_int < 3 && mtry_int > 1){ - --mtry_int; - } - - } - - - n_cols_to_sample = mtry_int; - - // if(verbose > 0){ - // Rcout << "n_events: " << n_events_total << std::endl; - // Rcout << "mtry: " << mtry_int << std::endl; - // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; - // } - - if(mtry_int > 1){ - - cols_to_sample = find(cols_to_sample_01); - - // re-try hinge point - n_retry = 0; - cutpoint = R_PosInf; - - while(n_retry <= max_retry){ - - // if(n_retry > 0) Rcout << "trying again!" << std::endl; - - cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, - mtry_int, - false); - - x_node = x_inbag(rows_node, cols_node); - - // here is where n_vars gets updated to match the current node - // originally it matched the number of variables in the input x. - - n_vars = x_node.n_cols; - - if(cph_do_scale){ - x_node_scale(); - } - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node scaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - switch(type_beta) { - - case 'C' : - - beta_fit = newtraph_cph(); - - if(cph_do_scale){ - for(i = 0; i < x_transforms.n_rows; i++){ - x_node.col(i) /= x_transforms(i,1); - x_node.col(i) += x_transforms(i,0); - } - - } - - break; - - case 'N' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww, - net_alpha, - net_df_target); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - case 'U' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - } - - - if(any(beta_fit)){ - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node unscaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - XB = x_node * beta_fit; - cutpoint = lrt_multi(); - - } - - if(!std::isinf(cutpoint)) break; - n_retry++; - - } - - } - - } - - if(!std::isinf(cutpoint)){ - - // make new nodes if a valid cutpoint was found - nn_left = nodes_max_true + 1; - nodes_max_true = nodes_max_true + 2; - - - // if(verbose > 0){ - // - // Rcout << "-------- New nodes created --------" << std::endl; - // Rcout << "Left node: " << nn_left << std::endl; - // Rcout << "Right node: " << nodes_max_true << std::endl; - // Rcout << "-----------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - n_events_left = n_events_total - n_events_right; - - // if(verbose > 0){ - // Rcout << "n_events_left: " << n_events_left << std::endl; - // Rcout << "n_risk_left: " << n_risk_left << std::endl; - // Rcout << "n_events_right: " << n_events_right << std::endl; - // Rcout << "n_risk_right: " << n_risk_right << std::endl; - // } - - i=0; - - for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ - - node_assignments[*iit] = nn_left + group[i]; - - } - - if(n_events_left >= 2*leaf_min_events && - n_risk_left >= 2*leaf_min_obs && - n_events_left >= split_min_events && - n_risk_left >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nn_left}); - - } else { - - rows_leaf = find(group==0); - leaf_indices(leaf_node_index_counter, 0) = nn_left; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nn_left << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(n_events_right >= 2*leaf_min_events && - n_risk_right >= 2*leaf_min_obs && - n_events_right >= split_min_events && - n_risk_right >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nodes_max_true}); - - } else { - - rows_leaf = find(group==1); - leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nodes_max_true << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); - - for(i = 0; i < n_cols_to_sample; i++){ - betas.at(i, *node) = beta_fit[i]; - // x_mean.at(i, *node) = x_transforms(i, 0); - col_indices.at(i, *node) = cols_node[i]; - } - - children_left[*node] = nn_left; - cutpoints[*node] = cutpoint; - - } else { - - // make a leaf node if a valid cutpoint could not be found - leaf_indices(leaf_node_index_counter, 0) = *node; - leaf_kaplan(y_node, w_node); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << *node << std::endl; - // Rcout << "n_obs: " << sum(w_node) << std::endl; - // Rcout << "n_events: " << sum(w_node % y_node.col(1)); - // Rcout << std::endl; - // Rcout << "Couldn't find a cutpoint??" << std::endl; - // Rcout << "------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - } - - nodes_to_grow = nodes_to_grow_next; - - } while (nodes_to_grow.size() > 0); - - return( - List::create( - - _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), - - _["leaf_node_index"] = conv_to::from( - leaf_indices.rows(span(0, leaf_node_index_counter-1)) - ), - - _["betas"] = betas.cols(span(0, nodes_max_true)), - - // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), - - _["col_indices"] = conv_to::from( - col_indices.cols(span(0, nodes_max_true)) - ), - - _["cut_points"] = cutpoints(span(0, nodes_max_true)), - - _["children_left"] = conv_to::from( - children_left(span(0, nodes_max_true)) - ), - - _["rows_oobag"] = conv_to::from(rows_oobag) - - ) - ); - - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- orsf functions -------------------------------- -// ---------------------------------------------------------------------------- - -// fit an oblique random survival forest. -// -// @param x matrix of predictors -// @param y matrix of outcomes -// @param weights vector of weights -// @param n_tree number of trees to fit -// @param n_split_ number of splits to try with lrt -// @param mtry_ number of predictors to try -// @param leaf_min_events_ min number of events in a leaf -// @param leaf_min_obs_ min number of observations in a leaf -// @param split_min_events_ min number of events to split a node -// @param split_min_obs_ min number of observations to split a node -// @param split_min_stat_ min lrt to split a node -// @param cph_method_ method for ties -// @param cph_eps_ criteria for convergence of newton raphson algorithm -// @param cph_iter_max_ max number of newton raphson iterations -// @param cph_do_scale_ to scale or not to scale -// @param net_alpha_ alpha parameter for glmnet -// @param net_df_target_ degrees of freedom for glmnet -// @param oobag_pred_ whether to predict out-of-bag preds or not -// @param oobag_pred_type_ what type of out-of-bag preds to compute -// @param oobag_pred_horizon_ out-of-bag prediction horizon -// @param oobag_eval_every_ trees between each evaluation of oob error -// @param oobag_importance_ to compute importance or not -// @param oobag_importance_type_ type of importance to compute -// @param tree_seeds vector of seeds to set before each tree is fit -// @param max_retry_ max number of retries for linear combinations -// @param f_beta function to find linear combinations of predictors -// @param type_beta_ what type of linear combination to find -// @param f_oobag_eval function to evaluate out-of-bag error -// @param type_oobag_eval_ whether to use default or custom out-of-bag error -// -// @return an orsf_fit object sent back to R - -// [[Rcpp::export]] -List orsf_fit(NumericMatrix& x, - NumericMatrix& y, - NumericVector& weights, - const int& n_tree, - const int& n_split_, - const int& mtry_, - const double& leaf_min_events_, - const double& leaf_min_obs_, - const double& split_min_events_, - const double& split_min_obs_, - const double& split_min_stat_, - const int& cph_method_, - const double& cph_eps_, - const int& cph_iter_max_, - const bool& cph_do_scale_, - const double& net_alpha_, - const int& net_df_target_, - const bool& oobag_pred_, - const char& oobag_pred_type_, - const double& oobag_pred_horizon_, - const int& oobag_eval_every_, - const bool& oobag_importance_, - const char& oobag_importance_type_, - IntegerVector& tree_seeds, - const int& max_retry_, - Function f_beta, - const char& type_beta_, - Function f_oobag_eval, - const char& type_oobag_eval_){ - - - // convert inputs into arma objects - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - w_user = vec(weights.begin(), weights.length(), false); - - // these change later in ostree_fit() - n_rows = x_input.n_rows; - n_vars = x_input.n_cols; - - // initialize the variable importance (vi) vectors - vi_pval_numer.zeros(n_vars); - vi_pval_denom.zeros(n_vars); - - // if(verbose > 0){ - // Rcout << "------------ dimensions ------------" << std::endl; - // Rcout << "N obs total: " << n_rows << std::endl; - // Rcout << "N columns total: " << n_vars << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - n_split = n_split_; - mtry = mtry_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - split_min_events = split_min_events_; - split_min_obs = split_min_obs_; - split_min_stat = split_min_stat_; - cph_method = cph_method_; - cph_eps = cph_eps_; - cph_iter_max = cph_iter_max_; - cph_do_scale = cph_do_scale_; - net_alpha = net_alpha_; - net_df_target = net_df_target_; - oobag_pred = oobag_pred_; - oobag_pred_type = oobag_pred_type_; - oobag_eval_every = oobag_eval_every_; - oobag_eval_counter = 0; - oobag_importance = oobag_importance_; - oobag_importance_type = oobag_importance_type_; - use_tree_seed = tree_seeds.length() > 0; - max_retry = max_retry_; - type_beta = type_beta_; - type_oobag_eval = type_oobag_eval_; - temp1 = 1.0 / n_rows; - - if(cph_iter_max > 1) cph_do_scale = true; - - if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; - - if(oobag_pred){ - - time_pred = oobag_pred_horizon_; - - if(time_pred == 0) time_pred = median(y_input.col(0)); - - eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); - - } else { - - eval_oobag.set_size(0); - - } - - // if(verbose > 0){ - // Rcout << "------------ input variables ------------" << std::endl; - // Rcout << "n_split: " << n_split << std::endl; - // Rcout << "mtry: " << mtry << std::endl; - // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; - // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; - // Rcout << "cph_method: " << cph_method << std::endl; - // Rcout << "cph_eps: " << cph_eps << std::endl; - // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; - // Rcout << "-----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - // ---------------------------------------------------- - // ---- sample weights to mimic a bootstrap sample ---- - // ---------------------------------------------------- - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - // but it could technically be as big as n_row. - IntegerVector s = seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - NumericVector probs = dbinom(s, n_rows, temp1, false); - - // --------------------------------------------- - // ---- preallocate memory for tree outputs ---- - // --------------------------------------------- - - cols_to_sample_01.zeros(n_vars); - leaf_nodes.zeros(n_rows, 3); - - if(oobag_pred){ - - surv_pvec.zeros(n_rows); - denom_pred.zeros(n_rows); - - } else { - - surv_pvec.set_size(0); - denom_pred.set_size(0); - - } - - // guessing the number of nodes needed to grow a tree - nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); - - betas.zeros(mtry, nodes_max_guess); - // x_mean.zeros(mtry, nodes_max_guess); - col_indices.zeros(mtry, nodes_max_guess); - cutpoints.zeros(nodes_max_guess); - children_left.zeros(nodes_max_guess); - leaf_indices.zeros(nodes_max_guess, 3); - - // some great variable names here - List forest(n_tree); - - for(tree = 0; tree < n_tree; ){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - // -------------------------------------------- - // ---- initialize parameters to grow tree ---- - // -------------------------------------------- - - // rows_inbag = find(w_inbag != 0); - - if(use_tree_seed) set_seed_r(tree_seeds[tree]); - - w_input = as(sample(s, n_rows, true, probs)); - - // if the user gives a weight vector, then each bootstrap weight - // should be multiplied by the corresponding user weight. - if(w_user.size() > 0) w_input = w_input % w_user; - - rows_oobag = find(w_input == 0); - rows_inbag = regspace(0, n_rows-1); - rows_inbag = std_setdiff(rows_inbag, rows_oobag); - w_inbag = w_input(rows_inbag); - - // if(verbose > 0){ - // - // Rcout << "------------ boot weights ------------" << std::endl; - // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; - // Rcout << "total: " << sum(w_inbag) << std::endl; - // Rcout << "N > 0: " << rows_inbag.size() << std::endl; - // Rcout << "--------------------------------------" << - // std::endl << std::endl << std::endl; - // - // } - - x_inbag = x_input.rows(rows_inbag); - y_inbag = y_input.rows(rows_inbag); - - if(oobag_pred){ - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(rows_oobag.size()); - } - - // if(verbose > 0){ - // - // uword temp_uword_1, temp_uword_2; - // - // if(x_inbag.n_rows < 5) - // temp_uword_1 = x_inbag.n_rows-1; - // else - // temp_uword_1 = 5; - // - // if(x_inbag.n_cols < 5) - // temp_uword_2 = x_inbag.n_cols-1; - // else - // temp_uword_2 = 4; - // - // Rcout << "x inbag: " << std::endl << - // x_inbag.submat(0, 0, - // temp_uword_1, - // temp_uword_2) << std::endl; - // - // } - - forest[tree] = ostree_fit(f_beta); - - // add 1 to tree here instead of end of loop - // (more convenient to compute tree % oobag_eval_every) - tree++; - - if(oobag_pred){ - - denom_pred(rows_oobag) += 1; - ostree_pred_leaf(); - oobag_pred_surv_uni(oobag_pred_type); - - if(tree % oobag_eval_every == 0){ - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); - oobag_eval_counter++; - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - eval_oobag[oobag_eval_counter] = as( - f_oobag_eval(y, ww) - ); - - oobag_eval_counter++; - - break; - - } - - - } - - } - - } - - - - vec vimp(x_input.n_cols); - - // ANOVA importance - if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; - - // if we are computing variable importance, surv_pvec is about - // to get modified, and we don't want to return the modified - // version of surv_pvec. - // So make a deep copy if oobag_importance is true. - // Make a shallow copy if oobag_importance is false - surv_pvec_output = vec(surv_pvec.begin(), - surv_pvec.size(), - oobag_importance); - - if(oobag_importance && n_tree > 0){ - - uvec betas_to_flip; - oobag_eval_counter--; - - for(uword variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < n_tree; ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - if(oobag_importance_type == 'P'){ - x_pred.col(variable) = shuffle(x_pred.col(variable)); - } - - ostree_mem_xfer(); - - - if(oobag_importance_type == 'N'){ - betas_to_flip = find(col_indices == variable); - betas.elem( betas_to_flip ) *= (-1); - } - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - if(oobag_importance_type == 'N'){ - betas.elem( betas_to_flip ) *= (-1); - } - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = eval_oobag[oobag_eval_counter] - - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = - eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); - - - break; - - } - - } - - } - - if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; - - return( - List::create( - _["forest"] = forest, - _["pred_oobag"] = surv_pvec_output, - _["pred_horizon"] = time_pred, - _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, - _["stat_type"] = type_oobag_eval), - _["importance"] = vimp - ) - ); - - -} - -// @description compute negation importance -// -// @param x matrix of predictors -// @param y outcome matrix -// @param forest forest object from an orsf_fit -// @param last_eval_stat the last estimate of out-of-bag error -// @param time_pred_ the prediction horizon -// @param f_oobag_eval function used to evaluate out-of-bag error -// @param pred_type_ the type of prediction to compute -// @param type_oobag_eval_ custom or default out-of-bag predictions -// -// @return a vector of importance values -// -// [[Rcpp::export]] -arma::vec orsf_oob_negate_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uvec betas_to_flip; - uword variable; - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - ostree_mem_xfer(); - - betas_to_flip = find(col_indices == variable); - - betas.elem( betas_to_flip ) *= (-1); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - betas.elem( betas_to_flip ) *= (-1); - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// same as above but computes permutation importance instead of negation -// [[Rcpp::export]] -arma::vec orsf_oob_permute_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uword variable; - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - x_pred.col(variable) = shuffle(x_pred.col(variable)); - - ostree_mem_xfer(); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - // x_variable = x_variable_original; - // x_input.col(variable) = x_variable; - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// predictions from an oblique random survival forest -// -// @description makes predictions based on a single horizon -// -// @param forest forest object from orsf_fit object -// @param x_new matrix of predictors -// @param time_dbl prediction horizon -// @param pred_type type of prediction to compute -// -// [[Rcpp::export]] -arma::mat orsf_pred_uni(List& forest, - NumericMatrix& x_new, - double time_dbl, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - time_pred = time_dbl; - - // memory for outputs - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.zeros(x_pred.n_rows); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pvec); - } else { - return(surv_pvec); - } - -} - -// same as above but makes predictions for multiple horizons -// [[Rcpp::export]] -arma::mat orsf_pred_multi(List& forest, - NumericMatrix& x_new, - NumericVector& time_vec, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - times_pred = vec(time_vec.begin(), time_vec.length(), false); - - // memory for outputs - // initial values don't matter for leaf_pred, - // but do matter for surv_pmat - leaf_pred.set_size(x_pred.n_rows); - surv_pmat.zeros(x_pred.n_rows, times_pred.size()); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_multi(pred_type); - } - - surv_pmat /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pmat); - } else { - return(surv_pmat); - } - -} - -// partial dependence for new data -// -// @description calls predict on the data with a predictor fixed -// and then summarizes the predictions. -// -// @param forest a forest object from an orsf_fit object -// @param x_new_ matrix of predictors -// @param x_cols_ columns of variables of interest -// @param x_vals_ values to set these columsn to -// @param probs_ for quantiles -// @param time_dbl prediction horizon -// @param pred_type prediction type -// -// @return matrix with partial dependence -// [[Rcpp::export]] -arma::mat pd_new_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - return(join_vert(output_means, output_quantiles)); - -} - - -// same as above but for out-of-bag data -// [[Rcpp::export]] -arma::mat pd_oob_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - - return(join_vert(output_means, output_quantiles)); - -} - -// same as above but doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_new_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_pred.n_rows; - - - } - - return(output_ice); - -} - -// same as above but out-of-bag and doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_oob_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat output_ice(x_vals.n_rows * x_input.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); - - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_input.n_rows; - - - } - - return(output_ice); - -} - - - +// #include +// #include +// +// // [[Rcpp::depends(RcppArmadillo)]] +// +// +// using namespace Rcpp; +// using namespace arma; +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- global parameters ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // special note: dont change these doubles to uword, +// // even though some of them could be uwords; +// // operations involving uwords and doubles are not +// // straightforward and may break the routine. +// // also: double + uword is slower than double + double. +// +// double +// weight_avg, +// weight_events, +// w_node_sum, +// denom_events, +// denom, +// cph_eps, +// // the n_ variables could be integers but it +// // is safer and faster when they are doubles +// n_events, +// n_events_total, +// n_events_right, +// n_events_left, +// n_risk, +// n_risk_right, +// n_risk_left, +// n_risk_sub, +// g_risk, +// temp1, +// temp2, +// temp3, +// halving, +// stat_current, +// stat_best, +// w_node_person, +// xb, +// risk, +// loglik, +// cutpoint, +// observed, +// expected, +// V, +// pred_t0, +// leaf_min_obs, +// leaf_min_events, +// split_min_events, +// split_min_obs, +// split_min_stat, +// time_pred, +// ll_second, +// ll_init, +// net_alpha; +// +// int +// // verbose=0, +// max_retry, +// n_retry, +// tree, +// mtry_int, +// net_df_target, +// oobag_eval_every; +// +// char +// type_beta, +// type_oobag_eval, +// oobag_pred_type, +// oobag_importance_type, +// pred_type_dflt = 'S'; +// +// // armadillo unsigned integers +// uword +// i, +// j, +// k, +// iter, +// mtry, +// mtry_temp, +// person, +// person_leaf, +// person_ref_index, +// n_vars, +// n_rows, +// cph_method, +// cph_iter_max, +// n_split, +// nodes_max_guess, +// nodes_max_true, +// n_cols_to_sample, +// nn_left, +// leaf_node_counter, +// leaf_node_index_counter, +// leaf_node_col, +// oobag_eval_counter; +// +// bool +// break_loop, // a delayed break statement +// oobag_pred, +// oobag_importance, +// use_tree_seed, +// cph_do_scale; +// +// // armadillo vectors (doubles) +// vec +// vec_temp, +// times_pred, +// eval_oobag, +// node_assignments, +// nodes_grown, +// surv_pvec, +// surv_pvec_output, +// denom_pred, +// beta_current, +// beta_new, +// beta_fit, +// vi_pval_numer, +// vi_pval_denom, +// cutpoints, +// w_input, +// w_inbag, +// w_user, +// w_node, +// group, +// u, +// a, +// a2, +// XB, +// Risk; +// +// // armadillo unsigned integer vectors +// uvec +// iit_vals, +// jit_vals, +// rows_inbag, +// rows_oobag, +// rows_node, +// rows_leaf, +// rows_node_combined, +// cols_to_sample_01, +// cols_to_sample, +// cols_node, +// leaf_node_index, +// nodes_to_grow, +// nodes_to_grow_next, +// obs_in_node, +// children_left, +// leaf_pred; +// +// // armadillo iterators for unsigned integer vectors +// uvec::iterator +// iit, +// iit_best, +// jit, +// node; +// +// // armadillo matrices (doubles) +// mat +// x_input, +// x_transforms, +// y_input, +// x_inbag, +// y_inbag, +// x_node, +// y_node, +// x_pred, +// // x_mean, +// vmat, +// cmat, +// cmat2, +// betas, +// leaf_node, +// leaf_nodes, +// surv_pmat; +// +// umat +// col_indices, +// leaf_indices; +// +// cube +// surv_pcube; +// +// List ostree; +// +// NumericMatrix +// beta_placeholder, +// xx, +// yy; +// +// CharacterVector yy_names = CharacterVector::create("time","status"); +// +// NumericVector ww; +// +// Environment base_env("package:base"); +// +// Function set_seed_r = base_env["set.seed"]; +// +// // Set difference for arma vectors +// // +// // @description the same as setdiff() in R +// // +// // @param x first vector +// // @param y second vector +// // +// // [[Rcpp::export]] +// arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { +// +// std::vector a = conv_to< std::vector >::from(sort(x)); +// std::vector b = conv_to< std::vector >::from(sort(y)); +// std::vector out; +// +// std::set_difference(a.begin(), a.end(), +// b.begin(), b.end(), +// std::inserter(out, out.end())); +// +// return conv_to::from(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- scaling functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // scale observations in predictor matrix +// // +// // @description this scales inputs in the same way as +// // the survival::coxph() function. The main reasons we do this +// // are to avoid exponential overflow and to prevent the scale +// // of inputs from impacting the estimated beta coefficients. +// // E.g., you can try multiplying numeric inputs by 100 prior +// // to calling orsf() with orsf_control_fast(do_scale = FALSE) +// // and you will see that you get back a different forest. +// // +// // @param x_node matrix of predictors +// // @param w_node replication weights +// // @param x_transforms matrix used to store the means and scales +// // +// // @return modified x_node and x_transform filled with values +// // +// void x_node_scale(){ +// +// // set aside memory for outputs +// // first column holds the mean values +// // second column holds the scale values +// +// x_transforms.zeros(n_vars, 2); +// vec means = x_transforms.unsafe_col(0); // Reference to column 1 +// vec scales = x_transforms.unsafe_col(1); // Reference to column 2 +// +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// x_node.col(i) -= means.at(i); +// +// scales.at(i) = sum(w_node % abs(x_node.col(i))); +// +// if(scales(i) > 0) +// scales.at(i) = w_node_sum / scales.at(i); +// else +// scales.at(i) = 1.0; // rare case of constant covariate; +// +// x_node.col(i) *= scales.at(i); +// +// } +// +// } +// +// // same as above function, but just the means +// // (currently not used) +// void x_node_means(){ +// +// x_transforms.zeros(n_vars, 1); +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// } +// +// } +// +// // Same as x_node_scale, but this can be called from R +// // [[Rcpp::export]] +// List x_node_scale_exported(NumericMatrix& x_, +// NumericVector& w_){ +// +// x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); +// w_node = vec(w_.begin(), w_.length(), false); +// n_vars = x_node.n_cols; +// +// x_node_scale(); +// +// return( +// List::create( +// _["x_scaled"] = x_node, +// _["x_transforms"] = x_transforms +// ) +// ); +// +// } +// +// // ---------------------------------------------------------------------------- +// // -------------------------- leaf_surv functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // Create kaplan-meier survival curve in leaf node +// // +// // @description Modifies leaf_nodes by adding data from the current node, +// // where the current node is one that is too small to be split and will +// // be converted to a leaf. +// // +// // @param y the outcome matrix in the current leaf +// // @param w the weights vector in the current leaf +// // @param leaf_indices a matrix that indicates where leaf nodes are +// // inside of leaf_nodes. leaf_indices has three columns: +// // - first column: the id for the leaf +// // - second column: starting row for the leaf +// // - third column: ending row for the leaf +// // @param leaf_node_index_counter keeps track of where we are in leaf_node +// // @param leaf_node_counter keeps track of which leaf node we are in +// // @param leaf_nodes a matrix with three columns: +// // - first column: time +// // - second column: survival probability +// // - third column: cumulative hazard +// +// void leaf_kaplan(const arma::mat& y, +// const arma::vec& w){ +// +// leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; +// i = leaf_node_counter; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(i, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// i++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(i, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// i++; +// +// } +// +// } +// +// // reset for kaplan meier loop +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// temp3 = 0.0; +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// +// temp3 = temp3 + n_events / n_risk; +// +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_nodes.at(leaf_node_counter, 2) = temp3; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// +// leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; +// leaf_node_index_counter++; +// +// if(leaf_node_index_counter >= leaf_indices.n_rows){ +// leaf_indices.insert_rows(leaf_indices.n_rows, 10); +// } +// +// } +// +// // Same as above, but this function can be called from R and is +// // used to run tests with testthat (hence the name). Note: this +// // needs to be updated to include CHF, which was added to the +// // function above recently. +// // [[Rcpp::export]] +// arma::mat leaf_kaplan_testthat(const arma::mat& y, +// const arma::vec& w){ +// +// +// leaf_nodes.set_size(y.n_rows, 3); +// leaf_node_counter = 0; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// leaf_node_counter++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// leaf_node_counter++; +// +// } +// +// } +// +// +// // reset for kaplan meier loop +// i = leaf_node_counter; +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// leaf_node_counter = 0; +// +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// leaf_nodes.resize(leaf_node_counter, 3); +// +// return(leaf_nodes); +// +// } +// +// +// +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- cholesky functions ---------------------------- +// // ---------------------------------------------------------------------------- +// +// // cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // prepares vmat for cholesky_solve() +// +// +// void cholesky(){ +// +// double eps_chol = 0; +// double toler = 1e-8; +// double pivot; +// +// for(i = 0; i < n_vars; i++){ +// +// if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); +// +// // copy upper right values to bottom left +// for(j = (i+1); j eps_chol) { +// +// for(j = (i+1); j < n_vars; j++){ +// +// temp1 = vmat.at(j,i) / pivot; +// vmat.at(j,i) = temp1; +// vmat.at(j,j) -= temp1*temp1*pivot; +// +// for(k = (j+1); k < n_vars; k++){ +// +// vmat.at(k, j) -= temp1 * vmat.at(k, i); +// +// } +// +// } +// +// } else { +// +// vmat.at(i, i) = 0; +// +// } +// +// } +// +// } +// +// // solve cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. Prepares u, the vector used to update beta. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // +// void cholesky_solve(){ +// +// for (i = 0; i < n_vars; i++) { +// +// temp1 = u[i]; +// +// for (j = 0; j < i; j++){ +// +// temp1 -= u[j] * vmat.at(i, j); +// u[i] = temp1; +// +// } +// +// } +// +// +// for (i = n_vars; i >= 1; i--){ +// +// if (vmat.at(i-1, i-1) == 0){ +// +// u[i-1] = 0; +// +// } else { +// +// temp1 = u[i-1] / vmat.at(i-1, i-1); +// +// for (j = i; j < n_vars; j++){ +// temp1 -= u[j] * vmat.at(j, i-1); +// } +// +// u[i-1] = temp1; +// +// } +// +// } +// +// } +// +// // invert the cholesky in the lower triangle +// // +// // @description this function is copied from the survival package and +// // translated into arma. Inverts vmat +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// +// void cholesky_invert(){ +// +// for (i=0; i0) { +// +// // take full advantage of the cholesky's diagonal of 1's +// vmat.at(i,i) = 1.0 / vmat.at(i,i); +// +// for (j=(i+1); j 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= weight_events * log(denom); +// +// for (i=0; i 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= denom_events * log(denom); +// +// for (i=0; i 1 && stat_best < R_PosInf){ +// +// for(iter = 1; iter < cph_iter_max; iter++){ +// +// // if(verbose > 0){ +// // +// // Rcout << "--------- Newt-Raph algo; iter " << iter; +// // Rcout << " ---------" << std::endl; +// // Rcout << "beta: " << beta_new.t(); +// // Rcout << "loglik: " << stat_best; +// // Rcout << std::endl; +// // Rcout << "------------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // +// // } +// +// // do the next iteration +// stat_current = newtraph_cph_iter(beta_new); +// +// cholesky(); +// +// // don't go trying to fix this, just use the last +// // set of valid coefficients +// if(std::isinf(stat_current)) break; +// +// // check for convergence +// // break the loop if the new ll is ~ same as old best ll +// if(fabs(1 - stat_best / stat_current) < cph_eps){ +// break; +// } +// +// if(stat_current < stat_best){ // it's not converging! +// +// halving++; // get more aggressive when it doesn't work +// +// // reduce the magnitude by which beta_new modifies beta_current +// for (i = 0; i < n_vars; i++){ +// beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); +// } +// +// // yeah its not technically the best but I need to do this for +// // more reasonable output when verbose = true; I should remove +// // this line when verbosity is taken out. +// stat_best = stat_current; +// +// } else { // it's converging! +// +// halving = 0; +// stat_best = stat_current; +// +// cholesky_solve(); +// +// for (i = 0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// beta_new[i] = beta_new[i] + u[i]; +// +// } +// +// } +// +// } +// +// } +// +// // invert vmat +// cholesky_invert(); +// +// for (i=0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// +// if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ +// beta_current[i] = 0; +// } +// +// if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ +// vmat.at(i, i) = 1.0; +// } +// +// // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; +// +// if(cph_do_scale){ +// beta_current.at(i) *= x_transforms.at(i, 1); +// vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); +// } +// +// // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; +// +// if(oobag_importance_type == 'A'){ +// +// if(beta_current.at(i) != 0){ +// +// temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), +// 1, false, false); +// +// if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; +// +// } +// +// vi_pval_denom[cols_node[i]]++; +// +// } +// +// } +// +// // if(verbose > 1) Rcout << std::endl; +// +// return(beta_current); +// +// } +// +// // same function as above, but exported to R for testing +// // [[Rcpp::export]] +// arma::vec newtraph_cph_testthat(NumericMatrix& x_in, +// NumericMatrix& y_in, +// NumericVector& w_in, +// int method, +// double cph_eps_, +// int iter_max){ +// +// +// x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); +// y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); +// w_node = vec(w_in.begin(), w_in.length(), false); +// +// cph_do_scale = true; +// +// cph_method = method; +// cph_eps = cph_eps_; +// cph_iter_max = iter_max; +// n_vars = x_node.n_cols; +// +// vi_pval_numer.zeros(x_node.n_cols); +// vi_pval_denom.zeros(x_node.n_cols); +// cols_node = regspace(0, x_node.n_cols - 1); +// +// x_node_scale(); +// +// vec out = newtraph_cph(); +// +// return(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- node functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // Log rank test w/multiple cutpoints +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // @param group the vector that determines which node to send each +// // observation to (left node = 0, right node = 1) +// // @param y_node matrix of outcomes +// // @param w_node vector of weights +// // @param XB linear combination of predictors +// // +// // the group vector is modified by this function and the value returned +// // is the maximal log-rank statistic across all the possible cutpoints. +// double lrt_multi(){ +// +// break_loop = false; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB[*(iit+1)] << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB[*iit] != XB[*(iit+1)]){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// group[*iit] = 1; +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if ( XB[*iit] != XB[*(iit-1)] ) { +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// +// // adjust k to indicate the number of valid cut-points +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// // protection from going out of bounds with jit_vals(k) below +// if(j == 0) jit_vals(jit_vals.size()-1)--; +// +// // put the indices of potential cut-points into vec_temp +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp[k] = XB(*(iit_best - jit_vals[k])); +// } +// +// // back to how it was! +// if(j == 0) jit_vals(jit_vals.size()-1)++; +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// // switch group values from 0 to 1 until you get to the next cut-point +// for( ; j < *jit; j++){ +// group[*iit] = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp[k] == vec_temp[k+1] || +// vec_temp[k] == vec_temp[0] || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while( XB[*iit] == XB[*(iit - 1)] ){ +// +// group[*iit] = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB[*iit] << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB[*iit] << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < split_min_stat) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group[*iit] = 0; +// ++iit; +// } +// +// // XB at *iit_best is the cut-point that maximized the log-rank test +// return(XB[*iit_best]); +// +// } +// +// // this function is the same as above, but is exported to R for testing +// // [[Rcpp::export]] +// List lrt_multi_testthat(NumericMatrix& y_node_, +// NumericVector& w_node_, +// NumericVector& XB_, +// int n_split_, +// int leaf_min_events_, +// int leaf_min_obs_ +// ){ +// +// y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); +// w_node = vec(w_node_.begin(), w_node_.length(), false); +// XB = vec(XB_.begin(), XB_.length(), false); +// +// n_split = n_split_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// +// // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// break_loop = false; +// +// vec cutpoints_used(n_split); +// vec lrt_statistics(n_split); +// uword list_counter = 0; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit+1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit+1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// group(*iit) = 1; +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit-1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// +// // adjust k to indicate steps taken in the outer loop. +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// if(j == 0) jit_vals(jit_vals.size()-1)--; +// +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp(k) = XB(*(iit_best - jit_vals(k))); +// } +// +// if(j == 0) jit_vals(jit_vals.size()-1)++; +// +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// for( ; j < *jit; j++){ +// group(*iit) = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp(k) == vec_temp(k+1) || +// vec_temp(k) == vec_temp(0) || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while(XB(*iit) == XB(*(iit - 1))){ +// +// group(*iit) = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB(*iit) << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// cutpoints_used(list_counter) = XB(*iit); +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// lrt_statistics(list_counter) = stat_current; +// +// list_counter++; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB(*iit) << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < 3.841459) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group(*iit) = 0; +// ++iit; +// } +// +// return(List::create(_["cutpoints"] = cutpoints_used, +// _["statistic"] = lrt_statistics)); +// +// } +// +// +// // out-of-bag prediction for single prediction horizon +// // +// // @param pred_type indicates what type of prediction to compute +// // @param leaf_pred a vector indicating which leaf each observation +// // landed in. +// // @param leaf_indices a matrix that contains indices for each leaf node +// // inside of leaf_nodes +// // @param leaf_nodes a matrix with ids, survival, and cumulative hazard +// // functions for each leaf node. +// // +// // @return matrix with predictions, dimension n by 1 +// +// void oobag_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred[*iit]; +// +// // find the current leaf +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// // get submat view for this leaf +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node.at(i-1, leaf_node_col); +// break; +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// // running mean: mean_k = mean_{k-1} + (new val - old val) / k +// // compute new val - old val +// // be careful, every oob row has a different denom! +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 0){ +// // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// // out-of-bag prediction evaluation, Harrell's C-statistic +// // +// // @param pred_type indicates what type of prediction to compute +// // @param y_input matrix of outcomes from input +// // +// // @return the C-statistic +// +// double oobag_c_harrell(char pred_type){ +// +// vec time = y_input.unsafe_col(0); +// vec status = y_input.unsafe_col(1); +// iit_vals = find(status == 1); +// +// k = y_input.n_rows; +// +// double total=0, concordant=0; +// +// switch(pred_type){ +// +// case 'S': case 'R': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for survival, current value > next vals is good +// // risk is the same as survival until just before we output +// // the oobag predictions, when we say pvec = 1-pvec, +// if (surv_pvec[j] > surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// +// case 'H': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for risk & chf current value < next vals is good. +// if (surv_pvec[j] < surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// } +// +// return(concordant / total); +// +// } +// +// // same function as above but exported to R for testing +// // [[Rcpp::export]] +// double oobag_c_harrell_testthat(NumericMatrix y_mat, +// NumericVector s_vec) { +// +// y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); +// surv_pvec = vec(s_vec.begin(), s_vec.length(), false); +// +// return(oobag_c_harrell(pred_type_dflt)); +// +// } +// +// // this function is the same as oobag_pred_surv_uni, +// // but it operates on new data rather than out-of-bag data +// // and it allows for multiple prediction horizons instead of one +// void new_pred_surv_multi(char pred_type){ +// +// // allocate memory for output +// // surv_pvec.zeros(x_pred.n_rows); +// +// surv_pvec.set_size(times_pred.size()); +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// for(j = 0; j < times_pred.size(); j++){ +// +// time_pred = times_pred(j); +// +// if(time_pred < leaf_node(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// +// if (leaf_node(i, 0) > time_pred){ +// +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node(i-1, leaf_node_col); +// +// break; +// +// } else if (leaf_node(i, 0) == time_pred){ +// +// temp1 = leaf_node(i, leaf_node_col); +// break; +// +// } +// +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// surv_pvec(j) = temp1; +// +// } +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// } +// +// // this function is the same as new_pred_surv_multi, +// // but only uses one prediction horizon +// void new_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), +// leaf_indices.at(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// +// if(i == 0){ +// +// temp1 = pred_t0; +// +// } else { +// +// temp1 = leaf_node.at(i - 1, leaf_node_col); +// +// // experimental - does not seem to help! +// // weighted average of surv est from before and after time of pred +// // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); +// // +// // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + +// // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; +// +// } +// +// break; +// +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); +// +// // --- EXPERIMENTAL ADD-ON --- // +// // if you are predicting beyond the max time in a node, +// // then determine how much further out you are and assume +// // the survival probability decays at the same rate. +// +// // temp2 = (1.0 - temp1) * +// // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; +// // +// // temp1 = temp1 * (1.0-temp2); +// +// } +// +// surv_pvec(*iit) += temp1; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// surv_pvec(*iit) += temp1; +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 1){ +// // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// +// // ---------------------------------------------------------------------------- +// // --------------------------- ostree functions ------------------------------- +// // ---------------------------------------------------------------------------- +// +// // increase the memory allocated to a tree +// // +// // this function is used if the initial memory allocation isn't enough +// // to grow the tree. It modifies all elements of the tree, including +// // betas, col_indices, children_left, and cutpoints +// // +// void ostree_size_buffer(){ +// +// // if(verbose > 1){ +// // Rcout << "---------- buffering outputs ----------" << std::endl; +// // Rcout << "betas before: " << std::endl << betas.t() << std::endl; +// // } +// +// betas.insert_cols(betas.n_cols, 10); +// // x_mean.insert_cols(x_mean.n_cols, 10); +// col_indices.insert_cols(col_indices.n_cols, 10); +// children_left.insert_rows(children_left.size(), 10); +// cutpoints.insert_rows(cutpoints.size(), 10); +// +// // if(verbose > 1){ +// // Rcout << "betas after: " << std::endl << betas.t() << std::endl; +// // Rcout << "---------------------------------------"; +// // Rcout << std::endl << std::endl; +// // } +// +// +// } +// +// // transfer memory from R into arma types +// // +// // when trees are passed from R, they need to be converted back into +// // arma objects. The intent of this function is to convert everything +// // back into an arma object without copying any data. +// // +// // nothing is modified apart from types +// +// void ostree_mem_xfer(){ +// +// // no data copied according to tracemem. +// // not including boot rows or x_mean (don't always need them) +// +// NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; +// NumericMatrix betas_ = ostree["betas"]; +// NumericVector cutpoints_ = ostree["cut_points"]; +// IntegerMatrix col_indices_ = ostree["col_indices"]; +// IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; +// IntegerVector children_left_ = ostree["children_left"]; +// +// leaf_nodes = mat(leaf_nodes_.begin(), +// leaf_nodes_.nrow(), +// leaf_nodes_.ncol(), +// false); +// +// betas = mat(betas_.begin(), +// betas_.nrow(), +// betas_.ncol(), +// false); +// +// cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); +// +// col_indices = conv_to::from( +// imat(col_indices_.begin(), +// col_indices_.nrow(), +// col_indices_.ncol(), +// false) +// ); +// +// leaf_indices = conv_to::from( +// imat(leaf_indices_.begin(), +// leaf_indices_.nrow(), +// leaf_indices_.ncol(), +// false) +// ); +// +// children_left = conv_to::from( +// ivec(children_left_.begin(), +// children_left_.length(), +// false) +// ); +// +// } +// +// // drop observations down the tree +// // +// // @description Determine the leaves that are assigned to new data. +// // +// // @param children_left vector of child node ids (right node = left node + 1) +// // @param x_pred matrix of predictors from new data +// // +// // @return a vector indicating which leaf each observation was mapped to +// void ostree_pred_leaf(){ +// +// // reset values +// // this is needed for pred_leaf since every obs gets a new leaf in +// // the next tree, but it isn't needed for pred_surv because survival +// // probs get aggregated over all the trees. +// leaf_pred.fill(0); +// +// for(i = 0; i < betas.n_cols; i++){ +// +// if(children_left[i] != 0){ +// +// if(i == 0){ +// obs_in_node = regspace(0, 1, leaf_pred.size()-1); +// } else { +// obs_in_node = find(leaf_pred == i); +// } +// +// +// if(obs_in_node.size() > 0){ +// +// // Fastest sub-matrix multiplication i can think of. +// // Matrix product = linear combination of columns +// // (this is faster b/c armadillo is great at making +// // pointers to the columns of an arma mat) +// // I had to stop using this b/c it fails on +// // XB.zeros(obs_in_node.size()); +// // +// // uvec col_indices_i = col_indices.unsafe_col(i); +// // +// // j = 0; +// // +// // jit = col_indices_i.begin(); +// // +// // for(; jit < col_indices_i.end(); ++jit, ++j){ +// // +// // vec x_j = x_pred.unsafe_col(*jit); +// // +// // XB += x_j(obs_in_node) * betas.at(j, i); +// // +// // } +// +// // this is slower but more clear matrix multiplication +// XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); +// +// jit = obs_in_node.begin(); +// +// for(j = 0; j < XB.size(); ++j, ++jit){ +// +// if(XB[j] <= cutpoints[i]) { +// +// leaf_pred[*jit] = children_left[i]; +// +// } else { +// +// leaf_pred[*jit] = children_left[i]+1; +// +// } +// +// } +// +// // if(verbose > 0){ +// // +// // uvec in_left = find(leaf_pred == children_left(i)); +// // uvec in_right = find(leaf_pred == children_left(i)+1); +// // +// // Rcout << "N to node_" << children_left(i) << ": "; +// // Rcout << in_left.size() << "; "; +// // Rcout << "N to node_" << children_left(i)+1 << ": "; +// // Rcout << in_right.size() << std::endl; +// // +// // } +// +// } +// +// } +// +// } +// +// +// +// } +// +// // same as above but exported to R for testins +// // [[Rcpp::export]] +// arma::uvec ostree_pred_leaf_testthat(List& tree, +// NumericMatrix& x_pred_){ +// +// +// x_pred = mat(x_pred_.begin(), +// x_pred_.nrow(), +// x_pred_.ncol(), +// false); +// +// leaf_pred.set_size(x_pred.n_rows); +// +// ostree = tree; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// +// return(leaf_pred); +// +// } +// +// // Fit an oblique survival tree +// // +// // @description used in orsf_fit, which has parameters defined below. +// // +// // @param f_beta the function used to find linear combinations of predictors +// // +// // @return a fitted oblique survival tree +// // +// List ostree_fit(Function f_beta){ +// +// betas.fill(0); +// // x_mean.fill(0); +// col_indices.fill(0); +// cutpoints.fill(0); +// children_left.fill(0); +// node_assignments.fill(0); +// leaf_nodes.fill(0); +// +// node_assignments.zeros(x_inbag.n_rows); +// nodes_to_grow.zeros(1); +// nodes_max_true = 0; +// leaf_node_counter = 0; +// leaf_node_index_counter = 0; +// +// // ---------------------- +// // ---- main do loop ---- +// // ---------------------- +// +// do { +// +// nodes_to_grow_next.set_size(0); +// +// // if(verbose > 0){ +// // +// // Rcout << "----------- nodes to grow -----------" << std::endl; +// // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; +// // Rcout << "-------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // +// // } +// +// for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ +// +// if(nodes_to_grow[0] == 0){ +// +// // when growing the first node, there is no need to find +// // which rows are in the node. +// rows_node = linspace(0, +// x_inbag.n_rows-1, +// x_inbag.n_rows); +// +// } else { +// +// // identify which rows are in the current node. +// rows_node = find(node_assignments == *node); +// +// } +// +// y_node = y_inbag.rows(rows_node); +// w_node = w_inbag(rows_node); +// +// // if(verbose > 0){ +// // +// // n_risk = sum(w_node); +// // n_events = sum(y_node.col(1) % w_node); +// // Rcout << "-------- Growing node " << *node << " --------" << std::endl; +// // Rcout << "No. of observations in node: " << n_risk << std::endl; +// // Rcout << "No. of events in node: " << n_events << std::endl; +// // Rcout << "No. of rows in node: " << w_node.size() << std::endl; +// // Rcout << "--------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // +// // } +// +// // initialize an impossible cut-point value +// // if cutpoint is still infinite later, node should not be split +// cutpoint = R_PosInf; +// +// // ------------------------------------------------------------------ +// // ---- sample a random subset of columns with non-zero variance ---- +// // ------------------------------------------------------------------ +// +// mtry_int = mtry; +// cols_to_sample_01.fill(0); +// +// // constant columns are constant in the rows where events occurred +// +// for(j = 0; j < cols_to_sample_01.size(); j++){ +// +// temp1 = R_PosInf; +// +// for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ +// +// if(y_inbag.at(*iit, 1) == 1){ +// +// if (temp1 < R_PosInf){ +// +// if(x_inbag.at(*iit, j) != temp1){ +// +// cols_to_sample_01[j] = 1; +// break; +// +// } +// +// } else { +// +// temp1 = x_inbag.at(*iit, j); +// +// } +// +// } +// +// } +// +// } +// +// n_cols_to_sample = sum(cols_to_sample_01); +// +// if(n_cols_to_sample > 1){ +// +// n_events_total = sum(y_node.col(1) % w_node); +// +// if(n_cols_to_sample < mtry){ +// +// mtry_int = n_cols_to_sample; +// +// // if(verbose > 0){ +// // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; +// // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; +// // Rcout << std::endl; +// // Rcout << "-------------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// if (type_beta == 'C'){ +// +// // make sure there are at least 3 event per predictor variable. +// // (if using CPH) +// while(n_events_total / mtry_int < 3 && mtry_int > 1){ +// --mtry_int; +// } +// +// } +// +// +// n_cols_to_sample = mtry_int; +// +// // if(verbose > 0){ +// // Rcout << "n_events: " << n_events_total << std::endl; +// // Rcout << "mtry: " << mtry_int << std::endl; +// // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; +// // } +// +// if(mtry_int > 1){ +// +// cols_to_sample = find(cols_to_sample_01); +// +// // re-try hinge point +// n_retry = 0; +// cutpoint = R_PosInf; +// +// while(n_retry <= max_retry){ +// +// // if(n_retry > 0) Rcout << "trying again!" << std::endl; +// +// cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, +// mtry_int, +// false); +// +// x_node = x_inbag(rows_node, cols_node); +// +// // here is where n_vars gets updated to match the current node +// // originally it matched the number of variables in the input x. +// +// n_vars = x_node.n_cols; +// +// if(cph_do_scale){ +// x_node_scale(); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node scaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// switch(type_beta) { +// +// case 'C' : +// +// beta_fit = newtraph_cph(); +// +// if(cph_do_scale){ +// for(i = 0; i < x_transforms.n_rows; i++){ +// x_node.col(i) /= x_transforms(i,1); +// x_node.col(i) += x_transforms(i,0); +// } +// +// } +// +// break; +// +// case 'N' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww, +// net_alpha, +// net_df_target); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// case 'U' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// } +// +// +// if(any(beta_fit)){ +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node unscaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// XB = x_node * beta_fit; +// cutpoint = lrt_multi(); +// +// } +// +// if(!std::isinf(cutpoint)) break; +// n_retry++; +// +// } +// +// } +// +// } +// +// if(!std::isinf(cutpoint)){ +// +// // make new nodes if a valid cutpoint was found +// nn_left = nodes_max_true + 1; +// nodes_max_true = nodes_max_true + 2; +// +// +// // if(verbose > 0){ +// // +// // Rcout << "-------- New nodes created --------" << std::endl; +// // Rcout << "Left node: " << nn_left << std::endl; +// // Rcout << "Right node: " << nodes_max_true << std::endl; +// // Rcout << "-----------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// n_events_left = n_events_total - n_events_right; +// +// // if(verbose > 0){ +// // Rcout << "n_events_left: " << n_events_left << std::endl; +// // Rcout << "n_risk_left: " << n_risk_left << std::endl; +// // Rcout << "n_events_right: " << n_events_right << std::endl; +// // Rcout << "n_risk_right: " << n_risk_right << std::endl; +// // } +// +// i=0; +// +// for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ +// +// node_assignments[*iit] = nn_left + group[i]; +// +// } +// +// if(n_events_left >= 2*leaf_min_events && +// n_risk_left >= 2*leaf_min_obs && +// n_events_left >= split_min_events && +// n_risk_left >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nn_left}); +// +// } else { +// +// rows_leaf = find(group==0); +// leaf_indices(leaf_node_index_counter, 0) = nn_left; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nn_left << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(n_events_right >= 2*leaf_min_events && +// n_risk_right >= 2*leaf_min_obs && +// n_events_right >= split_min_events && +// n_risk_right >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nodes_max_true}); +// +// } else { +// +// rows_leaf = find(group==1); +// leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nodes_max_true << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); +// +// for(i = 0; i < n_cols_to_sample; i++){ +// betas.at(i, *node) = beta_fit[i]; +// // x_mean.at(i, *node) = x_transforms(i, 0); +// col_indices.at(i, *node) = cols_node[i]; +// } +// +// children_left[*node] = nn_left; +// cutpoints[*node] = cutpoint; +// +// } else { +// +// // make a leaf node if a valid cutpoint could not be found +// leaf_indices(leaf_node_index_counter, 0) = *node; +// leaf_kaplan(y_node, w_node); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << *node << std::endl; +// // Rcout << "n_obs: " << sum(w_node) << std::endl; +// // Rcout << "n_events: " << sum(w_node % y_node.col(1)); +// // Rcout << std::endl; +// // Rcout << "Couldn't find a cutpoint??" << std::endl; +// // Rcout << "------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// } +// +// nodes_to_grow = nodes_to_grow_next; +// +// } while (nodes_to_grow.size() > 0); +// +// return( +// List::create( +// +// _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), +// +// _["leaf_node_index"] = conv_to::from( +// leaf_indices.rows(span(0, leaf_node_index_counter-1)) +// ), +// +// _["betas"] = betas.cols(span(0, nodes_max_true)), +// +// // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), +// +// _["col_indices"] = conv_to::from( +// col_indices.cols(span(0, nodes_max_true)) +// ), +// +// _["cut_points"] = cutpoints(span(0, nodes_max_true)), +// +// _["children_left"] = conv_to::from( +// children_left(span(0, nodes_max_true)) +// ), +// +// _["rows_oobag"] = conv_to::from(rows_oobag) +// +// ) +// ); +// +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- orsf functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // fit an oblique random survival forest. +// // +// // @param x matrix of predictors +// // @param y matrix of outcomes +// // @param weights vector of weights +// // @param n_tree number of trees to fit +// // @param n_split_ number of splits to try with lrt +// // @param mtry_ number of predictors to try +// // @param leaf_min_events_ min number of events in a leaf +// // @param leaf_min_obs_ min number of observations in a leaf +// // @param split_min_events_ min number of events to split a node +// // @param split_min_obs_ min number of observations to split a node +// // @param split_min_stat_ min lrt to split a node +// // @param cph_method_ method for ties +// // @param cph_eps_ criteria for convergence of newton raphson algorithm +// // @param cph_iter_max_ max number of newton raphson iterations +// // @param cph_do_scale_ to scale or not to scale +// // @param net_alpha_ alpha parameter for glmnet +// // @param net_df_target_ degrees of freedom for glmnet +// // @param oobag_pred_ whether to predict out-of-bag preds or not +// // @param oobag_pred_type_ what type of out-of-bag preds to compute +// // @param oobag_pred_horizon_ out-of-bag prediction horizon +// // @param oobag_eval_every_ trees between each evaluation of oob error +// // @param oobag_importance_ to compute importance or not +// // @param oobag_importance_type_ type of importance to compute +// // @param tree_seeds vector of seeds to set before each tree is fit +// // @param max_retry_ max number of retries for linear combinations +// // @param f_beta function to find linear combinations of predictors +// // @param type_beta_ what type of linear combination to find +// // @param f_oobag_eval function to evaluate out-of-bag error +// // @param type_oobag_eval_ whether to use default or custom out-of-bag error +// // +// // @return an orsf_fit object sent back to R +// +// // [[Rcpp::export]] +// List orsf_fit(NumericMatrix& x, +// NumericMatrix& y, +// NumericVector& weights, +// const int& n_tree, +// const int& n_split_, +// const int& mtry_, +// const double& leaf_min_events_, +// const double& leaf_min_obs_, +// const double& split_min_events_, +// const double& split_min_obs_, +// const double& split_min_stat_, +// const int& cph_method_, +// const double& cph_eps_, +// const int& cph_iter_max_, +// const bool& cph_do_scale_, +// const double& net_alpha_, +// const int& net_df_target_, +// const bool& oobag_pred_, +// const char& oobag_pred_type_, +// const double& oobag_pred_horizon_, +// const int& oobag_eval_every_, +// const bool& oobag_importance_, +// const char& oobag_importance_type_, +// IntegerVector& tree_seeds, +// const int& max_retry_, +// Function f_beta, +// const char& type_beta_, +// Function f_oobag_eval, +// const char& type_oobag_eval_){ +// +// +// // convert inputs into arma objects +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// w_user = vec(weights.begin(), weights.length(), false); +// +// // these change later in ostree_fit() +// n_rows = x_input.n_rows; +// n_vars = x_input.n_cols; +// +// // initialize the variable importance (vi) vectors +// vi_pval_numer.zeros(n_vars); +// vi_pval_denom.zeros(n_vars); +// +// // if(verbose > 0){ +// // Rcout << "------------ dimensions ------------" << std::endl; +// // Rcout << "N obs total: " << n_rows << std::endl; +// // Rcout << "N columns total: " << n_vars << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// n_split = n_split_; +// mtry = mtry_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// split_min_events = split_min_events_; +// split_min_obs = split_min_obs_; +// split_min_stat = split_min_stat_; +// cph_method = cph_method_; +// cph_eps = cph_eps_; +// cph_iter_max = cph_iter_max_; +// cph_do_scale = cph_do_scale_; +// net_alpha = net_alpha_; +// net_df_target = net_df_target_; +// oobag_pred = oobag_pred_; +// oobag_pred_type = oobag_pred_type_; +// oobag_eval_every = oobag_eval_every_; +// oobag_eval_counter = 0; +// oobag_importance = oobag_importance_; +// oobag_importance_type = oobag_importance_type_; +// use_tree_seed = tree_seeds.length() > 0; +// max_retry = max_retry_; +// type_beta = type_beta_; +// type_oobag_eval = type_oobag_eval_; +// temp1 = 1.0 / n_rows; +// +// if(cph_iter_max > 1) cph_do_scale = true; +// +// if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; +// +// if(oobag_pred){ +// +// time_pred = oobag_pred_horizon_; +// +// if(time_pred == 0) time_pred = median(y_input.col(0)); +// +// eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); +// +// } else { +// +// eval_oobag.set_size(0); +// +// } +// +// // if(verbose > 0){ +// // Rcout << "------------ input variables ------------" << std::endl; +// // Rcout << "n_split: " << n_split << std::endl; +// // Rcout << "mtry: " << mtry << std::endl; +// // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; +// // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; +// // Rcout << "cph_method: " << cph_method << std::endl; +// // Rcout << "cph_eps: " << cph_eps << std::endl; +// // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; +// // Rcout << "-----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// // ---------------------------------------------------- +// // ---- sample weights to mimic a bootstrap sample ---- +// // ---------------------------------------------------- +// +// // s is the number of times you might get selected into +// // a bootstrap sample. Realistically this won't be >10, +// // but it could technically be as big as n_row. +// IntegerVector s = seq(0, 10); +// +// // compute probability of being selected into the bootstrap +// // 0 times, 1, times, ..., 9 times, or 10 times. +// NumericVector probs = dbinom(s, n_rows, temp1, false); +// +// // --------------------------------------------- +// // ---- preallocate memory for tree outputs ---- +// // --------------------------------------------- +// +// cols_to_sample_01.zeros(n_vars); +// leaf_nodes.zeros(n_rows, 3); +// +// if(oobag_pred){ +// +// surv_pvec.zeros(n_rows); +// denom_pred.zeros(n_rows); +// +// } else { +// +// surv_pvec.set_size(0); +// denom_pred.set_size(0); +// +// } +// +// // guessing the number of nodes needed to grow a tree +// nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); +// +// betas.zeros(mtry, nodes_max_guess); +// // x_mean.zeros(mtry, nodes_max_guess); +// col_indices.zeros(mtry, nodes_max_guess); +// cutpoints.zeros(nodes_max_guess); +// children_left.zeros(nodes_max_guess); +// leaf_indices.zeros(nodes_max_guess, 3); +// +// // some great variable names here +// List forest(n_tree); +// +// for(tree = 0; tree < n_tree; ){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// // -------------------------------------------- +// // ---- initialize parameters to grow tree ---- +// // -------------------------------------------- +// +// // rows_inbag = find(w_inbag != 0); +// +// if(use_tree_seed) set_seed_r(tree_seeds[tree]); +// +// w_input = as(sample(s, n_rows, true, probs)); +// +// // if the user gives a weight vector, then each bootstrap weight +// // should be multiplied by the corresponding user weight. +// if(w_user.size() > 0) w_input = w_input % w_user; +// +// rows_oobag = find(w_input == 0); +// rows_inbag = regspace(0, n_rows-1); +// rows_inbag = std_setdiff(rows_inbag, rows_oobag); +// w_inbag = w_input(rows_inbag); +// +// // if(verbose > 0){ +// // +// // Rcout << "------------ boot weights ------------" << std::endl; +// // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; +// // Rcout << "total: " << sum(w_inbag) << std::endl; +// // Rcout << "N > 0: " << rows_inbag.size() << std::endl; +// // Rcout << "--------------------------------------" << +// // std::endl << std::endl << std::endl; +// // +// // } +// +// x_inbag = x_input.rows(rows_inbag); +// y_inbag = y_input.rows(rows_inbag); +// +// if(oobag_pred){ +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(rows_oobag.size()); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1, temp_uword_2; +// // +// // if(x_inbag.n_rows < 5) +// // temp_uword_1 = x_inbag.n_rows-1; +// // else +// // temp_uword_1 = 5; +// // +// // if(x_inbag.n_cols < 5) +// // temp_uword_2 = x_inbag.n_cols-1; +// // else +// // temp_uword_2 = 4; +// // +// // Rcout << "x inbag: " << std::endl << +// // x_inbag.submat(0, 0, +// // temp_uword_1, +// // temp_uword_2) << std::endl; +// // +// // } +// +// forest[tree] = ostree_fit(f_beta); +// +// // add 1 to tree here instead of end of loop +// // (more convenient to compute tree % oobag_eval_every) +// tree++; +// +// if(oobag_pred){ +// +// denom_pred(rows_oobag) += 1; +// ostree_pred_leaf(); +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(tree % oobag_eval_every == 0){ +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); +// oobag_eval_counter++; +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// eval_oobag[oobag_eval_counter] = as( +// f_oobag_eval(y, ww) +// ); +// +// oobag_eval_counter++; +// +// break; +// +// } +// +// +// } +// +// } +// +// } +// +// +// +// vec vimp(x_input.n_cols); +// +// // ANOVA importance +// if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; +// +// // if we are computing variable importance, surv_pvec is about +// // to get modified, and we don't want to return the modified +// // version of surv_pvec. +// // So make a deep copy if oobag_importance is true. +// // Make a shallow copy if oobag_importance is false +// surv_pvec_output = vec(surv_pvec.begin(), +// surv_pvec.size(), +// oobag_importance); +// +// if(oobag_importance && n_tree > 0){ +// +// uvec betas_to_flip; +// oobag_eval_counter--; +// +// for(uword variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < n_tree; ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// if(oobag_importance_type == 'P'){ +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// } +// +// ostree_mem_xfer(); +// +// +// if(oobag_importance_type == 'N'){ +// betas_to_flip = find(col_indices == variable); +// betas.elem( betas_to_flip ) *= (-1); +// } +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(oobag_importance_type == 'N'){ +// betas.elem( betas_to_flip ) *= (-1); +// } +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = eval_oobag[oobag_eval_counter] - +// oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = +// eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); +// +// +// break; +// +// } +// +// } +// +// } +// +// if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; +// +// return( +// List::create( +// _["forest"] = forest, +// _["pred_oobag"] = surv_pvec_output, +// _["pred_horizon"] = time_pred, +// _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, +// _["stat_type"] = type_oobag_eval), +// _["importance"] = vimp +// ) +// ); +// +// +// } +// +// // @description compute negation importance +// // +// // @param x matrix of predictors +// // @param y outcome matrix +// // @param forest forest object from an orsf_fit +// // @param last_eval_stat the last estimate of out-of-bag error +// // @param time_pred_ the prediction horizon +// // @param f_oobag_eval function used to evaluate out-of-bag error +// // @param pred_type_ the type of prediction to compute +// // @param type_oobag_eval_ custom or default out-of-bag predictions +// // +// // @return a vector of importance values +// // +// // [[Rcpp::export]] +// arma::vec orsf_oob_negate_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uvec betas_to_flip; +// uword variable; +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// ostree_mem_xfer(); +// +// betas_to_flip = find(col_indices == variable); +// +// betas.elem( betas_to_flip ) *= (-1); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// betas.elem( betas_to_flip ) *= (-1); +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // same as above but computes permutation importance instead of negation +// // [[Rcpp::export]] +// arma::vec orsf_oob_permute_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uword variable; +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// +// ostree_mem_xfer(); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// // x_variable = x_variable_original; +// // x_input.col(variable) = x_variable; +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // predictions from an oblique random survival forest +// // +// // @description makes predictions based on a single horizon +// // +// // @param forest forest object from orsf_fit object +// // @param x_new matrix of predictors +// // @param time_dbl prediction horizon +// // @param pred_type type of prediction to compute +// // +// // [[Rcpp::export]] +// arma::mat orsf_pred_uni(List& forest, +// NumericMatrix& x_new, +// double time_dbl, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// time_pred = time_dbl; +// +// // memory for outputs +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.zeros(x_pred.n_rows); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pvec); +// } else { +// return(surv_pvec); +// } +// +// } +// +// // same as above but makes predictions for multiple horizons +// // [[Rcpp::export]] +// arma::mat orsf_pred_multi(List& forest, +// NumericMatrix& x_new, +// NumericVector& time_vec, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// times_pred = vec(time_vec.begin(), time_vec.length(), false); +// +// // memory for outputs +// // initial values don't matter for leaf_pred, +// // but do matter for surv_pmat +// leaf_pred.set_size(x_pred.n_rows); +// surv_pmat.zeros(x_pred.n_rows, times_pred.size()); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_multi(pred_type); +// } +// +// surv_pmat /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pmat); +// } else { +// return(surv_pmat); +// } +// +// } +// +// // partial dependence for new data +// // +// // @description calls predict on the data with a predictor fixed +// // and then summarizes the predictions. +// // +// // @param forest a forest object from an orsf_fit object +// // @param x_new_ matrix of predictors +// // @param x_cols_ columns of variables of interest +// // @param x_vals_ values to set these columsn to +// // @param probs_ for quantiles +// // @param time_dbl prediction horizon +// // @param pred_type prediction type +// // +// // @return matrix with partial dependence +// // [[Rcpp::export]] +// arma::mat pd_new_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// +// // same as above but for out-of-bag data +// // [[Rcpp::export]] +// arma::mat pd_oob_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// // same as above but doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_new_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_pred.n_rows; +// +// +// } +// +// return(output_ice); +// +// } +// +// // same as above but out-of-bag and doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_oob_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat output_ice(x_vals.n_rows * x_input.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); +// +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_input.n_rows; +// +// +// } +// +// return(output_ice); +// +// } +// +// +// From 57191db0e49e5803baf41d20bbc8f176de8ae143 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sat, 17 Sep 2022 22:42:37 -0400 Subject: [PATCH 005/103] bootstrap and surv classes --- R/RcppExports.R | 8 +- src/Data.h | 8 ++ src/Forest.cpp | 32 ++++++ src/Forest.h | 144 +++++++++++++++++++++++++ src/ForestSurvival.cpp | 16 +++ src/ForestSurvival.h | 38 +++++++ src/RcppExports.cpp | 26 ++++- src/Tree.h | 29 +---- src/TreeSurvival.cpp | 16 +++ src/TreeSurvival.h | 32 ++++++ src/globals.h | 3 + src/orsf_oop.cpp | 83 +++++++++++++- tests/testthat/test-bootstrap_sample.R | 66 ++++++++++++ 13 files changed, 467 insertions(+), 34 deletions(-) create mode 100644 src/Forest.cpp create mode 100644 src/Forest.h create mode 100644 src/ForestSurvival.cpp create mode 100644 src/ForestSurvival.h create mode 100644 src/TreeSurvival.cpp create mode 100644 src/TreeSurvival.h create mode 100644 tests/testthat/test-bootstrap_sample.R diff --git a/R/RcppExports.R b/R/RcppExports.R index 2e06b32e..15734c72 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,7 +1,11 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -orsf_cpp <- function(x, y_ctns, y_intg, weights) { - invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) +bootstrap_sample_testthat <- function(x, y_ctns, y_intg, weights) { + .Call(`_aorsf_bootstrap_sample_testthat`, x, y_ctns, y_intg, weights) +} + +orsf_cpp <- function(x, y_ctns, y_intg, weights, vi = 0L, sr = 1L, pt = 1L) { + invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights, vi, sr, pt)) } diff --git a/src/Data.h b/src/Data.h index cd55769a..0d04dce4 100644 --- a/src/Data.h +++ b/src/Data.h @@ -36,6 +36,10 @@ } + arma::vec get_weights() const { + return(weights); + } + arma::uword get_n_rows() const { return(x.n_rows); } @@ -44,6 +48,10 @@ return(x.n_cols); } + bool has_wts() const { + return(!weights.empty()); + } + arma::mat get_x_rows(arma::uvec vector_of_row_indices) const { return(x.rows(vector_of_row_indices)); } diff --git a/src/Forest.cpp b/src/Forest.cpp new file mode 100644 index 00000000..74cb3f8b --- /dev/null +++ b/src/Forest.cpp @@ -0,0 +1,32 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Forest.h" + + namespace aorsf { + + Forest::Forest() : + data(0), + mtry(0), + max_retry(DEFAULT_MAX_RETRY), + split_rule(DEFAULT_SPLITRULE_SURVIVAL), + n_split(DEFAULT_N_SPLIT), + leaf_min_obs(0), + split_min_obs(0), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + pred_type(DEFAULT_PRED_TYPE), + oobag_eval_every(0), + variable_importance(DEFAULT_IMPORTANCE), + seed(0) { + + } + + + + } // namespace aorsf diff --git a/src/Forest.h b/src/Forest.h new file mode 100644 index 00000000..8a03b29b --- /dev/null +++ b/src/Forest.h @@ -0,0 +1,144 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef FOREST_H_ +#define FOREST_H_ + + +#include "Data.h" +#include "globals.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class Forest { + public: + + // Default constructor with no arguments + Forest(); + + // Expect to redefine constructors for survival/classif/regression + virtual ~Forest() = default; + + // Don't allow unitialized Forests + Forest(const Forest&) = delete; + Forest& operator=(const Forest&) = delete; + + void init( + const Data* data, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ) { + + this->data = data; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + }; + + int get_mtry() const { + return mtry; + } + + int get_max_retry() const { + return max_retry; + } + + SplitRule get_split_rule() const { + return split_rule; + } + + int get_n_split() const { + return n_split; + } + + int get_leaf_min_obs() const { + return leaf_min_obs; + } + + int get_split_min_obs() const { + return split_min_obs; + } + + int get_split_min_stat() const { + return split_min_stat; + } + + int get_pred_type() const { + return pred_type; + } + + int get_oobag_eval_every() const { + return oobag_eval_every; + } + + VariableImportance get_variable_importance() const { + return variable_importance; + } + + // INPUTS + + // Pointer to original data + const Data* data; + + // number of predictors used to split a node + int mtry; + + // maximum number of retry attempts to split a node + int max_retry; + + // how to measure quality of a node split + SplitRule split_rule; + + // number of cutpoints to assess during node split + int n_split; + + // minimum number of observations needed in a leaf node + int leaf_min_obs; + + // minimum number of observations needed to split a node + int split_min_obs; + + // minimum value of split statistic needed to split a node + int split_min_stat; + + // what type of oobag prediction to compute + PredType pred_type; + + // evaluate oobag error every X trees + int oobag_eval_every; + + // what type of variable importance to compute + VariableImportance variable_importance; + + // random seed to be set before growing + int seed; + + protected: + + }; + + } // namespace aorsf + +#endif /* FOREST_H_ */ diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp new file mode 100644 index 00000000..06fc6a66 --- /dev/null +++ b/src/ForestSurvival.cpp @@ -0,0 +1,16 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "ForestSurvival.h" +#include "Data.h" + + namespace aorsf { + + + } // namespace aorsf diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h new file mode 100644 index 00000000..795ca471 --- /dev/null +++ b/src/ForestSurvival.h @@ -0,0 +1,38 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef FORESTSURVIVAL_H_ +#define FORESTSURVIVAL_H_ + + +#include "globals.h" +#include "Forest.h" +#include "TreeSurvival.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class ForestSurvival: public Forest { + public: + + // Default constructor with no arguments + ForestSurvival(); + + // Expect to redefine constructors for survival/classif/regression + virtual ~ForestSurvival() = default; + + // Don't allow unitialized ForestSurvivals + ForestSurvival(const ForestSurvival&) = delete; + ForestSurvival& operator=(const ForestSurvival&) = delete; + + protected: + + }; + + } // namespace aorsf + +#endif /* FOREST_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 119fd19f..28c51a71 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,22 +11,40 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif +// bootstrap_sample_testthat +arma::vec bootstrap_sample_testthat(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); +RcppExport SEXP _aorsf_bootstrap_sample_testthat(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); + Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); + rcpp_result_gen = Rcpp::wrap(bootstrap_sample_testthat(x, y_ctns, y_intg, weights)); + return rcpp_result_gen; +END_RCPP +} // orsf_cpp -void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, const int vi, const int sr, const int pt); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { BEGIN_RCPP Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); - orsf_cpp(x, y_ctns, y_intg, weights); + Rcpp::traits::input_parameter< const int >::type vi(viSEXP); + Rcpp::traits::input_parameter< const int >::type sr(srSEXP); + Rcpp::traits::input_parameter< const int >::type pt(ptSEXP); + orsf_cpp(x, y_ctns, y_intg, weights, vi, sr, pt); return R_NilValue; END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, + {"_aorsf_bootstrap_sample_testthat", (DL_FUNC) &_aorsf_bootstrap_sample_testthat, 4}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/Tree.h b/src/Tree.h index 16e52de3..c572b8f5 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,7 +7,6 @@ #ifndef TREE_H_ #define TREE_H_ -#include #include "Data.h" #include "globals.h" @@ -33,8 +32,8 @@ virtual ~Tree() = default; // Don't allow unitialized trees - // Tree(const Tree&) = delete; - // Tree& operator=(const Tree&) = delete; + Tree(const Tree&) = delete; + Tree& operator=(const Tree&) = delete; void init( const Data* data, @@ -105,30 +104,6 @@ return variable_importance; } - // @description sample weights to mimic a bootstrap sample - arma::ivec bootstrap_sample() const { - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - Rcpp::IntegerVector s = Rcpp::seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - - arma::uword n_rows = data->get_n_rows(); - - int n_rows_int = n_rows; - - Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows_int, 1.0/n_rows_int, false); - - return( - Rcpp::as( - Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) - ) - ); - - } - // INPUTS // Pointer to original data diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp new file mode 100644 index 00000000..5fbe01c2 --- /dev/null +++ b/src/TreeSurvival.cpp @@ -0,0 +1,16 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Tree.h" + + namespace aorsf { + + + + } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h new file mode 100644 index 00000000..24c1afea --- /dev/null +++ b/src/TreeSurvival.h @@ -0,0 +1,32 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef TREESURVIVAL_H_ +#define TREESURVIVAL_H_ + +#include "globals.h" +#include "Tree.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class TreeSurvival : public Tree { + public: + + TreeSurvival(); + + // Don't allow unitialized trees + TreeSurvival(const TreeSurvival&) = delete; + TreeSurvival& operator=(const TreeSurvival&) = delete; + + virtual ~TreeSurvival() override = default; + + }; + + } // namespace aorsf + +#endif /* TREESURVIVAL_H_ */ diff --git a/src/globals.h b/src/globals.h index ba060d0d..fa909cd0 100644 --- a/src/globals.h +++ b/src/globals.h @@ -62,8 +62,11 @@ const int DEFAULT_LEAF_MIN_OBS_REGRESSION = 5; const int DEFAULT_LEAF_MIN_OBS_SURVIVAL = 10; const int DEFAULT_LEAF_MIN_OBS_PROBABILITY = 10; + const int DEFAULT_MAX_RETRY = 3; + const double DEFAULT_SPLIT_MIN_STAT = 3.84; + const int DEFAULT_SPLIT_MIN_OBS = 10; const SplitRule DEFAULT_SPLITRULE_SURVIVAL = SPLIT_LOGRANK; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 518d4867..784f8786 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -9,9 +9,11 @@ #----------------------------------------------------------------------------*/ #include +#include #include "Data.h" #include "globals.h" +#include "Forest.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -19,22 +21,101 @@ using namespace Rcpp; using namespace arma; using namespace aorsf; +// @description sample weights to mimic a bootstrap sample +arma::vec bootstrap_sample(const Data* data) { + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0.0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + + arma::uword n_rows = data->get_n_rows(); + + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); + + arma::vec boot_wts = Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ); + + if(data->has_wts()){ + + boot_wts = boot_wts % data->get_weights(); + + } + + return(boot_wts); + +} + + +// @description sample weights to mimic a bootstrap sample +// [[Rcpp::export]] +arma::vec bootstrap_sample_testthat(arma::mat& x, + arma::vec& y_ctns, + arma::ivec& y_intg, + arma::vec& weights) { + + Data data = Data(x, y_ctns, y_intg, weights); + Data* data_ptr = &data; + return bootstrap_sample(data_ptr); + +} // [[Rcpp::export]] void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, - arma::vec& weights){ + arma::vec& weights, + const int vi = 0, + const int sr = 1, + const int pt = 1){ + + + const int mtry = 2; + const int max_retry = DEFAULT_MAX_RETRY; + const int n_split = DEFAULT_N_SPLIT; + const int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + const int split_min_obs = DEFAULT_SPLIT_MIN_OBS; + const int split_min_stat = DEFAULT_SPLIT_MIN_STAT; + const int oobag_eval_every = 0; + const int seed = 0; + + VariableImportance variable_importance = static_cast(vi); + SplitRule split_rule = static_cast(sr); + PredType pred_type = static_cast(pt); + + // if( variable_importance == VI_NONE ) Rcout << variable_importance << std::endl; Data data = Data(x, y_ctns, y_intg, weights); + Data* data_ptr = &data; + Rcout << "------------ dimensions ------------" << std::endl; Rcout << "N obs total: " << data.get_n_rows() << std::endl; Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "mtry: " << mtry << std::endl; Rcout << "------------------------------------"; Rcout << std::endl << std::endl << std::endl; + Forest forest; + + forest.init(data_ptr, + mtry, + max_retry, + split_rule, + n_split, + leaf_min_obs, + split_min_obs, + split_min_stat, + pred_type, + oobag_eval_every, + variable_importance, + seed); + + diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R new file mode 100644 index 00000000..34751fda --- /dev/null +++ b/tests/testthat/test-bootstrap_sample.R @@ -0,0 +1,66 @@ + + + +# test setup -------------------------------------------------------------- + +n <- 1e6 +x = matrix(rnorm(n = n), ncol = 1) +y_dbl = x +y_int = sample.int(2, size = n, replace = TRUE) + +weights_2s = rep(2, nrow(x)) +weights_empty = double(0) + +set.seed(329) +samp_2s_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_2s) +set.seed(329) +samp_no_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) + + +# test behavior ----------------------------------------------------------- + +test_that( + desc = "max times sampled is < 10", + code = { + expect_lt(object = max(samp_no_wts), expected = 10) + } +) + +test_that( + desc = "bootstrap weights are multiplied by data weights", + code = { + # also shows bootstrap weights are replicable by seed set in R + expect_equal(samp_no_wts, samp_2s_wts / 2) + } +) + +test_that( + desc = "bootstrap weights include roughly 63.2% of original sample", + code = { + expect_equal(mean(samp_no_wts > 0), 0.632, tolerance = 0.01) + } +) + +# test performance -------------------------------------------------------- + +# r_fun <- function(x, wts){ +# +# s = seq(0, 10) +# n_rows = nrow(x) +# probs = dbinom(s, n_rows, 1.0/n_rows, FALSE) +# +# boot_wts = sample(s, n_rows, TRUE, probs); +# +# if(length(wts) > 0){ +# boot_wts = boot_wts * wts; +# } +# return(boot_wts); +# +# } +# +# microbenchmark::microbenchmark( +# r_fun = r_fun(x, wts = weights_empty), +# c_fun = bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) +# ) + + From 9d48cc72f0c9a0fcc2516da4935644f22e25fc8b Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sun, 18 Sep 2022 23:42:09 -0400 Subject: [PATCH 006/103] informal memory trace check --- tests/testthat/test-bootstrap_sample.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R index 34751fda..bc7aa179 100644 --- a/tests/testthat/test-bootstrap_sample.R +++ b/tests/testthat/test-bootstrap_sample.R @@ -11,6 +11,14 @@ y_int = sample.int(2, size = n, replace = TRUE) weights_2s = rep(2, nrow(x)) weights_empty = double(0) + +# if any object's memory is copied, it will make the test output messy +# (I am not sure how to formally make a test fail when memory is copied) +tracemem(x) +tracemem(y_dbl) +tracemem(y_int) +tracemem(weights_2s) + set.seed(329) samp_2s_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_2s) set.seed(329) From 29d581cdd8d21b20a4c876fc8bdf52caa81ab6f5 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sun, 11 Sep 2022 21:38:29 -0400 Subject: [PATCH 007/103] first oop commit --- src/Tree.cpp | 65 ++++++++++++++++++++ src/Tree.h | 160 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/globals.h | 75 +++++++++++++++++++++++ 3 files changed, 300 insertions(+) create mode 100644 src/Tree.cpp create mode 100644 src/Tree.h create mode 100644 src/globals.h diff --git a/src/Tree.cpp b/src/Tree.cpp new file mode 100644 index 00000000..db265861 --- /dev/null +++ b/src/Tree.cpp @@ -0,0 +1,65 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Tree.h" + + namespace aorsf { + + Tree::Tree() : + x_input(0), + y_input(0), + mtry(0), + max_retry(DEFAULT_MAX_RETRY), + split_rule(DEFAULT_SPLITRULE_SURVIVAL), + n_split(DEFAULT_N_SPLIT), + leaf_min_obs(0), + split_min_obs(0), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + pred_type(DEFAULT_PRED_TYPE), + oobag_eval_every(0), + variable_importance(DEFAULT_IMPORTANCE), + seed(0) { + + } + + void Tree::init( + double* x_input, + double* y_input, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ) { + + + this->x_input = x_input; + this->y_input = y_input; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + } + + + + } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h new file mode 100644 index 00000000..bdf642f2 --- /dev/null +++ b/src/Tree.h @@ -0,0 +1,160 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef TREE_H_ +#define TREE_H_ + +#include + +#include "globals.h" + + namespace aorsf { + + class Tree { + public: + + // Default constructor with no arguments + Tree(); + + // Create from loaded forest + // Tree(arma::mat& coef, + // arma::umat& coef_indices, + // arma::vec& cutpoint, + // arma::uvec& next_left_node, + // arma::mat& pred, + // arma::umat& pred_indices); // TODO: pred_indices to survival tree + + // Expect to redefine constructors for survival/classif/regression + virtual ~Tree() = default; + + // Don't allow unitialized trees + // Tree(const Tree&) = delete; + // Tree& operator=(const Tree&) = delete; + + void init( + double* x_input, + double* y_input, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ); + + int get_mtry() const { + return mtry; + } + + int get_max_retry() const { + return max_retry; + } + + SplitRule get_split_rule() const { + return split_rule; + } + + int get_n_split() const { + return n_split; + } + + int get_leaf_min_obs() const { + return leaf_min_obs; + } + + int get_split_min_obs() const { + return split_min_obs; + } + + int get_split_min_stat() const { + return split_min_stat; + } + + int get_pred_type() const { + return pred_type; + } + + int get_oobag_eval_every() const { + return oobag_eval_every; + } + + VariableImportance get_variable_importance() const { + return variable_importance; + } + + // INPUTS + + // Pointer to original data + double* x_input; + double* y_input; + + // number of predictors used to split a node + int mtry; + + // maximum number of retry attempts to split a node + int max_retry; + + // how to measure quality of a node split + SplitRule split_rule; + + // number of cutpoints to assess during node split + int n_split; + + // minimum number of observations needed in a leaf node + int leaf_min_obs; + + // minimum number of observations needed to split a node + int split_min_obs; + + // minimum value of split statistic needed to split a node + int split_min_stat; + + // what type of oobag prediction to compute + PredType pred_type; + + // evaluate oobag error every X trees + int oobag_eval_every; + + // what type of variable importance to compute + VariableImportance variable_importance; + + // random seed to be set before growing + int seed; + + protected: + + // OUTPUTS + + // coefficients for linear combinations; + // one row per variable (mtry rows), one column per node + // leaf nodes have all coefficients=0 + arma::mat coef; + + // indices of the predictors used by + arma::umat coef_indices; + + // cutpoints used to split the node + arma::vec cutpoint; + + // directions to the next node (right node = left node + 1) + arma::uvec next_left_node; + + // predicted values (only in leaf nodes) + arma::mat pred; + + // indices of predicted values for each leaf node + arma::umat pred_indices; + + }; + + } // namespace aorsf + +#endif /* TREE_H_ */ diff --git a/src/globals.h b/src/globals.h new file mode 100644 index 00000000..ba060d0d --- /dev/null +++ b/src/globals.h @@ -0,0 +1,75 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef GLOBALS_H_ +#define GLOBALS_H_ + +#include + + namespace aorsf { + + typedef unsigned int uint; + + // Tree types + enum TreeType { + TREE_CLASSIFICATION = 1, + TREE_REGRESSION = 3, + TREE_SURVIVAL = 5, + TREE_PROBABILITY = 9 + }; + + // Variable importance + enum VariableImportance { + VI_NONE = 0, + VI_NEGATE = 1, + VI_PERM_BREIMAN = 2, + VI_ANOVA = 3 + }; + + // Split mode + enum SplitRule { + SPLIT_LOGRANK = 1, + SPLIT_GINI = 2 + }; + + // Linear combination method + enum LinearCombination { + NEWTON_RAPHSON = 1, + USER_FUNCTION = 2 + }; + + // Prediction type + enum PredType { + RISK = 1, + SURVIVAL = 2, + CUMULATIVE_HAZARD = 3, + MORTALITY = 4, + MEAN = 5, + PROBABILITY = 6, + CLASS = 7, + TERMINAL_NODES = 6 + }; + + // Default values + const int DEFAULT_N_TREE = 500; + const int DEFAULT_N_THREADS = 0; + const VariableImportance DEFAULT_IMPORTANCE = VI_NONE; + + const int DEFAULT_LEAF_MIN_OBS_CLASSIFICATION = 1; + const int DEFAULT_LEAF_MIN_OBS_REGRESSION = 5; + const int DEFAULT_LEAF_MIN_OBS_SURVIVAL = 10; + const int DEFAULT_LEAF_MIN_OBS_PROBABILITY = 10; + const int DEFAULT_MAX_RETRY = 3; + const double DEFAULT_SPLIT_MIN_STAT = 3.84; + + const SplitRule DEFAULT_SPLITRULE_SURVIVAL = SPLIT_LOGRANK; + + const PredType DEFAULT_PRED_TYPE = RISK; + const int DEFAULT_N_SPLIT = 5; + + } // namespace aorsf + +#endif /* GLOBALS_H_ */ From b7afb1c6137c610f8a68e5481412a218fc727f80 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Thu, 15 Sep 2022 20:44:21 -0400 Subject: [PATCH 008/103] data object for pointers to arma objects --- R/RcppExports.R | 4 +++ src/Data.h | 85 +++++++++++++++++++++++++++++++++++++++++++++ src/RcppExports.cpp | 14 ++++++++ src/orsf_oop.cpp | 38 ++++++++++++++++++++ 4 files changed, 141 insertions(+) create mode 100644 src/Data.h create mode 100644 src/orsf_oop.cpp diff --git a/R/RcppExports.R b/R/RcppExports.R index 39170331..3872eb79 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -65,3 +65,7 @@ pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_ .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) } +orsf_cpp <- function(x, y_ctns, y_intg, weights) { + invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) +} + diff --git a/src/Data.h b/src/Data.h new file mode 100644 index 00000000..cd55769a --- /dev/null +++ b/src/Data.h @@ -0,0 +1,85 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef DATA_H_ +#define DATA_H_ + +#include +#include +#include "globals.h" + + namespace aorsf { + + class Data { + + public: + + Data() = default; + + Data(arma::mat& x, + arma::vec& y_dbl, + arma::ivec& y_int, + arma::vec& weights) { + + // arma::mat x_ = arma::mat(x.begin(), x.nrow(), x.ncol(), false); + // arma::vec y_dbl_ = arma::vec(y_dbl.begin(), y_dbl.length(), false); + // arma::ivec y_int_ = arma::ivec(y_int.begin(), y_int.length(), false); + // arma::vec weights_ = arma::vec(weights.begin(), weights.length(), false); + + this->x = x; + this->y_dbl = y_dbl; + this->y_int = y_int; + this->weights = weights; + + } + + arma::uword get_n_rows() const { + return(x.n_rows); + } + + arma::uword get_n_cols() const { + return(x.n_cols); + } + + arma::mat get_x_rows(arma::uvec vector_of_row_indices) const { + return(x.rows(vector_of_row_indices)); + } + + arma::mat get_x_cols(arma::uvec vector_of_column_indices) const { + return(x.cols(vector_of_column_indices)); + } + + double get_x_at(arma::uword i, arma::uword j) const { + return(x.at(i, j)); + } + + arma::vec get_y_dbl_rows(arma::uvec vector_of_row_indices) const { + return(y_dbl.rows(vector_of_row_indices)); + } + + arma::ivec get_y_int_rows(arma::uvec vector_of_row_indices) const { + return(y_int.rows(vector_of_row_indices)); + } + + double get_y_dbl_at(arma::uword i) const { + return(y_dbl.at(i)); + } + + int get_y_int_at(arma::uword i) const { + return(y_int.at(i)); + } + + private: + arma::mat x; + arma::vec y_dbl; + arma::ivec y_int; + arma::vec weights; + }; + + + } // namespace aorsf + +#endif /* DATA_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index fae54ec7..01eb7cf9 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -274,6 +274,19 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// orsf_cpp +void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +BEGIN_RCPP + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); + Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); + orsf_cpp(x, y_ctns, y_intg, weights); + return R_NilValue; +END_RCPP +} static const R_CallMethodDef CallEntries[] = { {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, @@ -292,6 +305,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, {NULL, NULL, 0} }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp new file mode 100644 index 00000000..e7d143d9 --- /dev/null +++ b/src/orsf_oop.cpp @@ -0,0 +1,38 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf, which is distributed under the MIT license + + You should have received a copy of the MIT License along with aorsf. + If not, see . + + Authors: + - Byron C. Jaeger (http://byronjaeger.com) +#----------------------------------------------------------------------------*/ + +#include + +#include "Data.h" +#include "globals.h" + +// [[Rcpp::depends(RcppArmadillo)]] + +using namespace Rcpp; +using namespace arma; +using namespace aorsf; + + + +// [[Rcpp::export]] +void orsf_cpp(arma::mat& x, + arma::vec& y_ctns, + arma::ivec& y_intg, + arma::vec& weights){ + + Data data = Data(x, y_ctns, y_intg, weights); + + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data.get_n_rows() << std::endl; + Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "------------------------------------"; + Rcout << std::endl << std::endl << std::endl; + +} From 77bd1a7ffd3ff02f00a0f6691cde55c50caee70c Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Fri, 16 Sep 2022 19:06:27 -0400 Subject: [PATCH 009/103] trying to use sample --- src/Tree.cpp | 35 +------------------------------- src/Tree.h | 52 +++++++++++++++++++++++++++++++++++++++++------- src/orsf_oop.cpp | 3 +++ 3 files changed, 49 insertions(+), 41 deletions(-) diff --git a/src/Tree.cpp b/src/Tree.cpp index db265861..90c3a7ec 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -12,8 +12,7 @@ namespace aorsf { Tree::Tree() : - x_input(0), - y_input(0), + data(0), mtry(0), max_retry(DEFAULT_MAX_RETRY), split_rule(DEFAULT_SPLITRULE_SURVIVAL), @@ -28,38 +27,6 @@ } - void Tree::init( - double* x_input, - double* y_input, - const int mtry, - const int max_retry, - SplitRule split_rule, - const int n_split, - const int leaf_min_obs, - const int split_min_obs, - const int split_min_stat, - PredType pred_type, - const int oobag_eval_every, - VariableImportance variable_importance, - const int seed - ) { - - - this->x_input = x_input; - this->y_input = y_input; - this->mtry = mtry; - this->max_retry = max_retry; - this->split_rule = split_rule; - this->n_split = n_split; - this->leaf_min_obs = leaf_min_obs; - this->split_min_obs = split_min_obs; - this->split_min_stat = split_min_stat; - this->pred_type = pred_type; - this->oobag_eval_every = oobag_eval_every; - this->variable_importance = variable_importance; - - } - } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index bdf642f2..16e52de3 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,10 +7,12 @@ #ifndef TREE_H_ #define TREE_H_ -#include - +#include +#include "Data.h" #include "globals.h" +// [[Rcpp::depends(RcppArmadillo)]] + namespace aorsf { class Tree { @@ -35,8 +37,7 @@ // Tree& operator=(const Tree&) = delete; void init( - double* x_input, - double* y_input, + const Data* data, const int mtry, const int max_retry, SplitRule split_rule, @@ -48,7 +49,21 @@ const int oobag_eval_every, VariableImportance variable_importance, const int seed - ); + ) { + + this->data = data; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + }; int get_mtry() const { return mtry; @@ -90,11 +105,34 @@ return variable_importance; } + // @description sample weights to mimic a bootstrap sample + arma::ivec bootstrap_sample() const { + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + + arma::uword n_rows = data->get_n_rows(); + + int n_rows_int = n_rows; + + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows_int, 1.0/n_rows_int, false); + + return( + Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ) + ); + + } + // INPUTS // Pointer to original data - double* x_input; - double* y_input; + const Data* data; // number of predictors used to split a node int mtry; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index e7d143d9..518d4867 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -35,4 +35,7 @@ void orsf_cpp(arma::mat& x, Rcout << "------------------------------------"; Rcout << std::endl << std::endl << std::endl; + + + } From 3e2c2dfcb18a3a7fbae279c56b10c3dbc5584bd0 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sat, 17 Sep 2022 11:54:37 -0400 Subject: [PATCH 010/103] rcpp arma sample can only be defined once --- R/RcppExports.R | 64 - src/RcppExports.cpp | 279 -- src/orsf.cpp | 8134 +++++++++++++++++++++---------------------- 3 files changed, 4067 insertions(+), 4410 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 3872eb79..2e06b32e 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,70 +1,6 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -std_setdiff <- function(x, y) { - .Call(`_aorsf_std_setdiff`, x, y) -} - -x_node_scale_exported <- function(x_, w_) { - .Call(`_aorsf_x_node_scale_exported`, x_, w_) -} - -leaf_kaplan_testthat <- function(y, w) { - .Call(`_aorsf_leaf_kaplan_testthat`, y, w) -} - -newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { - .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) -} - -lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { - .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) -} - -oobag_c_harrell_testthat <- function(y_mat, s_vec) { - .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) -} - -ostree_pred_leaf_testthat <- function(tree, x_pred_) { - .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) -} - -orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) { - .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) -} - -orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { - .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) -} - -orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { - .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) -} - -pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - orsf_cpp <- function(x, y_ctns, y_intg, weights) { invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 01eb7cf9..119fd19f 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,269 +11,6 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// std_setdiff -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); -RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); - rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); - return rcpp_result_gen; -END_RCPP -} -// x_node_scale_exported -List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); -RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); - return rcpp_result_gen; -END_RCPP -} -// leaf_kaplan_testthat -arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); -RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); - rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); - return rcpp_result_gen; -END_RCPP -} -// newtraph_cph_testthat -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); -RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); - Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); - return rcpp_result_gen; -END_RCPP -} -// lrt_multi_testthat -List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); -RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); - Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); - rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); - return rcpp_result_gen; -END_RCPP -} -// oobag_c_harrell_testthat -double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); -RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); - Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); - rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); - return rcpp_result_gen; -END_RCPP -} -// ostree_pred_leaf_testthat -arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); -RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); - rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_fit -List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); - Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); - Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); - Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); - Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); - Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); - Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); - Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); - Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); - Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_negate_vi -arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_permute_vi -arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_uni -arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_multi -arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_smry -arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_smry -arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_ice -arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_ice -arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} // orsf_cpp void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { @@ -289,22 +26,6 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, - {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, - {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, - {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, - {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, - {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, - {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, - {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 29}, - {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, - {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, - {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, - {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, - {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, - {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, - {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, - {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, {NULL, NULL, 0} }; diff --git a/src/orsf.cpp b/src/orsf.cpp index ecd79d0e..07d7ab96 100644 --- a/src/orsf.cpp +++ b/src/orsf.cpp @@ -1,4067 +1,4067 @@ -#include -#include - -// [[Rcpp::depends(RcppArmadillo)]] - - -using namespace Rcpp; -using namespace arma; - -// ---------------------------------------------------------------------------- -// ---------------------------- global parameters ----------------------------- -// ---------------------------------------------------------------------------- - -// special note: dont change these doubles to uword, -// even though some of them could be uwords; -// operations involving uwords and doubles are not -// straightforward and may break the routine. -// also: double + uword is slower than double + double. - -double - weight_avg, - weight_events, - w_node_sum, - denom_events, - denom, - cph_eps, - // the n_ variables could be integers but it - // is safer and faster when they are doubles - n_events, - n_events_total, - n_events_right, - n_events_left, - n_risk, - n_risk_right, - n_risk_left, - n_risk_sub, - g_risk, - temp1, - temp2, - temp3, - halving, - stat_current, - stat_best, - w_node_person, - xb, - risk, - loglik, - cutpoint, - observed, - expected, - V, - pred_t0, - leaf_min_obs, - leaf_min_events, - split_min_events, - split_min_obs, - split_min_stat, - time_pred, - ll_second, - ll_init, - net_alpha; - -int - // verbose=0, - max_retry, - n_retry, - tree, - mtry_int, - net_df_target, - oobag_eval_every; - -char - type_beta, - type_oobag_eval, - oobag_pred_type, - oobag_importance_type, - pred_type_dflt = 'S'; - -// armadillo unsigned integers -uword - i, - j, - k, - iter, - mtry, - mtry_temp, - person, - person_leaf, - person_ref_index, - n_vars, - n_rows, - cph_method, - cph_iter_max, - n_split, - nodes_max_guess, - nodes_max_true, - n_cols_to_sample, - nn_left, - leaf_node_counter, - leaf_node_index_counter, - leaf_node_col, - oobag_eval_counter; - -bool - break_loop, // a delayed break statement - oobag_pred, - oobag_importance, - use_tree_seed, - cph_do_scale; - -// armadillo vectors (doubles) -vec - vec_temp, - times_pred, - eval_oobag, - node_assignments, - nodes_grown, - surv_pvec, - surv_pvec_output, - denom_pred, - beta_current, - beta_new, - beta_fit, - vi_pval_numer, - vi_pval_denom, - cutpoints, - w_input, - w_inbag, - w_user, - w_node, - group, - u, - a, - a2, - XB, - Risk; - -// armadillo unsigned integer vectors -uvec - iit_vals, - jit_vals, - rows_inbag, - rows_oobag, - rows_node, - rows_leaf, - rows_node_combined, - cols_to_sample_01, - cols_to_sample, - cols_node, - leaf_node_index, - nodes_to_grow, - nodes_to_grow_next, - obs_in_node, - children_left, - leaf_pred; - -// armadillo iterators for unsigned integer vectors -uvec::iterator - iit, - iit_best, - jit, - node; - -// armadillo matrices (doubles) -mat - x_input, - x_transforms, - y_input, - x_inbag, - y_inbag, - x_node, - y_node, - x_pred, - // x_mean, - vmat, - cmat, - cmat2, - betas, - leaf_node, - leaf_nodes, - surv_pmat; - -umat - col_indices, - leaf_indices; - -cube - surv_pcube; - -List ostree; - -NumericMatrix - beta_placeholder, - xx, - yy; - -CharacterVector yy_names = CharacterVector::create("time","status"); - -NumericVector ww; - -Environment base_env("package:base"); - -Function set_seed_r = base_env["set.seed"]; - -// Set difference for arma vectors -// -// @description the same as setdiff() in R -// -// @param x first vector -// @param y second vector -// -// [[Rcpp::export]] -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { - - std::vector a = conv_to< std::vector >::from(sort(x)); - std::vector b = conv_to< std::vector >::from(sort(y)); - std::vector out; - - std::set_difference(a.begin(), a.end(), - b.begin(), b.end(), - std::inserter(out, out.end())); - - return conv_to::from(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- scaling functions ----------------------------- -// ---------------------------------------------------------------------------- - -// scale observations in predictor matrix -// -// @description this scales inputs in the same way as -// the survival::coxph() function. The main reasons we do this -// are to avoid exponential overflow and to prevent the scale -// of inputs from impacting the estimated beta coefficients. -// E.g., you can try multiplying numeric inputs by 100 prior -// to calling orsf() with orsf_control_fast(do_scale = FALSE) -// and you will see that you get back a different forest. -// -// @param x_node matrix of predictors -// @param w_node replication weights -// @param x_transforms matrix used to store the means and scales -// -// @return modified x_node and x_transform filled with values -// -void x_node_scale(){ - - // set aside memory for outputs - // first column holds the mean values - // second column holds the scale values - - x_transforms.zeros(n_vars, 2); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; - - x_node.col(i) -= means.at(i); - - scales.at(i) = sum(w_node % abs(x_node.col(i))); - - if(scales(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; - - x_node.col(i) *= scales.at(i); - - } - -} - -// same as above function, but just the means -// (currently not used) -void x_node_means(){ - - x_transforms.zeros(n_vars, 1); - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; - - } - -} - -// Same as x_node_scale, but this can be called from R -// [[Rcpp::export]] -List x_node_scale_exported(NumericMatrix& x_, - NumericVector& w_){ - - x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - w_node = vec(w_.begin(), w_.length(), false); - n_vars = x_node.n_cols; - - x_node_scale(); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - -} - -// ---------------------------------------------------------------------------- -// -------------------------- leaf_surv functions ----------------------------- -// ---------------------------------------------------------------------------- - -// Create kaplan-meier survival curve in leaf node -// -// @description Modifies leaf_nodes by adding data from the current node, -// where the current node is one that is too small to be split and will -// be converted to a leaf. -// -// @param y the outcome matrix in the current leaf -// @param w the weights vector in the current leaf -// @param leaf_indices a matrix that indicates where leaf nodes are -// inside of leaf_nodes. leaf_indices has three columns: -// - first column: the id for the leaf -// - second column: starting row for the leaf -// - third column: ending row for the leaf -// @param leaf_node_index_counter keeps track of where we are in leaf_node -// @param leaf_node_counter keeps track of which leaf node we are in -// @param leaf_nodes a matrix with three columns: -// - first column: time -// - second column: survival probability -// - third column: cumulative hazard - -void leaf_kaplan(const arma::mat& y, - const arma::vec& w){ - - leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; - i = leaf_node_counter; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(i, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - i++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(i, 0) = y.at(person,0); - temp2 = y.at(person, 0); - i++; - - } - - } - - // reset for kaplan meier loop - n_risk = sum(w); - person = 0; - temp1 = 1.0; - temp3 = 0.0; - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - - temp3 = temp3 + n_events / n_risk; - - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_nodes.at(leaf_node_counter, 2) = temp3; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - - leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; - leaf_node_index_counter++; - - if(leaf_node_index_counter >= leaf_indices.n_rows){ - leaf_indices.insert_rows(leaf_indices.n_rows, 10); - } - -} - -// Same as above, but this function can be called from R and is -// used to run tests with testthat (hence the name). Note: this -// needs to be updated to include CHF, which was added to the -// function above recently. -// [[Rcpp::export]] -arma::mat leaf_kaplan_testthat(const arma::mat& y, - const arma::vec& w){ - - - leaf_nodes.set_size(y.n_rows, 3); - leaf_node_counter = 0; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - leaf_node_counter++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); - temp2 = y.at(person, 0); - leaf_node_counter++; - - } - - } - - - // reset for kaplan meier loop - i = leaf_node_counter; - n_risk = sum(w); - person = 0; - temp1 = 1.0; - leaf_node_counter = 0; - - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - leaf_nodes.resize(leaf_node_counter, 3); - - return(leaf_nodes); - -} - - - - -// ---------------------------------------------------------------------------- -// ---------------------------- cholesky functions ---------------------------- -// ---------------------------------------------------------------------------- - -// cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// prepares vmat for cholesky_solve() - - -void cholesky(){ - - double eps_chol = 0; - double toler = 1e-8; - double pivot; - - for(i = 0; i < n_vars; i++){ - - if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); - - // copy upper right values to bottom left - for(j = (i+1); j eps_chol) { - - for(j = (i+1); j < n_vars; j++){ - - temp1 = vmat.at(j,i) / pivot; - vmat.at(j,i) = temp1; - vmat.at(j,j) -= temp1*temp1*pivot; - - for(k = (j+1); k < n_vars; k++){ - - vmat.at(k, j) -= temp1 * vmat.at(k, i); - - } - - } - - } else { - - vmat.at(i, i) = 0; - - } - - } - -} - -// solve cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. Prepares u, the vector used to update beta. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// -void cholesky_solve(){ - - for (i = 0; i < n_vars; i++) { - - temp1 = u[i]; - - for (j = 0; j < i; j++){ - - temp1 -= u[j] * vmat.at(i, j); - u[i] = temp1; - - } - - } - - - for (i = n_vars; i >= 1; i--){ - - if (vmat.at(i-1, i-1) == 0){ - - u[i-1] = 0; - - } else { - - temp1 = u[i-1] / vmat.at(i-1, i-1); - - for (j = i; j < n_vars; j++){ - temp1 -= u[j] * vmat.at(j, i-1); - } - - u[i-1] = temp1; - - } - - } - -} - -// invert the cholesky in the lower triangle -// -// @description this function is copied from the survival package and -// translated into arma. Inverts vmat -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// - -void cholesky_invert(){ - - for (i=0; i0) { - - // take full advantage of the cholesky's diagonal of 1's - vmat.at(i,i) = 1.0 / vmat.at(i,i); - - for (j=(i+1); j 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= weight_events * log(denom); - - for (i=0; i 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= denom_events * log(denom); - - for (i=0; i 1 && stat_best < R_PosInf){ - - for(iter = 1; iter < cph_iter_max; iter++){ - - // if(verbose > 0){ - // - // Rcout << "--------- Newt-Raph algo; iter " << iter; - // Rcout << " ---------" << std::endl; - // Rcout << "beta: " << beta_new.t(); - // Rcout << "loglik: " << stat_best; - // Rcout << std::endl; - // Rcout << "------------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // - // } - - // do the next iteration - stat_current = newtraph_cph_iter(beta_new); - - cholesky(); - - // don't go trying to fix this, just use the last - // set of valid coefficients - if(std::isinf(stat_current)) break; - - // check for convergence - // break the loop if the new ll is ~ same as old best ll - if(fabs(1 - stat_best / stat_current) < cph_eps){ - break; - } - - if(stat_current < stat_best){ // it's not converging! - - halving++; // get more aggressive when it doesn't work - - // reduce the magnitude by which beta_new modifies beta_current - for (i = 0; i < n_vars; i++){ - beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); - } - - // yeah its not technically the best but I need to do this for - // more reasonable output when verbose = true; I should remove - // this line when verbosity is taken out. - stat_best = stat_current; - - } else { // it's converging! - - halving = 0; - stat_best = stat_current; - - cholesky_solve(); - - for (i = 0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - beta_new[i] = beta_new[i] + u[i]; - - } - - } - - } - - } - - // invert vmat - cholesky_invert(); - - for (i=0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - - if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ - beta_current[i] = 0; - } - - if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ - vmat.at(i, i) = 1.0; - } - - // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; - - if(cph_do_scale){ - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); - } - - // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; - - if(oobag_importance_type == 'A'){ - - if(beta_current.at(i) != 0){ - - temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), - 1, false, false); - - if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; - - } - - vi_pval_denom[cols_node[i]]++; - - } - - } - - // if(verbose > 1) Rcout << std::endl; - - return(beta_current); - -} - -// same function as above, but exported to R for testing -// [[Rcpp::export]] -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, - NumericMatrix& y_in, - NumericVector& w_in, - int method, - double cph_eps_, - int iter_max){ - - - x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); - y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); - w_node = vec(w_in.begin(), w_in.length(), false); - - cph_do_scale = true; - - cph_method = method; - cph_eps = cph_eps_; - cph_iter_max = iter_max; - n_vars = x_node.n_cols; - - vi_pval_numer.zeros(x_node.n_cols); - vi_pval_denom.zeros(x_node.n_cols); - cols_node = regspace(0, x_node.n_cols - 1); - - x_node_scale(); - - vec out = newtraph_cph(); - - return(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- node functions -------------------------------- -// ---------------------------------------------------------------------------- - -// Log rank test w/multiple cutpoints -// -// this function returns a cutpoint obtaining a local maximum -// of the log-rank test (lrt) statistic. The default value (+Inf) -// is really for diagnostic purposes. Put another way, if the -// return value is +Inf (an impossible value for a cutpoint), -// that means that we didn't find any valid cut-points and -// the node cannot be grown with the current XB. -// -// if there is a valid cut-point, then the main side effect -// of this function is to modify the group vector, which -// will be used to assign observations to the two new nodes. -// -// @param group the vector that determines which node to send each -// observation to (left node = 0, right node = 1) -// @param y_node matrix of outcomes -// @param w_node vector of weights -// @param XB linear combination of predictors -// -// the group vector is modified by this function and the value returned -// is the maximal log-rank statistic across all the possible cutpoints. -double lrt_multi(){ - - break_loop = false; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB[*(iit+1)] << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB[*iit] != XB[*(iit+1)]){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - group[*iit] = 1; - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if ( XB[*iit] != XB[*(iit-1)] ) { - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - - // adjust k to indicate the number of valid cut-points - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - // protection from going out of bounds with jit_vals(k) below - if(j == 0) jit_vals(jit_vals.size()-1)--; - - // put the indices of potential cut-points into vec_temp - for(k = 0; k < vec_temp.size(); k++){ - vec_temp[k] = XB(*(iit_best - jit_vals[k])); - } - - // back to how it was! - if(j == 0) jit_vals(jit_vals.size()-1)++; - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - // switch group values from 0 to 1 until you get to the next cut-point - for( ; j < *jit; j++){ - group[*iit] = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp[k] == vec_temp[k+1] || - vec_temp[k] == vec_temp[0] || - *jit <= 1){ - - do_lrt = false; - - } else { - - while( XB[*iit] == XB[*(iit - 1)] ){ - - group[*iit] = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB[*iit] << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB[*iit] << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < split_min_stat) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group[*iit] = 0; - ++iit; - } - - // XB at *iit_best is the cut-point that maximized the log-rank test - return(XB[*iit_best]); - -} - -// this function is the same as above, but is exported to R for testing -// [[Rcpp::export]] -List lrt_multi_testthat(NumericMatrix& y_node_, - NumericVector& w_node_, - NumericVector& XB_, - int n_split_, - int leaf_min_events_, - int leaf_min_obs_ -){ - - y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); - w_node = vec(w_node_.begin(), w_node_.length(), false); - XB = vec(XB_.begin(), XB_.length(), false); - - n_split = n_split_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - - // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // this function returns a cutpoint obtaining a local maximum - // of the log-rank test (lrt) statistic. The default value (+Inf) - // is really for diagnostic purposes. Put another way, if the - // return value is +Inf (an impossible value for a cutpoint), - // that means that we didn't find any valid cut-points and - // the node cannot be grown with the current XB. - // - // if there is a valid cut-point, then the main side effect - // of this function is to modify the group vector, which - // will be used to assign observations to the two new nodes. - // - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - break_loop = false; - - vec cutpoints_used(n_split); - vec lrt_statistics(n_split); - uword list_counter = 0; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit+1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit+1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - group(*iit) = 1; - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit-1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - - // adjust k to indicate steps taken in the outer loop. - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - if(j == 0) jit_vals(jit_vals.size()-1)--; - - for(k = 0; k < vec_temp.size(); k++){ - vec_temp(k) = XB(*(iit_best - jit_vals(k))); - } - - if(j == 0) jit_vals(jit_vals.size()-1)++; - - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - for( ; j < *jit; j++){ - group(*iit) = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp(k) == vec_temp(k+1) || - vec_temp(k) == vec_temp(0) || - *jit <= 1){ - - do_lrt = false; - - } else { - - while(XB(*iit) == XB(*(iit - 1))){ - - group(*iit) = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB(*iit) << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - cutpoints_used(list_counter) = XB(*iit); - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - lrt_statistics(list_counter) = stat_current; - - list_counter++; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB(*iit) << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < 3.841459) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group(*iit) = 0; - ++iit; - } - - return(List::create(_["cutpoints"] = cutpoints_used, - _["statistic"] = lrt_statistics)); - -} - - -// out-of-bag prediction for single prediction horizon -// -// @param pred_type indicates what type of prediction to compute -// @param leaf_pred a vector indicating which leaf each observation -// landed in. -// @param leaf_indices a matrix that contains indices for each leaf node -// inside of leaf_nodes -// @param leaf_nodes a matrix with ids, survival, and cumulative hazard -// functions for each leaf node. -// -// @return matrix with predictions, dimension n by 1 - -void oobag_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred[*iit]; - - // find the current leaf - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - // get submat view for this leaf - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node.at(i-1, leaf_node_col); - break; - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } - - // running mean: mean_k = mean_{k-1} + (new val - old val) / k - // compute new val - old val - // be careful, every oob row has a different denom! - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 0){ - // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - -// out-of-bag prediction evaluation, Harrell's C-statistic -// -// @param pred_type indicates what type of prediction to compute -// @param y_input matrix of outcomes from input -// -// @return the C-statistic - -double oobag_c_harrell(char pred_type){ - - vec time = y_input.unsafe_col(0); - vec status = y_input.unsafe_col(1); - iit_vals = find(status == 1); - - k = y_input.n_rows; - - double total=0, concordant=0; - - switch(pred_type){ - - case 'S': case 'R': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for survival, current value > next vals is good - // risk is the same as survival until just before we output - // the oobag predictions, when we say pvec = 1-pvec, - if (surv_pvec[j] > surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - - case 'H': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for risk & chf current value < next vals is good. - if (surv_pvec[j] < surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - } - - return(concordant / total); - -} - -// same function as above but exported to R for testing -// [[Rcpp::export]] -double oobag_c_harrell_testthat(NumericMatrix y_mat, - NumericVector s_vec) { - - y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); - surv_pvec = vec(s_vec.begin(), s_vec.length(), false); - - return(oobag_c_harrell(pred_type_dflt)); - -} - -// this function is the same as oobag_pred_surv_uni, -// but it operates on new data rather than out-of-bag data -// and it allows for multiple prediction horizons instead of one -void new_pred_surv_multi(char pred_type){ - - // allocate memory for output - // surv_pvec.zeros(x_pred.n_rows); - - surv_pvec.set_size(times_pred.size()); - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - for(j = 0; j < times_pred.size(); j++){ - - time_pred = times_pred(j); - - if(time_pred < leaf_node(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - - if (leaf_node(i, 0) > time_pred){ - - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node(i-1, leaf_node_col); - - break; - - } else if (leaf_node(i, 0) == time_pred){ - - temp1 = leaf_node(i, leaf_node_col); - break; - - } - - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); - - } - - surv_pvec(j) = temp1; - - } - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - -} - -// this function is the same as new_pred_surv_multi, -// but only uses one prediction horizon -void new_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), - leaf_indices.at(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - - if(i == 0){ - - temp1 = pred_t0; - - } else { - - temp1 = leaf_node.at(i - 1, leaf_node_col); - - // experimental - does not seem to help! - // weighted average of surv est from before and after time of pred - // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); - // - // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + - // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; - - } - - break; - - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ - - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); - - // --- EXPERIMENTAL ADD-ON --- // - // if you are predicting beyond the max time in a node, - // then determine how much further out you are and assume - // the survival probability decays at the same rate. - - // temp2 = (1.0 - temp1) * - // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; - // - // temp1 = temp1 * (1.0-temp2); - - } - - surv_pvec(*iit) += temp1; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - surv_pvec(*iit) += temp1; - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 1){ - // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - - -// ---------------------------------------------------------------------------- -// --------------------------- ostree functions ------------------------------- -// ---------------------------------------------------------------------------- - -// increase the memory allocated to a tree -// -// this function is used if the initial memory allocation isn't enough -// to grow the tree. It modifies all elements of the tree, including -// betas, col_indices, children_left, and cutpoints -// -void ostree_size_buffer(){ - - // if(verbose > 1){ - // Rcout << "---------- buffering outputs ----------" << std::endl; - // Rcout << "betas before: " << std::endl << betas.t() << std::endl; - // } - - betas.insert_cols(betas.n_cols, 10); - // x_mean.insert_cols(x_mean.n_cols, 10); - col_indices.insert_cols(col_indices.n_cols, 10); - children_left.insert_rows(children_left.size(), 10); - cutpoints.insert_rows(cutpoints.size(), 10); - - // if(verbose > 1){ - // Rcout << "betas after: " << std::endl << betas.t() << std::endl; - // Rcout << "---------------------------------------"; - // Rcout << std::endl << std::endl; - // } - - -} - -// transfer memory from R into arma types -// -// when trees are passed from R, they need to be converted back into -// arma objects. The intent of this function is to convert everything -// back into an arma object without copying any data. -// -// nothing is modified apart from types - -void ostree_mem_xfer(){ - - // no data copied according to tracemem. - // not including boot rows or x_mean (don't always need them) - - NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; - NumericMatrix betas_ = ostree["betas"]; - NumericVector cutpoints_ = ostree["cut_points"]; - IntegerMatrix col_indices_ = ostree["col_indices"]; - IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; - IntegerVector children_left_ = ostree["children_left"]; - - leaf_nodes = mat(leaf_nodes_.begin(), - leaf_nodes_.nrow(), - leaf_nodes_.ncol(), - false); - - betas = mat(betas_.begin(), - betas_.nrow(), - betas_.ncol(), - false); - - cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); - - col_indices = conv_to::from( - imat(col_indices_.begin(), - col_indices_.nrow(), - col_indices_.ncol(), - false) - ); - - leaf_indices = conv_to::from( - imat(leaf_indices_.begin(), - leaf_indices_.nrow(), - leaf_indices_.ncol(), - false) - ); - - children_left = conv_to::from( - ivec(children_left_.begin(), - children_left_.length(), - false) - ); - -} - -// drop observations down the tree -// -// @description Determine the leaves that are assigned to new data. -// -// @param children_left vector of child node ids (right node = left node + 1) -// @param x_pred matrix of predictors from new data -// -// @return a vector indicating which leaf each observation was mapped to -void ostree_pred_leaf(){ - - // reset values - // this is needed for pred_leaf since every obs gets a new leaf in - // the next tree, but it isn't needed for pred_surv because survival - // probs get aggregated over all the trees. - leaf_pred.fill(0); - - for(i = 0; i < betas.n_cols; i++){ - - if(children_left[i] != 0){ - - if(i == 0){ - obs_in_node = regspace(0, 1, leaf_pred.size()-1); - } else { - obs_in_node = find(leaf_pred == i); - } - - - if(obs_in_node.size() > 0){ - - // Fastest sub-matrix multiplication i can think of. - // Matrix product = linear combination of columns - // (this is faster b/c armadillo is great at making - // pointers to the columns of an arma mat) - // I had to stop using this b/c it fails on - // XB.zeros(obs_in_node.size()); - // - // uvec col_indices_i = col_indices.unsafe_col(i); - // - // j = 0; - // - // jit = col_indices_i.begin(); - // - // for(; jit < col_indices_i.end(); ++jit, ++j){ - // - // vec x_j = x_pred.unsafe_col(*jit); - // - // XB += x_j(obs_in_node) * betas.at(j, i); - // - // } - - // this is slower but more clear matrix multiplication - XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); - - jit = obs_in_node.begin(); - - for(j = 0; j < XB.size(); ++j, ++jit){ - - if(XB[j] <= cutpoints[i]) { - - leaf_pred[*jit] = children_left[i]; - - } else { - - leaf_pred[*jit] = children_left[i]+1; - - } - - } - - // if(verbose > 0){ - // - // uvec in_left = find(leaf_pred == children_left(i)); - // uvec in_right = find(leaf_pred == children_left(i)+1); - // - // Rcout << "N to node_" << children_left(i) << ": "; - // Rcout << in_left.size() << "; "; - // Rcout << "N to node_" << children_left(i)+1 << ": "; - // Rcout << in_right.size() << std::endl; - // - // } - - } - - } - - } - - - -} - -// same as above but exported to R for testins -// [[Rcpp::export]] -arma::uvec ostree_pred_leaf_testthat(List& tree, - NumericMatrix& x_pred_){ - - - x_pred = mat(x_pred_.begin(), - x_pred_.nrow(), - x_pred_.ncol(), - false); - - leaf_pred.set_size(x_pred.n_rows); - - ostree = tree; - ostree_mem_xfer(); - ostree_pred_leaf(); - - return(leaf_pred); - -} - -// Fit an oblique survival tree -// -// @description used in orsf_fit, which has parameters defined below. -// -// @param f_beta the function used to find linear combinations of predictors -// -// @return a fitted oblique survival tree -// -List ostree_fit(Function f_beta){ - - betas.fill(0); - // x_mean.fill(0); - col_indices.fill(0); - cutpoints.fill(0); - children_left.fill(0); - node_assignments.fill(0); - leaf_nodes.fill(0); - - node_assignments.zeros(x_inbag.n_rows); - nodes_to_grow.zeros(1); - nodes_max_true = 0; - leaf_node_counter = 0; - leaf_node_index_counter = 0; - - // ---------------------- - // ---- main do loop ---- - // ---------------------- - - do { - - nodes_to_grow_next.set_size(0); - - // if(verbose > 0){ - // - // Rcout << "----------- nodes to grow -----------" << std::endl; - // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; - // Rcout << "-------------------------------------" << std::endl << - // std::endl << std::endl; - // - // - // } - - for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ - - if(nodes_to_grow[0] == 0){ - - // when growing the first node, there is no need to find - // which rows are in the node. - rows_node = linspace(0, - x_inbag.n_rows-1, - x_inbag.n_rows); - - } else { - - // identify which rows are in the current node. - rows_node = find(node_assignments == *node); - - } - - y_node = y_inbag.rows(rows_node); - w_node = w_inbag(rows_node); - - // if(verbose > 0){ - // - // n_risk = sum(w_node); - // n_events = sum(y_node.col(1) % w_node); - // Rcout << "-------- Growing node " << *node << " --------" << std::endl; - // Rcout << "No. of observations in node: " << n_risk << std::endl; - // Rcout << "No. of events in node: " << n_events << std::endl; - // Rcout << "No. of rows in node: " << w_node.size() << std::endl; - // Rcout << "--------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // - // } - - // initialize an impossible cut-point value - // if cutpoint is still infinite later, node should not be split - cutpoint = R_PosInf; - - // ------------------------------------------------------------------ - // ---- sample a random subset of columns with non-zero variance ---- - // ------------------------------------------------------------------ - - mtry_int = mtry; - cols_to_sample_01.fill(0); - - // constant columns are constant in the rows where events occurred - - for(j = 0; j < cols_to_sample_01.size(); j++){ - - temp1 = R_PosInf; - - for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ - - if(y_inbag.at(*iit, 1) == 1){ - - if (temp1 < R_PosInf){ - - if(x_inbag.at(*iit, j) != temp1){ - - cols_to_sample_01[j] = 1; - break; - - } - - } else { - - temp1 = x_inbag.at(*iit, j); - - } - - } - - } - - } - - n_cols_to_sample = sum(cols_to_sample_01); - - if(n_cols_to_sample > 1){ - - n_events_total = sum(y_node.col(1) % w_node); - - if(n_cols_to_sample < mtry){ - - mtry_int = n_cols_to_sample; - - // if(verbose > 0){ - // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; - // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; - // Rcout << std::endl; - // Rcout << "-------------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - if (type_beta == 'C'){ - - // make sure there are at least 3 event per predictor variable. - // (if using CPH) - while(n_events_total / mtry_int < 3 && mtry_int > 1){ - --mtry_int; - } - - } - - - n_cols_to_sample = mtry_int; - - // if(verbose > 0){ - // Rcout << "n_events: " << n_events_total << std::endl; - // Rcout << "mtry: " << mtry_int << std::endl; - // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; - // } - - if(mtry_int > 1){ - - cols_to_sample = find(cols_to_sample_01); - - // re-try hinge point - n_retry = 0; - cutpoint = R_PosInf; - - while(n_retry <= max_retry){ - - // if(n_retry > 0) Rcout << "trying again!" << std::endl; - - cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, - mtry_int, - false); - - x_node = x_inbag(rows_node, cols_node); - - // here is where n_vars gets updated to match the current node - // originally it matched the number of variables in the input x. - - n_vars = x_node.n_cols; - - if(cph_do_scale){ - x_node_scale(); - } - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node scaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - switch(type_beta) { - - case 'C' : - - beta_fit = newtraph_cph(); - - if(cph_do_scale){ - for(i = 0; i < x_transforms.n_rows; i++){ - x_node.col(i) /= x_transforms(i,1); - x_node.col(i) += x_transforms(i,0); - } - - } - - break; - - case 'N' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww, - net_alpha, - net_df_target); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - case 'U' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - } - - - if(any(beta_fit)){ - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node unscaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - XB = x_node * beta_fit; - cutpoint = lrt_multi(); - - } - - if(!std::isinf(cutpoint)) break; - n_retry++; - - } - - } - - } - - if(!std::isinf(cutpoint)){ - - // make new nodes if a valid cutpoint was found - nn_left = nodes_max_true + 1; - nodes_max_true = nodes_max_true + 2; - - - // if(verbose > 0){ - // - // Rcout << "-------- New nodes created --------" << std::endl; - // Rcout << "Left node: " << nn_left << std::endl; - // Rcout << "Right node: " << nodes_max_true << std::endl; - // Rcout << "-----------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - n_events_left = n_events_total - n_events_right; - - // if(verbose > 0){ - // Rcout << "n_events_left: " << n_events_left << std::endl; - // Rcout << "n_risk_left: " << n_risk_left << std::endl; - // Rcout << "n_events_right: " << n_events_right << std::endl; - // Rcout << "n_risk_right: " << n_risk_right << std::endl; - // } - - i=0; - - for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ - - node_assignments[*iit] = nn_left + group[i]; - - } - - if(n_events_left >= 2*leaf_min_events && - n_risk_left >= 2*leaf_min_obs && - n_events_left >= split_min_events && - n_risk_left >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nn_left}); - - } else { - - rows_leaf = find(group==0); - leaf_indices(leaf_node_index_counter, 0) = nn_left; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nn_left << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(n_events_right >= 2*leaf_min_events && - n_risk_right >= 2*leaf_min_obs && - n_events_right >= split_min_events && - n_risk_right >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nodes_max_true}); - - } else { - - rows_leaf = find(group==1); - leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nodes_max_true << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); - - for(i = 0; i < n_cols_to_sample; i++){ - betas.at(i, *node) = beta_fit[i]; - // x_mean.at(i, *node) = x_transforms(i, 0); - col_indices.at(i, *node) = cols_node[i]; - } - - children_left[*node] = nn_left; - cutpoints[*node] = cutpoint; - - } else { - - // make a leaf node if a valid cutpoint could not be found - leaf_indices(leaf_node_index_counter, 0) = *node; - leaf_kaplan(y_node, w_node); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << *node << std::endl; - // Rcout << "n_obs: " << sum(w_node) << std::endl; - // Rcout << "n_events: " << sum(w_node % y_node.col(1)); - // Rcout << std::endl; - // Rcout << "Couldn't find a cutpoint??" << std::endl; - // Rcout << "------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - } - - nodes_to_grow = nodes_to_grow_next; - - } while (nodes_to_grow.size() > 0); - - return( - List::create( - - _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), - - _["leaf_node_index"] = conv_to::from( - leaf_indices.rows(span(0, leaf_node_index_counter-1)) - ), - - _["betas"] = betas.cols(span(0, nodes_max_true)), - - // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), - - _["col_indices"] = conv_to::from( - col_indices.cols(span(0, nodes_max_true)) - ), - - _["cut_points"] = cutpoints(span(0, nodes_max_true)), - - _["children_left"] = conv_to::from( - children_left(span(0, nodes_max_true)) - ), - - _["rows_oobag"] = conv_to::from(rows_oobag) - - ) - ); - - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- orsf functions -------------------------------- -// ---------------------------------------------------------------------------- - -// fit an oblique random survival forest. -// -// @param x matrix of predictors -// @param y matrix of outcomes -// @param weights vector of weights -// @param n_tree number of trees to fit -// @param n_split_ number of splits to try with lrt -// @param mtry_ number of predictors to try -// @param leaf_min_events_ min number of events in a leaf -// @param leaf_min_obs_ min number of observations in a leaf -// @param split_min_events_ min number of events to split a node -// @param split_min_obs_ min number of observations to split a node -// @param split_min_stat_ min lrt to split a node -// @param cph_method_ method for ties -// @param cph_eps_ criteria for convergence of newton raphson algorithm -// @param cph_iter_max_ max number of newton raphson iterations -// @param cph_do_scale_ to scale or not to scale -// @param net_alpha_ alpha parameter for glmnet -// @param net_df_target_ degrees of freedom for glmnet -// @param oobag_pred_ whether to predict out-of-bag preds or not -// @param oobag_pred_type_ what type of out-of-bag preds to compute -// @param oobag_pred_horizon_ out-of-bag prediction horizon -// @param oobag_eval_every_ trees between each evaluation of oob error -// @param oobag_importance_ to compute importance or not -// @param oobag_importance_type_ type of importance to compute -// @param tree_seeds vector of seeds to set before each tree is fit -// @param max_retry_ max number of retries for linear combinations -// @param f_beta function to find linear combinations of predictors -// @param type_beta_ what type of linear combination to find -// @param f_oobag_eval function to evaluate out-of-bag error -// @param type_oobag_eval_ whether to use default or custom out-of-bag error -// -// @return an orsf_fit object sent back to R - -// [[Rcpp::export]] -List orsf_fit(NumericMatrix& x, - NumericMatrix& y, - NumericVector& weights, - const int& n_tree, - const int& n_split_, - const int& mtry_, - const double& leaf_min_events_, - const double& leaf_min_obs_, - const double& split_min_events_, - const double& split_min_obs_, - const double& split_min_stat_, - const int& cph_method_, - const double& cph_eps_, - const int& cph_iter_max_, - const bool& cph_do_scale_, - const double& net_alpha_, - const int& net_df_target_, - const bool& oobag_pred_, - const char& oobag_pred_type_, - const double& oobag_pred_horizon_, - const int& oobag_eval_every_, - const bool& oobag_importance_, - const char& oobag_importance_type_, - IntegerVector& tree_seeds, - const int& max_retry_, - Function f_beta, - const char& type_beta_, - Function f_oobag_eval, - const char& type_oobag_eval_){ - - - // convert inputs into arma objects - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - w_user = vec(weights.begin(), weights.length(), false); - - // these change later in ostree_fit() - n_rows = x_input.n_rows; - n_vars = x_input.n_cols; - - // initialize the variable importance (vi) vectors - vi_pval_numer.zeros(n_vars); - vi_pval_denom.zeros(n_vars); - - // if(verbose > 0){ - // Rcout << "------------ dimensions ------------" << std::endl; - // Rcout << "N obs total: " << n_rows << std::endl; - // Rcout << "N columns total: " << n_vars << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - n_split = n_split_; - mtry = mtry_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - split_min_events = split_min_events_; - split_min_obs = split_min_obs_; - split_min_stat = split_min_stat_; - cph_method = cph_method_; - cph_eps = cph_eps_; - cph_iter_max = cph_iter_max_; - cph_do_scale = cph_do_scale_; - net_alpha = net_alpha_; - net_df_target = net_df_target_; - oobag_pred = oobag_pred_; - oobag_pred_type = oobag_pred_type_; - oobag_eval_every = oobag_eval_every_; - oobag_eval_counter = 0; - oobag_importance = oobag_importance_; - oobag_importance_type = oobag_importance_type_; - use_tree_seed = tree_seeds.length() > 0; - max_retry = max_retry_; - type_beta = type_beta_; - type_oobag_eval = type_oobag_eval_; - temp1 = 1.0 / n_rows; - - if(cph_iter_max > 1) cph_do_scale = true; - - if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; - - if(oobag_pred){ - - time_pred = oobag_pred_horizon_; - - if(time_pred == 0) time_pred = median(y_input.col(0)); - - eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); - - } else { - - eval_oobag.set_size(0); - - } - - // if(verbose > 0){ - // Rcout << "------------ input variables ------------" << std::endl; - // Rcout << "n_split: " << n_split << std::endl; - // Rcout << "mtry: " << mtry << std::endl; - // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; - // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; - // Rcout << "cph_method: " << cph_method << std::endl; - // Rcout << "cph_eps: " << cph_eps << std::endl; - // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; - // Rcout << "-----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - // ---------------------------------------------------- - // ---- sample weights to mimic a bootstrap sample ---- - // ---------------------------------------------------- - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - // but it could technically be as big as n_row. - IntegerVector s = seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - NumericVector probs = dbinom(s, n_rows, temp1, false); - - // --------------------------------------------- - // ---- preallocate memory for tree outputs ---- - // --------------------------------------------- - - cols_to_sample_01.zeros(n_vars); - leaf_nodes.zeros(n_rows, 3); - - if(oobag_pred){ - - surv_pvec.zeros(n_rows); - denom_pred.zeros(n_rows); - - } else { - - surv_pvec.set_size(0); - denom_pred.set_size(0); - - } - - // guessing the number of nodes needed to grow a tree - nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); - - betas.zeros(mtry, nodes_max_guess); - // x_mean.zeros(mtry, nodes_max_guess); - col_indices.zeros(mtry, nodes_max_guess); - cutpoints.zeros(nodes_max_guess); - children_left.zeros(nodes_max_guess); - leaf_indices.zeros(nodes_max_guess, 3); - - // some great variable names here - List forest(n_tree); - - for(tree = 0; tree < n_tree; ){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - // -------------------------------------------- - // ---- initialize parameters to grow tree ---- - // -------------------------------------------- - - // rows_inbag = find(w_inbag != 0); - - if(use_tree_seed) set_seed_r(tree_seeds[tree]); - - w_input = as(sample(s, n_rows, true, probs)); - - // if the user gives a weight vector, then each bootstrap weight - // should be multiplied by the corresponding user weight. - if(w_user.size() > 0) w_input = w_input % w_user; - - rows_oobag = find(w_input == 0); - rows_inbag = regspace(0, n_rows-1); - rows_inbag = std_setdiff(rows_inbag, rows_oobag); - w_inbag = w_input(rows_inbag); - - // if(verbose > 0){ - // - // Rcout << "------------ boot weights ------------" << std::endl; - // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; - // Rcout << "total: " << sum(w_inbag) << std::endl; - // Rcout << "N > 0: " << rows_inbag.size() << std::endl; - // Rcout << "--------------------------------------" << - // std::endl << std::endl << std::endl; - // - // } - - x_inbag = x_input.rows(rows_inbag); - y_inbag = y_input.rows(rows_inbag); - - if(oobag_pred){ - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(rows_oobag.size()); - } - - // if(verbose > 0){ - // - // uword temp_uword_1, temp_uword_2; - // - // if(x_inbag.n_rows < 5) - // temp_uword_1 = x_inbag.n_rows-1; - // else - // temp_uword_1 = 5; - // - // if(x_inbag.n_cols < 5) - // temp_uword_2 = x_inbag.n_cols-1; - // else - // temp_uword_2 = 4; - // - // Rcout << "x inbag: " << std::endl << - // x_inbag.submat(0, 0, - // temp_uword_1, - // temp_uword_2) << std::endl; - // - // } - - forest[tree] = ostree_fit(f_beta); - - // add 1 to tree here instead of end of loop - // (more convenient to compute tree % oobag_eval_every) - tree++; - - if(oobag_pred){ - - denom_pred(rows_oobag) += 1; - ostree_pred_leaf(); - oobag_pred_surv_uni(oobag_pred_type); - - if(tree % oobag_eval_every == 0){ - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); - oobag_eval_counter++; - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - eval_oobag[oobag_eval_counter] = as( - f_oobag_eval(y, ww) - ); - - oobag_eval_counter++; - - break; - - } - - - } - - } - - } - - - - vec vimp(x_input.n_cols); - - // ANOVA importance - if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; - - // if we are computing variable importance, surv_pvec is about - // to get modified, and we don't want to return the modified - // version of surv_pvec. - // So make a deep copy if oobag_importance is true. - // Make a shallow copy if oobag_importance is false - surv_pvec_output = vec(surv_pvec.begin(), - surv_pvec.size(), - oobag_importance); - - if(oobag_importance && n_tree > 0){ - - uvec betas_to_flip; - oobag_eval_counter--; - - for(uword variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < n_tree; ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - if(oobag_importance_type == 'P'){ - x_pred.col(variable) = shuffle(x_pred.col(variable)); - } - - ostree_mem_xfer(); - - - if(oobag_importance_type == 'N'){ - betas_to_flip = find(col_indices == variable); - betas.elem( betas_to_flip ) *= (-1); - } - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - if(oobag_importance_type == 'N'){ - betas.elem( betas_to_flip ) *= (-1); - } - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = eval_oobag[oobag_eval_counter] - - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = - eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); - - - break; - - } - - } - - } - - if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; - - return( - List::create( - _["forest"] = forest, - _["pred_oobag"] = surv_pvec_output, - _["pred_horizon"] = time_pred, - _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, - _["stat_type"] = type_oobag_eval), - _["importance"] = vimp - ) - ); - - -} - -// @description compute negation importance -// -// @param x matrix of predictors -// @param y outcome matrix -// @param forest forest object from an orsf_fit -// @param last_eval_stat the last estimate of out-of-bag error -// @param time_pred_ the prediction horizon -// @param f_oobag_eval function used to evaluate out-of-bag error -// @param pred_type_ the type of prediction to compute -// @param type_oobag_eval_ custom or default out-of-bag predictions -// -// @return a vector of importance values -// -// [[Rcpp::export]] -arma::vec orsf_oob_negate_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uvec betas_to_flip; - uword variable; - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - ostree_mem_xfer(); - - betas_to_flip = find(col_indices == variable); - - betas.elem( betas_to_flip ) *= (-1); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - betas.elem( betas_to_flip ) *= (-1); - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// same as above but computes permutation importance instead of negation -// [[Rcpp::export]] -arma::vec orsf_oob_permute_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uword variable; - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - x_pred.col(variable) = shuffle(x_pred.col(variable)); - - ostree_mem_xfer(); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - // x_variable = x_variable_original; - // x_input.col(variable) = x_variable; - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// predictions from an oblique random survival forest -// -// @description makes predictions based on a single horizon -// -// @param forest forest object from orsf_fit object -// @param x_new matrix of predictors -// @param time_dbl prediction horizon -// @param pred_type type of prediction to compute -// -// [[Rcpp::export]] -arma::mat orsf_pred_uni(List& forest, - NumericMatrix& x_new, - double time_dbl, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - time_pred = time_dbl; - - // memory for outputs - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.zeros(x_pred.n_rows); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pvec); - } else { - return(surv_pvec); - } - -} - -// same as above but makes predictions for multiple horizons -// [[Rcpp::export]] -arma::mat orsf_pred_multi(List& forest, - NumericMatrix& x_new, - NumericVector& time_vec, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - times_pred = vec(time_vec.begin(), time_vec.length(), false); - - // memory for outputs - // initial values don't matter for leaf_pred, - // but do matter for surv_pmat - leaf_pred.set_size(x_pred.n_rows); - surv_pmat.zeros(x_pred.n_rows, times_pred.size()); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_multi(pred_type); - } - - surv_pmat /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pmat); - } else { - return(surv_pmat); - } - -} - -// partial dependence for new data -// -// @description calls predict on the data with a predictor fixed -// and then summarizes the predictions. -// -// @param forest a forest object from an orsf_fit object -// @param x_new_ matrix of predictors -// @param x_cols_ columns of variables of interest -// @param x_vals_ values to set these columsn to -// @param probs_ for quantiles -// @param time_dbl prediction horizon -// @param pred_type prediction type -// -// @return matrix with partial dependence -// [[Rcpp::export]] -arma::mat pd_new_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - return(join_vert(output_means, output_quantiles)); - -} - - -// same as above but for out-of-bag data -// [[Rcpp::export]] -arma::mat pd_oob_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - - return(join_vert(output_means, output_quantiles)); - -} - -// same as above but doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_new_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_pred.n_rows; - - - } - - return(output_ice); - -} - -// same as above but out-of-bag and doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_oob_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat output_ice(x_vals.n_rows * x_input.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); - - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_input.n_rows; - - - } - - return(output_ice); - -} - - - +// #include +// #include +// +// // [[Rcpp::depends(RcppArmadillo)]] +// +// +// using namespace Rcpp; +// using namespace arma; +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- global parameters ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // special note: dont change these doubles to uword, +// // even though some of them could be uwords; +// // operations involving uwords and doubles are not +// // straightforward and may break the routine. +// // also: double + uword is slower than double + double. +// +// double +// weight_avg, +// weight_events, +// w_node_sum, +// denom_events, +// denom, +// cph_eps, +// // the n_ variables could be integers but it +// // is safer and faster when they are doubles +// n_events, +// n_events_total, +// n_events_right, +// n_events_left, +// n_risk, +// n_risk_right, +// n_risk_left, +// n_risk_sub, +// g_risk, +// temp1, +// temp2, +// temp3, +// halving, +// stat_current, +// stat_best, +// w_node_person, +// xb, +// risk, +// loglik, +// cutpoint, +// observed, +// expected, +// V, +// pred_t0, +// leaf_min_obs, +// leaf_min_events, +// split_min_events, +// split_min_obs, +// split_min_stat, +// time_pred, +// ll_second, +// ll_init, +// net_alpha; +// +// int +// // verbose=0, +// max_retry, +// n_retry, +// tree, +// mtry_int, +// net_df_target, +// oobag_eval_every; +// +// char +// type_beta, +// type_oobag_eval, +// oobag_pred_type, +// oobag_importance_type, +// pred_type_dflt = 'S'; +// +// // armadillo unsigned integers +// uword +// i, +// j, +// k, +// iter, +// mtry, +// mtry_temp, +// person, +// person_leaf, +// person_ref_index, +// n_vars, +// n_rows, +// cph_method, +// cph_iter_max, +// n_split, +// nodes_max_guess, +// nodes_max_true, +// n_cols_to_sample, +// nn_left, +// leaf_node_counter, +// leaf_node_index_counter, +// leaf_node_col, +// oobag_eval_counter; +// +// bool +// break_loop, // a delayed break statement +// oobag_pred, +// oobag_importance, +// use_tree_seed, +// cph_do_scale; +// +// // armadillo vectors (doubles) +// vec +// vec_temp, +// times_pred, +// eval_oobag, +// node_assignments, +// nodes_grown, +// surv_pvec, +// surv_pvec_output, +// denom_pred, +// beta_current, +// beta_new, +// beta_fit, +// vi_pval_numer, +// vi_pval_denom, +// cutpoints, +// w_input, +// w_inbag, +// w_user, +// w_node, +// group, +// u, +// a, +// a2, +// XB, +// Risk; +// +// // armadillo unsigned integer vectors +// uvec +// iit_vals, +// jit_vals, +// rows_inbag, +// rows_oobag, +// rows_node, +// rows_leaf, +// rows_node_combined, +// cols_to_sample_01, +// cols_to_sample, +// cols_node, +// leaf_node_index, +// nodes_to_grow, +// nodes_to_grow_next, +// obs_in_node, +// children_left, +// leaf_pred; +// +// // armadillo iterators for unsigned integer vectors +// uvec::iterator +// iit, +// iit_best, +// jit, +// node; +// +// // armadillo matrices (doubles) +// mat +// x_input, +// x_transforms, +// y_input, +// x_inbag, +// y_inbag, +// x_node, +// y_node, +// x_pred, +// // x_mean, +// vmat, +// cmat, +// cmat2, +// betas, +// leaf_node, +// leaf_nodes, +// surv_pmat; +// +// umat +// col_indices, +// leaf_indices; +// +// cube +// surv_pcube; +// +// List ostree; +// +// NumericMatrix +// beta_placeholder, +// xx, +// yy; +// +// CharacterVector yy_names = CharacterVector::create("time","status"); +// +// NumericVector ww; +// +// Environment base_env("package:base"); +// +// Function set_seed_r = base_env["set.seed"]; +// +// // Set difference for arma vectors +// // +// // @description the same as setdiff() in R +// // +// // @param x first vector +// // @param y second vector +// // +// // [[Rcpp::export]] +// arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { +// +// std::vector a = conv_to< std::vector >::from(sort(x)); +// std::vector b = conv_to< std::vector >::from(sort(y)); +// std::vector out; +// +// std::set_difference(a.begin(), a.end(), +// b.begin(), b.end(), +// std::inserter(out, out.end())); +// +// return conv_to::from(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- scaling functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // scale observations in predictor matrix +// // +// // @description this scales inputs in the same way as +// // the survival::coxph() function. The main reasons we do this +// // are to avoid exponential overflow and to prevent the scale +// // of inputs from impacting the estimated beta coefficients. +// // E.g., you can try multiplying numeric inputs by 100 prior +// // to calling orsf() with orsf_control_fast(do_scale = FALSE) +// // and you will see that you get back a different forest. +// // +// // @param x_node matrix of predictors +// // @param w_node replication weights +// // @param x_transforms matrix used to store the means and scales +// // +// // @return modified x_node and x_transform filled with values +// // +// void x_node_scale(){ +// +// // set aside memory for outputs +// // first column holds the mean values +// // second column holds the scale values +// +// x_transforms.zeros(n_vars, 2); +// vec means = x_transforms.unsafe_col(0); // Reference to column 1 +// vec scales = x_transforms.unsafe_col(1); // Reference to column 2 +// +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// x_node.col(i) -= means.at(i); +// +// scales.at(i) = sum(w_node % abs(x_node.col(i))); +// +// if(scales(i) > 0) +// scales.at(i) = w_node_sum / scales.at(i); +// else +// scales.at(i) = 1.0; // rare case of constant covariate; +// +// x_node.col(i) *= scales.at(i); +// +// } +// +// } +// +// // same as above function, but just the means +// // (currently not used) +// void x_node_means(){ +// +// x_transforms.zeros(n_vars, 1); +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// } +// +// } +// +// // Same as x_node_scale, but this can be called from R +// // [[Rcpp::export]] +// List x_node_scale_exported(NumericMatrix& x_, +// NumericVector& w_){ +// +// x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); +// w_node = vec(w_.begin(), w_.length(), false); +// n_vars = x_node.n_cols; +// +// x_node_scale(); +// +// return( +// List::create( +// _["x_scaled"] = x_node, +// _["x_transforms"] = x_transforms +// ) +// ); +// +// } +// +// // ---------------------------------------------------------------------------- +// // -------------------------- leaf_surv functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // Create kaplan-meier survival curve in leaf node +// // +// // @description Modifies leaf_nodes by adding data from the current node, +// // where the current node is one that is too small to be split and will +// // be converted to a leaf. +// // +// // @param y the outcome matrix in the current leaf +// // @param w the weights vector in the current leaf +// // @param leaf_indices a matrix that indicates where leaf nodes are +// // inside of leaf_nodes. leaf_indices has three columns: +// // - first column: the id for the leaf +// // - second column: starting row for the leaf +// // - third column: ending row for the leaf +// // @param leaf_node_index_counter keeps track of where we are in leaf_node +// // @param leaf_node_counter keeps track of which leaf node we are in +// // @param leaf_nodes a matrix with three columns: +// // - first column: time +// // - second column: survival probability +// // - third column: cumulative hazard +// +// void leaf_kaplan(const arma::mat& y, +// const arma::vec& w){ +// +// leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; +// i = leaf_node_counter; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(i, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// i++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(i, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// i++; +// +// } +// +// } +// +// // reset for kaplan meier loop +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// temp3 = 0.0; +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// +// temp3 = temp3 + n_events / n_risk; +// +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_nodes.at(leaf_node_counter, 2) = temp3; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// +// leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; +// leaf_node_index_counter++; +// +// if(leaf_node_index_counter >= leaf_indices.n_rows){ +// leaf_indices.insert_rows(leaf_indices.n_rows, 10); +// } +// +// } +// +// // Same as above, but this function can be called from R and is +// // used to run tests with testthat (hence the name). Note: this +// // needs to be updated to include CHF, which was added to the +// // function above recently. +// // [[Rcpp::export]] +// arma::mat leaf_kaplan_testthat(const arma::mat& y, +// const arma::vec& w){ +// +// +// leaf_nodes.set_size(y.n_rows, 3); +// leaf_node_counter = 0; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// leaf_node_counter++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// leaf_node_counter++; +// +// } +// +// } +// +// +// // reset for kaplan meier loop +// i = leaf_node_counter; +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// leaf_node_counter = 0; +// +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// leaf_nodes.resize(leaf_node_counter, 3); +// +// return(leaf_nodes); +// +// } +// +// +// +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- cholesky functions ---------------------------- +// // ---------------------------------------------------------------------------- +// +// // cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // prepares vmat for cholesky_solve() +// +// +// void cholesky(){ +// +// double eps_chol = 0; +// double toler = 1e-8; +// double pivot; +// +// for(i = 0; i < n_vars; i++){ +// +// if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); +// +// // copy upper right values to bottom left +// for(j = (i+1); j eps_chol) { +// +// for(j = (i+1); j < n_vars; j++){ +// +// temp1 = vmat.at(j,i) / pivot; +// vmat.at(j,i) = temp1; +// vmat.at(j,j) -= temp1*temp1*pivot; +// +// for(k = (j+1); k < n_vars; k++){ +// +// vmat.at(k, j) -= temp1 * vmat.at(k, i); +// +// } +// +// } +// +// } else { +// +// vmat.at(i, i) = 0; +// +// } +// +// } +// +// } +// +// // solve cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. Prepares u, the vector used to update beta. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // +// void cholesky_solve(){ +// +// for (i = 0; i < n_vars; i++) { +// +// temp1 = u[i]; +// +// for (j = 0; j < i; j++){ +// +// temp1 -= u[j] * vmat.at(i, j); +// u[i] = temp1; +// +// } +// +// } +// +// +// for (i = n_vars; i >= 1; i--){ +// +// if (vmat.at(i-1, i-1) == 0){ +// +// u[i-1] = 0; +// +// } else { +// +// temp1 = u[i-1] / vmat.at(i-1, i-1); +// +// for (j = i; j < n_vars; j++){ +// temp1 -= u[j] * vmat.at(j, i-1); +// } +// +// u[i-1] = temp1; +// +// } +// +// } +// +// } +// +// // invert the cholesky in the lower triangle +// // +// // @description this function is copied from the survival package and +// // translated into arma. Inverts vmat +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// +// void cholesky_invert(){ +// +// for (i=0; i0) { +// +// // take full advantage of the cholesky's diagonal of 1's +// vmat.at(i,i) = 1.0 / vmat.at(i,i); +// +// for (j=(i+1); j 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= weight_events * log(denom); +// +// for (i=0; i 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= denom_events * log(denom); +// +// for (i=0; i 1 && stat_best < R_PosInf){ +// +// for(iter = 1; iter < cph_iter_max; iter++){ +// +// // if(verbose > 0){ +// // +// // Rcout << "--------- Newt-Raph algo; iter " << iter; +// // Rcout << " ---------" << std::endl; +// // Rcout << "beta: " << beta_new.t(); +// // Rcout << "loglik: " << stat_best; +// // Rcout << std::endl; +// // Rcout << "------------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // +// // } +// +// // do the next iteration +// stat_current = newtraph_cph_iter(beta_new); +// +// cholesky(); +// +// // don't go trying to fix this, just use the last +// // set of valid coefficients +// if(std::isinf(stat_current)) break; +// +// // check for convergence +// // break the loop if the new ll is ~ same as old best ll +// if(fabs(1 - stat_best / stat_current) < cph_eps){ +// break; +// } +// +// if(stat_current < stat_best){ // it's not converging! +// +// halving++; // get more aggressive when it doesn't work +// +// // reduce the magnitude by which beta_new modifies beta_current +// for (i = 0; i < n_vars; i++){ +// beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); +// } +// +// // yeah its not technically the best but I need to do this for +// // more reasonable output when verbose = true; I should remove +// // this line when verbosity is taken out. +// stat_best = stat_current; +// +// } else { // it's converging! +// +// halving = 0; +// stat_best = stat_current; +// +// cholesky_solve(); +// +// for (i = 0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// beta_new[i] = beta_new[i] + u[i]; +// +// } +// +// } +// +// } +// +// } +// +// // invert vmat +// cholesky_invert(); +// +// for (i=0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// +// if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ +// beta_current[i] = 0; +// } +// +// if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ +// vmat.at(i, i) = 1.0; +// } +// +// // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; +// +// if(cph_do_scale){ +// beta_current.at(i) *= x_transforms.at(i, 1); +// vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); +// } +// +// // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; +// +// if(oobag_importance_type == 'A'){ +// +// if(beta_current.at(i) != 0){ +// +// temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), +// 1, false, false); +// +// if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; +// +// } +// +// vi_pval_denom[cols_node[i]]++; +// +// } +// +// } +// +// // if(verbose > 1) Rcout << std::endl; +// +// return(beta_current); +// +// } +// +// // same function as above, but exported to R for testing +// // [[Rcpp::export]] +// arma::vec newtraph_cph_testthat(NumericMatrix& x_in, +// NumericMatrix& y_in, +// NumericVector& w_in, +// int method, +// double cph_eps_, +// int iter_max){ +// +// +// x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); +// y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); +// w_node = vec(w_in.begin(), w_in.length(), false); +// +// cph_do_scale = true; +// +// cph_method = method; +// cph_eps = cph_eps_; +// cph_iter_max = iter_max; +// n_vars = x_node.n_cols; +// +// vi_pval_numer.zeros(x_node.n_cols); +// vi_pval_denom.zeros(x_node.n_cols); +// cols_node = regspace(0, x_node.n_cols - 1); +// +// x_node_scale(); +// +// vec out = newtraph_cph(); +// +// return(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- node functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // Log rank test w/multiple cutpoints +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // @param group the vector that determines which node to send each +// // observation to (left node = 0, right node = 1) +// // @param y_node matrix of outcomes +// // @param w_node vector of weights +// // @param XB linear combination of predictors +// // +// // the group vector is modified by this function and the value returned +// // is the maximal log-rank statistic across all the possible cutpoints. +// double lrt_multi(){ +// +// break_loop = false; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB[*(iit+1)] << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB[*iit] != XB[*(iit+1)]){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// group[*iit] = 1; +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if ( XB[*iit] != XB[*(iit-1)] ) { +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// +// // adjust k to indicate the number of valid cut-points +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// // protection from going out of bounds with jit_vals(k) below +// if(j == 0) jit_vals(jit_vals.size()-1)--; +// +// // put the indices of potential cut-points into vec_temp +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp[k] = XB(*(iit_best - jit_vals[k])); +// } +// +// // back to how it was! +// if(j == 0) jit_vals(jit_vals.size()-1)++; +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// // switch group values from 0 to 1 until you get to the next cut-point +// for( ; j < *jit; j++){ +// group[*iit] = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp[k] == vec_temp[k+1] || +// vec_temp[k] == vec_temp[0] || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while( XB[*iit] == XB[*(iit - 1)] ){ +// +// group[*iit] = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB[*iit] << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB[*iit] << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < split_min_stat) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group[*iit] = 0; +// ++iit; +// } +// +// // XB at *iit_best is the cut-point that maximized the log-rank test +// return(XB[*iit_best]); +// +// } +// +// // this function is the same as above, but is exported to R for testing +// // [[Rcpp::export]] +// List lrt_multi_testthat(NumericMatrix& y_node_, +// NumericVector& w_node_, +// NumericVector& XB_, +// int n_split_, +// int leaf_min_events_, +// int leaf_min_obs_ +// ){ +// +// y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); +// w_node = vec(w_node_.begin(), w_node_.length(), false); +// XB = vec(XB_.begin(), XB_.length(), false); +// +// n_split = n_split_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// +// // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// break_loop = false; +// +// vec cutpoints_used(n_split); +// vec lrt_statistics(n_split); +// uword list_counter = 0; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit+1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit+1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// group(*iit) = 1; +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit-1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// +// // adjust k to indicate steps taken in the outer loop. +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// if(j == 0) jit_vals(jit_vals.size()-1)--; +// +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp(k) = XB(*(iit_best - jit_vals(k))); +// } +// +// if(j == 0) jit_vals(jit_vals.size()-1)++; +// +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// for( ; j < *jit; j++){ +// group(*iit) = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp(k) == vec_temp(k+1) || +// vec_temp(k) == vec_temp(0) || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while(XB(*iit) == XB(*(iit - 1))){ +// +// group(*iit) = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB(*iit) << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// cutpoints_used(list_counter) = XB(*iit); +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// lrt_statistics(list_counter) = stat_current; +// +// list_counter++; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB(*iit) << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < 3.841459) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group(*iit) = 0; +// ++iit; +// } +// +// return(List::create(_["cutpoints"] = cutpoints_used, +// _["statistic"] = lrt_statistics)); +// +// } +// +// +// // out-of-bag prediction for single prediction horizon +// // +// // @param pred_type indicates what type of prediction to compute +// // @param leaf_pred a vector indicating which leaf each observation +// // landed in. +// // @param leaf_indices a matrix that contains indices for each leaf node +// // inside of leaf_nodes +// // @param leaf_nodes a matrix with ids, survival, and cumulative hazard +// // functions for each leaf node. +// // +// // @return matrix with predictions, dimension n by 1 +// +// void oobag_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred[*iit]; +// +// // find the current leaf +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// // get submat view for this leaf +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node.at(i-1, leaf_node_col); +// break; +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// // running mean: mean_k = mean_{k-1} + (new val - old val) / k +// // compute new val - old val +// // be careful, every oob row has a different denom! +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 0){ +// // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// // out-of-bag prediction evaluation, Harrell's C-statistic +// // +// // @param pred_type indicates what type of prediction to compute +// // @param y_input matrix of outcomes from input +// // +// // @return the C-statistic +// +// double oobag_c_harrell(char pred_type){ +// +// vec time = y_input.unsafe_col(0); +// vec status = y_input.unsafe_col(1); +// iit_vals = find(status == 1); +// +// k = y_input.n_rows; +// +// double total=0, concordant=0; +// +// switch(pred_type){ +// +// case 'S': case 'R': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for survival, current value > next vals is good +// // risk is the same as survival until just before we output +// // the oobag predictions, when we say pvec = 1-pvec, +// if (surv_pvec[j] > surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// +// case 'H': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for risk & chf current value < next vals is good. +// if (surv_pvec[j] < surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// } +// +// return(concordant / total); +// +// } +// +// // same function as above but exported to R for testing +// // [[Rcpp::export]] +// double oobag_c_harrell_testthat(NumericMatrix y_mat, +// NumericVector s_vec) { +// +// y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); +// surv_pvec = vec(s_vec.begin(), s_vec.length(), false); +// +// return(oobag_c_harrell(pred_type_dflt)); +// +// } +// +// // this function is the same as oobag_pred_surv_uni, +// // but it operates on new data rather than out-of-bag data +// // and it allows for multiple prediction horizons instead of one +// void new_pred_surv_multi(char pred_type){ +// +// // allocate memory for output +// // surv_pvec.zeros(x_pred.n_rows); +// +// surv_pvec.set_size(times_pred.size()); +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// for(j = 0; j < times_pred.size(); j++){ +// +// time_pred = times_pred(j); +// +// if(time_pred < leaf_node(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// +// if (leaf_node(i, 0) > time_pred){ +// +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node(i-1, leaf_node_col); +// +// break; +// +// } else if (leaf_node(i, 0) == time_pred){ +// +// temp1 = leaf_node(i, leaf_node_col); +// break; +// +// } +// +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// surv_pvec(j) = temp1; +// +// } +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// } +// +// // this function is the same as new_pred_surv_multi, +// // but only uses one prediction horizon +// void new_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), +// leaf_indices.at(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// +// if(i == 0){ +// +// temp1 = pred_t0; +// +// } else { +// +// temp1 = leaf_node.at(i - 1, leaf_node_col); +// +// // experimental - does not seem to help! +// // weighted average of surv est from before and after time of pred +// // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); +// // +// // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + +// // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; +// +// } +// +// break; +// +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node(leaf_node.n_rows - 1, leaf_node_col); +// +// // --- EXPERIMENTAL ADD-ON --- // +// // if you are predicting beyond the max time in a node, +// // then determine how much further out you are and assume +// // the survival probability decays at the same rate. +// +// // temp2 = (1.0 - temp1) * +// // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; +// // +// // temp1 = temp1 * (1.0-temp2); +// +// } +// +// surv_pvec(*iit) += temp1; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// surv_pvec(*iit) += temp1; +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 1){ +// // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// +// // ---------------------------------------------------------------------------- +// // --------------------------- ostree functions ------------------------------- +// // ---------------------------------------------------------------------------- +// +// // increase the memory allocated to a tree +// // +// // this function is used if the initial memory allocation isn't enough +// // to grow the tree. It modifies all elements of the tree, including +// // betas, col_indices, children_left, and cutpoints +// // +// void ostree_size_buffer(){ +// +// // if(verbose > 1){ +// // Rcout << "---------- buffering outputs ----------" << std::endl; +// // Rcout << "betas before: " << std::endl << betas.t() << std::endl; +// // } +// +// betas.insert_cols(betas.n_cols, 10); +// // x_mean.insert_cols(x_mean.n_cols, 10); +// col_indices.insert_cols(col_indices.n_cols, 10); +// children_left.insert_rows(children_left.size(), 10); +// cutpoints.insert_rows(cutpoints.size(), 10); +// +// // if(verbose > 1){ +// // Rcout << "betas after: " << std::endl << betas.t() << std::endl; +// // Rcout << "---------------------------------------"; +// // Rcout << std::endl << std::endl; +// // } +// +// +// } +// +// // transfer memory from R into arma types +// // +// // when trees are passed from R, they need to be converted back into +// // arma objects. The intent of this function is to convert everything +// // back into an arma object without copying any data. +// // +// // nothing is modified apart from types +// +// void ostree_mem_xfer(){ +// +// // no data copied according to tracemem. +// // not including boot rows or x_mean (don't always need them) +// +// NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; +// NumericMatrix betas_ = ostree["betas"]; +// NumericVector cutpoints_ = ostree["cut_points"]; +// IntegerMatrix col_indices_ = ostree["col_indices"]; +// IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; +// IntegerVector children_left_ = ostree["children_left"]; +// +// leaf_nodes = mat(leaf_nodes_.begin(), +// leaf_nodes_.nrow(), +// leaf_nodes_.ncol(), +// false); +// +// betas = mat(betas_.begin(), +// betas_.nrow(), +// betas_.ncol(), +// false); +// +// cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); +// +// col_indices = conv_to::from( +// imat(col_indices_.begin(), +// col_indices_.nrow(), +// col_indices_.ncol(), +// false) +// ); +// +// leaf_indices = conv_to::from( +// imat(leaf_indices_.begin(), +// leaf_indices_.nrow(), +// leaf_indices_.ncol(), +// false) +// ); +// +// children_left = conv_to::from( +// ivec(children_left_.begin(), +// children_left_.length(), +// false) +// ); +// +// } +// +// // drop observations down the tree +// // +// // @description Determine the leaves that are assigned to new data. +// // +// // @param children_left vector of child node ids (right node = left node + 1) +// // @param x_pred matrix of predictors from new data +// // +// // @return a vector indicating which leaf each observation was mapped to +// void ostree_pred_leaf(){ +// +// // reset values +// // this is needed for pred_leaf since every obs gets a new leaf in +// // the next tree, but it isn't needed for pred_surv because survival +// // probs get aggregated over all the trees. +// leaf_pred.fill(0); +// +// for(i = 0; i < betas.n_cols; i++){ +// +// if(children_left[i] != 0){ +// +// if(i == 0){ +// obs_in_node = regspace(0, 1, leaf_pred.size()-1); +// } else { +// obs_in_node = find(leaf_pred == i); +// } +// +// +// if(obs_in_node.size() > 0){ +// +// // Fastest sub-matrix multiplication i can think of. +// // Matrix product = linear combination of columns +// // (this is faster b/c armadillo is great at making +// // pointers to the columns of an arma mat) +// // I had to stop using this b/c it fails on +// // XB.zeros(obs_in_node.size()); +// // +// // uvec col_indices_i = col_indices.unsafe_col(i); +// // +// // j = 0; +// // +// // jit = col_indices_i.begin(); +// // +// // for(; jit < col_indices_i.end(); ++jit, ++j){ +// // +// // vec x_j = x_pred.unsafe_col(*jit); +// // +// // XB += x_j(obs_in_node) * betas.at(j, i); +// // +// // } +// +// // this is slower but more clear matrix multiplication +// XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); +// +// jit = obs_in_node.begin(); +// +// for(j = 0; j < XB.size(); ++j, ++jit){ +// +// if(XB[j] <= cutpoints[i]) { +// +// leaf_pred[*jit] = children_left[i]; +// +// } else { +// +// leaf_pred[*jit] = children_left[i]+1; +// +// } +// +// } +// +// // if(verbose > 0){ +// // +// // uvec in_left = find(leaf_pred == children_left(i)); +// // uvec in_right = find(leaf_pred == children_left(i)+1); +// // +// // Rcout << "N to node_" << children_left(i) << ": "; +// // Rcout << in_left.size() << "; "; +// // Rcout << "N to node_" << children_left(i)+1 << ": "; +// // Rcout << in_right.size() << std::endl; +// // +// // } +// +// } +// +// } +// +// } +// +// +// +// } +// +// // same as above but exported to R for testins +// // [[Rcpp::export]] +// arma::uvec ostree_pred_leaf_testthat(List& tree, +// NumericMatrix& x_pred_){ +// +// +// x_pred = mat(x_pred_.begin(), +// x_pred_.nrow(), +// x_pred_.ncol(), +// false); +// +// leaf_pred.set_size(x_pred.n_rows); +// +// ostree = tree; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// +// return(leaf_pred); +// +// } +// +// // Fit an oblique survival tree +// // +// // @description used in orsf_fit, which has parameters defined below. +// // +// // @param f_beta the function used to find linear combinations of predictors +// // +// // @return a fitted oblique survival tree +// // +// List ostree_fit(Function f_beta){ +// +// betas.fill(0); +// // x_mean.fill(0); +// col_indices.fill(0); +// cutpoints.fill(0); +// children_left.fill(0); +// node_assignments.fill(0); +// leaf_nodes.fill(0); +// +// node_assignments.zeros(x_inbag.n_rows); +// nodes_to_grow.zeros(1); +// nodes_max_true = 0; +// leaf_node_counter = 0; +// leaf_node_index_counter = 0; +// +// // ---------------------- +// // ---- main do loop ---- +// // ---------------------- +// +// do { +// +// nodes_to_grow_next.set_size(0); +// +// // if(verbose > 0){ +// // +// // Rcout << "----------- nodes to grow -----------" << std::endl; +// // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; +// // Rcout << "-------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // +// // } +// +// for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ +// +// if(nodes_to_grow[0] == 0){ +// +// // when growing the first node, there is no need to find +// // which rows are in the node. +// rows_node = linspace(0, +// x_inbag.n_rows-1, +// x_inbag.n_rows); +// +// } else { +// +// // identify which rows are in the current node. +// rows_node = find(node_assignments == *node); +// +// } +// +// y_node = y_inbag.rows(rows_node); +// w_node = w_inbag(rows_node); +// +// // if(verbose > 0){ +// // +// // n_risk = sum(w_node); +// // n_events = sum(y_node.col(1) % w_node); +// // Rcout << "-------- Growing node " << *node << " --------" << std::endl; +// // Rcout << "No. of observations in node: " << n_risk << std::endl; +// // Rcout << "No. of events in node: " << n_events << std::endl; +// // Rcout << "No. of rows in node: " << w_node.size() << std::endl; +// // Rcout << "--------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // +// // } +// +// // initialize an impossible cut-point value +// // if cutpoint is still infinite later, node should not be split +// cutpoint = R_PosInf; +// +// // ------------------------------------------------------------------ +// // ---- sample a random subset of columns with non-zero variance ---- +// // ------------------------------------------------------------------ +// +// mtry_int = mtry; +// cols_to_sample_01.fill(0); +// +// // constant columns are constant in the rows where events occurred +// +// for(j = 0; j < cols_to_sample_01.size(); j++){ +// +// temp1 = R_PosInf; +// +// for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ +// +// if(y_inbag.at(*iit, 1) == 1){ +// +// if (temp1 < R_PosInf){ +// +// if(x_inbag.at(*iit, j) != temp1){ +// +// cols_to_sample_01[j] = 1; +// break; +// +// } +// +// } else { +// +// temp1 = x_inbag.at(*iit, j); +// +// } +// +// } +// +// } +// +// } +// +// n_cols_to_sample = sum(cols_to_sample_01); +// +// if(n_cols_to_sample > 1){ +// +// n_events_total = sum(y_node.col(1) % w_node); +// +// if(n_cols_to_sample < mtry){ +// +// mtry_int = n_cols_to_sample; +// +// // if(verbose > 0){ +// // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; +// // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; +// // Rcout << std::endl; +// // Rcout << "-------------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// if (type_beta == 'C'){ +// +// // make sure there are at least 3 event per predictor variable. +// // (if using CPH) +// while(n_events_total / mtry_int < 3 && mtry_int > 1){ +// --mtry_int; +// } +// +// } +// +// +// n_cols_to_sample = mtry_int; +// +// // if(verbose > 0){ +// // Rcout << "n_events: " << n_events_total << std::endl; +// // Rcout << "mtry: " << mtry_int << std::endl; +// // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; +// // } +// +// if(mtry_int > 1){ +// +// cols_to_sample = find(cols_to_sample_01); +// +// // re-try hinge point +// n_retry = 0; +// cutpoint = R_PosInf; +// +// while(n_retry <= max_retry){ +// +// // if(n_retry > 0) Rcout << "trying again!" << std::endl; +// +// cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, +// mtry_int, +// false); +// +// x_node = x_inbag(rows_node, cols_node); +// +// // here is where n_vars gets updated to match the current node +// // originally it matched the number of variables in the input x. +// +// n_vars = x_node.n_cols; +// +// if(cph_do_scale){ +// x_node_scale(); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node scaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// switch(type_beta) { +// +// case 'C' : +// +// beta_fit = newtraph_cph(); +// +// if(cph_do_scale){ +// for(i = 0; i < x_transforms.n_rows; i++){ +// x_node.col(i) /= x_transforms(i,1); +// x_node.col(i) += x_transforms(i,0); +// } +// +// } +// +// break; +// +// case 'N' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww, +// net_alpha, +// net_df_target); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// case 'U' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// } +// +// +// if(any(beta_fit)){ +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node unscaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// XB = x_node * beta_fit; +// cutpoint = lrt_multi(); +// +// } +// +// if(!std::isinf(cutpoint)) break; +// n_retry++; +// +// } +// +// } +// +// } +// +// if(!std::isinf(cutpoint)){ +// +// // make new nodes if a valid cutpoint was found +// nn_left = nodes_max_true + 1; +// nodes_max_true = nodes_max_true + 2; +// +// +// // if(verbose > 0){ +// // +// // Rcout << "-------- New nodes created --------" << std::endl; +// // Rcout << "Left node: " << nn_left << std::endl; +// // Rcout << "Right node: " << nodes_max_true << std::endl; +// // Rcout << "-----------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// n_events_left = n_events_total - n_events_right; +// +// // if(verbose > 0){ +// // Rcout << "n_events_left: " << n_events_left << std::endl; +// // Rcout << "n_risk_left: " << n_risk_left << std::endl; +// // Rcout << "n_events_right: " << n_events_right << std::endl; +// // Rcout << "n_risk_right: " << n_risk_right << std::endl; +// // } +// +// i=0; +// +// for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ +// +// node_assignments[*iit] = nn_left + group[i]; +// +// } +// +// if(n_events_left >= 2*leaf_min_events && +// n_risk_left >= 2*leaf_min_obs && +// n_events_left >= split_min_events && +// n_risk_left >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nn_left}); +// +// } else { +// +// rows_leaf = find(group==0); +// leaf_indices(leaf_node_index_counter, 0) = nn_left; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nn_left << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(n_events_right >= 2*leaf_min_events && +// n_risk_right >= 2*leaf_min_obs && +// n_events_right >= split_min_events && +// n_risk_right >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nodes_max_true}); +// +// } else { +// +// rows_leaf = find(group==1); +// leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nodes_max_true << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); +// +// for(i = 0; i < n_cols_to_sample; i++){ +// betas.at(i, *node) = beta_fit[i]; +// // x_mean.at(i, *node) = x_transforms(i, 0); +// col_indices.at(i, *node) = cols_node[i]; +// } +// +// children_left[*node] = nn_left; +// cutpoints[*node] = cutpoint; +// +// } else { +// +// // make a leaf node if a valid cutpoint could not be found +// leaf_indices(leaf_node_index_counter, 0) = *node; +// leaf_kaplan(y_node, w_node); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << *node << std::endl; +// // Rcout << "n_obs: " << sum(w_node) << std::endl; +// // Rcout << "n_events: " << sum(w_node % y_node.col(1)); +// // Rcout << std::endl; +// // Rcout << "Couldn't find a cutpoint??" << std::endl; +// // Rcout << "------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// } +// +// nodes_to_grow = nodes_to_grow_next; +// +// } while (nodes_to_grow.size() > 0); +// +// return( +// List::create( +// +// _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), +// +// _["leaf_node_index"] = conv_to::from( +// leaf_indices.rows(span(0, leaf_node_index_counter-1)) +// ), +// +// _["betas"] = betas.cols(span(0, nodes_max_true)), +// +// // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), +// +// _["col_indices"] = conv_to::from( +// col_indices.cols(span(0, nodes_max_true)) +// ), +// +// _["cut_points"] = cutpoints(span(0, nodes_max_true)), +// +// _["children_left"] = conv_to::from( +// children_left(span(0, nodes_max_true)) +// ), +// +// _["rows_oobag"] = conv_to::from(rows_oobag) +// +// ) +// ); +// +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- orsf functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // fit an oblique random survival forest. +// // +// // @param x matrix of predictors +// // @param y matrix of outcomes +// // @param weights vector of weights +// // @param n_tree number of trees to fit +// // @param n_split_ number of splits to try with lrt +// // @param mtry_ number of predictors to try +// // @param leaf_min_events_ min number of events in a leaf +// // @param leaf_min_obs_ min number of observations in a leaf +// // @param split_min_events_ min number of events to split a node +// // @param split_min_obs_ min number of observations to split a node +// // @param split_min_stat_ min lrt to split a node +// // @param cph_method_ method for ties +// // @param cph_eps_ criteria for convergence of newton raphson algorithm +// // @param cph_iter_max_ max number of newton raphson iterations +// // @param cph_do_scale_ to scale or not to scale +// // @param net_alpha_ alpha parameter for glmnet +// // @param net_df_target_ degrees of freedom for glmnet +// // @param oobag_pred_ whether to predict out-of-bag preds or not +// // @param oobag_pred_type_ what type of out-of-bag preds to compute +// // @param oobag_pred_horizon_ out-of-bag prediction horizon +// // @param oobag_eval_every_ trees between each evaluation of oob error +// // @param oobag_importance_ to compute importance or not +// // @param oobag_importance_type_ type of importance to compute +// // @param tree_seeds vector of seeds to set before each tree is fit +// // @param max_retry_ max number of retries for linear combinations +// // @param f_beta function to find linear combinations of predictors +// // @param type_beta_ what type of linear combination to find +// // @param f_oobag_eval function to evaluate out-of-bag error +// // @param type_oobag_eval_ whether to use default or custom out-of-bag error +// // +// // @return an orsf_fit object sent back to R +// +// // [[Rcpp::export]] +// List orsf_fit(NumericMatrix& x, +// NumericMatrix& y, +// NumericVector& weights, +// const int& n_tree, +// const int& n_split_, +// const int& mtry_, +// const double& leaf_min_events_, +// const double& leaf_min_obs_, +// const double& split_min_events_, +// const double& split_min_obs_, +// const double& split_min_stat_, +// const int& cph_method_, +// const double& cph_eps_, +// const int& cph_iter_max_, +// const bool& cph_do_scale_, +// const double& net_alpha_, +// const int& net_df_target_, +// const bool& oobag_pred_, +// const char& oobag_pred_type_, +// const double& oobag_pred_horizon_, +// const int& oobag_eval_every_, +// const bool& oobag_importance_, +// const char& oobag_importance_type_, +// IntegerVector& tree_seeds, +// const int& max_retry_, +// Function f_beta, +// const char& type_beta_, +// Function f_oobag_eval, +// const char& type_oobag_eval_){ +// +// +// // convert inputs into arma objects +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// w_user = vec(weights.begin(), weights.length(), false); +// +// // these change later in ostree_fit() +// n_rows = x_input.n_rows; +// n_vars = x_input.n_cols; +// +// // initialize the variable importance (vi) vectors +// vi_pval_numer.zeros(n_vars); +// vi_pval_denom.zeros(n_vars); +// +// // if(verbose > 0){ +// // Rcout << "------------ dimensions ------------" << std::endl; +// // Rcout << "N obs total: " << n_rows << std::endl; +// // Rcout << "N columns total: " << n_vars << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// n_split = n_split_; +// mtry = mtry_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// split_min_events = split_min_events_; +// split_min_obs = split_min_obs_; +// split_min_stat = split_min_stat_; +// cph_method = cph_method_; +// cph_eps = cph_eps_; +// cph_iter_max = cph_iter_max_; +// cph_do_scale = cph_do_scale_; +// net_alpha = net_alpha_; +// net_df_target = net_df_target_; +// oobag_pred = oobag_pred_; +// oobag_pred_type = oobag_pred_type_; +// oobag_eval_every = oobag_eval_every_; +// oobag_eval_counter = 0; +// oobag_importance = oobag_importance_; +// oobag_importance_type = oobag_importance_type_; +// use_tree_seed = tree_seeds.length() > 0; +// max_retry = max_retry_; +// type_beta = type_beta_; +// type_oobag_eval = type_oobag_eval_; +// temp1 = 1.0 / n_rows; +// +// if(cph_iter_max > 1) cph_do_scale = true; +// +// if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; +// +// if(oobag_pred){ +// +// time_pred = oobag_pred_horizon_; +// +// if(time_pred == 0) time_pred = median(y_input.col(0)); +// +// eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); +// +// } else { +// +// eval_oobag.set_size(0); +// +// } +// +// // if(verbose > 0){ +// // Rcout << "------------ input variables ------------" << std::endl; +// // Rcout << "n_split: " << n_split << std::endl; +// // Rcout << "mtry: " << mtry << std::endl; +// // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; +// // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; +// // Rcout << "cph_method: " << cph_method << std::endl; +// // Rcout << "cph_eps: " << cph_eps << std::endl; +// // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; +// // Rcout << "-----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// // ---------------------------------------------------- +// // ---- sample weights to mimic a bootstrap sample ---- +// // ---------------------------------------------------- +// +// // s is the number of times you might get selected into +// // a bootstrap sample. Realistically this won't be >10, +// // but it could technically be as big as n_row. +// IntegerVector s = seq(0, 10); +// +// // compute probability of being selected into the bootstrap +// // 0 times, 1, times, ..., 9 times, or 10 times. +// NumericVector probs = dbinom(s, n_rows, temp1, false); +// +// // --------------------------------------------- +// // ---- preallocate memory for tree outputs ---- +// // --------------------------------------------- +// +// cols_to_sample_01.zeros(n_vars); +// leaf_nodes.zeros(n_rows, 3); +// +// if(oobag_pred){ +// +// surv_pvec.zeros(n_rows); +// denom_pred.zeros(n_rows); +// +// } else { +// +// surv_pvec.set_size(0); +// denom_pred.set_size(0); +// +// } +// +// // guessing the number of nodes needed to grow a tree +// nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); +// +// betas.zeros(mtry, nodes_max_guess); +// // x_mean.zeros(mtry, nodes_max_guess); +// col_indices.zeros(mtry, nodes_max_guess); +// cutpoints.zeros(nodes_max_guess); +// children_left.zeros(nodes_max_guess); +// leaf_indices.zeros(nodes_max_guess, 3); +// +// // some great variable names here +// List forest(n_tree); +// +// for(tree = 0; tree < n_tree; ){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// // -------------------------------------------- +// // ---- initialize parameters to grow tree ---- +// // -------------------------------------------- +// +// // rows_inbag = find(w_inbag != 0); +// +// if(use_tree_seed) set_seed_r(tree_seeds[tree]); +// +// w_input = as(sample(s, n_rows, true, probs)); +// +// // if the user gives a weight vector, then each bootstrap weight +// // should be multiplied by the corresponding user weight. +// if(w_user.size() > 0) w_input = w_input % w_user; +// +// rows_oobag = find(w_input == 0); +// rows_inbag = regspace(0, n_rows-1); +// rows_inbag = std_setdiff(rows_inbag, rows_oobag); +// w_inbag = w_input(rows_inbag); +// +// // if(verbose > 0){ +// // +// // Rcout << "------------ boot weights ------------" << std::endl; +// // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; +// // Rcout << "total: " << sum(w_inbag) << std::endl; +// // Rcout << "N > 0: " << rows_inbag.size() << std::endl; +// // Rcout << "--------------------------------------" << +// // std::endl << std::endl << std::endl; +// // +// // } +// +// x_inbag = x_input.rows(rows_inbag); +// y_inbag = y_input.rows(rows_inbag); +// +// if(oobag_pred){ +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(rows_oobag.size()); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1, temp_uword_2; +// // +// // if(x_inbag.n_rows < 5) +// // temp_uword_1 = x_inbag.n_rows-1; +// // else +// // temp_uword_1 = 5; +// // +// // if(x_inbag.n_cols < 5) +// // temp_uword_2 = x_inbag.n_cols-1; +// // else +// // temp_uword_2 = 4; +// // +// // Rcout << "x inbag: " << std::endl << +// // x_inbag.submat(0, 0, +// // temp_uword_1, +// // temp_uword_2) << std::endl; +// // +// // } +// +// forest[tree] = ostree_fit(f_beta); +// +// // add 1 to tree here instead of end of loop +// // (more convenient to compute tree % oobag_eval_every) +// tree++; +// +// if(oobag_pred){ +// +// denom_pred(rows_oobag) += 1; +// ostree_pred_leaf(); +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(tree % oobag_eval_every == 0){ +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); +// oobag_eval_counter++; +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// eval_oobag[oobag_eval_counter] = as( +// f_oobag_eval(y, ww) +// ); +// +// oobag_eval_counter++; +// +// break; +// +// } +// +// +// } +// +// } +// +// } +// +// +// +// vec vimp(x_input.n_cols); +// +// // ANOVA importance +// if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; +// +// // if we are computing variable importance, surv_pvec is about +// // to get modified, and we don't want to return the modified +// // version of surv_pvec. +// // So make a deep copy if oobag_importance is true. +// // Make a shallow copy if oobag_importance is false +// surv_pvec_output = vec(surv_pvec.begin(), +// surv_pvec.size(), +// oobag_importance); +// +// if(oobag_importance && n_tree > 0){ +// +// uvec betas_to_flip; +// oobag_eval_counter--; +// +// for(uword variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < n_tree; ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// if(oobag_importance_type == 'P'){ +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// } +// +// ostree_mem_xfer(); +// +// +// if(oobag_importance_type == 'N'){ +// betas_to_flip = find(col_indices == variable); +// betas.elem( betas_to_flip ) *= (-1); +// } +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(oobag_importance_type == 'N'){ +// betas.elem( betas_to_flip ) *= (-1); +// } +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = eval_oobag[oobag_eval_counter] - +// oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = +// eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); +// +// +// break; +// +// } +// +// } +// +// } +// +// if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; +// +// return( +// List::create( +// _["forest"] = forest, +// _["pred_oobag"] = surv_pvec_output, +// _["pred_horizon"] = time_pred, +// _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, +// _["stat_type"] = type_oobag_eval), +// _["importance"] = vimp +// ) +// ); +// +// +// } +// +// // @description compute negation importance +// // +// // @param x matrix of predictors +// // @param y outcome matrix +// // @param forest forest object from an orsf_fit +// // @param last_eval_stat the last estimate of out-of-bag error +// // @param time_pred_ the prediction horizon +// // @param f_oobag_eval function used to evaluate out-of-bag error +// // @param pred_type_ the type of prediction to compute +// // @param type_oobag_eval_ custom or default out-of-bag predictions +// // +// // @return a vector of importance values +// // +// // [[Rcpp::export]] +// arma::vec orsf_oob_negate_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uvec betas_to_flip; +// uword variable; +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// ostree_mem_xfer(); +// +// betas_to_flip = find(col_indices == variable); +// +// betas.elem( betas_to_flip ) *= (-1); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// betas.elem( betas_to_flip ) *= (-1); +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // same as above but computes permutation importance instead of negation +// // [[Rcpp::export]] +// arma::vec orsf_oob_permute_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uword variable; +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// +// ostree_mem_xfer(); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// // x_variable = x_variable_original; +// // x_input.col(variable) = x_variable; +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // predictions from an oblique random survival forest +// // +// // @description makes predictions based on a single horizon +// // +// // @param forest forest object from orsf_fit object +// // @param x_new matrix of predictors +// // @param time_dbl prediction horizon +// // @param pred_type type of prediction to compute +// // +// // [[Rcpp::export]] +// arma::mat orsf_pred_uni(List& forest, +// NumericMatrix& x_new, +// double time_dbl, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// time_pred = time_dbl; +// +// // memory for outputs +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.zeros(x_pred.n_rows); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pvec); +// } else { +// return(surv_pvec); +// } +// +// } +// +// // same as above but makes predictions for multiple horizons +// // [[Rcpp::export]] +// arma::mat orsf_pred_multi(List& forest, +// NumericMatrix& x_new, +// NumericVector& time_vec, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// times_pred = vec(time_vec.begin(), time_vec.length(), false); +// +// // memory for outputs +// // initial values don't matter for leaf_pred, +// // but do matter for surv_pmat +// leaf_pred.set_size(x_pred.n_rows); +// surv_pmat.zeros(x_pred.n_rows, times_pred.size()); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_multi(pred_type); +// } +// +// surv_pmat /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pmat); +// } else { +// return(surv_pmat); +// } +// +// } +// +// // partial dependence for new data +// // +// // @description calls predict on the data with a predictor fixed +// // and then summarizes the predictions. +// // +// // @param forest a forest object from an orsf_fit object +// // @param x_new_ matrix of predictors +// // @param x_cols_ columns of variables of interest +// // @param x_vals_ values to set these columsn to +// // @param probs_ for quantiles +// // @param time_dbl prediction horizon +// // @param pred_type prediction type +// // +// // @return matrix with partial dependence +// // [[Rcpp::export]] +// arma::mat pd_new_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// +// // same as above but for out-of-bag data +// // [[Rcpp::export]] +// arma::mat pd_oob_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// // same as above but doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_new_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_pred.n_rows; +// +// +// } +// +// return(output_ice); +// +// } +// +// // same as above but out-of-bag and doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_oob_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat output_ice(x_vals.n_rows * x_input.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); +// +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_input.n_rows; +// +// +// } +// +// return(output_ice); +// +// } +// +// +// From ca9e7dface7240c93c80ea229d77862cab591dd3 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sat, 17 Sep 2022 22:42:37 -0400 Subject: [PATCH 011/103] bootstrap and surv classes --- R/RcppExports.R | 8 +- src/Data.h | 8 ++ src/Forest.cpp | 32 ++++++ src/Forest.h | 144 +++++++++++++++++++++++++ src/ForestSurvival.cpp | 16 +++ src/ForestSurvival.h | 38 +++++++ src/RcppExports.cpp | 26 ++++- src/Tree.h | 29 +---- src/TreeSurvival.cpp | 16 +++ src/TreeSurvival.h | 32 ++++++ src/globals.h | 3 + src/orsf_oop.cpp | 83 +++++++++++++- tests/testthat/test-bootstrap_sample.R | 66 ++++++++++++ 13 files changed, 467 insertions(+), 34 deletions(-) create mode 100644 src/Forest.cpp create mode 100644 src/Forest.h create mode 100644 src/ForestSurvival.cpp create mode 100644 src/ForestSurvival.h create mode 100644 src/TreeSurvival.cpp create mode 100644 src/TreeSurvival.h create mode 100644 tests/testthat/test-bootstrap_sample.R diff --git a/R/RcppExports.R b/R/RcppExports.R index 2e06b32e..15734c72 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,7 +1,11 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -orsf_cpp <- function(x, y_ctns, y_intg, weights) { - invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights)) +bootstrap_sample_testthat <- function(x, y_ctns, y_intg, weights) { + .Call(`_aorsf_bootstrap_sample_testthat`, x, y_ctns, y_intg, weights) +} + +orsf_cpp <- function(x, y_ctns, y_intg, weights, vi = 0L, sr = 1L, pt = 1L) { + invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights, vi, sr, pt)) } diff --git a/src/Data.h b/src/Data.h index cd55769a..0d04dce4 100644 --- a/src/Data.h +++ b/src/Data.h @@ -36,6 +36,10 @@ } + arma::vec get_weights() const { + return(weights); + } + arma::uword get_n_rows() const { return(x.n_rows); } @@ -44,6 +48,10 @@ return(x.n_cols); } + bool has_wts() const { + return(!weights.empty()); + } + arma::mat get_x_rows(arma::uvec vector_of_row_indices) const { return(x.rows(vector_of_row_indices)); } diff --git a/src/Forest.cpp b/src/Forest.cpp new file mode 100644 index 00000000..74cb3f8b --- /dev/null +++ b/src/Forest.cpp @@ -0,0 +1,32 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Forest.h" + + namespace aorsf { + + Forest::Forest() : + data(0), + mtry(0), + max_retry(DEFAULT_MAX_RETRY), + split_rule(DEFAULT_SPLITRULE_SURVIVAL), + n_split(DEFAULT_N_SPLIT), + leaf_min_obs(0), + split_min_obs(0), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + pred_type(DEFAULT_PRED_TYPE), + oobag_eval_every(0), + variable_importance(DEFAULT_IMPORTANCE), + seed(0) { + + } + + + + } // namespace aorsf diff --git a/src/Forest.h b/src/Forest.h new file mode 100644 index 00000000..8a03b29b --- /dev/null +++ b/src/Forest.h @@ -0,0 +1,144 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef FOREST_H_ +#define FOREST_H_ + + +#include "Data.h" +#include "globals.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class Forest { + public: + + // Default constructor with no arguments + Forest(); + + // Expect to redefine constructors for survival/classif/regression + virtual ~Forest() = default; + + // Don't allow unitialized Forests + Forest(const Forest&) = delete; + Forest& operator=(const Forest&) = delete; + + void init( + const Data* data, + const int mtry, + const int max_retry, + SplitRule split_rule, + const int n_split, + const int leaf_min_obs, + const int split_min_obs, + const int split_min_stat, + PredType pred_type, + const int oobag_eval_every, + VariableImportance variable_importance, + const int seed + ) { + + this->data = data; + this->mtry = mtry; + this->max_retry = max_retry; + this->split_rule = split_rule; + this->n_split = n_split; + this->leaf_min_obs = leaf_min_obs; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->pred_type = pred_type; + this->oobag_eval_every = oobag_eval_every; + this->variable_importance = variable_importance; + + }; + + int get_mtry() const { + return mtry; + } + + int get_max_retry() const { + return max_retry; + } + + SplitRule get_split_rule() const { + return split_rule; + } + + int get_n_split() const { + return n_split; + } + + int get_leaf_min_obs() const { + return leaf_min_obs; + } + + int get_split_min_obs() const { + return split_min_obs; + } + + int get_split_min_stat() const { + return split_min_stat; + } + + int get_pred_type() const { + return pred_type; + } + + int get_oobag_eval_every() const { + return oobag_eval_every; + } + + VariableImportance get_variable_importance() const { + return variable_importance; + } + + // INPUTS + + // Pointer to original data + const Data* data; + + // number of predictors used to split a node + int mtry; + + // maximum number of retry attempts to split a node + int max_retry; + + // how to measure quality of a node split + SplitRule split_rule; + + // number of cutpoints to assess during node split + int n_split; + + // minimum number of observations needed in a leaf node + int leaf_min_obs; + + // minimum number of observations needed to split a node + int split_min_obs; + + // minimum value of split statistic needed to split a node + int split_min_stat; + + // what type of oobag prediction to compute + PredType pred_type; + + // evaluate oobag error every X trees + int oobag_eval_every; + + // what type of variable importance to compute + VariableImportance variable_importance; + + // random seed to be set before growing + int seed; + + protected: + + }; + + } // namespace aorsf + +#endif /* FOREST_H_ */ diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp new file mode 100644 index 00000000..06fc6a66 --- /dev/null +++ b/src/ForestSurvival.cpp @@ -0,0 +1,16 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "ForestSurvival.h" +#include "Data.h" + + namespace aorsf { + + + } // namespace aorsf diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h new file mode 100644 index 00000000..795ca471 --- /dev/null +++ b/src/ForestSurvival.h @@ -0,0 +1,38 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef FORESTSURVIVAL_H_ +#define FORESTSURVIVAL_H_ + + +#include "globals.h" +#include "Forest.h" +#include "TreeSurvival.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class ForestSurvival: public Forest { + public: + + // Default constructor with no arguments + ForestSurvival(); + + // Expect to redefine constructors for survival/classif/regression + virtual ~ForestSurvival() = default; + + // Don't allow unitialized ForestSurvivals + ForestSurvival(const ForestSurvival&) = delete; + ForestSurvival& operator=(const ForestSurvival&) = delete; + + protected: + + }; + + } // namespace aorsf + +#endif /* FOREST_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 119fd19f..28c51a71 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,22 +11,40 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif +// bootstrap_sample_testthat +arma::vec bootstrap_sample_testthat(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); +RcppExport SEXP _aorsf_bootstrap_sample_testthat(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); + Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); + rcpp_result_gen = Rcpp::wrap(bootstrap_sample_testthat(x, y_ctns, y_intg, weights)); + return rcpp_result_gen; +END_RCPP +} // orsf_cpp -void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { +void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, const int vi, const int sr, const int pt); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { BEGIN_RCPP Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); - orsf_cpp(x, y_ctns, y_intg, weights); + Rcpp::traits::input_parameter< const int >::type vi(viSEXP); + Rcpp::traits::input_parameter< const int >::type sr(srSEXP); + Rcpp::traits::input_parameter< const int >::type pt(ptSEXP); + orsf_cpp(x, y_ctns, y_intg, weights, vi, sr, pt); return R_NilValue; END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 4}, + {"_aorsf_bootstrap_sample_testthat", (DL_FUNC) &_aorsf_bootstrap_sample_testthat, 4}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/Tree.h b/src/Tree.h index 16e52de3..c572b8f5 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,7 +7,6 @@ #ifndef TREE_H_ #define TREE_H_ -#include #include "Data.h" #include "globals.h" @@ -33,8 +32,8 @@ virtual ~Tree() = default; // Don't allow unitialized trees - // Tree(const Tree&) = delete; - // Tree& operator=(const Tree&) = delete; + Tree(const Tree&) = delete; + Tree& operator=(const Tree&) = delete; void init( const Data* data, @@ -105,30 +104,6 @@ return variable_importance; } - // @description sample weights to mimic a bootstrap sample - arma::ivec bootstrap_sample() const { - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - Rcpp::IntegerVector s = Rcpp::seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - - arma::uword n_rows = data->get_n_rows(); - - int n_rows_int = n_rows; - - Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows_int, 1.0/n_rows_int, false); - - return( - Rcpp::as( - Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) - ) - ); - - } - // INPUTS // Pointer to original data diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp new file mode 100644 index 00000000..5fbe01c2 --- /dev/null +++ b/src/TreeSurvival.cpp @@ -0,0 +1,16 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include + +#include "globals.h" +#include "Tree.h" + + namespace aorsf { + + + + } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h new file mode 100644 index 00000000..24c1afea --- /dev/null +++ b/src/TreeSurvival.h @@ -0,0 +1,32 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef TREESURVIVAL_H_ +#define TREESURVIVAL_H_ + +#include "globals.h" +#include "Tree.h" + +// [[Rcpp::depends(RcppArmadillo)]] + + namespace aorsf { + + class TreeSurvival : public Tree { + public: + + TreeSurvival(); + + // Don't allow unitialized trees + TreeSurvival(const TreeSurvival&) = delete; + TreeSurvival& operator=(const TreeSurvival&) = delete; + + virtual ~TreeSurvival() override = default; + + }; + + } // namespace aorsf + +#endif /* TREESURVIVAL_H_ */ diff --git a/src/globals.h b/src/globals.h index ba060d0d..fa909cd0 100644 --- a/src/globals.h +++ b/src/globals.h @@ -62,8 +62,11 @@ const int DEFAULT_LEAF_MIN_OBS_REGRESSION = 5; const int DEFAULT_LEAF_MIN_OBS_SURVIVAL = 10; const int DEFAULT_LEAF_MIN_OBS_PROBABILITY = 10; + const int DEFAULT_MAX_RETRY = 3; + const double DEFAULT_SPLIT_MIN_STAT = 3.84; + const int DEFAULT_SPLIT_MIN_OBS = 10; const SplitRule DEFAULT_SPLITRULE_SURVIVAL = SPLIT_LOGRANK; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 518d4867..784f8786 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -9,9 +9,11 @@ #----------------------------------------------------------------------------*/ #include +#include #include "Data.h" #include "globals.h" +#include "Forest.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -19,22 +21,101 @@ using namespace Rcpp; using namespace arma; using namespace aorsf; +// @description sample weights to mimic a bootstrap sample +arma::vec bootstrap_sample(const Data* data) { + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0.0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + + arma::uword n_rows = data->get_n_rows(); + + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); + + arma::vec boot_wts = Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ); + + if(data->has_wts()){ + + boot_wts = boot_wts % data->get_weights(); + + } + + return(boot_wts); + +} + + +// @description sample weights to mimic a bootstrap sample +// [[Rcpp::export]] +arma::vec bootstrap_sample_testthat(arma::mat& x, + arma::vec& y_ctns, + arma::ivec& y_intg, + arma::vec& weights) { + + Data data = Data(x, y_ctns, y_intg, weights); + Data* data_ptr = &data; + return bootstrap_sample(data_ptr); + +} // [[Rcpp::export]] void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, - arma::vec& weights){ + arma::vec& weights, + const int vi = 0, + const int sr = 1, + const int pt = 1){ + + + const int mtry = 2; + const int max_retry = DEFAULT_MAX_RETRY; + const int n_split = DEFAULT_N_SPLIT; + const int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + const int split_min_obs = DEFAULT_SPLIT_MIN_OBS; + const int split_min_stat = DEFAULT_SPLIT_MIN_STAT; + const int oobag_eval_every = 0; + const int seed = 0; + + VariableImportance variable_importance = static_cast(vi); + SplitRule split_rule = static_cast(sr); + PredType pred_type = static_cast(pt); + + // if( variable_importance == VI_NONE ) Rcout << variable_importance << std::endl; Data data = Data(x, y_ctns, y_intg, weights); + Data* data_ptr = &data; + Rcout << "------------ dimensions ------------" << std::endl; Rcout << "N obs total: " << data.get_n_rows() << std::endl; Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "mtry: " << mtry << std::endl; Rcout << "------------------------------------"; Rcout << std::endl << std::endl << std::endl; + Forest forest; + + forest.init(data_ptr, + mtry, + max_retry, + split_rule, + n_split, + leaf_min_obs, + split_min_obs, + split_min_stat, + pred_type, + oobag_eval_every, + variable_importance, + seed); + + diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R new file mode 100644 index 00000000..34751fda --- /dev/null +++ b/tests/testthat/test-bootstrap_sample.R @@ -0,0 +1,66 @@ + + + +# test setup -------------------------------------------------------------- + +n <- 1e6 +x = matrix(rnorm(n = n), ncol = 1) +y_dbl = x +y_int = sample.int(2, size = n, replace = TRUE) + +weights_2s = rep(2, nrow(x)) +weights_empty = double(0) + +set.seed(329) +samp_2s_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_2s) +set.seed(329) +samp_no_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) + + +# test behavior ----------------------------------------------------------- + +test_that( + desc = "max times sampled is < 10", + code = { + expect_lt(object = max(samp_no_wts), expected = 10) + } +) + +test_that( + desc = "bootstrap weights are multiplied by data weights", + code = { + # also shows bootstrap weights are replicable by seed set in R + expect_equal(samp_no_wts, samp_2s_wts / 2) + } +) + +test_that( + desc = "bootstrap weights include roughly 63.2% of original sample", + code = { + expect_equal(mean(samp_no_wts > 0), 0.632, tolerance = 0.01) + } +) + +# test performance -------------------------------------------------------- + +# r_fun <- function(x, wts){ +# +# s = seq(0, 10) +# n_rows = nrow(x) +# probs = dbinom(s, n_rows, 1.0/n_rows, FALSE) +# +# boot_wts = sample(s, n_rows, TRUE, probs); +# +# if(length(wts) > 0){ +# boot_wts = boot_wts * wts; +# } +# return(boot_wts); +# +# } +# +# microbenchmark::microbenchmark( +# r_fun = r_fun(x, wts = weights_empty), +# c_fun = bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) +# ) + + From 4f27a8ce50c9b386f1ff5ea2e082f7007514fab3 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Sun, 18 Sep 2022 23:42:09 -0400 Subject: [PATCH 012/103] informal memory trace check --- tests/testthat/test-bootstrap_sample.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R index 34751fda..bc7aa179 100644 --- a/tests/testthat/test-bootstrap_sample.R +++ b/tests/testthat/test-bootstrap_sample.R @@ -11,6 +11,14 @@ y_int = sample.int(2, size = n, replace = TRUE) weights_2s = rep(2, nrow(x)) weights_empty = double(0) + +# if any object's memory is copied, it will make the test output messy +# (I am not sure how to formally make a test fail when memory is copied) +tracemem(x) +tracemem(y_dbl) +tracemem(y_int) +tracemem(weights_2s) + set.seed(329) samp_2s_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_2s) set.seed(329) From e845af132374167f9ae760a8f46e16427e0cedcf Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Tue, 20 Sep 2022 10:29:05 -0400 Subject: [PATCH 013/103] arma objects causing trouble unless in header --- src/Data.h | 20 ++---- src/Forest.cpp | 32 --------- src/Forest.h | 144 -------------------------------------- src/ForestSurvival.cpp | 16 ----- src/ForestSurvival.h | 38 ----------- src/RcppExports.cpp | 8 +-- src/Tree.cpp | 35 ++++++---- src/Tree.h | 152 +++++++++++++++++++---------------------- src/TreeSurvival.cpp | 16 ----- src/TreeSurvival.h | 32 --------- src/globals.h | 2 - src/orsf_oop.cpp | 65 +++++++++--------- 12 files changed, 135 insertions(+), 425 deletions(-) delete mode 100644 src/Forest.cpp delete mode 100644 src/Forest.h delete mode 100644 src/ForestSurvival.cpp delete mode 100644 src/ForestSurvival.h delete mode 100644 src/TreeSurvival.cpp delete mode 100644 src/TreeSurvival.h diff --git a/src/Data.h b/src/Data.h index 0d04dce4..5075663e 100644 --- a/src/Data.h +++ b/src/Data.h @@ -7,9 +7,7 @@ #ifndef DATA_H_ #define DATA_H_ -#include #include -#include "globals.h" namespace aorsf { @@ -24,30 +22,22 @@ arma::ivec& y_int, arma::vec& weights) { - // arma::mat x_ = arma::mat(x.begin(), x.nrow(), x.ncol(), false); - // arma::vec y_dbl_ = arma::vec(y_dbl.begin(), y_dbl.length(), false); - // arma::ivec y_int_ = arma::ivec(y_int.begin(), y_int.length(), false); - // arma::vec weights_ = arma::vec(weights.begin(), weights.length(), false); - this->x = x; this->y_dbl = y_dbl; this->y_int = y_int; this->weights = weights; + this->n_cols = x.n_cols; + this->n_rows = x.n_rows; } + arma::uword n_rows; + arma::uword n_cols; + arma::vec get_weights() const { return(weights); } - arma::uword get_n_rows() const { - return(x.n_rows); - } - - arma::uword get_n_cols() const { - return(x.n_cols); - } - bool has_wts() const { return(!weights.empty()); } diff --git a/src/Forest.cpp b/src/Forest.cpp deleted file mode 100644 index 74cb3f8b..00000000 --- a/src/Forest.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "Forest.h" - - namespace aorsf { - - Forest::Forest() : - data(0), - mtry(0), - max_retry(DEFAULT_MAX_RETRY), - split_rule(DEFAULT_SPLITRULE_SURVIVAL), - n_split(DEFAULT_N_SPLIT), - leaf_min_obs(0), - split_min_obs(0), - split_min_stat(DEFAULT_SPLIT_MIN_STAT), - pred_type(DEFAULT_PRED_TYPE), - oobag_eval_every(0), - variable_importance(DEFAULT_IMPORTANCE), - seed(0) { - - } - - - - } // namespace aorsf diff --git a/src/Forest.h b/src/Forest.h deleted file mode 100644 index 8a03b29b..00000000 --- a/src/Forest.h +++ /dev/null @@ -1,144 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef FOREST_H_ -#define FOREST_H_ - - -#include "Data.h" -#include "globals.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class Forest { - public: - - // Default constructor with no arguments - Forest(); - - // Expect to redefine constructors for survival/classif/regression - virtual ~Forest() = default; - - // Don't allow unitialized Forests - Forest(const Forest&) = delete; - Forest& operator=(const Forest&) = delete; - - void init( - const Data* data, - const int mtry, - const int max_retry, - SplitRule split_rule, - const int n_split, - const int leaf_min_obs, - const int split_min_obs, - const int split_min_stat, - PredType pred_type, - const int oobag_eval_every, - VariableImportance variable_importance, - const int seed - ) { - - this->data = data; - this->mtry = mtry; - this->max_retry = max_retry; - this->split_rule = split_rule; - this->n_split = n_split; - this->leaf_min_obs = leaf_min_obs; - this->split_min_obs = split_min_obs; - this->split_min_stat = split_min_stat; - this->pred_type = pred_type; - this->oobag_eval_every = oobag_eval_every; - this->variable_importance = variable_importance; - - }; - - int get_mtry() const { - return mtry; - } - - int get_max_retry() const { - return max_retry; - } - - SplitRule get_split_rule() const { - return split_rule; - } - - int get_n_split() const { - return n_split; - } - - int get_leaf_min_obs() const { - return leaf_min_obs; - } - - int get_split_min_obs() const { - return split_min_obs; - } - - int get_split_min_stat() const { - return split_min_stat; - } - - int get_pred_type() const { - return pred_type; - } - - int get_oobag_eval_every() const { - return oobag_eval_every; - } - - VariableImportance get_variable_importance() const { - return variable_importance; - } - - // INPUTS - - // Pointer to original data - const Data* data; - - // number of predictors used to split a node - int mtry; - - // maximum number of retry attempts to split a node - int max_retry; - - // how to measure quality of a node split - SplitRule split_rule; - - // number of cutpoints to assess during node split - int n_split; - - // minimum number of observations needed in a leaf node - int leaf_min_obs; - - // minimum number of observations needed to split a node - int split_min_obs; - - // minimum value of split statistic needed to split a node - int split_min_stat; - - // what type of oobag prediction to compute - PredType pred_type; - - // evaluate oobag error every X trees - int oobag_eval_every; - - // what type of variable importance to compute - VariableImportance variable_importance; - - // random seed to be set before growing - int seed; - - protected: - - }; - - } // namespace aorsf - -#endif /* FOREST_H_ */ diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp deleted file mode 100644 index 06fc6a66..00000000 --- a/src/ForestSurvival.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "ForestSurvival.h" -#include "Data.h" - - namespace aorsf { - - - } // namespace aorsf diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h deleted file mode 100644 index 795ca471..00000000 --- a/src/ForestSurvival.h +++ /dev/null @@ -1,38 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef FORESTSURVIVAL_H_ -#define FORESTSURVIVAL_H_ - - -#include "globals.h" -#include "Forest.h" -#include "TreeSurvival.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class ForestSurvival: public Forest { - public: - - // Default constructor with no arguments - ForestSurvival(); - - // Expect to redefine constructors for survival/classif/regression - virtual ~ForestSurvival() = default; - - // Don't allow unitialized ForestSurvivals - ForestSurvival(const ForestSurvival&) = delete; - ForestSurvival& operator=(const ForestSurvival&) = delete; - - protected: - - }; - - } // namespace aorsf - -#endif /* FOREST_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 28c51a71..46447643 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -26,7 +26,7 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, const int vi, const int sr, const int pt); +void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, int vi, int sr, int pt); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { BEGIN_RCPP Rcpp::RNGScope rcpp_rngScope_gen; @@ -34,9 +34,9 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int >::type vi(viSEXP); - Rcpp::traits::input_parameter< const int >::type sr(srSEXP); - Rcpp::traits::input_parameter< const int >::type pt(ptSEXP); + Rcpp::traits::input_parameter< int >::type vi(viSEXP); + Rcpp::traits::input_parameter< int >::type sr(srSEXP); + Rcpp::traits::input_parameter< int >::type pt(ptSEXP); orsf_cpp(x, y_ctns, y_intg, weights, vi, sr, pt); return R_NilValue; END_RCPP diff --git a/src/Tree.cpp b/src/Tree.cpp index 90c3a7ec..37bc61df 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -5,27 +5,32 @@ #----------------------------------------------------------------------------*/ #include +#include + // [[Rcpp::depends(RcppArmadillo)]] +#include #include "globals.h" #include "Tree.h" namespace aorsf { - Tree::Tree() : - data(0), - mtry(0), - max_retry(DEFAULT_MAX_RETRY), - split_rule(DEFAULT_SPLITRULE_SURVIVAL), - n_split(DEFAULT_N_SPLIT), - leaf_min_obs(0), - split_min_obs(0), - split_min_stat(DEFAULT_SPLIT_MIN_STAT), - pred_type(DEFAULT_PRED_TYPE), - oobag_eval_every(0), - variable_importance(DEFAULT_IMPORTANCE), - seed(0) { - - } + void Tree::guess_max_nodes() { + + // arma::uword guess = std::ceil( + // 0.5 * data->get_n_rows() / this->leaf_min_obs + // ); + + // int a = 2; + // int b = 4; + // + // this->coef = Rcpp::NumericMatrix(a,b); + // this->coef_indices = arma::umat(a, b); + + // cutpoint.zeros(guess); + // left_node.zeros(guess); + // pred.zeros(guess, 1); + + } diff --git a/src/Tree.h b/src/Tree.h index c572b8f5..a02535be 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,48 +7,34 @@ #ifndef TREE_H_ #define TREE_H_ +#include +#include +// [[Rcpp::depends(RcppArmadillo)]] + #include "Data.h" +#include #include "globals.h" -// [[Rcpp::depends(RcppArmadillo)]] - namespace aorsf { class Tree { + public: - // Default constructor with no arguments - Tree(); - - // Create from loaded forest - // Tree(arma::mat& coef, - // arma::umat& coef_indices, - // arma::vec& cutpoint, - // arma::uvec& next_left_node, - // arma::mat& pred, - // arma::umat& pred_indices); // TODO: pred_indices to survival tree - - // Expect to redefine constructors for survival/classif/regression - virtual ~Tree() = default; - - // Don't allow unitialized trees - Tree(const Tree&) = delete; - Tree& operator=(const Tree&) = delete; - - void init( - const Data* data, - const int mtry, - const int max_retry, - SplitRule split_rule, - const int n_split, - const int leaf_min_obs, - const int split_min_obs, - const int split_min_stat, - PredType pred_type, - const int oobag_eval_every, - VariableImportance variable_importance, - const int seed - ) { + Tree() = default; + + Tree(const Data* data, + int mtry, + int max_retry, + SplitRule split_rule, + int n_split, + int leaf_min_obs, + int split_min_obs, + int split_min_stat, + PredType pred_type, + int oobag_eval_every, + VariableImportance variable_importance, + int seed){ this->data = data; this->mtry = mtry; @@ -62,50 +48,14 @@ this->oobag_eval_every = oobag_eval_every; this->variable_importance = variable_importance; - }; + int a = 2; + int b = 4; - int get_mtry() const { - return mtry; - } + this->coef = Rcpp::NumericMatrix(a,b); + this->coef_indices = arma::umat(a, b); - int get_max_retry() const { - return max_retry; } - SplitRule get_split_rule() const { - return split_rule; - } - - int get_n_split() const { - return n_split; - } - - int get_leaf_min_obs() const { - return leaf_min_obs; - } - - int get_split_min_obs() const { - return split_min_obs; - } - - int get_split_min_stat() const { - return split_min_stat; - } - - int get_pred_type() const { - return pred_type; - } - - int get_oobag_eval_every() const { - return oobag_eval_every; - } - - VariableImportance get_variable_importance() const { - return variable_importance; - } - - // INPUTS - // Pointer to original data const Data* data; @@ -142,14 +92,10 @@ // random seed to be set before growing int seed; - protected: - - // OUTPUTS - // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 - arma::mat coef; + Rcpp::NumericMatrix coef; // indices of the predictors used by arma::umat coef_indices; @@ -158,14 +104,60 @@ arma::vec cutpoint; // directions to the next node (right node = left node + 1) - arma::uvec next_left_node; + arma::uvec left_node; // predicted values (only in leaf nodes) arma::mat pred; // indices of predicted values for each leaf node + // TODO move to survivaltree arma::umat pred_indices; + void guess_max_nodes(); + + int get_mtry() const { + return mtry; + } + + int get_max_retry() const { + return max_retry; + } + + SplitRule get_split_rule() const { + return split_rule; + } + + int get_n_split() const { + return n_split; + } + + int get_leaf_min_obs() const { + return leaf_min_obs; + } + + int get_split_min_obs() const { + return split_min_obs; + } + + int get_split_min_stat() const { + return split_min_stat; + } + + int get_pred_type() const { + return pred_type; + } + + int get_oobag_eval_every() const { + return oobag_eval_every; + } + + VariableImportance get_variable_importance() const { + return variable_importance; + } + + + protected: + }; } // namespace aorsf diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp deleted file mode 100644 index 5fbe01c2..00000000 --- a/src/TreeSurvival.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "Tree.h" - - namespace aorsf { - - - - } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h deleted file mode 100644 index 24c1afea..00000000 --- a/src/TreeSurvival.h +++ /dev/null @@ -1,32 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef TREESURVIVAL_H_ -#define TREESURVIVAL_H_ - -#include "globals.h" -#include "Tree.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class TreeSurvival : public Tree { - public: - - TreeSurvival(); - - // Don't allow unitialized trees - TreeSurvival(const TreeSurvival&) = delete; - TreeSurvival& operator=(const TreeSurvival&) = delete; - - virtual ~TreeSurvival() override = default; - - }; - - } // namespace aorsf - -#endif /* TREESURVIVAL_H_ */ diff --git a/src/globals.h b/src/globals.h index fa909cd0..017c41d0 100644 --- a/src/globals.h +++ b/src/globals.h @@ -11,8 +11,6 @@ namespace aorsf { - typedef unsigned int uint; - // Tree types enum TreeType { TREE_CLASSIFICATION = 1, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 784f8786..8c65af90 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -13,7 +13,7 @@ #include "Data.h" #include "globals.h" -#include "Forest.h" +#include "Tree.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -31,7 +31,7 @@ arma::vec bootstrap_sample(const Data* data) { // compute probability of being selected into the bootstrap // 0 times, 1, times, ..., 9 times, or 10 times. - arma::uword n_rows = data->get_n_rows(); + arma::uword n_rows = data->n_rows; Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); @@ -69,19 +69,19 @@ void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, - const int vi = 0, - const int sr = 1, - const int pt = 1){ + int vi = 0, + int sr = 1, + int pt = 1){ - const int mtry = 2; - const int max_retry = DEFAULT_MAX_RETRY; - const int n_split = DEFAULT_N_SPLIT; - const int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; - const int split_min_obs = DEFAULT_SPLIT_MIN_OBS; - const int split_min_stat = DEFAULT_SPLIT_MIN_STAT; - const int oobag_eval_every = 0; - const int seed = 0; + int mtry = 2; + int max_retry = DEFAULT_MAX_RETRY; + int n_split = DEFAULT_N_SPLIT; + int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + int split_min_obs = DEFAULT_SPLIT_MIN_OBS; + int split_min_stat = DEFAULT_SPLIT_MIN_STAT; + int oobag_eval_every = 0; + int seed = 0; VariableImportance variable_importance = static_cast(vi); SplitRule split_rule = static_cast(sr); @@ -93,28 +93,31 @@ void orsf_cpp(arma::mat& x, Data* data_ptr = &data; - Rcout << "------------ dimensions ------------" << std::endl; - Rcout << "N obs total: " << data.get_n_rows() << std::endl; - Rcout << "N columns total: " << data.get_n_cols() << std::endl; - Rcout << "mtry: " << mtry << std::endl; + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data.n_rows << std::endl; + Rcout << "N columns total: " << data.n_cols << std::endl; + Rcout << "mtry: " << mtry << std::endl; Rcout << "------------------------------------"; Rcout << std::endl << std::endl << std::endl; - Forest forest; - - forest.init(data_ptr, - mtry, - max_retry, - split_rule, - n_split, - leaf_min_obs, - split_min_obs, - split_min_stat, - pred_type, - oobag_eval_every, - variable_importance, - seed); + Tree tree(data_ptr, + mtry, + max_retry, + split_rule, + n_split, + leaf_min_obs, + split_min_obs, + split_min_stat, + pred_type, + oobag_eval_every, + variable_importance, + seed); + Rcout << tree.coef << std::endl; + + tree.guess_max_nodes(); + + Rcout << tree.coef << std::endl; From 2813295ff902656d48f1815be0e5f5e1eef57c64 Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Tue, 27 Sep 2022 09:23:11 -0400 Subject: [PATCH 014/103] progress to coxph --- R/RcppExports.R | 8 +- src/Coxph.h | 788 +++++++++++++++++++++++++ src/Data.h | 63 +- src/Forest.cpp | 32 - src/Forest.h | 144 ----- src/ForestSurvival.cpp | 16 - src/ForestSurvival.h | 38 -- src/RcppExports.cpp | 34 +- src/Tree.cpp | 45 -- src/Tree.h | 164 +++-- src/TreeSurvival.cpp | 16 - src/TreeSurvival.h | 32 - src/globals.h | 2 + src/orsf_oop.cpp | 136 ++--- tests/testthat/test-bootstrap_sample.R | 65 +- 15 files changed, 993 insertions(+), 590 deletions(-) create mode 100644 src/Coxph.h delete mode 100644 src/Forest.cpp delete mode 100644 src/Forest.h delete mode 100644 src/ForestSurvival.cpp delete mode 100644 src/ForestSurvival.h delete mode 100644 src/TreeSurvival.cpp delete mode 100644 src/TreeSurvival.h diff --git a/R/RcppExports.R b/R/RcppExports.R index 15734c72..5a224da0 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,11 +1,7 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -bootstrap_sample_testthat <- function(x, y_ctns, y_intg, weights) { - .Call(`_aorsf_bootstrap_sample_testthat`, x, y_ctns, y_intg, weights) -} - -orsf_cpp <- function(x, y_ctns, y_intg, weights, vi = 0L, sr = 1L, pt = 1L) { - invisible(.Call(`_aorsf_orsf_cpp`, x, y_ctns, y_intg, weights, vi, sr, pt)) +orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L) { + invisible(.Call(`_aorsf_orsf_cpp`, x, y, w, vi, sr, pt)) } diff --git a/src/Coxph.h b/src/Coxph.h new file mode 100644 index 00000000..947d0c5c --- /dev/null +++ b/src/Coxph.h @@ -0,0 +1,788 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. +Author: Byron C Jaeger +aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef COXPH_H +#define COXPH_H + + // ---------------------------------------------------------------------------- + // ---------------------------- scaling functions ----------------------------- + // ---------------------------------------------------------------------------- + + // scale observations in predictor matrix + // + // @description this scales inputs in the same way as + // the survival::coxph() function. The main reasons we do this + // are to avoid exponential overflow and to prevent the scale + // of inputs from impacting the estimated beta coefficients. + // E.g., you can try multiplying numeric inputs by 100 prior + // to calling orsf() with orsf_control_fast(do_scale = FALSE) + // and you will see that you get back a different forest. + // + // @param x_node matrix of predictors + // @param w_node replication weights + // @param x_transforms matrix used to store the means and scales + // + // @return modified x_node and x_transform filled with values + // + void x_node_scale(){ + + // set aside memory for outputs + // first column holds the mean values + // second column holds the scale values + + x_transforms.zeros(n_vars, 2); + vec means = x_transforms.unsafe_col(0); // Reference to column 1 + vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + + w_node_sum = sum(w_node); + + for(i = 0; i < n_vars; i++) { + + means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; + + x_node.col(i) -= means.at(i); + + scales.at(i) = sum(w_node % abs(x_node.col(i))); + + if(scales(i) > 0) + scales.at(i) = w_node_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x_node.col(i) *= scales.at(i); + + } + + } + + // same as above function, but just the means + // (currently not used) + void x_node_means(){ + + x_transforms.zeros(n_vars, 1); + w_node_sum = sum(w_node); + + for(i = 0; i < n_vars; i++) { + + x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; + + } + + } + + // Same as x_node_scale, but this can be called from R + // [[Rcpp::export]] + List x_node_scale_exported(NumericMatrix& x_, + NumericVector& w_){ + + x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + w_node = vec(w_.begin(), w_.length(), false); + n_vars = x_node.n_cols; + + x_node_scale(); + + return( + List::create( + _["x_scaled"] = x_node, + _["x_transforms"] = x_transforms + ) + ); + + } + + // ---------------------------------------------------------------------------- + // ---------------------------- cholesky functions ---------------------------- + // ---------------------------------------------------------------------------- + + // cholesky decomposition + // + // @description this function is copied from the survival package and + // translated into arma. + // + // @param vmat matrix with covariance estimates + // @param n_vars the number of predictors used in the current node + // + // prepares vmat for cholesky_solve() + + void cholesky(){ + + double eps_chol = 0; + double toler = 1e-8; + double pivot; + + for(i = 0; i < n_vars; i++){ + + if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); + + // copy upper right values to bottom left + for(j = (i+1); j eps_chol) { + + for(j = (i+1); j < n_vars; j++){ + + temp1 = vmat.at(j,i) / pivot; + vmat.at(j,i) = temp1; + vmat.at(j,j) -= temp1*temp1*pivot; + + for(k = (j+1); k < n_vars; k++){ + + vmat.at(k, j) -= temp1 * vmat.at(k, i); + + } + + } + + } else { + + vmat.at(i, i) = 0; + + } + + } + + } + + // solve cholesky decomposition + // + // @description this function is copied from the survival package and + // translated into arma. Prepares u, the vector used to update beta. + // + // @param vmat matrix with covariance estimates + // @param n_vars the number of predictors used in the current node + // + // + void cholesky_solve(){ + + for (i = 0; i < n_vars; i++) { + + temp1 = u[i]; + + for (j = 0; j < i; j++){ + + temp1 -= u[j] * vmat.at(i, j); + u[i] = temp1; + + } + + } + + + for (i = n_vars; i >= 1; i--){ + + if (vmat.at(i-1, i-1) == 0){ + + u[i-1] = 0; + + } else { + + temp1 = u[i-1] / vmat.at(i-1, i-1); + + for (j = i; j < n_vars; j++){ + temp1 -= u[j] * vmat.at(j, i-1); + } + + u[i-1] = temp1; + + } + + } + + } + + // invert the cholesky in the lower triangle + // + // @description this function is copied from the survival package and + // translated into arma. Inverts vmat + // + // @param vmat matrix with covariance estimates + // @param n_vars the number of predictors used in the current node + // + + void cholesky_invert(){ + + for (i=0; i0) { + + // take full advantage of the cholesky's diagonal of 1's + vmat.at(i,i) = 1.0 / vmat.at(i,i); + + for (j=(i+1); j 0) { + + if (cph_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= weight_events * log(denom); + + for (i=0; i 0) { + + if (cph_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= denom_events * log(denom); + + for (i=0; i(0, x_node.n_cols - 1); + + x_node_scale(); + + vec out = newtraph_cph(); + + arma::uword person; + arma::uword n_vars = x_node.n_cols; + arma::uword n_rows = x_node.n_rows; + + arma::vec beta_current(n_vars, arma::fill::zeros); + arma::vec beta_new(n_vars, arma::fill::zeros); + + double temp1, temp2; + + // these are filled with initial values later + arma::vec XB(n_rows); + arma::vec Risk(n_rows); + arma::vec u(n_vars); + arma::vec a(n_vars); + arma::vec a2(n_vars); + arma::mat vmat(n_vars, n_vars); + arma::mat cmat(n_vars, n_vars); + arma::mat cmat2(n_vars, n_vars); + + halving = 0; + + // do the initial iteration + stat_best = newtraph_cph_init(); + + // update beta_current + cholesky(); + cholesky_solve(); + beta_new = beta_current + u; + + if(cph_iter_max > 1 && stat_best < Rcpp::R_PosInf){ + + for(iter = 1; iter < cph_iter_max; iter++){ + + // if(verbose > 0){ + // + // Rcout << "--------- Newt-Raph algo; iter " << iter; + // Rcout << " ---------" << std::endl; + // Rcout << "beta: " << beta_new.t(); + // Rcout << "loglik: " << stat_best; + // Rcout << std::endl; + // Rcout << "------------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // + // } + + // do the next iteration + stat_current = newtraph_cph_iter(beta_new); + + cholesky(); + + // don't go trying to fix this, just use the last + // set of valid coefficients + if(std::isinf(stat_current)) break; + + // check for convergence + // break the loop if the new ll is ~ same as old best ll + if(fabs(1 - stat_best / stat_current) < cph_eps){ + break; + } + + if(stat_current < stat_best){ // it's not converging! + + halving++; // get more aggressive when it doesn't work + + // reduce the magnitude by which beta_new modifies beta_current + for (i = 0; i < n_vars; i++){ + beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); + } + + // yeah its not technically the best but I need to do this for + // more reasonable output when verbose = true; I should remove + // this line when verbosity is taken out. + stat_best = stat_current; + + } else { // it's converging! + + halving = 0; + stat_best = stat_current; + + cholesky_solve(); + + for (i = 0; i < n_vars; i++) { + + beta_current[i] = beta_new[i]; + beta_new[i] = beta_new[i] + u[i]; + + } + + } + + } + + } + + // invert vmat + cholesky_invert(); + + for (i=0; i < n_vars; i++) { + + beta_current[i] = beta_new[i]; + + if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ + beta_current[i] = 0; + } + + if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ + vmat.at(i, i) = 1.0; + } + + // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; + + if(cph_do_scale){ + beta_current.at(i) *= x_transforms.at(i, 1); + vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); + } + + // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; + + if(oobag_importance_type == 'A'){ + + if(beta_current.at(i) != 0){ + + temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), + 1, false, false); + + if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; + + } + + vi_pval_denom[cols_node[i]]++; + + } + + } + + // if(verbose > 1) Rcout << std::endl; + + return(beta_current); + + } + + +#endif /* COXPH_H */ + diff --git a/src/Data.h b/src/Data.h index 609fff1f..76a4c584 100644 --- a/src/Data.h +++ b/src/Data.h @@ -19,74 +19,65 @@ Data() = default; Data(arma::mat& x, - arma::vec& y_dbl, - arma::ivec& y_int, - arma::vec& weights) { - - // arma::mat x_ = arma::mat(x.begin(), x.nrow(), x.ncol(), false); - // arma::vec y_dbl_ = arma::vec(y_dbl.begin(), y_dbl.length(), false); - // arma::ivec y_int_ = arma::ivec(y_int.begin(), y_int.length(), false); - // arma::vec weights_ = arma::vec(weights.begin(), weights.length(), false); + arma::mat& y, + arma::vec& w) { this->x = x; - this->y_dbl = y_dbl; - this->y_int = y_int; - this->weights = weights; + this->y = y; + this->w = w; } + // Weights vector + arma::vec w; - arma::mat x; - arma::vec y_dbl; - arma::ivec y_int; - arma::vec weights; - - arma::vec get_weights() const { - return(weights); - } - - arma::uword get_n_rows() const { + arma::uword get_n_rows() { return(x.n_rows); } - arma::uword get_n_cols() const { + arma::uword get_n_cols() { return(x.n_cols); } - bool has_wts() const { - return(!weights.empty()); + bool has_weights() { + return(!w.empty()); } - arma::mat get_x_rows(arma::uvec vector_of_row_indices) const { + arma::mat x_rows(arma::uvec& vector_of_row_indices) { return(x.rows(vector_of_row_indices)); } - arma::mat get_x_cols(arma::uvec vector_of_column_indices) const { + arma::mat x_cols(arma::uvec& vector_of_column_indices) { return(x.cols(vector_of_column_indices)); } - double get_x_at(arma::uword i, arma::uword j) const { - return(x.at(i, j)); + arma::mat y_rows(arma::uvec& vector_of_row_indices) { + return(y.rows(vector_of_row_indices)); } - arma::vec get_y_dbl_rows(arma::uvec vector_of_row_indices) const { - return(y_dbl.rows(vector_of_row_indices)); + arma::mat y_cols(arma::uvec& vector_of_column_indices) { + return(y.cols(vector_of_column_indices)); } - arma::ivec get_y_int_rows(arma::uvec vector_of_row_indices) const { - return(y_int.rows(vector_of_row_indices)); + arma::mat x_submat(arma::uvec& vector_of_row_indices, + arma::uvec& vector_of_column_indices){ + return(x.submat(vector_of_row_indices, vector_of_column_indices)); } - double get_y_dbl_at(arma::uword i) const { - return(y_dbl.at(i)); + arma::mat y_submat(arma::uvec& vector_of_row_indices, + arma::uvec& vector_of_column_indices){ + return(y.submat(vector_of_row_indices, vector_of_column_indices)); } - int get_y_int_at(arma::uword i) const { - return(y_int.at(i)); + arma::vec w_subvec(arma::uvec& vector_of_indices){ + return(w(vector_of_indices)); } private: + arma::mat x; + arma::mat y; + }; diff --git a/src/Forest.cpp b/src/Forest.cpp deleted file mode 100644 index 74cb3f8b..00000000 --- a/src/Forest.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "Forest.h" - - namespace aorsf { - - Forest::Forest() : - data(0), - mtry(0), - max_retry(DEFAULT_MAX_RETRY), - split_rule(DEFAULT_SPLITRULE_SURVIVAL), - n_split(DEFAULT_N_SPLIT), - leaf_min_obs(0), - split_min_obs(0), - split_min_stat(DEFAULT_SPLIT_MIN_STAT), - pred_type(DEFAULT_PRED_TYPE), - oobag_eval_every(0), - variable_importance(DEFAULT_IMPORTANCE), - seed(0) { - - } - - - - } // namespace aorsf diff --git a/src/Forest.h b/src/Forest.h deleted file mode 100644 index 8a03b29b..00000000 --- a/src/Forest.h +++ /dev/null @@ -1,144 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef FOREST_H_ -#define FOREST_H_ - - -#include "Data.h" -#include "globals.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class Forest { - public: - - // Default constructor with no arguments - Forest(); - - // Expect to redefine constructors for survival/classif/regression - virtual ~Forest() = default; - - // Don't allow unitialized Forests - Forest(const Forest&) = delete; - Forest& operator=(const Forest&) = delete; - - void init( - const Data* data, - const int mtry, - const int max_retry, - SplitRule split_rule, - const int n_split, - const int leaf_min_obs, - const int split_min_obs, - const int split_min_stat, - PredType pred_type, - const int oobag_eval_every, - VariableImportance variable_importance, - const int seed - ) { - - this->data = data; - this->mtry = mtry; - this->max_retry = max_retry; - this->split_rule = split_rule; - this->n_split = n_split; - this->leaf_min_obs = leaf_min_obs; - this->split_min_obs = split_min_obs; - this->split_min_stat = split_min_stat; - this->pred_type = pred_type; - this->oobag_eval_every = oobag_eval_every; - this->variable_importance = variable_importance; - - }; - - int get_mtry() const { - return mtry; - } - - int get_max_retry() const { - return max_retry; - } - - SplitRule get_split_rule() const { - return split_rule; - } - - int get_n_split() const { - return n_split; - } - - int get_leaf_min_obs() const { - return leaf_min_obs; - } - - int get_split_min_obs() const { - return split_min_obs; - } - - int get_split_min_stat() const { - return split_min_stat; - } - - int get_pred_type() const { - return pred_type; - } - - int get_oobag_eval_every() const { - return oobag_eval_every; - } - - VariableImportance get_variable_importance() const { - return variable_importance; - } - - // INPUTS - - // Pointer to original data - const Data* data; - - // number of predictors used to split a node - int mtry; - - // maximum number of retry attempts to split a node - int max_retry; - - // how to measure quality of a node split - SplitRule split_rule; - - // number of cutpoints to assess during node split - int n_split; - - // minimum number of observations needed in a leaf node - int leaf_min_obs; - - // minimum number of observations needed to split a node - int split_min_obs; - - // minimum value of split statistic needed to split a node - int split_min_stat; - - // what type of oobag prediction to compute - PredType pred_type; - - // evaluate oobag error every X trees - int oobag_eval_every; - - // what type of variable importance to compute - VariableImportance variable_importance; - - // random seed to be set before growing - int seed; - - protected: - - }; - - } // namespace aorsf - -#endif /* FOREST_H_ */ diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp deleted file mode 100644 index 06fc6a66..00000000 --- a/src/ForestSurvival.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "ForestSurvival.h" -#include "Data.h" - - namespace aorsf { - - - } // namespace aorsf diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h deleted file mode 100644 index 795ca471..00000000 --- a/src/ForestSurvival.h +++ /dev/null @@ -1,38 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef FORESTSURVIVAL_H_ -#define FORESTSURVIVAL_H_ - - -#include "globals.h" -#include "Forest.h" -#include "TreeSurvival.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class ForestSurvival: public Forest { - public: - - // Default constructor with no arguments - ForestSurvival(); - - // Expect to redefine constructors for survival/classif/regression - virtual ~ForestSurvival() = default; - - // Don't allow unitialized ForestSurvivals - ForestSurvival(const ForestSurvival&) = delete; - ForestSurvival& operator=(const ForestSurvival&) = delete; - - protected: - - }; - - } // namespace aorsf - -#endif /* FOREST_H_ */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 28c51a71..1aceedff 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,40 +11,24 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// bootstrap_sample_testthat -arma::vec bootstrap_sample_testthat(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights); -RcppExport SEXP _aorsf_bootstrap_sample_testthat(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); - Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); - rcpp_result_gen = Rcpp::wrap(bootstrap_sample_testthat(x, y_ctns, y_intg, weights)); - return rcpp_result_gen; -END_RCPP -} // orsf_cpp -void orsf_cpp(arma::mat& x, arma::vec& y_ctns, arma::ivec& y_intg, arma::vec& weights, const int vi, const int sr, const int pt); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP y_ctnsSEXP, SEXP y_intgSEXP, SEXP weightsSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { +void orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi, int sr, int pt); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { BEGIN_RCPP Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type y_ctns(y_ctnsSEXP); - Rcpp::traits::input_parameter< arma::ivec& >::type y_intg(y_intgSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int >::type vi(viSEXP); - Rcpp::traits::input_parameter< const int >::type sr(srSEXP); - Rcpp::traits::input_parameter< const int >::type pt(ptSEXP); - orsf_cpp(x, y_ctns, y_intg, weights, vi, sr, pt); + Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< int >::type vi(viSEXP); + Rcpp::traits::input_parameter< int >::type sr(srSEXP); + Rcpp::traits::input_parameter< int >::type pt(ptSEXP); + orsf_cpp(x, y, w, vi, sr, pt); return R_NilValue; END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_bootstrap_sample_testthat", (DL_FUNC) &_aorsf_bootstrap_sample_testthat, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 6}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 79934294..8cc21420 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -4,48 +4,3 @@ aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ -#include -#include - // [[Rcpp::depends(RcppArmadillo)]] - -#include -#include "globals.h" -#include "Tree.h" - - namespace aorsf { - - void Tree::guess_max_nodes() { - - // arma::uword guess = std::ceil( - // 0.5 * data->get_n_rows() / this->leaf_min_obs - // ); - - // int a = 2; - // int b = 4; - // - // this->coef = Rcpp::NumericMatrix(a,b); - // this->coef_indices = arma::umat(a, b); - - // cutpoint.zeros(guess); - // left_node.zeros(guess); - // pred.zeros(guess, 1); - - } - - Tree::Tree() : - data(0), - mtry(0), - max_retry(DEFAULT_MAX_RETRY), - split_rule(DEFAULT_SPLITRULE_SURVIVAL), - n_split(DEFAULT_N_SPLIT), - leaf_min_obs(0), - split_min_obs(0), - split_min_stat(DEFAULT_SPLIT_MIN_STAT), - pred_type(DEFAULT_PRED_TYPE), - oobag_eval_every(0), - variable_importance(DEFAULT_IMPORTANCE), - seed(0) { - - } - - } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index d369b7c1..6c9129f1 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,12 +7,10 @@ #ifndef TREE_H_ #define TREE_H_ -#include #include -// [[Rcpp::depends(RcppArmadillo)]] +#include #include "Data.h" -#include #include "globals.h" namespace aorsf { @@ -23,121 +21,110 @@ Tree() = default; - Tree(const Data* data, - int mtry, - int max_retry, - SplitRule split_rule, - int n_split, + Tree(Data* data, int leaf_min_obs, - int split_min_obs, - int split_min_stat, - PredType pred_type, - int oobag_eval_every, - VariableImportance variable_importance, - int seed){ + int mtry){ this->data = data; - this->mtry = mtry; - this->max_retry = max_retry; - this->split_rule = split_rule; - this->n_split = n_split; - this->leaf_min_obs = leaf_min_obs; - this->split_min_obs = split_min_obs; - this->split_min_stat = split_min_stat; - this->pred_type = pred_type; - this->oobag_eval_every = oobag_eval_every; - this->variable_importance = variable_importance; - - int a = 2; - int b = 4; - - this->coef = Rcpp::NumericMatrix(a,b); - this->coef_indices = arma::umat(a, b); + + arma::uword guess = std::ceil( + 0.5 * data->get_n_rows() / leaf_min_obs + ); + + coef.zeros(guess, mtry); + coef_indices.zeros(guess, mtry); + cutpoint.zeros(guess); + next_left_node.zeros(guess); + pred.zeros(guess, 1); + pred_indices.zeros(guess, 3); + }; - int get_mtry() const { - return mtry; - } - int get_max_retry() const { - return max_retry; - } - SplitRule get_split_rule() const { - return split_rule; - } + // @description sample weights to mimic a bootstrap sample + // Note: the sampling extension for RcppArmadillo can only + // be defined once. So, all functions that use sample need + // to be defined in this file, unless we move the inclusion + // of RcppArmadilloExtension/sample.h to another place. + void draw_bootstrap_sample() { - int get_n_split() const { - return n_split; - } + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0, 10); - int get_leaf_min_obs() const { - return leaf_min_obs; - } + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. - int get_split_min_obs() const { - return split_min_obs; - } + arma::uword n_rows = data->get_n_rows(); - int get_split_min_stat() const { - return split_min_stat; - } + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); - int get_pred_type() const { - return pred_type; - } + arma::vec boot_wts = Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ); - int get_oobag_eval_every() const { - return oobag_eval_every; - } + if(data->has_weights()){ - VariableImportance get_variable_importance() const { - return variable_importance; - } + boot_wts = boot_wts % data->w; - // INPUTS + } - // Pointer to original data - const Data* data; + rows_inbag = arma::find(boot_wts); + boot_wts = boot_wts(rows_inbag); + + if(VERBOSITY > 0){ + Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; + Rcpp::Rcout << rows_inbag << std::endl << std::endl; + Rcpp::Rcout << "------------ boot weights -----------" << std::endl; + Rcpp::Rcout << boot_wts << std::endl << std::endl; - // number of predictors used to split a node - int mtry; + } - // maximum number of retry attempts to split a node - int max_retry; + } - // how to measure quality of a node split - SplitRule split_rule; + void grow() { - // number of cutpoints to assess during node split - int n_split; + arma::mat x_inbag = data->x_rows(rows_inbag); + arma::mat y_inbag = data->y_rows(rows_inbag); + arma::vec w_inbag = data->w_subvec(rows_inbag); - // minimum number of observations needed in a leaf node - int leaf_min_obs; + arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); + arma::uvec nodes_to_grow(1, arma::fill::zeros); + arma::uword nodes_max_true = 0; + arma::uword leaf_node_counter = 0; + arma::uword leaf_node_index_counter = 0; - // minimum number of observations needed to split a node - int split_min_obs; + if(VERBOSITY > 0){ - // minimum value of split statistic needed to split a node - int split_min_stat; + arma::uword temp_uword_1, temp_uword_2; - // what type of oobag prediction to compute - PredType pred_type; + if(x_inbag.n_rows < 5) + temp_uword_1 = x_inbag.n_rows-1; + else + temp_uword_1 = 5; - // evaluate oobag error every X trees - int oobag_eval_every; + if(x_inbag.n_cols < 5) + temp_uword_2 = x_inbag.n_cols-1; + else + temp_uword_2 = 4; - // what type of variable importance to compute - VariableImportance variable_importance; + Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; + Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); + Rcpp::Rcout << std::endl << std::endl; - // random seed to be set before growing - int seed; + } + }; - protected: + // INPUTS + + // Pointer to original data + Data* data; - // OUTPUTS + // which rows of data are used to grow the tree + arma::uvec rows_inbag; // coefficients for linear combinations; // one row per variable (mtry rows), one column per node @@ -159,6 +146,9 @@ // indices of predicted values for each leaf node arma::umat pred_indices; + + protected: + }; } // namespace aorsf diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp deleted file mode 100644 index 5fbe01c2..00000000 --- a/src/TreeSurvival.cpp +++ /dev/null @@ -1,16 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include - -#include "globals.h" -#include "Tree.h" - - namespace aorsf { - - - - } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h deleted file mode 100644 index 24c1afea..00000000 --- a/src/TreeSurvival.h +++ /dev/null @@ -1,32 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef TREESURVIVAL_H_ -#define TREESURVIVAL_H_ - -#include "globals.h" -#include "Tree.h" - -// [[Rcpp::depends(RcppArmadillo)]] - - namespace aorsf { - - class TreeSurvival : public Tree { - public: - - TreeSurvival(); - - // Don't allow unitialized trees - TreeSurvival(const TreeSurvival&) = delete; - TreeSurvival& operator=(const TreeSurvival&) = delete; - - virtual ~TreeSurvival() override = default; - - }; - - } // namespace aorsf - -#endif /* TREESURVIVAL_H_ */ diff --git a/src/globals.h b/src/globals.h index 017c41d0..e65b894d 100644 --- a/src/globals.h +++ b/src/globals.h @@ -71,6 +71,8 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; + const int VERBOSITY = 1; + } // namespace aorsf #endif /* GLOBALS_H_ */ diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 8e90103b..f66a2357 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -11,10 +11,9 @@ #include #include -#include "Data.h" #include "globals.h" +#include "Data.h" #include "Tree.h" -#include "Forest.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -23,103 +22,60 @@ using namespace arma; using namespace aorsf; // @description sample weights to mimic a bootstrap sample -arma::vec bootstrap_sample(const Data* data) { - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - Rcpp::IntegerVector s = Rcpp::seq(0.0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - - arma::uword n_rows = data->get_n_rows(); - - Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); - - arma::vec boot_wts = Rcpp::as( - Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) - ); - - if(data->has_wts()){ - - boot_wts = boot_wts % data->get_weights(); - - } - - return(boot_wts); - -} - - -// @description sample weights to mimic a bootstrap sample -// [[Rcpp::export]] -arma::vec bootstrap_sample_testthat(arma::mat& x, - arma::vec& y_ctns, - arma::ivec& y_intg, - arma::vec& weights) { - - Data data = Data(x, y_ctns, y_intg, weights); - Data* data_ptr = &data; - return bootstrap_sample(data_ptr); - -} +// arma::vec bootstrap_sample_testthat(arma::mat& x, +// arma::mat& y, +// arma::vec& w) { +// +// Data data = Data(x, y, w); +// Data* data_ptr = &data; +// return bootstrap_sample(data_ptr); +// +// } // [[Rcpp::export]] void orsf_cpp(arma::mat& x, - arma::vec& y_ctns, - arma::ivec& y_intg, - arma::vec& weights, - const int vi = 0, - const int sr = 1, - const int pt = 1){ - - - const int mtry = 2; - const int max_retry = DEFAULT_MAX_RETRY; - const int n_split = DEFAULT_N_SPLIT; - const int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; - const int split_min_obs = DEFAULT_SPLIT_MIN_OBS; - const int split_min_stat = DEFAULT_SPLIT_MIN_STAT; - const int oobag_eval_every = 0; - const int seed = 0; + arma::mat& y, + arma::vec& w, + int vi = 0, + int sr = 1, + int pt = 1){ + + + int mtry = 2; + int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + // int split_min_obs = DEFAULT_SPLIT_MIN_OBS; + // int split_min_stat = DEFAULT_SPLIT_MIN_STAT; + // int max_retry = DEFAULT_MAX_RETRY; + // int n_split = DEFAULT_N_SPLIT; + // int oobag_eval_every = 0; + // int seed = 0; + + // VariableImportance variable_importance = static_cast(vi); + // SplitRule split_rule = static_cast(sr); + // PredType pred_type = static_cast(pt); + + // if( variable_importance == VI_NONE ) + // Rcout << variable_importance << std::endl; + + Data data = Data(x, y, w); + + if(VERBOSITY > 0){ + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data.get_n_rows() << std::endl; + Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "------------------------------------"; + Rcout << std::endl << std::endl; + } - VariableImportance variable_importance = static_cast(vi); - SplitRule split_rule = static_cast(sr); - PredType pred_type = static_cast(pt); + Data* data_ptr = &data; - // if( variable_importance == VI_NONE ) Rcout << variable_importance << std::endl; + Tree tree(data_ptr, leaf_min_obs, mtry); - Data data = Data(x, y_ctns, y_intg, weights); + tree.draw_bootstrap_sample(); - Data* data_ptr = &data; + tree.grow(); -<<<<<<< HEAD - Rcout << "------------ dimensions ------------" << std::endl; - Rcout << "N obs total: " << data.n_rows << std::endl; - Rcout << "N columns total: " << data.n_cols << std::endl; - Rcout << "mtry: " << mtry << std::endl; - Rcout << "------------------------------------"; - Rcout << std::endl << std::endl << std::endl; - - Tree tree(data_ptr, - mtry, - max_retry, - split_rule, - n_split, - leaf_min_obs, - split_min_obs, - split_min_stat, - pred_type, - oobag_eval_every, - variable_importance, - seed); - - Rcout << tree.coef << std::endl; - - tree.guess_max_nodes(); - - Rcout << tree.coef << std::endl; } diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R index bc7aa179..22c7654c 100644 --- a/tests/testthat/test-bootstrap_sample.R +++ b/tests/testthat/test-bootstrap_sample.R @@ -3,10 +3,25 @@ # test setup -------------------------------------------------------------- +# make an r function that matches the function in cpp +r_fun <- function(x, y, wts){ + + s = seq(0, 10) + n_rows = nrow(x) + probs = dbinom(s, n_rows, 1.0/n_rows, FALSE) + + boot_wts = sample(s, n_rows, TRUE, probs); + + if(length(wts) > 0){ + boot_wts = boot_wts * wts; + } + + return(matrix(boot_wts, ncol = 1)); + +} + n <- 1e6 -x = matrix(rnorm(n = n), ncol = 1) -y_dbl = x -y_int = sample.int(2, size = n, replace = TRUE) +x <- y <- matrix(rnorm(n = n), ncol = 1) weights_2s = rep(2, nrow(x)) weights_empty = double(0) @@ -15,14 +30,17 @@ weights_empty = double(0) # if any object's memory is copied, it will make the test output messy # (I am not sure how to formally make a test fail when memory is copied) tracemem(x) -tracemem(y_dbl) -tracemem(y_int) +tracemem(y) tracemem(weights_2s) set.seed(329) -samp_2s_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_2s) +samp_2s_wts <- bootstrap_sample_testthat(x, y, weights_2s) +set.seed(329) +samp_no_wts <- bootstrap_sample_testthat(x, y, weights_empty) +set.seed(329) +samp_2s_wts_r <- r_fun(x, y, weights_2s) set.seed(329) -samp_no_wts <- bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) +samp_no_wts_r <- r_fun(x, y, weights_empty) # test behavior ----------------------------------------------------------- @@ -49,26 +67,27 @@ test_that( } ) +test_that( + desc = "bootstrap weights match (R vs cpp)", + code = { + expect_equal(samp_2s_wts, samp_2s_wts_r) + expect_equal(samp_no_wts, samp_no_wts_r) + } +) + + # test performance -------------------------------------------------------- -# r_fun <- function(x, wts){ -# -# s = seq(0, 10) -# n_rows = nrow(x) -# probs = dbinom(s, n_rows, 1.0/n_rows, FALSE) -# -# boot_wts = sample(s, n_rows, TRUE, probs); -# -# if(length(wts) > 0){ -# boot_wts = boot_wts * wts; -# } -# return(boot_wts); -# -# } +# TODO: figure out why armadillo seems to run slower than R for this?? + +# microbenchmark::microbenchmark( +# r_fun = r_fun(x, y, wts = weights_empty), +# c_fun = bootstrap_sample_testthat(x, y, weights_empty) +# ) # # microbenchmark::microbenchmark( -# r_fun = r_fun(x, wts = weights_empty), -# c_fun = bootstrap_sample_testthat(x, y_dbl, y_int, weights_empty) +# r_fun = r_fun(x, y, wts = weights_2s), +# c_fun = bootstrap_sample_testthat(x, y, weights_2s) # ) From a14681b9a7c2b964cab129f2a1b66494e8efe95e Mon Sep 17 00:00:00 2001 From: bcjaeger Date: Wed, 5 Oct 2022 16:33:07 -0400 Subject: [PATCH 015/103] learning headers --- R/RcppExports.R | 68 ++++++++++- src/Coxph.h | 70 ++++------- src/RcppExports.cpp | 291 +++++++++++++++++++++++++++++++++++++++++++- src/Tree.cpp | 101 +++++++++++++++ src/Tree.h | 111 ++--------------- src/globals.h | 2 +- src/orsf_oop.cpp | 46 +++++-- 7 files changed, 532 insertions(+), 157 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 5a224da0..0228e0c0 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,7 +1,71 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L) { - invisible(.Call(`_aorsf_orsf_cpp`, x, y, w, vi, sr, pt)) +std_setdiff <- function(x, y) { + .Call(`_aorsf_std_setdiff`, x, y) +} + +x_node_scale_exported <- function(x_, w_) { + .Call(`_aorsf_x_node_scale_exported`, x_, w_) +} + +leaf_kaplan_testthat <- function(y, w) { + .Call(`_aorsf_leaf_kaplan_testthat`, y, w) +} + +newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { + .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) +} + +lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { + .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) +} + +oobag_c_harrell_testthat <- function(y_mat, s_vec) { + .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) +} + +ostree_pred_leaf_testthat <- function(tree, x_pred_) { + .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) +} + +orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) { + .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) +} + +orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { + .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) +} + +orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { + .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) +} + +orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { + .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) +} + +orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { + .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) +} + +pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L, oobag_pred = TRUE) { + .Call(`_aorsf_orsf_cpp`, x, y, w, vi, sr, pt, oobag_pred) } diff --git a/src/Coxph.h b/src/Coxph.h index 947d0c5c..0e7aaad6 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -4,9 +4,18 @@ Author: Byron C Jaeger aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ +#include +#include "globals.h" + #ifndef COXPH_H #define COXPH_H + extern double temp1, temp2; + extern arma::mat x_transforms; + extern arma::uword n_vars, person, iter, i, j, k; + + namespace aorsf { + // ---------------------------------------------------------------------------- // ---------------------------- scaling functions ----------------------------- // ---------------------------------------------------------------------------- @@ -37,17 +46,17 @@ aorsf may be modified and distributed under the terms of the MIT license. vec means = x_transforms.unsafe_col(0); // Reference to column 1 vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - w_node_sum = sum(w_node); + w_node_sum = arma::sum(w_node); for(i = 0; i < n_vars; i++) { - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; + means.at(i) = arma::sum( w_node % x_node.col(i) ) / w_node_sum; x_node.col(i) -= means.at(i); - scales.at(i) = sum(w_node % abs(x_node.col(i))); + scales.at(i) = arma::sum(w_node % abs(x_node.col(i))); - if(scales(i) > 0) + if(scales.at(i) > 0) scales.at(i) = w_node_sum / scales.at(i); else scales.at(i) = 1.0; // rare case of constant covariate; @@ -63,36 +72,16 @@ aorsf may be modified and distributed under the terms of the MIT license. void x_node_means(){ x_transforms.zeros(n_vars, 1); - w_node_sum = sum(w_node); + w_node_sum = arma::sum(w_node); for(i = 0; i < n_vars; i++) { - x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; + x_transforms.at(i, 0) = arma::sum( w_node % x_node.col(i) ) / w_node_sum; } } - // Same as x_node_scale, but this can be called from R - // [[Rcpp::export]] - List x_node_scale_exported(NumericMatrix& x_, - NumericVector& w_){ - - x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - w_node = vec(w_.begin(), w_.length(), false); - n_vars = x_node.n_cols; - - x_node_scale(); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - - } - // ---------------------------------------------------------------------------- // ---------------------------- cholesky functions ---------------------------- // ---------------------------------------------------------------------------- @@ -623,33 +612,25 @@ aorsf may be modified and distributed under the terms of the MIT license. // The procedure works with the partial likelihood function // of the Cox model. All inputs are described above // in newtraph_cph_iter() - // - // [[Rcpp::export]] arma::vec newtraph_cph(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, arma::vec& vi_pval_numer, arma::vec& vi_pval_denom, - bool cph_do_scale - int cph_method - double cph_eps - int cph_iter_max){ - - n_vars = x_node.n_cols; - cols_node = regspace(0, x_node.n_cols - 1); - - x_node_scale(); + bool cph_do_scale, + int cph_method, + double cph_eps, + int cph_iter_max, + VariableImportance variable_importance){ - vec out = newtraph_cph(); - arma::uword person; arma::uword n_vars = x_node.n_cols; arma::uword n_rows = x_node.n_rows; - + arma::uvec cols_node = arma::regspace(0, n_vars - 1); arma::vec beta_current(n_vars, arma::fill::zeros); arma::vec beta_new(n_vars, arma::fill::zeros); - double temp1, temp2; + double temp1, temp2, halving, stat_best, stat_current; // these are filled with initial values later arma::vec XB(n_rows); @@ -661,6 +642,8 @@ aorsf may be modified and distributed under the terms of the MIT license. arma::mat cmat(n_vars, n_vars); arma::mat cmat2(n_vars, n_vars); + x_node_scale(); + halving = 0; // do the initial iteration @@ -671,7 +654,7 @@ aorsf may be modified and distributed under the terms of the MIT license. cholesky_solve(); beta_new = beta_current + u; - if(cph_iter_max > 1 && stat_best < Rcpp::R_PosInf){ + if(cph_iter_max > 1 && stat_best < R_PosInf){ for(iter = 1; iter < cph_iter_max; iter++){ @@ -760,7 +743,7 @@ aorsf may be modified and distributed under the terms of the MIT license. // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; - if(oobag_importance_type == 'A'){ + if(variable_importance == VI_ANOVA){ if(beta_current.at(i) != 0){ @@ -783,6 +766,7 @@ aorsf may be modified and distributed under the terms of the MIT license. } + } #endif /* COXPH_H */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 1aceedff..15684180 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,10 +11,274 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif +// std_setdiff +arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); +RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); + rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); + return rcpp_result_gen; +END_RCPP +} +// x_node_scale_exported +List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); +RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); + rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); + return rcpp_result_gen; +END_RCPP +} +// leaf_kaplan_testthat +arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); +RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); + rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); + return rcpp_result_gen; +END_RCPP +} +// newtraph_cph_testthat +arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); +RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); + Rcpp::traits::input_parameter< int >::type method(methodSEXP); + Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); + Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); + rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); + return rcpp_result_gen; +END_RCPP +} +// lrt_multi_testthat +List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); +RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); + Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); + Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); + Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); + rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); + return rcpp_result_gen; +END_RCPP +} +// oobag_c_harrell_testthat +double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); +RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); + Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); + rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); + return rcpp_result_gen; +END_RCPP +} +// ostree_pred_leaf_testthat +arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); +RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); + rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_fit +List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_); +RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); + Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); + Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); + Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); + Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); + Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); + Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); + Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); + Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); + Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); + Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); + Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); + Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); + Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); + Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); + Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); + Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); + Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); + Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); + Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_oob_negate_vi +arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); +RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); + Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_oob_permute_vi +arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); +RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); + Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_pred_uni +arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); +RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); + Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// orsf_pred_multi +arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); +RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); + Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_new_smry +arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_oob_smry +arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_new_ice +arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_oob_ice +arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} // orsf_cpp -void orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi, int sr, int pt); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi, int sr, int pt, bool oobag_pred); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP, SEXP oobag_predSEXP) { BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); @@ -22,13 +286,30 @@ BEGIN_RCPP Rcpp::traits::input_parameter< int >::type vi(viSEXP); Rcpp::traits::input_parameter< int >::type sr(srSEXP); Rcpp::traits::input_parameter< int >::type pt(ptSEXP); - orsf_cpp(x, y, w, vi, sr, pt); - return R_NilValue; + Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, vi, sr, pt, oobag_pred)); + return rcpp_result_gen; END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 6}, + {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, + {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, + {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, + {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, + {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, + {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, + {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, + {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 29}, + {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, + {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, + {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, + {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, + {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, + {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, + {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, + {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 8cc21420..740b78d6 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -4,3 +4,104 @@ aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ +#include +#include +#include "Tree.h" + + namespace aorsf { + + Tree::Tree(Data* data, int leaf_min_obs, int mtry){ + + this->data = data; + + arma::uword guess = std::ceil( + 0.5 * data->get_n_rows() / leaf_min_obs + ); + + coef.zeros(guess, mtry); + coef_indices.zeros(guess, mtry); + cutpoint.zeros(guess); + next_left_node.zeros(guess); + leaf_values.zeros(guess, 1); + leaf_indices.zeros(guess, 3); + + + } + + void Tree::grow(bool oobag_pred){ + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + Rcpp::IntegerVector s = Rcpp::seq(0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + + arma::uword n_rows = data->get_n_rows(); + + Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); + + arma::vec boot_wts = Rcpp::as( + Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + ); + + if(data->has_weights()){ + + boot_wts = boot_wts % data->w; + + } + + arma::uvec rows_inbag = arma::find(boot_wts); + + // initalize the oob rows if oob predictions are being computed + if(oobag_pred) + rows_oobag = arma::find(boot_wts != 0); + + boot_wts = boot_wts(rows_inbag); + + if(VERBOSITY > 0){ + Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; + Rcpp::Rcout << rows_inbag << std::endl << std::endl; + Rcpp::Rcout << "------------ boot weights -----------" << std::endl; + Rcpp::Rcout << boot_wts << std::endl << std::endl; + + } + + arma::mat x_inbag = data->x_rows(rows_inbag); + arma::mat y_inbag = data->y_rows(rows_inbag); + arma::vec w_inbag = data->w_subvec(rows_inbag); + + // once the sub-matrix views are created, we do not use inbag rows + // (and if we really need them, we can get them from oobag rows) + rows_inbag.resize(0); + + arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); + arma::uvec nodes_to_grow(1, arma::fill::zeros); + arma::uword nodes_max_true = 0; + arma::uword leaf_node_counter = 0; + arma::uword leaf_node_index_counter = 0; + + if(VERBOSITY > 0){ + + arma::uword temp_uword_1, temp_uword_2; + + if(x_inbag.n_rows < 5) + temp_uword_1 = x_inbag.n_rows-1; + else + temp_uword_1 = 5; + + if(x_inbag.n_cols < 5) + temp_uword_2 = x_inbag.n_cols-1; + else + temp_uword_2 = 4; + + Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; + Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); + Rcpp::Rcout << std::endl << std::endl; + + } + + } // Tree::grow + + } // namespace aorsf + diff --git a/src/Tree.h b/src/Tree.h index 6c9129f1..0182502d 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,8 +7,6 @@ #ifndef TREE_H_ #define TREE_H_ -#include -#include #include "Data.h" #include "globals.h" @@ -21,130 +19,45 @@ Tree() = default; - Tree(Data* data, - int leaf_min_obs, - int mtry){ - - this->data = data; - - arma::uword guess = std::ceil( - 0.5 * data->get_n_rows() / leaf_min_obs - ); - - coef.zeros(guess, mtry); - coef_indices.zeros(guess, mtry); - cutpoint.zeros(guess); - next_left_node.zeros(guess); - pred.zeros(guess, 1); - pred_indices.zeros(guess, 3); - - - }; - - + Tree(Data* data, int leaf_min_obs, int mtry); // @description sample weights to mimic a bootstrap sample // Note: the sampling extension for RcppArmadillo can only // be defined once. So, all functions that use sample need // to be defined in this file, unless we move the inclusion // of RcppArmadilloExtension/sample.h to another place. - void draw_bootstrap_sample() { - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - Rcpp::IntegerVector s = Rcpp::seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - - arma::uword n_rows = data->get_n_rows(); - - Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); - - arma::vec boot_wts = Rcpp::as( - Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) - ); - - if(data->has_weights()){ - - boot_wts = boot_wts % data->w; - - } - - rows_inbag = arma::find(boot_wts); - boot_wts = boot_wts(rows_inbag); - - if(VERBOSITY > 0){ - Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; - Rcpp::Rcout << rows_inbag << std::endl << std::endl; - Rcpp::Rcout << "------------ boot weights -----------" << std::endl; - Rcpp::Rcout << boot_wts << std::endl << std::endl; - - } - - } - - void grow() { - - arma::mat x_inbag = data->x_rows(rows_inbag); - arma::mat y_inbag = data->y_rows(rows_inbag); - arma::vec w_inbag = data->w_subvec(rows_inbag); - - arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); - arma::uvec nodes_to_grow(1, arma::fill::zeros); - arma::uword nodes_max_true = 0; - arma::uword leaf_node_counter = 0; - arma::uword leaf_node_index_counter = 0; - - if(VERBOSITY > 0){ - - arma::uword temp_uword_1, temp_uword_2; - - if(x_inbag.n_rows < 5) - temp_uword_1 = x_inbag.n_rows-1; - else - temp_uword_1 = 5; - - if(x_inbag.n_cols < 5) - temp_uword_2 = x_inbag.n_cols-1; - else - temp_uword_2 = 4; - - Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; - Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); - Rcpp::Rcout << std::endl << std::endl; - - } - - }; + void grow(bool oobag_pred); // INPUTS // Pointer to original data Data* data; - // which rows of data are used to grow the tree - arma::uvec rows_inbag; + // which rows of data are held out while growing the tree + arma::uvec rows_oobag; // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 arma::mat coef; - // indices of the predictors used by + // indices of the predictors used by a node arma::umat coef_indices; - // cutpoints used to split the node + // cutpoints used to split the nodes arma::vec cutpoint; // directions to the next node (right node = left node + 1) arma::uvec next_left_node; - // predicted values (only in leaf nodes) - arma::mat pred; + // leaf values (only in leaf nodes) + arma::mat leaf_values; + + // predicted values for out-of-bag rows + arma::vec pred_oobag; // indices of predicted values for each leaf node - arma::umat pred_indices; + arma::umat leaf_indices; protected: diff --git a/src/globals.h b/src/globals.h index e65b894d..0158c7ea 100644 --- a/src/globals.h +++ b/src/globals.h @@ -48,7 +48,7 @@ MEAN = 5, PROBABILITY = 6, CLASS = 7, - TERMINAL_NODES = 6 + TERMINAL_NODES = 8 }; // Default values diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f66a2357..bd33e157 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -9,11 +9,10 @@ #----------------------------------------------------------------------------*/ #include -#include - #include "globals.h" #include "Data.h" #include "Tree.h" +#include "Coxph.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -32,14 +31,36 @@ using namespace aorsf; // // } +// Same as x_node_scale, but this can be called from R +// // [[Rcpp::export]] +// List x_node_scale_exported(NumericMatrix x_, +// NumericVector w_){ +// +// arma::mat x_transforms; +// arma::mat x_node = arma::mat(x_.begin(), x_.nrow(), x_.ncol(), false); +// arma::vec w_node = arma::vec(w_.begin(), w_.length(), false); +// arma::uword n_vars = x_node.n_cols; +// +// x_node_scale(); +// +// return( +// List::create( +// _["x_scaled"] = x_node, +// _["x_transforms"] = x_transforms +// ) +// ); +// +// } + // [[Rcpp::export]] -void orsf_cpp(arma::mat& x, +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi = 0, int sr = 1, - int pt = 1){ + int pt = 1, + bool oobag_pred = true){ int mtry = 2; @@ -51,7 +72,7 @@ void orsf_cpp(arma::mat& x, // int oobag_eval_every = 0; // int seed = 0; - // VariableImportance variable_importance = static_cast(vi); + VariableImportance variable_importance = static_cast(vi); // SplitRule split_rule = static_cast(sr); // PredType pred_type = static_cast(pt); @@ -68,14 +89,25 @@ void orsf_cpp(arma::mat& x, Rcout << std::endl << std::endl; } + Rcpp::List result; + Data* data_ptr = &data; Tree tree(data_ptr, leaf_min_obs, mtry); - tree.draw_bootstrap_sample(); + tree.grow(oobag_pred); + + result.push_back(tree.rows_oobag, "rows_oobag"); + result.push_back(tree.coef, "coef"); + result.push_back(tree.coef_indices, "coef_indices"); + result.push_back(tree.cutpoint, "cutpoint"); + result.push_back(tree.next_left_node, "next_left_node"); + result.push_back(tree.leaf_values, "leaf_values"); + result.push_back(tree.pred_oobag, "pred_oobag"); + result.push_back(tree.leaf_indices, "leaf_indices"); - tree.grow(); + return(result); } From ccb8d4153efd8afd1cec702b034c3bf1cfe6a061 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Fri, 30 Jun 2023 16:01:47 -0400 Subject: [PATCH 016/103] non-working cph --- R/RcppExports.R | 64 +--- src/Coxph.cpp | 726 ++++++++++++++++++++++++++++++++++++++++++++ src/Coxph.h | 712 +------------------------------------------ src/RcppExports.cpp | 278 +---------------- src/orsf_oop.cpp | 55 ++-- 5 files changed, 794 insertions(+), 1041 deletions(-) create mode 100644 src/Coxph.cpp diff --git a/R/RcppExports.R b/R/RcppExports.R index 0228e0c0..f610a7dc 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,68 +1,12 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -std_setdiff <- function(x, y) { - .Call(`_aorsf_std_setdiff`, x, y) +coxph_scale_exported <- function(x_, w_) { + .Call(`_aorsf_coxph_scale_exported`, x_, w_) } -x_node_scale_exported <- function(x_, w_) { - .Call(`_aorsf_x_node_scale_exported`, x_, w_) -} - -leaf_kaplan_testthat <- function(y, w) { - .Call(`_aorsf_leaf_kaplan_testthat`, y, w) -} - -newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { - .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) -} - -lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { - .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) -} - -oobag_c_harrell_testthat <- function(y_mat, s_vec) { - .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) -} - -ostree_pred_leaf_testthat <- function(tree, x_pred_) { - .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) -} - -orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) { - .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_) -} - -orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { - .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) -} - -orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { - .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) -} - -pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +coxph_fit_exported <- function(x_, y_, w_) { + .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_) } orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L, oobag_pred = TRUE) { diff --git a/src/Coxph.cpp b/src/Coxph.cpp new file mode 100644 index 00000000..08e46211 --- /dev/null +++ b/src/Coxph.cpp @@ -0,0 +1,726 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include +#include "globals.h" +#include "Coxph.h" + + using namespace arma; + using namespace Rcpp; + + namespace aorsf { + + mat coxph_scale(mat& x_node, + vec& w_node){ + + // set aside memory for outputs + // first column holds the mean values + // second column holds the scale values + + uword n_vars = x_node.n_cols; + + mat x_transforms(n_vars, 2, fill::zeros); + vec means = x_transforms.unsafe_col(0); // Reference to column 1 + vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + + double w_node_sum = sum(w_node); + + for(uword i = 0; i < n_vars; i++) { + + means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; + + x_node.col(i) -= means.at(i); + + scales.at(i) = sum(w_node % abs(x_node.col(i))); + + if(scales(i) > 0) + scales.at(i) = w_node_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x_node.col(i) *= scales.at(i); + + } + + return(x_transforms); + + } + + void cholesky_decomp(mat& vmat){ + + double eps_chol = 0; + double toler = 1e-8; + double pivot1, pivot2; + uword n_vars = vmat.n_cols; + uword i, j, k; + + for(i = 0; i < n_vars; i++){ + + if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); + + // copy upper right values to bottom left + for(j = (i+1); j eps_chol) { + + for(j = (i+1); j < n_vars; j++){ + + pivot2 = vmat.at(j,i) / pivot1; + vmat.at(j,i) = pivot2; + vmat.at(j,j) -= pivot2*pivot2*pivot1; + + for(k = (j+1); k < n_vars; k++){ + + vmat.at(k, j) -= pivot2 * vmat.at(k, i); + + } + + } + + } else { + + vmat.at(i, i) = 0; + + } + + } + + } + + + void cholesky_solve(mat& vmat, + vec& u){ + + uword n_vars = vmat.n_cols; + uword i, j; + double temp; + + for (i = 0; i < n_vars; i++) { + + temp = u[i]; + + for (j = 0; j < i; j++){ + + temp -= u[j] * vmat.at(i, j); + u[i] = temp; + + } + + } + + + for (i = n_vars; i >= 1; i--){ + + if (vmat.at(i-1, i-1) == 0){ + + u[i-1] = 0; + + } else { + + temp = u[i-1] / vmat.at(i-1, i-1); + + for (j = i; j < n_vars; j++){ + temp -= u[j] * vmat.at(j, i-1); + } + + u[i-1] = temp; + + } + + } + + } + + void cholesky_invert(mat& vmat){ + + uword n_vars = vmat.n_cols; + uword i, j, k; + double temp; + + for (i=0; i0) { + + // take full advantage of the cholesky's diagonal of 1's + vmat.at(i,i) = 1.0 / vmat.at(i,i); + + for (j=(i+1); j 0) + scales.at(i) = w_node_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x_node.col(i) *= scales.at(i); + + } + + beta_current.zeros(n_vars); + beta_new.zeros(n_vars); + + // these are filled with initial values later + XB.set_size(x_node.n_rows); + Risk.set_size(x_node.n_rows); + u.set_size(n_vars); + a.set_size(n_vars); + a2.set_size(n_vars); + vmat.set_size(n_vars, n_vars); + cmat.set_size(n_vars, n_vars); + cmat2.set_size(n_vars, n_vars); + + halving = 0; + + // do the initial iteration + denom = 0; + loglik = 0; + n_risk = 0; + + person = x_node.n_rows - 1; + + u.fill(0); + a.fill(0); + a2.fill(0); + vmat.fill(0); + cmat.fill(0); + cmat2.fill(0); + + // this loop has a strange break condition to accomodate + // the restriction that a uvec (uword) cannot be < 0 + + break_loop = false; + + // xb = 0.0; + + for( ; ; ){ + + temp2 = y_node.at(person, 0); // time of event for current person + n_events = 0 ; // number of deaths at this time point + weight_events = 0 ; // sum of w_node for the deaths + denom_events = 0 ; // sum of weighted risks for the deaths + + // walk through this set of tied times + while(y_node.at(person, 0) == temp2){ + + n_risk++; + + risk = w_node.at(person); + + if (y_node.at(person, 1) == 0) { + + denom += risk; + + /* a contains weighted sums of x, cmat sums of squares */ + + for (i=0; i 0) { + + if (ties_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= denom_events * log(denom); + + for (i=0; i 1 && stat_best < R_PosInf){ + + for(iter = 1; iter < cph_iter_max; iter++){ + + if(VERBOSITY > 0){ + + Rcout << "--------- Newt-Raph algo; iter " << iter; + Rcout << " ---------" << std::endl; + Rcout << "beta: " << beta_new.t(); + Rcout << "loglik: " << stat_best; + Rcout << std::endl; + Rcout << "------------------------------------------"; + Rcout << std::endl << std::endl << std::endl; + + } + + // do the next iteration + + denom = 0; + loglik = 0; + n_risk = 0; + + person = x_node.n_rows - 1; + + u.fill(0); + a.fill(0); + a2.fill(0); + vmat.fill(0); + cmat.fill(0); + cmat2.fill(0); + + // this loop has a strange break condition to accomodate + // the restriction that a uvec (uword) cannot be < 0 + + break_loop = false; + + XB = x_node * beta_new; + Risk = exp(XB) % w_node; + + for( ; ; ){ + + temp2 = y_node.at(person, 0); // time of event for current person + n_events = 0 ; // number of deaths at this time point + weight_events = 0 ; // sum of w_node for the deaths + denom_events = 0 ; // sum of weighted risks for the deaths + + // walk through this set of tied times + while(y_node.at(person, 0) == temp2){ + + n_risk++; + + xb = XB.at(person); + risk = Risk.at(person); + + // xb = 0; + // + // for(i = 0; i < n_vars; i++){ + // xb += beta.at(i) * x_node.at(person, i); + // } + + w_node_person = w_node.at(person); + + // risk = exp(xb) * w_node_person; + + if (y_node.at(person, 1) == 0) { + + denom += risk; + + /* a contains weighted sums of x, cmat sums of squares */ + + for (i=0; i 0) { + + if (ties_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= weight_events * log(denom); + + for (i=0; i 0) Rcout << "scaled beta: " << beta_current[i] << "; "; + + + beta_current.at(i) *= x_transforms.at(i, 1); + vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); + + // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; + + // if(oobag_importance_type == 'A'){ + // + // if(beta_current.at(i) != 0){ + // + // temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), + // 1, false, false); + // + // if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; + // + // } + // + // vi_pval_denom[cols_node[i]]++; + // + // } + + } + + // if(verbose > 1) Rcout << std::endl; + + return(beta_current); + + } + + } + + diff --git a/src/Coxph.h b/src/Coxph.h index 0e7aaad6..1480e36b 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -1,24 +1,16 @@ /*----------------------------------------------------------------------------- This file is part of aorsf. -Author: Byron C Jaeger -aorsf may be modified and distributed under the terms of the MIT license. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ -#include -#include "globals.h" - #ifndef COXPH_H #define COXPH_H - extern double temp1, temp2; - extern arma::mat x_transforms; - extern arma::uword n_vars, person, iter, i, j, k; +#include - namespace aorsf { - // ---------------------------------------------------------------------------- - // ---------------------------- scaling functions ----------------------------- - // ---------------------------------------------------------------------------- + namespace aorsf { // scale observations in predictor matrix // @@ -36,55 +28,8 @@ aorsf may be modified and distributed under the terms of the MIT license. // // @return modified x_node and x_transform filled with values // - void x_node_scale(){ - - // set aside memory for outputs - // first column holds the mean values - // second column holds the scale values - - x_transforms.zeros(n_vars, 2); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - - w_node_sum = arma::sum(w_node); - - for(i = 0; i < n_vars; i++) { - - means.at(i) = arma::sum( w_node % x_node.col(i) ) / w_node_sum; - - x_node.col(i) -= means.at(i); - - scales.at(i) = arma::sum(w_node % abs(x_node.col(i))); - - if(scales.at(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; - - x_node.col(i) *= scales.at(i); - - } - - } - - // same as above function, but just the means - // (currently not used) - void x_node_means(){ - - x_transforms.zeros(n_vars, 1); - w_node_sum = arma::sum(w_node); - - for(i = 0; i < n_vars; i++) { - - x_transforms.at(i, 0) = arma::sum( w_node % x_node.col(i) ) / w_node_sum; - - } - - } - - // ---------------------------------------------------------------------------- - // ---------------------------- cholesky functions ---------------------------- - // ---------------------------------------------------------------------------- + arma::mat coxph_scale(arma::mat& x_node, + arma::vec& w_node); // cholesky decomposition // @@ -96,56 +41,8 @@ aorsf may be modified and distributed under the terms of the MIT license. // // prepares vmat for cholesky_solve() - void cholesky(){ - - double eps_chol = 0; - double toler = 1e-8; - double pivot; - - for(i = 0; i < n_vars; i++){ - - if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); - - // copy upper right values to bottom left - for(j = (i+1); j eps_chol) { - - for(j = (i+1); j < n_vars; j++){ - temp1 = vmat.at(j,i) / pivot; - vmat.at(j,i) = temp1; - vmat.at(j,j) -= temp1*temp1*pivot; - - for(k = (j+1); k < n_vars; k++){ - - vmat.at(k, j) -= temp1 * vmat.at(k, i); - - } - - } - - } else { - - vmat.at(i, i) = 0; - - } - - } - - } + void cholesky_decomp(arma::mat& vmat); // solve cholesky decomposition // @@ -156,43 +53,8 @@ aorsf may be modified and distributed under the terms of the MIT license. // @param n_vars the number of predictors used in the current node // // - void cholesky_solve(){ - - for (i = 0; i < n_vars; i++) { - - temp1 = u[i]; - - for (j = 0; j < i; j++){ - - temp1 -= u[j] * vmat.at(i, j); - u[i] = temp1; - - } - - } - - - for (i = n_vars; i >= 1; i--){ - - if (vmat.at(i-1, i-1) == 0){ - - u[i-1] = 0; - - } else { - - temp1 = u[i-1] / vmat.at(i-1, i-1); - - for (j = i; j < n_vars; j++){ - temp1 -= u[j] * vmat.at(j, i-1); - } - - u[i-1] = temp1; - - } - - } - - } + void cholesky_solve(arma::mat& vmat, + arma::vec& u); // invert the cholesky in the lower triangle // @@ -203,406 +65,7 @@ aorsf may be modified and distributed under the terms of the MIT license. // @param n_vars the number of predictors used in the current node // - void cholesky_invert(){ - - for (i=0; i0) { - - // take full advantage of the cholesky's diagonal of 1's - vmat.at(i,i) = 1.0 / vmat.at(i,i); - - for (j=(i+1); j 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= weight_events * log(denom); - - for (i=0; i 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= denom_events * log(denom); - - for (i=0; i(0, n_vars - 1); - arma::vec beta_current(n_vars, arma::fill::zeros); - arma::vec beta_new(n_vars, arma::fill::zeros); - - double temp1, temp2, halving, stat_best, stat_current; - - // these are filled with initial values later - arma::vec XB(n_rows); - arma::vec Risk(n_rows); - arma::vec u(n_vars); - arma::vec a(n_vars); - arma::vec a2(n_vars); - arma::mat vmat(n_vars, n_vars); - arma::mat cmat(n_vars, n_vars); - arma::mat cmat2(n_vars, n_vars); - - x_node_scale(); - - halving = 0; - - // do the initial iteration - stat_best = newtraph_cph_init(); - - // update beta_current - cholesky(); - cholesky_solve(); - beta_new = beta_current + u; - - if(cph_iter_max > 1 && stat_best < R_PosInf){ - - for(iter = 1; iter < cph_iter_max; iter++){ - - // if(verbose > 0){ - // - // Rcout << "--------- Newt-Raph algo; iter " << iter; - // Rcout << " ---------" << std::endl; - // Rcout << "beta: " << beta_new.t(); - // Rcout << "loglik: " << stat_best; - // Rcout << std::endl; - // Rcout << "------------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // - // } - - // do the next iteration - stat_current = newtraph_cph_iter(beta_new); - - cholesky(); - - // don't go trying to fix this, just use the last - // set of valid coefficients - if(std::isinf(stat_current)) break; - - // check for convergence - // break the loop if the new ll is ~ same as old best ll - if(fabs(1 - stat_best / stat_current) < cph_eps){ - break; - } - - if(stat_current < stat_best){ // it's not converging! - - halving++; // get more aggressive when it doesn't work - - // reduce the magnitude by which beta_new modifies beta_current - for (i = 0; i < n_vars; i++){ - beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); - } - - // yeah its not technically the best but I need to do this for - // more reasonable output when verbose = true; I should remove - // this line when verbosity is taken out. - stat_best = stat_current; - - } else { // it's converging! - - halving = 0; - stat_best = stat_current; - - cholesky_solve(); - - for (i = 0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - beta_new[i] = beta_new[i] + u[i]; - - } - - } - - } - - } - - // invert vmat - cholesky_invert(); - - for (i=0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - - if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ - beta_current[i] = 0; - } - - if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ - vmat.at(i, i) = 1.0; - } - - // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; - - if(cph_do_scale){ - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); - } - - // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; - - if(variable_importance == VI_ANOVA){ - - if(beta_current.at(i) != 0){ - - temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), - 1, false, false); - - if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; - - } - - vi_pval_denom[cols_node[i]]++; - - } - - } - - // if(verbose > 1) Rcout << std::endl; - - return(beta_current); - - } + arma::uword cph_iter_max, + char oobag_importance_type); - } +} #endif /* COXPH_H */ diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 15684180..4acfe185 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,266 +11,28 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// std_setdiff -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); -RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); - rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); - return rcpp_result_gen; -END_RCPP -} -// x_node_scale_exported -List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); -RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { +// coxph_scale_exported +List coxph_scale_exported(NumericMatrix& x_, NumericVector& w_); +RcppExport SEXP _aorsf_coxph_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); - return rcpp_result_gen; -END_RCPP -} -// leaf_kaplan_testthat -arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); -RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); - rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); - return rcpp_result_gen; -END_RCPP -} -// newtraph_cph_testthat -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); -RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); - Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); - return rcpp_result_gen; -END_RCPP -} -// lrt_multi_testthat -List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); -RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); - Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); - rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); - return rcpp_result_gen; -END_RCPP -} -// oobag_c_harrell_testthat -double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); -RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); - Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); - rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); - return rcpp_result_gen; -END_RCPP -} -// ostree_pred_leaf_testthat -arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); -RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); - rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_fit -List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); - Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); - Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); - Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); - Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); - Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); - Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); - Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); - Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); - Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_negate_vi -arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_permute_vi -arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); + rcpp_result_gen = Rcpp::wrap(coxph_scale_exported(x_, w_)); return rcpp_result_gen; END_RCPP } -// orsf_pred_uni -arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +// coxph_fit_exported +List coxph_fit_exported(NumericMatrix& x_, NumericMatrix& y_, NumericVector& w_); +RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_SEXP, SEXP y_SEXP, SEXP w_SEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_multi -arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_smry -arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_smry -arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_ice -arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_ice -arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y_(y_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); + rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_, y_, w_)); return rcpp_result_gen; END_RCPP } @@ -293,22 +55,8 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, - {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, - {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, - {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, - {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, - {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, - {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, - {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 29}, - {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, - {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, - {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, - {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, - {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, - {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, - {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, - {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, + {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, + {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 3}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index bd33e157..9a0dc604 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -32,25 +32,42 @@ using namespace aorsf; // } // Same as x_node_scale, but this can be called from R -// // [[Rcpp::export]] -// List x_node_scale_exported(NumericMatrix x_, -// NumericVector w_){ -// -// arma::mat x_transforms; -// arma::mat x_node = arma::mat(x_.begin(), x_.nrow(), x_.ncol(), false); -// arma::vec w_node = arma::vec(w_.begin(), w_.length(), false); -// arma::uword n_vars = x_node.n_cols; -// -// x_node_scale(); -// -// return( -// List::create( -// _["x_scaled"] = x_node, -// _["x_transforms"] = x_transforms -// ) -// ); -// -// } + +// [[Rcpp::export]] +List coxph_scale_exported(NumericMatrix& x_, + NumericVector& w_){ + + mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + vec w_node = vec(w_.begin(), w_.length(), false); + mat x_transforms = coxph_scale(x_node, w_node); + + return( + List::create( + _["x_scaled"] = x_node, + _["x_transforms"] = x_transforms + ) + ); + +} + +// [[Rcpp::export]] +List coxph_fit_exported(NumericMatrix& x_, + NumericMatrix& y_, + NumericVector& w_){ + + mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); + vec w_node = vec(w_.begin(), w_.length(), false); + + vec beta = newtraph_cph(x_node, y_node, w_node, 1, 1e-9, 20, 'A'); + + return( + List::create( + _["beta"] = beta + ) + ); + +} // [[Rcpp::export]] From 010ba14c2b9fec564c62597b1fb337cbdf827ee2 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Fri, 30 Jun 2023 16:23:54 -0400 Subject: [PATCH 017/103] working cph code --- src/Coxph.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 08e46211..6eb5e0de 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -457,7 +457,7 @@ for(iter = 1; iter < cph_iter_max; iter++){ - if(VERBOSITY > 0){ + if(VERBOSITY > 1){ Rcout << "--------- Newt-Raph algo; iter " << iter; Rcout << " ---------" << std::endl; From 3e586e38b52c914d6fb3fdba6b378260db27d47c Mon Sep 17 00:00:00 2001 From: bjaeger Date: Mon, 10 Jul 2023 11:55:17 -0400 Subject: [PATCH 018/103] coxph test passes --- R/RcppExports.R | 4 ++-- src/RcppExports.cpp | 11 +++++++---- src/orsf_oop.cpp | 16 ++++++++++++++-- tests/testthat/test-newtraph_cph.R | 20 +++++++++++--------- 4 files changed, 34 insertions(+), 17 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index f610a7dc..95027013 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -5,8 +5,8 @@ coxph_scale_exported <- function(x_, w_) { .Call(`_aorsf_coxph_scale_exported`, x_, w_) } -coxph_fit_exported <- function(x_, y_, w_) { - .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_) +coxph_fit_exported <- function(x_, y_, w_, method, cph_eps, cph_iter_max) { + .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_, method, cph_eps, cph_iter_max) } orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L, oobag_pred = TRUE) { diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 4acfe185..d0e43022 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -24,15 +24,18 @@ BEGIN_RCPP END_RCPP } // coxph_fit_exported -List coxph_fit_exported(NumericMatrix& x_, NumericMatrix& y_, NumericVector& w_); -RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_SEXP, SEXP y_SEXP, SEXP w_SEXP) { +List coxph_fit_exported(NumericMatrix& x_, NumericMatrix& y_, NumericVector& w_, int method, double cph_eps, int cph_iter_max); +RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_SEXP, SEXP y_SEXP, SEXP w_SEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); Rcpp::traits::input_parameter< NumericMatrix& >::type y_(y_SEXP); Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_, y_, w_)); + Rcpp::traits::input_parameter< int >::type method(methodSEXP); + Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); + Rcpp::traits::input_parameter< int >::type cph_iter_max(cph_iter_maxSEXP); + rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_, y_, w_, method, cph_eps, cph_iter_max)); return rcpp_result_gen; END_RCPP } @@ -56,7 +59,7 @@ END_RCPP static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, - {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 3}, + {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9a0dc604..7e6f5406 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -53,13 +53,25 @@ List coxph_scale_exported(NumericMatrix& x_, // [[Rcpp::export]] List coxph_fit_exported(NumericMatrix& x_, NumericMatrix& y_, - NumericVector& w_){ + NumericVector& w_, + int method, + double cph_eps, + int cph_iter_max){ mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); vec w_node = vec(w_.begin(), w_.length(), false); - vec beta = newtraph_cph(x_node, y_node, w_node, 1, 1e-9, 20, 'A'); + uword cph_iter_max_ = cph_iter_max; + + + vec beta = newtraph_cph(x_node, + y_node, + w_node, + method, + cph_eps, + cph_iter_max_, + 'A'); return( List::create( diff --git a/tests/testthat/test-newtraph_cph.R b/tests/testthat/test-newtraph_cph.R index 439df980..157d452c 100644 --- a/tests/testthat/test-newtraph_cph.R +++ b/tests/testthat/test-newtraph_cph.R @@ -40,21 +40,23 @@ run_cph_test <- function(x, y, method){ xx <- x[, , drop = FALSE] - bcj = newtraph_cph_testthat(xx, - y, - wts, - method = method, - cph_eps_ = 1e-8, - iter_max = iter_max) + bcj = coxph_fit_exported(xx, + y, + wts, + method = method, + cph_eps = 1e-8, + cph_iter_max = iter_max) - rownames(bcj) <- names(tt$coefficients) - bcj_vec <- bcj[, 1, drop = TRUE] + beta <- bcj$beta + + rownames(beta) <- names(tt$coefficients) + beta_vec <- beta[, 1, drop = TRUE] perc_diff <- function(a,b) abs(a-b) / (abs(0.001 + a+b)/2) # maximum percent difference - max(perc_diff(tt$coefficients, bcj_vec)) + max(perc_diff(tt$coefficients, beta_vec)) } From dfa4c2acd5067e2060f9097e95169dbff9fa5b54 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Mon, 10 Jul 2023 14:20:43 -0400 Subject: [PATCH 019/103] untested nodesplitstat --- src/Coxph.cpp | 50 ++--- src/Coxph.h | 16 +- src/NodeSplitStats.cpp | 432 +++++++++++++++++++++++++++++++++++++++++ src/NodeSplitStats.h | 49 +++++ src/orsf_oop.cpp | 232 +++++++++++----------- 5 files changed, 630 insertions(+), 149 deletions(-) create mode 100644 src/NodeSplitStats.cpp create mode 100644 src/NodeSplitStats.h diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 6eb5e0de..3bda32e2 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -202,39 +202,39 @@ } - vec newtraph_cph(mat& x_node, - mat& y_node, - vec& w_node, - int ties_method = 1, - double cph_eps = 1e-9, - uword cph_iter_max = 20, - char oobag_importance_type = 'A'){ + vec coxph_fit(mat& x_node, + mat& y_node, + vec& w_node, + int ties_method = 1, + double cph_eps = 1e-9, + uword cph_iter_max = 20, + char oobag_importance_type = 'A'){ uword - person, - iter, - i, - j, - k, - n_vars; + person, + iter, + i, + j, + k, + n_vars; vec - beta_current, - beta_new, - XB, - Risk, - u, - a, - a2, - vi_pval_numer, - vi_pval_denom; + beta_current, + beta_new, + XB, + Risk, + u, + a, + a2, + vi_pval_numer, + vi_pval_denom; uvec cols_node; mat - vmat, - cmat, - cmat2; + vmat, + cmat, + cmat2; bool break_loop; diff --git a/src/Coxph.h b/src/Coxph.h index 1480e36b..4c7b6387 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -76,15 +76,15 @@ // of the Cox model. All inputs are described above // in newtraph_cph_iter() // - arma::vec newtraph_cph(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - int ties_method, - double cph_eps, - arma::uword cph_iter_max, - char oobag_importance_type); + arma::vec coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + int ties_method, + double cph_eps, + arma::uword cph_iter_max, + char oobag_importance_type); -} + } #endif /* COXPH_H */ diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp new file mode 100644 index 00000000..5ea4b867 --- /dev/null +++ b/src/NodeSplitStats.cpp @@ -0,0 +1,432 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include +#include "globals.h" +#include "Coxph.h" + + using namespace arma; + using namespace Rcpp; + + namespace aorsf { + + double lrt_multi(mat& x_node, + mat& y_node, + mat& w_node, + vec& XB, + uword n_split, + double split_min_stat, + double leaf_min_obs, + double leaf_min_events){ + + bool break_loop = false; + + vec + group(y_node.n_rows, fill::zeros), + potential_cutpoints; + + double + stat_best = 0, // initialize at the lowest possible LRT stat value + n_events = 0, + n_risk = 0, + g_risk = 0, + stat_current, + n_risk_left, + n_risk_right, + n_events_right, + observed, + expected, + variance, + temp1, + temp2; + + uword i, j, k; + + uvec + jit_vals, + // sort XB- we need to iterate over the sorted indices + iit_vals = sort_index(XB, "ascend"); + + uvec::iterator + iit, + jit, + iit_best; + + // unsafe columns point to cols in y_node. + vec y_status = y_node.unsafe_col(1); + vec y_time = y_node.unsafe_col(0); + + // first determine the lowest value of XB that will + // be a valid cut-point to split a node. A valid cut-point + // is one that, if used, will result in at least leaf_min_obs + // and leaf_min_events in both the left and right node. + + + if(VERBOSITY > 0){ + Rcout << "----- finding cut-point boundaries -----" << std::endl; + } + + // Iterate through the sorted values of XB, in ascending order. + + for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ + + n_events += y_status[*iit] * w_node[*iit]; + n_risk += w_node[*iit]; + + // If we want to make the current value of XB a cut-point, we need + // to make sure the next value of XB isn't equal to this current value. + // Otherwise, we will have the same value of XB in both groups! + + if(VERBOSITY > 0){ + Rcout << XB[*iit] << " ---- "; + Rcout << XB[*(iit+1)] << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } + + if(XB[*iit] != XB[*(iit+1)]){ + + if(VERBOSITY > 0){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + if(VERBOSITY > 0){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << XB[*iit] << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + if(VERBOSITY > 0){ + if(iit >= iit_vals.end()-1) { + Rcout << "Could not find a valid lower cut-point" << std::endl; + } + } + + + j = iit - iit_vals.begin(); + + // got to reset these before finding the upper limit + n_events=0; + n_risk=0; + + // do the first step in the loop manually since we need to + // refer to iit+1 in all proceeding steps. + + for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ + + n_events += y_status[*iit] * w_node[*iit]; + n_risk += w_node[*iit]; + group[*iit] = 1; + + if(VERBOSITY > 0){ + Rcout << XB[*iit] << " ---- "; + Rcout << XB(*(iit-1)) << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } + + if ( XB[*iit] != XB[*(iit-1)] ) { + + if(VERBOSITY > 0){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // iit value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if iit currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --iit; + + if(VERBOSITY > 0){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << XB[*iit] << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + } + + break; + + } + + } + + } + + // number of steps taken + k = iit + 1 - iit_vals.begin(); + + if(VERBOSITY > 0){ + Rcout << "----------------------------------------" << std::endl; + Rcout << std::endl << std::endl; + Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; + } + + // initialize cut-point as the value of XB iit currently points to. + iit_best = iit; + + // what happens if we don't have enough events or obs to split? + // the first valid lower cut-point (at iit_vals(k)) is > the first + // valid upper cutpoint (current value of n_risk). Put another way, + // k (the number of steps taken from beginning of the XB vec) + // will be > n_rows - p, where the difference on the RHS is + // telling us where we are after taking p steps from the end + // of the XB vec. Returning the infinite cp is a red flag. + + if(VERBOSITY > 0){ + Rcout << "j: " << j << std::endl; + Rcout << "k: " << k << std::endl; + } + + if (j > k){ + + if(VERBOSITY > 0) { + Rcout << "Could not find a cut-point for this XB" << std::endl; + } + + return(R_PosInf); + } + + if(VERBOSITY > 0){ + + Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + Rcout << "n potential cutpoints: " << k-j << std::endl; + + } + + + // adjust k to indicate the number of valid cut-points + k -= j; + + if(k > n_split){ + + jit_vals = linspace(0, k, n_split); + + } else { + + // what happens if there are only 5 potential cut-points + // but the value of n_split is > 5? We will just check out + // the 5 valid cutpoints. + jit_vals = linspace(0, k, k); + + } + + potential_cutpoints.resize( jit_vals.size() ); + + // protection from going out of bounds with jit_vals(k) below + if(j == 0) jit_vals(jit_vals.size()-1)--; + + // put the indices of potential cut-points into potential_cutpoints + for(k = 0; k < potential_cutpoints.size(); k++){ + potential_cutpoints[k] = XB(*(iit_best - jit_vals[k])); + } + + // back to how it was! + if(j == 0) jit_vals(jit_vals.size()-1)++; + + // if(VERBOSITY > 0){ + // + // Rcout << "cut-points chosen: "; + // + // Rcout << potential_cutpoints.t(); + // + // Rcout << "----------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + bool do_lrt = true; + + k = 0; + j = 1; + + // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ + + + // if(VERBOSITY > 0){ + // Rcout << "jit points to " << *jit << std::endl; + // } + + // switch group values from 0 to 1 until you get to the next cut-point + for( ; j < *jit; j++){ + group[*iit] = 1; + --iit; + } + + if(jit == jit_vals.begin() || + jit == jit_vals.end()-1){ + + do_lrt = true; + + } else { + + if( potential_cutpoints[k] == potential_cutpoints[k+1] || + potential_cutpoints[k] == potential_cutpoints[0] || + *jit <= 1){ + + do_lrt = false; + + } else { + + while( XB[*iit] == XB[*(iit - 1)] ){ + + group[*iit] = 1; + --iit; + ++j; + + // if(VERBOSITY > 0){ + // Rcout << "cutpoint dropped down one spot: "; + // Rcout << XB[*iit] << std::endl; + // } + + } + + do_lrt = true; + + } + + } + + ++k; + + if(do_lrt){ + + n_risk=0; + g_risk=0; + + observed=0; + expected=0; + variance=0; + + break_loop = false; + + i = y_node.n_rows-1; + + // if(VERBOSITY > 0){ + // Rcout << "sum(group==1): " << sum(group) << "; "; + // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + // Rcout << std::endl; + // if(VERBOSITY > 0){ + // Rcout << "group:" << std::endl; + // Rcout << group(iit_vals).t() << std::endl; + // } + // } + + + // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += group[i] * w_node[i]; + observed += y_status[i] * group[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but turns out its faster to multiply by 0 than + // it is to check whether n_events is > 0 + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + variance += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + stat_current = pow(expected-observed, 2) / variance; + + // if(VERBOSITY > 0){ + // + // Rcout << "-------- log-rank test results --------" << std::endl; + // Rcout << "cutpoint: " << XB[*iit] << std::endl; + // Rcout << "lrt stat: " << stat_current << std::endl; + // Rcout << "---------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + if(stat_current > stat_best){ + iit_best = iit; + stat_best = stat_current; + n_events_right = observed; + n_risk_right = g_risk; + n_risk_left = n_risk - g_risk; + } + + } + // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + } + + // if the log-rank test does not detect a difference at 0.05 alpha, + // maybe it's not a good idea to split this node. + + if(stat_best < split_min_stat) return(R_PosInf); + + // if(VERBOSITY > 0){ + // Rcout << "Best LRT stat: " << stat_best << std::endl; + // } + + // rewind iit until it is back where it was when we got the + // best lrt stat. While rewinding iit, also reset the group + // values so that group is as it was when we got the best + // lrt stat. + + + while(iit <= iit_best){ + group[*iit] = 0; + ++iit; + } + + // XB at *iit_best is the cut-point that maximized the log-rank test + return(XB[*iit_best]); + + } + + + } + diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h new file mode 100644 index 00000000..e1582cc8 --- /dev/null +++ b/src/NodeSplitStats.h @@ -0,0 +1,49 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef NODESPLITSTATS_H +#define NODESPLITSTATS_H + +#include + + + namespace aorsf { + + // Log rank test w/multiple cutpoints + // + // this function returns a cutpoint obtaining a local maximum + // of the log-rank test (lrt) statistic. The default value (+Inf) + // is really for diagnostic purposes. Put another way, if the + // return value is +Inf (an impossible value for a cutpoint), + // that means that we didn't find any valid cut-points and + // the node cannot be grown with the current XB. + // + // if there is a valid cut-point, then the main side effect + // of this function is to modify the group vector, which + // will be used to assign observations to the two new nodes. + // + // @param group the vector that determines which node to send each + // observation to (left node = 0, right node = 1) + // @param y_node matrix of outcomes + // @param w_node vector of weights + // @param XB linear combination of predictors + // + // the group vector is modified by this function and the value returned + // is the maximal log-rank statistic across all the possible cutpoints. + double lrt_multi(arma::mat& x_node, + arma::mat& y_node, + arma::mat& w_node, + arma::vec& XB, + arma::uword n_split, + double split_min_stat, + double leaf_min_obs, + double leaf_min_events); + + + } + +#endif /* NODESPLITSTATS_H */ + diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 7e6f5406..5b65c5c6 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -14,129 +14,129 @@ #include "Tree.h" #include "Coxph.h" -// [[Rcpp::depends(RcppArmadillo)]] - -using namespace Rcpp; -using namespace arma; -using namespace aorsf; - -// @description sample weights to mimic a bootstrap sample -// arma::vec bootstrap_sample_testthat(arma::mat& x, -// arma::mat& y, -// arma::vec& w) { -// -// Data data = Data(x, y, w); -// Data* data_ptr = &data; -// return bootstrap_sample(data_ptr); -// -// } - -// Same as x_node_scale, but this can be called from R - -// [[Rcpp::export]] -List coxph_scale_exported(NumericMatrix& x_, - NumericVector& w_){ - - mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - vec w_node = vec(w_.begin(), w_.length(), false); - mat x_transforms = coxph_scale(x_node, w_node); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - -} - -// [[Rcpp::export]] -List coxph_fit_exported(NumericMatrix& x_, - NumericMatrix& y_, - NumericVector& w_, - int method, - double cph_eps, - int cph_iter_max){ - - mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); - vec w_node = vec(w_.begin(), w_.length(), false); - - uword cph_iter_max_ = cph_iter_max; - - - vec beta = newtraph_cph(x_node, - y_node, - w_node, - method, - cph_eps, - cph_iter_max_, - 'A'); - - return( - List::create( - _["beta"] = beta - ) - ); - -} - - -// [[Rcpp::export]] -List orsf_cpp(arma::mat& x, - arma::mat& y, - arma::vec& w, - int vi = 0, - int sr = 1, - int pt = 1, - bool oobag_pred = true){ - - - int mtry = 2; - int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; - // int split_min_obs = DEFAULT_SPLIT_MIN_OBS; - // int split_min_stat = DEFAULT_SPLIT_MIN_STAT; - // int max_retry = DEFAULT_MAX_RETRY; - // int n_split = DEFAULT_N_SPLIT; - // int oobag_eval_every = 0; - // int seed = 0; - - VariableImportance variable_importance = static_cast(vi); - // SplitRule split_rule = static_cast(sr); - // PredType pred_type = static_cast(pt); - - // if( variable_importance == VI_NONE ) - // Rcout << variable_importance << std::endl; - - Data data = Data(x, y, w); - - if(VERBOSITY > 0){ - Rcout << "------------ dimensions ------------" << std::endl; - Rcout << "N obs total: " << data.get_n_rows() << std::endl; - Rcout << "N columns total: " << data.get_n_cols() << std::endl; - Rcout << "------------------------------------"; - Rcout << std::endl << std::endl; + // [[Rcpp::depends(RcppArmadillo)]] + + using namespace Rcpp; + using namespace arma; + using namespace aorsf; + + // @description sample weights to mimic a bootstrap sample + // arma::vec bootstrap_sample_testthat(arma::mat& x, + // arma::mat& y, + // arma::vec& w) { + // + // Data data = Data(x, y, w); + // Data* data_ptr = &data; + // return bootstrap_sample(data_ptr); + // + // } + + // Same as x_node_scale, but this can be called from R + + // [[Rcpp::export]] + List coxph_scale_exported(NumericMatrix& x_, + NumericVector& w_){ + + mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + vec w_node = vec(w_.begin(), w_.length(), false); + mat x_transforms = coxph_scale(x_node, w_node); + + return( + List::create( + _["x_scaled"] = x_node, + _["x_transforms"] = x_transforms + ) + ); + + } + + // [[Rcpp::export]] + List coxph_fit_exported(NumericMatrix& x_, + NumericMatrix& y_, + NumericVector& w_, + int method, + double cph_eps, + int cph_iter_max){ + + mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); + vec w_node = vec(w_.begin(), w_.length(), false); + + uword cph_iter_max_ = cph_iter_max; + + + vec beta = coxph_fit(x_node, + y_node, + w_node, + method, + cph_eps, + cph_iter_max_, + 'A'); + + return( + List::create( + _["beta"] = beta + ) + ); + } - Rcpp::List result; - Data* data_ptr = &data; + // [[Rcpp::export]] + List orsf_cpp(arma::mat& x, + arma::mat& y, + arma::vec& w, + int vi = 0, + int sr = 1, + int pt = 1, + bool oobag_pred = true){ - Tree tree(data_ptr, leaf_min_obs, mtry); - tree.grow(oobag_pred); + int mtry = 2; + int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + // int split_min_obs = DEFAULT_SPLIT_MIN_OBS; + // int split_min_stat = DEFAULT_SPLIT_MIN_STAT; + // int max_retry = DEFAULT_MAX_RETRY; + // int n_split = DEFAULT_N_SPLIT; + // int oobag_eval_every = 0; + // int seed = 0; - result.push_back(tree.rows_oobag, "rows_oobag"); - result.push_back(tree.coef, "coef"); - result.push_back(tree.coef_indices, "coef_indices"); - result.push_back(tree.cutpoint, "cutpoint"); - result.push_back(tree.next_left_node, "next_left_node"); - result.push_back(tree.leaf_values, "leaf_values"); - result.push_back(tree.pred_oobag, "pred_oobag"); - result.push_back(tree.leaf_indices, "leaf_indices"); + VariableImportance variable_importance = static_cast(vi); + // SplitRule split_rule = static_cast(sr); + // PredType pred_type = static_cast(pt); + // if( variable_importance == VI_NONE ) + // Rcout << variable_importance << std::endl; - return(result); + Data data = Data(x, y, w); + if(VERBOSITY > 0){ + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data.get_n_rows() << std::endl; + Rcout << "N columns total: " << data.get_n_cols() << std::endl; + Rcout << "------------------------------------"; + Rcout << std::endl << std::endl; + } -} + Rcpp::List result; + + Data* data_ptr = &data; + + Tree tree(data_ptr, leaf_min_obs, mtry); + + tree.grow(oobag_pred); + + result.push_back(tree.rows_oobag, "rows_oobag"); + result.push_back(tree.coef, "coef"); + result.push_back(tree.coef_indices, "coef_indices"); + result.push_back(tree.cutpoint, "cutpoint"); + result.push_back(tree.next_left_node, "next_left_node"); + result.push_back(tree.leaf_values, "leaf_values"); + result.push_back(tree.pred_oobag, "pred_oobag"); + result.push_back(tree.leaf_indices, "leaf_indices"); + + + return(result); + + + } From 3ed132fac920d2a57d710796fab55e3aef77e1da Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 11 Jul 2023 15:06:52 -0400 Subject: [PATCH 020/103] test failing nodesplitstat --- R/RcppExports.R | 4 + src/NodeSplitStats.cpp | 737 +++++++++++++++++++++++++------- src/NodeSplitStats.h | 17 +- src/RcppExports.cpp | 18 + src/orsf_oop.cpp | 28 ++ tests/testthat/test-lrt_multi.R | 9 +- 6 files changed, 652 insertions(+), 161 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 95027013..2a155f46 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -9,6 +9,10 @@ coxph_fit_exported <- function(x_, y_, w_, method, cph_eps, cph_iter_max) { .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_, method, cph_eps, cph_iter_max) } +lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) { + .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) +} + orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L, oobag_pred = TRUE) { .Call(`_aorsf_orsf_cpp`, x, y, w, vi, sr, pt, oobag_pred) } diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp index 5ea4b867..c55c84c5 100644 --- a/src/NodeSplitStats.cpp +++ b/src/NodeSplitStats.cpp @@ -6,54 +6,77 @@ #include #include "globals.h" -#include "Coxph.h" +#include "NodeSplitStats.h" using namespace arma; using namespace Rcpp; namespace aorsf { - double lrt_multi(mat& x_node, - mat& y_node, - mat& w_node, - vec& XB, - uword n_split, - double split_min_stat, - double leaf_min_obs, - double leaf_min_events){ - - bool break_loop = false; - - vec - group(y_node.n_rows, fill::zeros), - potential_cutpoints; - - double - stat_best = 0, // initialize at the lowest possible LRT stat value - n_events = 0, - n_risk = 0, - g_risk = 0, - stat_current, - n_risk_left, - n_risk_right, - n_events_right, - observed, - expected, - variance, - temp1, - temp2; - - uword i, j, k; - - uvec - jit_vals, - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - uvec::iterator - iit, - jit, - iit_best; + List lrt_multi(mat& y_node, + mat& w_node, + vec& XB, + uword n_split, + double split_min_stat, + double leaf_min_obs, + double leaf_min_events){ + + // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - + // + // this function returns a cutpoint obtaining a local maximum + // of the log-rank test (lrt) statistic. The default value (+Inf) + // is really for diagnostic purposes. Put another way, if the + // return value is +Inf (an impossible value for a cutpoint), + // that means that we didn't find any valid cut-points and + // the node cannot be grown with the current XB. + // + // if there is a valid cut-point, then the main side effect + // of this function is to modify the group vector, which + // will be used to assign observations to the two new nodes. + // + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + bool break_loop = false; + + vec + group(y_node.n_rows, fill::zeros), + vec_temp, + cutpoints_used(n_split), + lrt_statistics(n_split); + + double + stat_best = 0, // initialize at the lowest possible LRT stat value + n_events = 0, + n_risk = 0, + g_risk = 0, + stat_current, + observed, + expected, + V, + temp1, + temp2; + + uword i, j, k, list_counter = 0; + + uvec + jit_vals, + // sort XB- we need to iterate over the sorted indices + XB_sorted = sort_index(XB, "ascend"); + + uvec::iterator + iit, + jit, + iit_best; + + + // group should be initialized as all 0s + group.zeros(y_node.n_rows); + + // initialize at the lowest possible LRT stat value + stat_best = 0; + + // sort XB- we need to iterate over the sorted indices + XB_sorted = sort_index(XB, "ascend"); // unsafe columns point to cols in y_node. vec y_status = y_node.unsafe_col(1); @@ -64,46 +87,48 @@ // is one that, if used, will result in at least leaf_min_obs // and leaf_min_events in both the left and right node. + n_events = 0; + n_risk = 0; - if(VERBOSITY > 0){ - Rcout << "----- finding cut-point boundaries -----" << std::endl; - } + // if(verbose > 1){ + // Rcout << "----- finding cut-point boundaries -----" << std::endl; + // } // Iterate through the sorted values of XB, in ascending order. - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ + for(iit = XB_sorted.begin(); iit < XB_sorted.end()-1; ++iit){ - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; + n_events += y_status(*iit) * w_node(*iit); + n_risk += w_node(*iit); // If we want to make the current value of XB a cut-point, we need // to make sure the next value of XB isn't equal to this current value. // Otherwise, we will have the same value of XB in both groups! - if(VERBOSITY > 0){ - Rcout << XB[*iit] << " ---- "; - Rcout << XB[*(iit+1)] << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } + // if(verbose > 1){ + // Rcout << XB(*iit) << " ---- "; + // Rcout << XB(*(iit+1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } - if(XB[*iit] != XB[*(iit+1)]){ + if(XB(*iit) != XB(*(iit+1))){ - if(VERBOSITY > 0){ - Rcout << "********* New cut-point here ********" << std::endl; - } + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } if( n_events >= leaf_min_events && n_risk >= leaf_min_obs) { - if(VERBOSITY > 0){ - Rcout << std::endl; - Rcout << "lower cutpoint: " << XB[*iit] << std::endl; - Rcout << " - n_events, left node: " << n_events << std::endl; - Rcout << " - n_risk, left node: " << n_risk << std::endl; - Rcout << std::endl; - } + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; + // Rcout << " - n_events, left node: " << n_events << std::endl; + // Rcout << " - n_risk, left node: " << n_risk << std::endl; + // Rcout << std::endl; + // } break; @@ -113,14 +138,14 @@ } - if(VERBOSITY > 0){ - if(iit >= iit_vals.end()-1) { - Rcout << "Could not find a valid lower cut-point" << std::endl; - } - } + // if(verbose > 1){ + // if(iit >= XB_sorted.end()-1) { + // Rcout << "Could not find a valid lower cut-point" << std::endl; + // } + // } - j = iit - iit_vals.begin(); + j = iit - XB_sorted.begin(); // got to reset these before finding the upper limit n_events=0; @@ -129,24 +154,24 @@ // do the first step in the loop manually since we need to // refer to iit+1 in all proceeding steps. - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ + for(iit = XB_sorted.end()-1; iit >= XB_sorted.begin()+1; --iit){ - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - group[*iit] = 1; + n_events += y_status(*iit) * w_node(*iit); + n_risk += w_node(*iit); + group(*iit) = 1; - if(VERBOSITY > 0){ - Rcout << XB[*iit] << " ---- "; - Rcout << XB(*(iit-1)) << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } + // if(verbose > 1){ + // Rcout << XB(*iit) << " ---- "; + // Rcout << XB(*(iit-1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } - if ( XB[*iit] != XB[*(iit-1)] ) { + if(XB(*iit) != XB(*(iit-1))){ - if(VERBOSITY > 0){ - Rcout << "********* New cut-point here ********" << std::endl; - } + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } if( n_events >= leaf_min_events && n_risk >= leaf_min_obs ) { @@ -161,12 +186,12 @@ --iit; - if(VERBOSITY > 0){ - Rcout << std::endl; - Rcout << "upper cutpoint: " << XB[*iit] << std::endl; - Rcout << " - n_events, right node: " << n_events << std::endl; - Rcout << " - n_risk, right node: " << n_risk << std::endl; - } + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; + // Rcout << " - n_events, right node: " << n_events << std::endl; + // Rcout << " - n_risk, right node: " << n_risk << std::endl; + // } break; @@ -177,48 +202,51 @@ } // number of steps taken - k = iit + 1 - iit_vals.begin(); + k = iit + 1 - XB_sorted.begin(); - if(VERBOSITY > 0){ - Rcout << "----------------------------------------" << std::endl; - Rcout << std::endl << std::endl; - Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - } + // if(verbose > 1){ + // Rcout << "----------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; + // } // initialize cut-point as the value of XB iit currently points to. iit_best = iit; // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first + // the first valid lower cut-point (at XB_sorted(k)) is > the first // valid upper cutpoint (current value of n_risk). Put another way, // k (the number of steps taken from beginning of the XB vec) // will be > n_rows - p, where the difference on the RHS is // telling us where we are after taking p steps from the end // of the XB vec. Returning the infinite cp is a red flag. - if(VERBOSITY > 0){ - Rcout << "j: " << j << std::endl; - Rcout << "k: " << k << std::endl; - } + // if(verbose > 1){ + // Rcout << "j: " << j << std::endl; + // Rcout << "k: " << k << std::endl; + // } if (j > k){ - if(VERBOSITY > 0) { - Rcout << "Could not find a cut-point for this XB" << std::endl; - } + // if(verbose > 1) { + // Rcout << "Could not find a cut-point for this XB" << std::endl; + // } return(R_PosInf); } - if(VERBOSITY > 0){ - - Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - Rcout << "n potential cutpoints: " << k-j << std::endl; - - } + // if(verbose > 1){ + // + // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + // Rcout << "n potential cutpoints: " << k-j << std::endl; + // + // } + // what happens if there are only 5 potential cut-points + // but the value of n_split is > 5? We will just check out + // the 5 valid cutpoints. - // adjust k to indicate the number of valid cut-points + // adjust k to indicate steps taken in the outer loop. k -= j; if(k > n_split){ @@ -227,31 +255,26 @@ } else { - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. jit_vals = linspace(0, k, k); } - potential_cutpoints.resize( jit_vals.size() ); + vec_temp.resize( jit_vals.size() ); - // protection from going out of bounds with jit_vals(k) below if(j == 0) jit_vals(jit_vals.size()-1)--; - // put the indices of potential cut-points into potential_cutpoints - for(k = 0; k < potential_cutpoints.size(); k++){ - potential_cutpoints[k] = XB(*(iit_best - jit_vals[k])); + for(k = 0; k < vec_temp.size(); k++){ + vec_temp(k) = XB(*(iit_best - jit_vals(k))); } - // back to how it was! if(j == 0) jit_vals(jit_vals.size()-1)++; - // if(VERBOSITY > 0){ + + // if(verbose > 1){ // // Rcout << "cut-points chosen: "; // - // Rcout << potential_cutpoints.t(); + // Rcout << vec_temp.t(); // // Rcout << "----------------------------------------" << std::endl << // std::endl << std::endl; @@ -267,13 +290,12 @@ for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - // if(VERBOSITY > 0){ + // if(verbose > 1){ // Rcout << "jit points to " << *jit << std::endl; // } - // switch group values from 0 to 1 until you get to the next cut-point for( ; j < *jit; j++){ - group[*iit] = 1; + group(*iit) = 1; --iit; } @@ -284,23 +306,23 @@ } else { - if( potential_cutpoints[k] == potential_cutpoints[k+1] || - potential_cutpoints[k] == potential_cutpoints[0] || + if( vec_temp(k) == vec_temp(k+1) || + vec_temp(k) == vec_temp(0) || *jit <= 1){ do_lrt = false; } else { - while( XB[*iit] == XB[*(iit - 1)] ){ + while(XB(*iit) == XB(*(iit - 1))){ - group[*iit] = 1; + group(*iit) = 1; --iit; ++j; - // if(VERBOSITY > 0){ + // if(verbose > 1){ // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB[*iit] << std::endl; + // Rcout << XB(*iit) << std::endl; // } } @@ -315,24 +337,27 @@ if(do_lrt){ + cutpoints_used(list_counter) = XB(*iit); + n_risk=0; g_risk=0; observed=0; expected=0; - variance=0; + + V=0; break_loop = false; i = y_node.n_rows-1; - // if(VERBOSITY > 0){ + // if(verbose > 1){ // Rcout << "sum(group==1): " << sum(group) << "; "; // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); // Rcout << std::endl; - // if(VERBOSITY > 0){ + // if(verbose > 1){ // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; + // Rcout << group(XB_sorted).t() << std::endl; // } // } @@ -369,7 +394,7 @@ // definitely check if n_risk is > 1 b/c otherwise divide by 0 if (n_risk > 1){ temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - variance += temp1 * (1 - temp2); + V += temp1 * (1 - temp2); } if(break_loop) break; @@ -377,12 +402,16 @@ } // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / variance; + stat_current = pow(expected-observed, 2) / V; + + lrt_statistics(list_counter) = stat_current; - // if(VERBOSITY > 0){ + list_counter++; + + // if(verbose > 1){ // // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB[*iit] << std::endl; + // Rcout << "cutpoint: " << XB(*iit) << std::endl; // Rcout << "lrt stat: " << stat_current << std::endl; // Rcout << "---------------------------------------" << std::endl << // std::endl << std::endl; @@ -392,9 +421,6 @@ if(stat_current > stat_best){ iit_best = iit; stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; } } @@ -405,9 +431,9 @@ // if the log-rank test does not detect a difference at 0.05 alpha, // maybe it's not a good idea to split this node. - if(stat_best < split_min_stat) return(R_PosInf); + if(stat_best < 3.841459) return(R_PosInf); - // if(VERBOSITY > 0){ + // if(verbose > 1){ // Rcout << "Best LRT stat: " << stat_best << std::endl; // } @@ -418,15 +444,430 @@ while(iit <= iit_best){ - group[*iit] = 0; + group(*iit) = 0; ++iit; } - // XB at *iit_best is the cut-point that maximized the log-rank test - return(XB[*iit_best]); + return(List::create(_["cutpoints"] = cutpoints_used, + _["statistic"] = lrt_statistics)); } + // List lrt_multi(mat& y_node, + // mat& w_node, + // vec& XB, + // uword n_split, + // double split_min_stat, + // double leaf_min_obs, + // double leaf_min_events){ + // + // bool break_loop = false; + // + // vec + // group(y_node.n_rows, fill::zeros), + // potential_cutpoints, + // cutpoints_used(n_split), + // lrt_statistics(n_split); + // + // double + // stat_best = 0, // initialize at the lowest possible LRT stat value + // n_events = 0, + // n_risk = 0, + // g_risk = 0, + // stat_current, + // observed, + // expected, + // variance, + // temp1, + // temp2; + // + // uword i, j, k, list_counter = 0; + // + // uvec + // jit_vals, + // // sort XB- we need to iterate over the sorted indices + // XB_sorted = sort_index(XB, "ascend"); + // + // uvec::iterator + // iit, + // jit, + // iit_best; + // + // // unsafe columns point to cols in y_node. + // vec y_status = y_node.unsafe_col(1); + // vec y_time = y_node.unsafe_col(0); + // + // // first determine the lowest value of XB that will + // // be a valid cut-point to split a node. A valid cut-point + // // is one that, if used, will result in at least leaf_min_obs + // // and leaf_min_events in both the left and right node. + // + // + // if(VERBOSITY > 0){ + // Rcout << "----- finding cut-point boundaries -----" << std::endl; + // } + // + // // Iterate through the sorted values of XB, in ascending order. + // + // for(iit = XB_sorted.begin(); iit < XB_sorted.end()-1; ++iit){ + // + // n_events += y_status[*iit] * w_node[*iit]; + // n_risk += w_node[*iit]; + // + // // If we want to make the current value of XB a cut-point, we need + // // to make sure the next value of XB isn't equal to this current value. + // // Otherwise, we will have the same value of XB in both groups! + // + // if(VERBOSITY > 0){ + // Rcout << XB[*iit] << " ---- "; + // Rcout << XB[*(iit+1)] << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + // + // if(XB[*iit] != XB[*(iit+1)]){ + // + // if(VERBOSITY > 0){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + // + // + // if( n_events >= leaf_min_events && + // n_risk >= leaf_min_obs) { + // + // if(VERBOSITY > 0){ + // Rcout << std::endl; + // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; + // Rcout << " - n_events, left node: " << n_events << std::endl; + // Rcout << " - n_risk, left node: " << n_risk << std::endl; + // Rcout << std::endl; + // } + // + // break; + // + // } + // + // } + // + // } + // + // if(VERBOSITY > 0){ + // if(iit >= XB_sorted.end()-1) { + // Rcout << "Could not find a valid lower cut-point" << std::endl; + // } + // } + // + // + // j = iit - XB_sorted.begin(); + // + // // got to reset these before finding the upper limit + // n_events=0; + // n_risk=0; + // + // // do the first step in the loop manually since we need to + // // refer to iit+1 in all proceeding steps. + // + // for(iit = XB_sorted.end()-1; iit >= XB_sorted.begin()+1; --iit){ + // + // n_events += y_status[*iit] * w_node[*iit]; + // n_risk += w_node[*iit]; + // group[*iit] = 1; + // + // if(VERBOSITY > 0){ + // Rcout << XB[*iit] << " ---- "; + // Rcout << XB(*(iit-1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + // + // if ( XB[*iit] != XB[*(iit-1)] ) { + // + // if(VERBOSITY > 0){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + // + // if( n_events >= leaf_min_events && + // n_risk >= leaf_min_obs ) { + // + // // the upper cutpoint needs to be one step below the current + // // iit value, because we use x <= cp to determine whether a + // // value x goes to the left node versus the right node. So, + // // if iit currently points to 3, and the next value down is 2, + // // then we want to say the cut-point is 2 because then all + // // values <= 2 will go left, and 3 will go right. This matters + // // when 3 is the highest value in the vector. + // + // --iit; + // + // if(VERBOSITY > 0){ + // Rcout << std::endl; + // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; + // Rcout << " - n_events, right node: " << n_events << std::endl; + // Rcout << " - n_risk, right node: " << n_risk << std::endl; + // } + // + // break; + // + // } + // + // } + // + // } + // + // // number of steps taken + // k = iit + 1 - XB_sorted.begin(); + // + // if(VERBOSITY > 0){ + // Rcout << "----------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; + // } + // + // // initialize cut-point as the value of XB iit currently points to. + // iit_best = iit; + // + // // what happens if we don't have enough events or obs to split? + // // the first valid lower cut-point (at XB_sorted(k)) is > the first + // // valid upper cutpoint (current value of n_risk). Put another way, + // // k (the number of steps taken from beginning of the XB vec) + // // will be > n_rows - p, where the difference on the RHS is + // // telling us where we are after taking p steps from the end + // // of the XB vec. Returning the infinite cp is a red flag. + // + // if(VERBOSITY > 0){ + // Rcout << "j: " << j << std::endl; + // Rcout << "k: " << k << std::endl; + // } + // + // if (j > k){ + // + // if(VERBOSITY > 0) { + // Rcout << "Could not find a cut-point for this XB" << std::endl; + // } + // + // return(R_PosInf); + // } + // + // if(VERBOSITY > 0){ + // + // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + // Rcout << "n potential cutpoints: " << k-j << std::endl; + // + // } + // + // + // // adjust k to indicate the number of valid cut-points + // k -= j; + // + // if(k > n_split){ + // + // jit_vals = linspace(0, k, n_split); + // + // } else { + // + // // what happens if there are only 5 potential cut-points + // // but the value of n_split is > 5? We will just check out + // // the 5 valid cutpoints. + // jit_vals = linspace(0, k, k); + // + // } + // + // potential_cutpoints.resize( jit_vals.size() ); + // + // // protection from going out of bounds with jit_vals(k) below + // if(j == 0) jit_vals(jit_vals.size()-1)--; + // + // // put the indices of potential cut-points into potential_cutpoints + // for(k = 0; k < potential_cutpoints.size(); k++){ + // potential_cutpoints[k] = XB(*(iit_best - jit_vals[k])); + // } + // + // // back to how it was! + // if(j == 0) jit_vals(jit_vals.size()-1)++; + // + // if(VERBOSITY > 0){ + // + // Rcout << "cut-points chosen: "; + // + // Rcout << potential_cutpoints.t(); + // + // Rcout << "----------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + // + // bool do_lrt = true; + // + // k = 0; + // j = 1; + // + // // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ + // + // + // if(VERBOSITY > 1){ + // Rcout << "jit points to " << *jit << std::endl; + // } + // + // // switch group values from 0 to 1 until you get to the next cut-point + // for( ; j < *jit; j++){ + // group[*iit] = 1; + // --iit; + // } + // + // if(jit == jit_vals.begin() || + // jit == jit_vals.end()-1){ + // + // do_lrt = true; + // + // } else { + // + // if( potential_cutpoints[k] == potential_cutpoints[k+1] || + // potential_cutpoints[k] == potential_cutpoints[0] || + // *jit <= 1){ + // + // do_lrt = false; + // + // } else { + // + // while( XB[*iit] == XB[*(iit - 1)] ){ + // + // group[*iit] = 1; + // --iit; + // ++j; + // + // if(VERBOSITY > 1){ + // Rcout << "cutpoint dropped down one spot: "; + // Rcout << XB[*iit] << std::endl; + // } + // + // } + // + // do_lrt = true; + // + // } + // + // } + // + // ++k; + // + // if(do_lrt){ + // + // cutpoints_used(list_counter) = XB(*iit); + // + // n_risk=0; + // g_risk=0; + // + // observed=0; + // expected=0; + // variance=0; + // + // break_loop = false; + // + // i = y_node.n_rows-1; + // + // if(VERBOSITY > 0){ + // Rcout << "sum(group==1): " << sum(group) << "; "; + // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + // Rcout << std::endl; + // if(VERBOSITY > 0){ + // Rcout << "group:" << std::endl; + // Rcout << group(XB_sorted).t() << std::endl; + // } + // } + // + // + // // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - + // for (; ;){ + // + // temp1 = y_time[i]; + // + // n_events = 0; + // + // for ( ; y_time[i] == temp1; i--) { + // + // n_risk += w_node[i]; + // n_events += y_status[i] * w_node[i]; + // g_risk += group[i] * w_node[i]; + // observed += y_status[i] * group[i] * w_node[i]; + // + // if(i == 0){ + // break_loop = true; + // break; + // } + // + // } + // + // // should only do these calculations if n_events > 0, + // // but turns out its faster to multiply by 0 than + // // it is to check whether n_events is > 0 + // + // temp2 = g_risk / n_risk; + // expected += n_events * temp2; + // + // // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // // definitely check if n_risk is > 1 b/c otherwise divide by 0 + // if (n_risk > 1){ + // temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + // variance += temp1 * (1 - temp2); + // } + // + // if(break_loop) break; + // + // } + // // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // + // stat_current = pow(expected-observed, 2) / variance; + // + // lrt_statistics(list_counter) = stat_current; + // list_counter++; + // + // if(VERBOSITY > 0){ + // + // Rcout << "-------- log-rank test results --------" << std::endl; + // Rcout << "cutpoint: " << XB[*iit] << std::endl; + // Rcout << "lrt stat: " << stat_current << std::endl; + // Rcout << "---------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + // + // if(stat_current > stat_best){ + // iit_best = iit; + // stat_best = stat_current; + // } + // + // } + // // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + // + // } + // + // // if the log-rank test does not detect a difference at 0.05 alpha, + // // maybe it's not a good idea to split this node. + // + // if(stat_best < split_min_stat) return(R_PosInf); + // + // if(VERBOSITY > 0){ + // Rcout << "Best LRT stat: " << stat_best << std::endl; + // } + // + // // rewind iit until it is back where it was when we got the + // // best lrt stat. While rewinding iit, also reset the group + // // values so that group is as it was when we got the best + // // lrt stat. + // + // while(iit <= iit_best){ + // group[*iit] = 0; + // ++iit; + // } + // + // // XB at *iit_best is the cut-point that maximized the log-rank test + // return(List::create(_["cutpoints"] = cutpoints_used, + // _["statistic"] = lrt_statistics, + // _["best_cut"] = XB[*iit_best])); + // + // } + } diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h index e1582cc8..ae4b073e 100644 --- a/src/NodeSplitStats.h +++ b/src/NodeSplitStats.h @@ -8,7 +8,7 @@ #define NODESPLITSTATS_H #include - +#include namespace aorsf { @@ -33,14 +33,13 @@ // // the group vector is modified by this function and the value returned // is the maximal log-rank statistic across all the possible cutpoints. - double lrt_multi(arma::mat& x_node, - arma::mat& y_node, - arma::mat& w_node, - arma::vec& XB, - arma::uword n_split, - double split_min_stat, - double leaf_min_obs, - double leaf_min_events); + Rcpp::List lrt_multi(arma::mat& y_node, + arma::mat& w_node, + arma::vec& XB, + arma::uword n_split, + double split_min_stat, + double leaf_min_obs, + double leaf_min_events); } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index d0e43022..5e0f0f05 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -39,6 +39,23 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// lrt_multi_exported +List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, NumericVector& XB_, int n_split_, double split_min_stat, double leaf_min_events, double leaf_min_obs); +RcppExport SEXP _aorsf_lrt_multi_exported(SEXP y_SEXP, SEXP w_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP split_min_statSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type y_(y_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); + Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); + Rcpp::traits::input_parameter< double >::type split_min_stat(split_min_statSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); + rcpp_result_gen = Rcpp::wrap(lrt_multi_exported(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs)); + return rcpp_result_gen; +END_RCPP +} // orsf_cpp List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi, int sr, int pt, bool oobag_pred); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP, SEXP oobag_predSEXP) { @@ -60,6 +77,7 @@ END_RCPP static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, + {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 5b65c5c6..a4d26040 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -13,6 +13,7 @@ #include "Data.h" #include "Tree.h" #include "Coxph.h" +#include "NodeSplitStats.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -81,6 +82,33 @@ } + // [[Rcpp::export]] + List lrt_multi_exported(NumericMatrix& y_, + NumericVector& w_, + NumericVector& XB_, + int n_split_, + double split_min_stat, + double leaf_min_events, + double leaf_min_obs){ + + mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); + vec w_node = vec(w_.begin(), w_.length(), false); + vec XB = vec(XB_.begin(), XB_.length(), false); + + uword n_split = n_split_; + + List out = lrt_multi(y_node, + w_node, + XB, + n_split, + split_min_stat, + leaf_min_events, + leaf_min_obs); + + return(out); + + } + // [[Rcpp::export]] List orsf_cpp(arma::mat& x, diff --git a/tests/testthat/test-lrt_multi.R b/tests/testthat/test-lrt_multi.R index 7aef3e05..18104faf 100644 --- a/tests/testthat/test-lrt_multi.R +++ b/tests/testthat/test-lrt_multi.R @@ -122,12 +122,13 @@ for(leaf_min_events in .leaf_min_events){ catg = XB_catg, bnry = XB_bnry), FUN = function(XB){ - lrt_multi_testthat(y_node_ = y, - w_node_ = w, + lrt_multi_exported(y_ = y, + w_ = w, XB_ = XB, n_split_ = n_split, - leaf_min_events_ = leaf_min_events, - leaf_min_obs_ = leaf_min_obs) + split_min_stat = 3.841459, + leaf_min_events = leaf_min_events, + leaf_min_obs = leaf_min_obs) } ) From 1f77114accd49a6afdc2dccb1e75c713ef4de9e3 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Wed, 12 Jul 2023 12:54:09 -0400 Subject: [PATCH 021/103] nodesplitstats code passing lrt tests --- src/NodeSplitStats.cpp | 260 ++++++++++++++++++++--------------------- src/NodeSplitStats.h | 4 +- 2 files changed, 132 insertions(+), 132 deletions(-) diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp index c55c84c5..d3e592b1 100644 --- a/src/NodeSplitStats.cpp +++ b/src/NodeSplitStats.cpp @@ -18,8 +18,8 @@ vec& XB, uword n_split, double split_min_stat, - double leaf_min_obs, - double leaf_min_events){ + double leaf_min_events, + double leaf_min_obs){ // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - // @@ -36,37 +36,37 @@ // // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool break_loop = false; + bool break_loop = false; - vec - group(y_node.n_rows, fill::zeros), - vec_temp, - cutpoints_used(n_split), - lrt_statistics(n_split); + vec + group(y_node.n_rows, fill::zeros), + vec_temp, + cutpoints_used(n_split), + lrt_statistics(n_split); - double - stat_best = 0, // initialize at the lowest possible LRT stat value - n_events = 0, - n_risk = 0, - g_risk = 0, - stat_current, - observed, - expected, - V, - temp1, - temp2; + double + stat_best = 0, // initialize at the lowest possible LRT stat value + n_events = 0, + n_risk = 0, + g_risk = 0, + stat_current, + observed, + expected, + V, + temp1, + temp2; - uword i, j, k, list_counter = 0; + uword i, j, k, list_counter = 0; - uvec - jit_vals, - // sort XB- we need to iterate over the sorted indices - XB_sorted = sort_index(XB, "ascend"); + uvec + jit_vals, + // sort XB- we need to iterate over the sorted indices + XB_sorted = sort_index(XB, "ascend"); - uvec::iterator - iit, - jit, - iit_best; + uvec::iterator + iit, + jit, + iit_best; // group should be initialized as all 0s @@ -79,8 +79,8 @@ XB_sorted = sort_index(XB, "ascend"); // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); vec y_time = y_node.unsafe_col(0); + vec y_status = y_node.unsafe_col(1); // first determine the lowest value of XB that will // be a valid cut-point to split a node. A valid cut-point @@ -90,9 +90,9 @@ n_events = 0; n_risk = 0; - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "----- finding cut-point boundaries -----" << std::endl; + } // Iterate through the sorted values of XB, in ascending order. @@ -105,30 +105,30 @@ // to make sure the next value of XB isn't equal to this current value. // Otherwise, we will have the same value of XB in both groups! - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit+1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << XB(*iit) << " ---- "; + Rcout << XB(*(iit+1)) << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } if(XB(*iit) != XB(*(iit+1))){ - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } if( n_events >= leaf_min_events && n_risk >= leaf_min_obs) { - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << XB(*iit) << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } break; @@ -138,12 +138,11 @@ } - // if(verbose > 1){ - // if(iit >= XB_sorted.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - + if(VERBOSITY > 1){ + if(iit >= XB_sorted.end()-1) { + Rcout << "Could not find a valid lower cut-point" << std::endl; + } + } j = iit - XB_sorted.begin(); @@ -160,18 +159,18 @@ n_risk += w_node(*iit); group(*iit) = 1; - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << XB(*iit) << " ---- "; + Rcout << XB(*(iit-1)) << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } if(XB(*iit) != XB(*(iit-1))){ - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } if( n_events >= leaf_min_events && n_risk >= leaf_min_obs ) { @@ -186,12 +185,12 @@ --iit; - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << XB(*iit) << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + } break; @@ -204,11 +203,11 @@ // number of steps taken k = iit + 1 - XB_sorted.begin(); - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "----------------------------------------" << std::endl; + Rcout << std::endl << std::endl; + Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; + } // initialize cut-point as the value of XB iit currently points to. iit_best = iit; @@ -221,26 +220,28 @@ // telling us where we are after taking p steps from the end // of the XB vec. Returning the infinite cp is a red flag. - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "j: " << j << std::endl; + Rcout << "k: " << k << std::endl; + } if (j > k){ - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } + if(VERBOSITY > 1) { + Rcout << "Could not find a cut-point for this XB" << std::endl; + } + + return(List::create(_["cutpoints"] = R_PosInf, + _["statistic"] = R_PosInf)); - return(R_PosInf); } - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } + if(VERBOSITY > 1){ + + Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + Rcout << "n potential cutpoints: " << k-j << std::endl; + + } // what happens if there are only 5 potential cut-points // but the value of n_split is > 5? We will just check out @@ -270,16 +271,16 @@ if(j == 0) jit_vals(jit_vals.size()-1)++; - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } + if(VERBOSITY > 1){ + + Rcout << "cut-points chosen: "; + + Rcout << vec_temp.t(); + + Rcout << "----------------------------------------" << std::endl << + std::endl << std::endl; + + } bool do_lrt = true; @@ -289,11 +290,6 @@ // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - for( ; j < *jit; j++){ group(*iit) = 1; --iit; @@ -320,10 +316,10 @@ --iit; ++j; - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB(*iit) << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "cutpoint dropped down one spot: "; + Rcout << XB(*iit) << std::endl; + } } @@ -351,15 +347,15 @@ i = y_node.n_rows-1; - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(XB_sorted).t() << std::endl; - // } - // } + if(VERBOSITY > 1){ + Rcout << "sum(group==1): " << sum(group) << "; "; + Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + Rcout << std::endl; + if(VERBOSITY > 1){ + Rcout << "group:" << std::endl; + Rcout << group(XB_sorted).t() << std::endl; + } + } // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -408,15 +404,15 @@ list_counter++; - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB(*iit) << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } + if(VERBOSITY > 1){ + + Rcout << "-------- log-rank test results --------" << std::endl; + Rcout << "cutpoint: " << XB(*iit) << std::endl; + Rcout << "lrt stat: " << stat_current << std::endl; + Rcout << "---------------------------------------" << std::endl << + std::endl << std::endl; + + } if(stat_current > stat_best){ iit_best = iit; @@ -431,11 +427,14 @@ // if the log-rank test does not detect a difference at 0.05 alpha, // maybe it's not a good idea to split this node. - if(stat_best < 3.841459) return(R_PosInf); + // if(stat_best < 3.841459) return( + // List::create(_["cutpoints"] = R_PosInf, + // _["statistic"] = R_PosInf) + // ); - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } + if(VERBOSITY > 1){ + Rcout << "Best LRT stat: " << stat_best << std::endl; + } // rewind iit until it is back where it was when we got the // best lrt stat. While rewinding iit, also reset the group @@ -449,7 +448,8 @@ } return(List::create(_["cutpoints"] = cutpoints_used, - _["statistic"] = lrt_statistics)); + _["statistic"] = lrt_statistics, + _["vec_temp"] = vec_temp)); } diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h index ae4b073e..a85a5e2c 100644 --- a/src/NodeSplitStats.h +++ b/src/NodeSplitStats.h @@ -38,8 +38,8 @@ arma::vec& XB, arma::uword n_split, double split_min_stat, - double leaf_min_obs, - double leaf_min_events); + double leaf_min_events, + double leaf_min_obs); } From 110b149c81ff95a4b89f835bb5ddb8d2c14a69e6 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Fri, 14 Jul 2023 13:06:21 -0400 Subject: [PATCH 022/103] starting to modularize lrt multi --- R/RcppExports.R | 4 + src/NodeSplitStats.cpp | 553 ++++---------------------------- src/RcppExports.cpp | 17 + src/globals.h | 2 +- src/orsf_oop.cpp | 179 +++++++++++ tests/testthat/test-lrt_multi.R | 10 +- 6 files changed, 278 insertions(+), 487 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 2a155f46..8ff6acd2 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -9,6 +9,10 @@ coxph_fit_exported <- function(x_, y_, w_, method, cph_eps, cph_iter_max) { .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_, method, cph_eps, cph_iter_max) } +node_find_cps <- function(y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs) { + .Call(`_aorsf_node_find_cps`, y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs) +} + lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) { .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp index d3e592b1..79a2d60f 100644 --- a/src/NodeSplitStats.cpp +++ b/src/NodeSplitStats.cpp @@ -40,7 +40,7 @@ vec group(y_node.n_rows, fill::zeros), - vec_temp, + cutpoints_found, cutpoints_used(n_split), lrt_statistics(n_split); @@ -64,9 +64,9 @@ XB_sorted = sort_index(XB, "ascend"); uvec::iterator - iit, + XB_iter, jit, - iit_best; + XB_iter_best; // group should be initialized as all 0s @@ -75,10 +75,10 @@ // initialize at the lowest possible LRT stat value stat_best = 0; - // sort XB- we need to iterate over the sorted indices + // sort XB to iterate over the sorted indices XB_sorted = sort_index(XB, "ascend"); - // unsafe columns point to cols in y_node. + // unsafe_cols point to cols in y_node. vec y_time = y_node.unsafe_col(0); vec y_status = y_node.unsafe_col(1); @@ -96,35 +96,34 @@ // Iterate through the sorted values of XB, in ascending order. - for(iit = XB_sorted.begin(); iit < XB_sorted.end()-1; ++iit){ + for(XB_iter = XB_sorted.begin(); XB_iter < XB_sorted.end()-1; ++XB_iter){ - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; // If we want to make the current value of XB a cut-point, we need // to make sure the next value of XB isn't equal to this current value. // Otherwise, we will have the same value of XB in both groups! if(VERBOSITY > 1){ - Rcout << XB(*iit) << " ---- "; - Rcout << XB(*(iit+1)) << " ---- "; + Rcout << XB(*XB_iter) << " ---- "; + Rcout << XB(*(XB_iter+1)) << " ---- "; Rcout << n_events << " ---- "; Rcout << n_risk << std::endl; } - if(XB(*iit) != XB(*(iit+1))){ + if(XB(*XB_iter) != XB(*(XB_iter+1))){ if(VERBOSITY > 1){ Rcout << "********* New cut-point here ********" << std::endl; } - if( n_events >= leaf_min_events && n_risk >= leaf_min_obs) { if(VERBOSITY > 1){ Rcout << std::endl; - Rcout << "lower cutpoint: " << XB(*iit) << std::endl; + Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; Rcout << " - n_events, left node: " << n_events << std::endl; Rcout << " - n_risk, left node: " << n_risk << std::endl; Rcout << std::endl; @@ -139,34 +138,33 @@ } if(VERBOSITY > 1){ - if(iit >= XB_sorted.end()-1) { + if(XB_iter >= XB_sorted.end()-1) { Rcout << "Could not find a valid lower cut-point" << std::endl; } } - j = iit - XB_sorted.begin(); + // set j to be the number of steps we have taken forward in XB + j = XB_iter - XB_sorted.begin(); - // got to reset these before finding the upper limit + // reset before finding the upper limit n_events=0; n_risk=0; - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = XB_sorted.end()-1; iit >= XB_sorted.begin()+1; --iit){ + // go from end to beginning to find upper cutpoint + for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - group(*iit) = 1; + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; + group[*XB_iter] = 1; if(VERBOSITY > 1){ - Rcout << XB(*iit) << " ---- "; - Rcout << XB(*(iit-1)) << " ---- "; + Rcout << XB(*XB_iter) << " ---- "; + Rcout << XB(*(XB_iter-1)) << " ---- "; Rcout << n_events << " ---- "; Rcout << n_risk << std::endl; } - if(XB(*iit) != XB(*(iit-1))){ + if(XB(*XB_iter) != XB(*(XB_iter-1))){ if(VERBOSITY > 1){ Rcout << "********* New cut-point here ********" << std::endl; @@ -176,18 +174,18 @@ n_risk >= leaf_min_obs ) { // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a + // XB_iter value, because we use x <= cp to determine whether a // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, + // if XB_iter currently points to 3, and the next value down is 2, // then we want to say the cut-point is 2 because then all // values <= 2 will go left, and 3 will go right. This matters // when 3 is the highest value in the vector. - --iit; + --XB_iter; if(VERBOSITY > 1){ Rcout << std::endl; - Rcout << "upper cutpoint: " << XB(*iit) << std::endl; + Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; Rcout << " - n_events, right node: " << n_events << std::endl; Rcout << " - n_risk, right node: " << n_risk << std::endl; } @@ -200,8 +198,8 @@ } - // number of steps taken - k = iit + 1 - XB_sorted.begin(); + // k = n steps from beginning of sorted XB to current XB_iter + k = XB_iter + 1 - XB_sorted.begin(); if(VERBOSITY > 1){ Rcout << "----------------------------------------" << std::endl; @@ -209,8 +207,9 @@ Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; } - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; + // initialize cut-point as the value of XB that XB_iter currently + // points to, which is the upper cut-point of XB. + XB_iter_best = XB_iter; // what happens if we don't have enough events or obs to split? // the first valid lower cut-point (at XB_sorted(k)) is > the first @@ -221,8 +220,9 @@ // of the XB vec. Returning the infinite cp is a red flag. if(VERBOSITY > 1){ - Rcout << "j: " << j << std::endl; - Rcout << "k: " << k << std::endl; + Rcout << "N steps from beginning to first cp: " << j << std::endl; + Rcout << "N steps from beginning to last cp: " << k << std::endl; + Rcout << "n potential cutpoints: " << k-j << std::endl; } if (j > k){ @@ -236,36 +236,31 @@ } - if(VERBOSITY > 1){ - - Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - Rcout << "n potential cutpoints: " << k-j << std::endl; + // set k to be number of steps b/t lower and upper cutpoint. + k -= j; + if(VERBOSITY > 1){ + Rcout << "----- initializing cutpoints -----" << std::endl; } // what happens if there are only 5 potential cut-points // but the value of n_split is > 5? We will just check out // the 5 valid cutpoints. - - // adjust k to indicate steps taken in the outer loop. - k -= j; - if(k > n_split){ - + // there is enough space to find n_split or more cutpoints jit_vals = linspace(0, k, n_split); - } else { - + // there is less than enough space to find n_split cutpoints, + // so find as many as we can (i.e., k). jit_vals = linspace(0, k, k); - } - vec_temp.resize( jit_vals.size() ); + cutpoints_found.resize( jit_vals.size() ); if(j == 0) jit_vals(jit_vals.size()-1)--; - for(k = 0; k < vec_temp.size(); k++){ - vec_temp(k) = XB(*(iit_best - jit_vals(k))); + for(k = 0; k < cutpoints_found.size(); k++){ + cutpoints_found(k) = XB(*(XB_iter_best - jit_vals(k))); } if(j == 0) jit_vals(jit_vals.size()-1)++; @@ -275,7 +270,7 @@ Rcout << "cut-points chosen: "; - Rcout << vec_temp.t(); + Rcout << cutpoints_found.t(); Rcout << "----------------------------------------" << std::endl << std::endl << std::endl; @@ -290,11 +285,13 @@ // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ + for( ; j < *jit; j++){ - group(*iit) = 1; - --iit; + group(*XB_iter) = 1; + --XB_iter; } + // always do the test if we are on a boundary of jit if(jit == jit_vals.begin() || jit == jit_vals.end()-1){ @@ -302,23 +299,25 @@ } else { - if( vec_temp(k) == vec_temp(k+1) || - vec_temp(k) == vec_temp(0) || + if( cutpoints_found(k) == cutpoints_found(k+1) || + cutpoints_found(k) == cutpoints_found(0) || *jit <= 1){ + Rcout << "SKIP" << std::endl; + do_lrt = false; } else { - while(XB(*iit) == XB(*(iit - 1))){ + while(XB(*XB_iter) == XB(*(XB_iter - 1))){ - group(*iit) = 1; - --iit; + group(*XB_iter) = 1; + --XB_iter; ++j; if(VERBOSITY > 1){ Rcout << "cutpoint dropped down one spot: "; - Rcout << XB(*iit) << std::endl; + Rcout << XB(*XB_iter) << std::endl; } } @@ -333,7 +332,7 @@ if(do_lrt){ - cutpoints_used(list_counter) = XB(*iit); + cutpoints_used(list_counter) = XB(*XB_iter); n_risk=0; g_risk=0; @@ -407,7 +406,7 @@ if(VERBOSITY > 1){ Rcout << "-------- log-rank test results --------" << std::endl; - Rcout << "cutpoint: " << XB(*iit) << std::endl; + Rcout << "cutpoint: " << XB(*XB_iter) << std::endl; Rcout << "lrt stat: " << stat_current << std::endl; Rcout << "---------------------------------------" << std::endl << std::endl << std::endl; @@ -415,7 +414,7 @@ } if(stat_current > stat_best){ - iit_best = iit; + XB_iter_best = XB_iter; stat_best = stat_current; } @@ -436,438 +435,22 @@ Rcout << "Best LRT stat: " << stat_best << std::endl; } - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group + // rewind XB_iter until it is back where it was when we got the + // best lrt stat. While rewinding XB_iter, also reset the group // values so that group is as it was when we got the best // lrt stat. - while(iit <= iit_best){ - group(*iit) = 0; - ++iit; + while(XB_iter <= XB_iter_best){ + group(*XB_iter) = 0; + ++XB_iter; } return(List::create(_["cutpoints"] = cutpoints_used, _["statistic"] = lrt_statistics, - _["vec_temp"] = vec_temp)); + _["cutpoints_found"] = cutpoints_found)); } - // List lrt_multi(mat& y_node, - // mat& w_node, - // vec& XB, - // uword n_split, - // double split_min_stat, - // double leaf_min_obs, - // double leaf_min_events){ - // - // bool break_loop = false; - // - // vec - // group(y_node.n_rows, fill::zeros), - // potential_cutpoints, - // cutpoints_used(n_split), - // lrt_statistics(n_split); - // - // double - // stat_best = 0, // initialize at the lowest possible LRT stat value - // n_events = 0, - // n_risk = 0, - // g_risk = 0, - // stat_current, - // observed, - // expected, - // variance, - // temp1, - // temp2; - // - // uword i, j, k, list_counter = 0; - // - // uvec - // jit_vals, - // // sort XB- we need to iterate over the sorted indices - // XB_sorted = sort_index(XB, "ascend"); - // - // uvec::iterator - // iit, - // jit, - // iit_best; - // - // // unsafe columns point to cols in y_node. - // vec y_status = y_node.unsafe_col(1); - // vec y_time = y_node.unsafe_col(0); - // - // // first determine the lowest value of XB that will - // // be a valid cut-point to split a node. A valid cut-point - // // is one that, if used, will result in at least leaf_min_obs - // // and leaf_min_events in both the left and right node. - // - // - // if(VERBOSITY > 0){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - // - // // Iterate through the sorted values of XB, in ascending order. - // - // for(iit = XB_sorted.begin(); iit < XB_sorted.end()-1; ++iit){ - // - // n_events += y_status[*iit] * w_node[*iit]; - // n_risk += w_node[*iit]; - // - // // If we want to make the current value of XB a cut-point, we need - // // to make sure the next value of XB isn't equal to this current value. - // // Otherwise, we will have the same value of XB in both groups! - // - // if(VERBOSITY > 0){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB[*(iit+1)] << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - // - // if(XB[*iit] != XB[*(iit+1)]){ - // - // if(VERBOSITY > 0){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - // - // - // if( n_events >= leaf_min_events && - // n_risk >= leaf_min_obs) { - // - // if(VERBOSITY > 0){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - // - // break; - // - // } - // - // } - // - // } - // - // if(VERBOSITY > 0){ - // if(iit >= XB_sorted.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - // - // - // j = iit - XB_sorted.begin(); - // - // // got to reset these before finding the upper limit - // n_events=0; - // n_risk=0; - // - // // do the first step in the loop manually since we need to - // // refer to iit+1 in all proceeding steps. - // - // for(iit = XB_sorted.end()-1; iit >= XB_sorted.begin()+1; --iit){ - // - // n_events += y_status[*iit] * w_node[*iit]; - // n_risk += w_node[*iit]; - // group[*iit] = 1; - // - // if(VERBOSITY > 0){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - // - // if ( XB[*iit] != XB[*(iit-1)] ) { - // - // if(VERBOSITY > 0){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - // - // if( n_events >= leaf_min_events && - // n_risk >= leaf_min_obs ) { - // - // // the upper cutpoint needs to be one step below the current - // // iit value, because we use x <= cp to determine whether a - // // value x goes to the left node versus the right node. So, - // // if iit currently points to 3, and the next value down is 2, - // // then we want to say the cut-point is 2 because then all - // // values <= 2 will go left, and 3 will go right. This matters - // // when 3 is the highest value in the vector. - // - // --iit; - // - // if(VERBOSITY > 0){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - // - // break; - // - // } - // - // } - // - // } - // - // // number of steps taken - // k = iit + 1 - XB_sorted.begin(); - // - // if(VERBOSITY > 0){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; - // } - // - // // initialize cut-point as the value of XB iit currently points to. - // iit_best = iit; - // - // // what happens if we don't have enough events or obs to split? - // // the first valid lower cut-point (at XB_sorted(k)) is > the first - // // valid upper cutpoint (current value of n_risk). Put another way, - // // k (the number of steps taken from beginning of the XB vec) - // // will be > n_rows - p, where the difference on the RHS is - // // telling us where we are after taking p steps from the end - // // of the XB vec. Returning the infinite cp is a red flag. - // - // if(VERBOSITY > 0){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - // - // if (j > k){ - // - // if(VERBOSITY > 0) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - // - // return(R_PosInf); - // } - // - // if(VERBOSITY > 0){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - // - // - // // adjust k to indicate the number of valid cut-points - // k -= j; - // - // if(k > n_split){ - // - // jit_vals = linspace(0, k, n_split); - // - // } else { - // - // // what happens if there are only 5 potential cut-points - // // but the value of n_split is > 5? We will just check out - // // the 5 valid cutpoints. - // jit_vals = linspace(0, k, k); - // - // } - // - // potential_cutpoints.resize( jit_vals.size() ); - // - // // protection from going out of bounds with jit_vals(k) below - // if(j == 0) jit_vals(jit_vals.size()-1)--; - // - // // put the indices of potential cut-points into potential_cutpoints - // for(k = 0; k < potential_cutpoints.size(); k++){ - // potential_cutpoints[k] = XB(*(iit_best - jit_vals[k])); - // } - // - // // back to how it was! - // if(j == 0) jit_vals(jit_vals.size()-1)++; - // - // if(VERBOSITY > 0){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << potential_cutpoints.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - // - // bool do_lrt = true; - // - // k = 0; - // j = 1; - // - // // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - // - // - // if(VERBOSITY > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - // - // // switch group values from 0 to 1 until you get to the next cut-point - // for( ; j < *jit; j++){ - // group[*iit] = 1; - // --iit; - // } - // - // if(jit == jit_vals.begin() || - // jit == jit_vals.end()-1){ - // - // do_lrt = true; - // - // } else { - // - // if( potential_cutpoints[k] == potential_cutpoints[k+1] || - // potential_cutpoints[k] == potential_cutpoints[0] || - // *jit <= 1){ - // - // do_lrt = false; - // - // } else { - // - // while( XB[*iit] == XB[*(iit - 1)] ){ - // - // group[*iit] = 1; - // --iit; - // ++j; - // - // if(VERBOSITY > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB[*iit] << std::endl; - // } - // - // } - // - // do_lrt = true; - // - // } - // - // } - // - // ++k; - // - // if(do_lrt){ - // - // cutpoints_used(list_counter) = XB(*iit); - // - // n_risk=0; - // g_risk=0; - // - // observed=0; - // expected=0; - // variance=0; - // - // break_loop = false; - // - // i = y_node.n_rows-1; - // - // if(VERBOSITY > 0){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(VERBOSITY > 0){ - // Rcout << "group:" << std::endl; - // Rcout << group(XB_sorted).t() << std::endl; - // } - // } - // - // - // // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - // for (; ;){ - // - // temp1 = y_time[i]; - // - // n_events = 0; - // - // for ( ; y_time[i] == temp1; i--) { - // - // n_risk += w_node[i]; - // n_events += y_status[i] * w_node[i]; - // g_risk += group[i] * w_node[i]; - // observed += y_status[i] * group[i] * w_node[i]; - // - // if(i == 0){ - // break_loop = true; - // break; - // } - // - // } - // - // // should only do these calculations if n_events > 0, - // // but turns out its faster to multiply by 0 than - // // it is to check whether n_events is > 0 - // - // temp2 = g_risk / n_risk; - // expected += n_events * temp2; - // - // // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // // definitely check if n_risk is > 1 b/c otherwise divide by 0 - // if (n_risk > 1){ - // temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - // variance += temp1 * (1 - temp2); - // } - // - // if(break_loop) break; - // - // } - // // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // stat_current = pow(expected-observed, 2) / variance; - // - // lrt_statistics(list_counter) = stat_current; - // list_counter++; - // - // if(VERBOSITY > 0){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB[*iit] << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - // - // if(stat_current > stat_best){ - // iit_best = iit; - // stat_best = stat_current; - // } - // - // } - // // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // } - // - // // if the log-rank test does not detect a difference at 0.05 alpha, - // // maybe it's not a good idea to split this node. - // - // if(stat_best < split_min_stat) return(R_PosInf); - // - // if(VERBOSITY > 0){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - // - // // rewind iit until it is back where it was when we got the - // // best lrt stat. While rewinding iit, also reset the group - // // values so that group is as it was when we got the best - // // lrt stat. - // - // while(iit <= iit_best){ - // group[*iit] = 0; - // ++iit; - // } - // - // // XB at *iit_best is the cut-point that maximized the log-rank test - // return(List::create(_["cutpoints"] = cutpoints_used, - // _["statistic"] = lrt_statistics, - // _["best_cut"] = XB[*iit_best])); - // - // } - - } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 5e0f0f05..5cdac5de 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -39,6 +39,22 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// node_find_cps +arma::vec node_find_cps(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, arma::uword n_split, double leaf_min_events, double leaf_min_obs); +RcppExport SEXP _aorsf_node_find_cps(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP n_splitSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type XB(XBSEXP); + Rcpp::traits::input_parameter< arma::uword >::type n_split(n_splitSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); + rcpp_result_gen = Rcpp::wrap(node_find_cps(y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs)); + return rcpp_result_gen; +END_RCPP +} // lrt_multi_exported List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, NumericVector& XB_, int n_split_, double split_min_stat, double leaf_min_events, double leaf_min_obs); RcppExport SEXP _aorsf_lrt_multi_exported(SEXP y_SEXP, SEXP w_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP split_min_statSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { @@ -77,6 +93,7 @@ END_RCPP static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, + {"_aorsf_node_find_cps", (DL_FUNC) &_aorsf_node_find_cps, 6}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, {NULL, NULL, 0} diff --git a/src/globals.h b/src/globals.h index 0158c7ea..191fd37c 100644 --- a/src/globals.h +++ b/src/globals.h @@ -71,7 +71,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 1; + const int VERBOSITY = 2; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a4d26040..703d1e3d 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -82,6 +82,185 @@ } + // [[Rcpp::export]] + arma::vec node_find_cps(arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, + arma::uword n_split, + double leaf_min_events, + double leaf_min_obs){ + + + vec + // unsafe_cols point to cols in y_node. + y_time = y_node.unsafe_col(0), + y_status = y_node.unsafe_col(1), + cp_placeholder(n_split), + cp_lwr(1), + cp_mid, + cp_upr(1); + + // sort XB to iterate over the sorted indices + uvec XB_sorted = sort_index(XB, "ascend"); + + cp_placeholder.fill(R_PosInf); + + uword i, j, k; + + uvec::iterator + XB_iter, + XB_iter_lwr, + XB_iter_upr; + + double n_events = 0, n_risk = 0; + + if(VERBOSITY > 0){ + Rcout << "----- finding a lower bound for cut-points -----" << std::endl; + } + + // stop at end-1 b/c we access XB_iter+1 in XB_sorted + for(XB_iter = XB_sorted.begin(); XB_iter < XB_sorted.end()-1; ++XB_iter){ + + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; + + + if(VERBOSITY > 1){ + Rcout << "current XB"<< XB(*XB_iter) << " ---- "; + Rcout << "next XB"<< XB(*(XB_iter+1)) << " ---- "; + Rcout << "N events" << n_events << " ---- "; + Rcout << "N risk" << n_risk << std::endl; + } + + // If we want to make the current value of XB a cut-point, we need + // to make sure the next value of XB isn't equal to this current value. + // Otherwise, we will have the same value of XB in both groups! + + if(XB[*XB_iter] != XB[*(XB_iter+1)]){ + + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + if(XB_iter == XB_sorted.end()-1) { + + if(VERBOSITY > 1){ + Rcout << "Could not find a valid lower cut-point" << std::endl; + } + + return(cp_placeholder); + + } + + XB_iter_lwr = XB_iter; + cp_lwr[0] = XB[*XB_iter]; + + // set j to be the number of steps we have taken forward in XB + j = XB_iter - XB_sorted.begin(); + + // reset before finding the upper limit + n_events=0, n_risk=0; + + // stop at beginning+1 b/c we access XB_iter-1 in XB_sorted + for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ + + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; + + if(VERBOSITY > 1){ + Rcout << XB(*XB_iter) << " ---- "; + Rcout << XB(*(XB_iter-1)) << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } + + if(XB(*XB_iter) != XB(*(XB_iter-1))){ + + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // XB_iter value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if XB_iter currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --XB_iter; + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + } + + break; + + } + + } + + } + + // k = n steps from beginning of sorted XB to current XB_iter + k = XB_iter + 1 - XB_sorted.begin(); + + if(VERBOSITY > 1){ + Rcout << "N steps from beginning to first cp: " << j << std::endl; + Rcout << "N steps from beginning to last cp: " << k << std::endl; + Rcout << "n potential cutpoints: " << k-j << std::endl; + } + + if(j > k){ + + if(VERBOSITY > 1) { + Rcout << "Could not find valid cut-points" << std::endl; + } + + return(cp_placeholder); + + } + + XB_iter_upr = XB_iter; + cp_upr[0] = XB[*XB_iter]; + + uvec tmp = XB_sorted(*XB_iter_lwr, *XB_iter_upr); + Rcout << XB(tmp) << std::endl; + + if(cp_lwr[0] != cp_upr[0]){ + + } + + return(join_vert(cp_lwr, cp_mid, cp_upr)); + + + } + // [[Rcpp::export]] List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, diff --git a/tests/testthat/test-lrt_multi.R b/tests/testthat/test-lrt_multi.R index 18104faf..d5fc5e38 100644 --- a/tests/testthat/test-lrt_multi.R +++ b/tests/testthat/test-lrt_multi.R @@ -4,7 +4,7 @@ #' @srrstats {G5.4b} *Correctness tests include tests against previous implementations, explicitly calling those implementations in testing.* #' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* -set.seed(329) +set.seed(329555) #' @srrstats {G5.6} **Parameter recovery tests** *the likelihood ratio test returns expected values consistent with the survival implementation for randomly generated data* @@ -36,6 +36,12 @@ run_lrt_multi_tests <- function(test_values, XB){ n_right >= leaf_min_obs & n_left >= leaf_min_obs ) + if(!any(cp_stats$valid_cp)){ + expect_true(is.infinite(test_values$cutpoints)) + expect_true(is.infinite(test_values$statistic)) + return(NULL) + } + cp_first = xb_uni[min(which(cp_stats$valid_cp))] cp_last = xb_uni[max(which(cp_stats$valid_cp))] @@ -134,6 +140,8 @@ for(leaf_min_events in .leaf_min_events){ test_values = lrt_multi_vals[[1]] + + run_lrt_multi_tests(lrt_multi_vals$ctns, XB_ctns) run_lrt_multi_tests(lrt_multi_vals$catg, XB_catg) run_lrt_multi_tests(lrt_multi_vals$bnry, XB_bnry) From 0ff92f46c918acf33a9a6c6a72d06a81c3735d4e Mon Sep 17 00:00:00 2001 From: bjaeger Date: Sun, 6 Aug 2023 09:46:07 -0400 Subject: [PATCH 023/103] more like ranger data --- DESCRIPTION | 2 +- R/RcppExports.R | 20 +- R/misc.R | 50 ++++ src/Data.h | 21 +- src/Forest.cpp | 76 ++++++ src/Forest.h | 70 ++++++ src/Makevars | 2 +- src/Makevars.win | 2 +- src/NodeSplitStats.cpp | 335 +++++++++++++++++++++++-- src/NodeSplitStats.h | 18 ++ src/RcppExports.cpp | 72 ++++-- src/Tree.cpp | 141 ++++++----- src/Tree.h | 26 +- src/orsf_oop.cpp | 272 ++++++++------------ tests/testthat/test-cp_find_bounds.R | 137 ++++++++++ tests/testthat/test-lrt_multi.R | 65 +++-- tests/testthat/test-which_cols_valid.R | 54 ++++ 17 files changed, 1037 insertions(+), 326 deletions(-) create mode 100644 src/Forest.cpp create mode 100644 src/Forest.h create mode 100644 tests/testthat/test-cp_find_bounds.R create mode 100644 tests/testthat/test-which_cols_valid.R diff --git a/DESCRIPTION b/DESCRIPTION index 94d59893..ead718af 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -30,7 +30,7 @@ License: MIT + file LICENSE Encoding: UTF-8 LazyData: true Roxygen: list(markdown = TRUE, roclets = c ("namespace", "rd", "srr::srr_stats_roclet")) -RoxygenNote: 7.2.1 +RoxygenNote: 7.2.3 LinkingTo: Rcpp, RcppArmadillo diff --git a/R/RcppExports.R b/R/RcppExports.R index 8ff6acd2..c3833fd6 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -9,15 +9,27 @@ coxph_fit_exported <- function(x_, y_, w_, method, cph_eps, cph_iter_max) { .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_, method, cph_eps, cph_iter_max) } -node_find_cps <- function(y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs) { - .Call(`_aorsf_node_find_cps`, y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs) +node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { + .Call(`_aorsf_node_find_cps_exported`, y_node, w_node, XB, leaf_min_events, leaf_min_obs) +} + +node_compute_lrt_exported <- function(y_node, w_node, group) { + .Call(`_aorsf_node_compute_lrt_exported`, y_node, w_node, group) +} + +node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { + invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) +} + +which_cols_valid_exported <- function(y_inbag, x_inbag, rows_node, mtry) { + .Call(`_aorsf_which_cols_valid_exported`, y_inbag, x_inbag, rows_node, mtry) } lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) { .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, vi = 0L, sr = 1L, pt = 1L, oobag_pred = TRUE) { - .Call(`_aorsf_orsf_cpp`, x, y, w, vi, sr, pt, oobag_pred) +orsf_cpp <- function(x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params) { + .Call(`_aorsf_orsf_cpp`, x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params) } diff --git a/R/misc.R b/R/misc.R index 15662ef8..a198c4fc 100644 --- a/R/misc.R +++ b/R/misc.R @@ -104,6 +104,56 @@ paste_collapse <- function(x, sep=', ', last = ' or '){ } + +#' Find cut-point boundaries (R version) +#' +#' Used to test the cpp version for finding cutpoints +#' +#' @param y_node outcome matrix +#' @param w_node weight vector +#' @param XB linear combination of predictors +#' @param xb_uni unique values in XB +#' @param leaf_min_events min no. of events in a leaf +#' @param leaf_min_obs min no. of observations in a leaf +#' +#' @noRd +#' +#' @return data.frame with description of valid cutpoints +cp_find_bounds_R <- function(y_node, + w_node, + XB, + xb_uni, + leaf_min_events, + leaf_min_obs){ + + status = y_node[, 'status'] + + cp_stats <- + sapply( + X = xb_uni, + FUN = function(x){ + c( + cp = x, + e_right = sum(status[XB > x]), + e_left = sum(status[XB <= x]), + n_right = sum(XB > x), + n_left = sum(XB <= x) + ) + } + ) + + cp_stats <- as.data.frame(t(cp_stats)) + + cp_stats$valid_cp = with( + cp_stats, + e_right >= leaf_min_events & e_left >= leaf_min_events & + n_right >= leaf_min_obs & n_left >= leaf_min_obs + ) + + cp_stats + +} + # Clean up after aorsf is unloaded. .onUnload <- function (libpath) { library.dynam.unload("aorsf", libpath) diff --git a/src/Data.h b/src/Data.h index 76a4c584..461c1357 100644 --- a/src/Data.h +++ b/src/Data.h @@ -10,6 +10,9 @@ #include #include "globals.h" + using namespace arma; + using namespace Rcpp; + namespace aorsf { class Data { @@ -26,17 +29,20 @@ this->y = y; this->w = w; + this->n_rows = x.n_rows; + this->n_cols = x.n_cols; + } - // Weights vector - arma::vec w; + Data(const Data&) = delete; + Data& operator=(const Data&) = delete; arma::uword get_n_rows() { - return(x.n_rows); + return(n_rows); } arma::uword get_n_cols() { - return(x.n_cols); + return(n_cols); } bool has_weights() { @@ -73,10 +79,17 @@ return(w(vector_of_indices)); } + // member variables + + arma::uword n_cols; + arma::uword n_rows; + + private: arma::mat x; arma::mat y; + arma::vec w; }; diff --git a/src/Forest.cpp b/src/Forest.cpp new file mode 100644 index 00000000..cf429f3b --- /dev/null +++ b/src/Forest.cpp @@ -0,0 +1,76 @@ +// Forest.cpp + +#include +#include "Forest.h" +#include "Tree.h" + +using namespace arma; +using namespace Rcpp; + +namespace aorsf { + +Forest::Forest(){ } + +void Forest::init(std::unique_ptr input_data, + int n_tree, + Rcpp::IntegerVector& tree_seeds, + Rcpp::List& tree_params){ + + this->data = std::move(input_data); + + uword n_rows = data->get_n_rows(); + + // this->n_tree = n_tree; + // this->tree_seeds = tree_seeds; + // this->tree_objects = Rcpp::List(n_tree); + + // this->n_split = tree_params["n_split"]; + // this->mtry = tree_params["mtry"]; + // this->leaf_min_events = tree_params["leaf_min_events"]; + // this->leaf_min_obs = tree_params["leaf_min_obs"]; + + // this->split_min_events = params["split_min_events"]; + // this->split_min_obs = params["split_min_obs"]; + // this->split_min_stat = params["split_min_stat"]; + // this->cph_method = params["cph_method"]; + // this->cph_eps = params["cph_eps"]; + // this->cph_iter_max = params["cph_iter_max"]; + // this->cph_do_scale = params["cph_do_scale"]; + // this->net_alpha = params["net_alpha"]; + // this->net_df_target = params["net_df_target"]; + // this->oobag_pred = params["oobag_pred"]; + // this->oobag_pred_type = params["oobag_pred_type"]; + // this->oobag_pred_horizon = params["oobag_pred_horizon"]; + // this->oobag_eval_every = params["oobag_eval_every"]; + // this->oobag_importance = params["oobag_importance"]; + // this->oobag_importance_type = params["oobag_importance_type"]; + // this->max_retry = params["max_retry"]; + // this->type_beta = params["type_beta"]; + + + if(VERBOSITY > 0){ + Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "N obs total: " << data->get_n_rows() << std::endl; + Rcout << "N columns total: " << data->get_n_cols() << std::endl; + Rcout << "------------------------------------"; + Rcout << std::endl << std::endl; + } + // + // // sample weights to mimic a bootstrap sample + // + // // s is the number of times you might get selected into + // // a bootstrap sample. Realistically this won't be >10, + // // but it could technically be as big as n_row. + this->bootstrap_select_times = seq(0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + this->bootstrap_select_probs = dbinom(bootstrap_select_times, + n_rows, + 1.0 / n_rows, + false); + +} + +} + diff --git a/src/Forest.h b/src/Forest.h new file mode 100644 index 00000000..41af040b --- /dev/null +++ b/src/Forest.h @@ -0,0 +1,70 @@ + +// Forest.h + +#ifndef Forest_H +#define Forest_H + +#include "Data.h" +#include "globals.h" + +namespace aorsf { + +class Forest { + +public: + + // Constructor + + Forest(); + + // deleting the copy constructor + Forest(const Forest&) = delete; + // deleting the copy assignment operator + Forest& operator=(const Forest&) = delete; + + // Methods + + void init(std::unique_ptr input_data, + int n_tree, + Rcpp::IntegerVector& tree_seeds, + Rcpp::List& tree_params); + + // virtual void initInternal() = 0; + + // Grow or predict + void run(bool verbose, bool compute_oob_error); + + Rcpp::IntegerVector get_bootstrap_select_times(){ + return bootstrap_select_times; + } + + Rcpp::NumericVector get_bootstrap_select_probs(){ + return bootstrap_select_probs; + } + + + // Member variables + + Rcpp::IntegerVector bootstrap_select_times; + Rcpp::NumericVector bootstrap_select_probs; + + int n_tree; + + Rcpp::IntegerVector tree_seeds; + Rcpp::List tree_objects; + + arma::uword n_split; + arma::uword mtry; + + double leaf_min_events; + double leaf_min_obs; + + std::unique_ptr data; + +}; + +} + + + +#endif /* Forest_H */ diff --git a/src/Makevars b/src/Makevars index d715e498..2321181e 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,3 +1,3 @@ -CXX_STD = CXX11 +CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/Makevars.win b/src/Makevars.win index d715e498..2321181e 100644 --- a/src/Makevars.win +++ b/src/Makevars.win @@ -1,3 +1,3 @@ -CXX_STD = CXX11 +CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp index 79a2d60f..7424121a 100644 --- a/src/NodeSplitStats.cpp +++ b/src/NodeSplitStats.cpp @@ -13,6 +13,301 @@ namespace aorsf { + arma::uvec node_find_cps(const arma::mat& y_node, + const arma::vec& w_node, + const arma::vec& XB, + arma::uvec& XB_sorted, + double leaf_min_events, + double leaf_min_obs){ + + + vec y_status = y_node.unsafe_col(1); + + // placeholder with values indicating invalid cps + uvec output; + + uword i, j, k; + + uvec::iterator XB_iter, XB_iter_min, XB_iter_max; + + double n_events = 0, n_risk = 0; + + if(VERBOSITY > 0){ + Rcout << "----- finding a lower bound for cut-points -----" << std::endl; + } + + // stop at end-1 b/c we access XB_iter+1 in XB_sorted + for(XB_iter = XB_sorted.begin(); + XB_iter < XB_sorted.end()-1; + ++XB_iter){ + + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; + + + if(VERBOSITY > 1){ + Rcout << "current XB"<< XB(*XB_iter) << " ---- "; + Rcout << "next XB"<< XB(*(XB_iter+1)) << " ---- "; + Rcout << "N events" << n_events << " ---- "; + Rcout << "N risk" << n_risk << std::endl; + } + + // If we want to make the current value of XB a cut-point, we need + // to make sure the next value of XB isn't equal to this current value. + // Otherwise, we will have the same value of XB in both groups! + + if(XB[*XB_iter] != XB[*(XB_iter+1)]){ + + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + XB_iter_min = XB_iter; + + if(XB_iter == XB_sorted.end()-1) { + + if(VERBOSITY > 1){ + Rcout << "Could not find a valid lower cut-point" << std::endl; + } + + return(output); + + } + + // j = number of steps we have taken forward in XB + j = XB_iter - XB_sorted.begin(); + + // reset before finding the upper limit + n_events=0, n_risk=0; + + // stop at beginning+1 b/c we access XB_iter-1 in XB_sorted + for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ + + n_events += y_status[*XB_iter] * w_node[*XB_iter]; + n_risk += w_node[*XB_iter]; + + if(VERBOSITY > 1){ + Rcout << XB(*XB_iter) << " ---- "; + Rcout << XB(*(XB_iter-1)) << " ---- "; + Rcout << n_events << " ---- "; + Rcout << n_risk << std::endl; + } + + if(XB(*XB_iter) != XB(*(XB_iter-1))){ + + if(VERBOSITY > 1){ + Rcout << "********* New cut-point here ********" << std::endl; + } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // XB_iter value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if XB_iter currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --XB_iter; + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + } + + break; + + } + + } + + } + + XB_iter_max = XB_iter; + + // k = n steps from beginning of sorted XB to current XB_iter + k = XB_iter - XB_sorted.begin(); + + if(VERBOSITY > 1){ + Rcout << "N steps from beginning to first cp: " << j << std::endl; + Rcout << "N steps from beginning to last cp: " << k << std::endl; + } + + if(j > k){ + + if(VERBOSITY > 1) { + Rcout << "Could not find valid cut-points" << std::endl; + } + + return(output); + + } + + // only one valid cutpoint + if(j == k){ + + uvec output = {j}; + return(output); + + } + + i = 0; + uvec output_middle(k-j); + + for(XB_iter = XB_iter_min+1; XB_iter < XB_iter_max; ++XB_iter){ + if(XB(*XB_iter) != XB(*(XB_iter+1))){ + output_middle[i] = XB_iter - XB_sorted.begin(); + i++; + } + } + + output_middle.resize(i); + + uvec output_left = {j}; + uvec output_right = {k}; + + output = join_vert(output_left, output_middle, output_right); + + return(output); + + + } + + void node_fill_group(arma::vec& group, + const arma::uvec& XB_sorted, + const arma::uword start, + const arma::uword stop, + const double value){ + + group.elem(XB_sorted.subvec(start, stop)).fill(value); + + } + + + // arma::uword node_adjust_mtry(){ + // + // } + + // + // n_cols_to_sample = sum(cols_to_sample_01); + // + // if(n_cols_to_sample > 1){ + // + // n_events_total = sum(y_node.col(1) % w_node); + // + // if(n_cols_to_sample < mtry){ + // + // mtry_int = n_cols_to_sample; + // + // // if(verbose > 0){ + // // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; + // // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; + // // Rcout << std::endl; + // // Rcout << "-------------------------------------------" << std::endl; + // // Rcout << std::endl << std::endl; + // // } + // + // } + // + // if (type_beta == 'C'){ + // + // // make sure there are at least 3 event per predictor variable. + // // (if using CPH) + // while(n_events_total / mtry_int < 3 && mtry_int > 1){ + // --mtry_int; + // } + // + // } + // + // + // n_cols_to_sample = mtry_int; + + double node_compute_lrt(arma::mat& y_node, + arma::vec& w_node, + arma::vec& group){ + + double n_risk=0, g_risk=0, observed=0, expected=0, V=0; + double temp1, temp2, n_events; + + vec y_time = y_node.unsafe_col(0); + vec y_status = y_node.unsafe_col(1); + + bool break_loop = false; + + uword i = y_node.n_rows-1; + + if(VERBOSITY > 1){ + Rcout << "sum(group==1): " << sum(group) << "; "; + Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + Rcout << std::endl; + } + + // breaking condition of outer loop governed by inner loop + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += group[i] * w_node[i]; + observed += y_status[i] * group[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but turns out its faster to multiply by 0 than + // it is to check whether n_events is > 0 + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + + return(pow(expected-observed, 2) / V); + + } + List lrt_multi(mat& y_node, mat& w_node, vec& XB, @@ -39,34 +334,34 @@ bool break_loop = false; vec - group(y_node.n_rows, fill::zeros), - cutpoints_found, - cutpoints_used(n_split), - lrt_statistics(n_split); + group(y_node.n_rows, fill::zeros), + cutpoints_found, + cutpoints_used(n_split), + lrt_statistics(n_split); double stat_best = 0, // initialize at the lowest possible LRT stat value - n_events = 0, - n_risk = 0, - g_risk = 0, - stat_current, - observed, - expected, - V, - temp1, - temp2; + n_events = 0, + n_risk = 0, + g_risk = 0, + stat_current, + observed, + expected, + V, + temp1, + temp2; uword i, j, k, list_counter = 0; uvec - jit_vals, - // sort XB- we need to iterate over the sorted indices - XB_sorted = sort_index(XB, "ascend"); + jit_vals, + // sort XB- we need to iterate over the sorted indices + XB_sorted = sort_index(XB, "ascend"); uvec::iterator - XB_iter, - jit, - XB_iter_best; + XB_iter, + jit, + XB_iter_best; // group should be initialized as all 0s @@ -305,7 +600,7 @@ Rcout << "SKIP" << std::endl; - do_lrt = false; + do_lrt = false; } else { diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h index a85a5e2c..70f259df 100644 --- a/src/NodeSplitStats.h +++ b/src/NodeSplitStats.h @@ -12,6 +12,24 @@ namespace aorsf { + arma::uvec node_find_cps(const arma::mat& y_node, + const arma::vec& w_node, + const arma::vec& XB, + arma::uvec& XB_sorted, + double leaf_min_events, + double leaf_min_obs); + + void node_fill_group(arma::vec& group, + const arma::uvec& XB_sorted, + const arma::uword start, + const arma::uword stop, + const double value); + + + double node_compute_lrt(arma::mat& y_node, + arma::vec& w_node, + arma::vec& group); + // Log rank test w/multiple cutpoints // // this function returns a cutpoint obtaining a local maximum diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 5cdac5de..be87a357 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -39,19 +39,59 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } -// node_find_cps -arma::vec node_find_cps(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, arma::uword n_split, double leaf_min_events, double leaf_min_obs); -RcppExport SEXP _aorsf_node_find_cps(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP n_splitSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { +// node_find_cps_exported +List node_find_cps_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, double leaf_min_events, double leaf_min_obs); +RcppExport SEXP _aorsf_node_find_cps_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); Rcpp::traits::input_parameter< arma::vec& >::type XB(XBSEXP); - Rcpp::traits::input_parameter< arma::uword >::type n_split(n_splitSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); - rcpp_result_gen = Rcpp::wrap(node_find_cps(y_node, w_node, XB, n_split, leaf_min_events, leaf_min_obs)); + rcpp_result_gen = Rcpp::wrap(node_find_cps_exported(y_node, w_node, XB, leaf_min_events, leaf_min_obs)); + return rcpp_result_gen; +END_RCPP +} +// node_compute_lrt_exported +double node_compute_lrt_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& group); +RcppExport SEXP _aorsf_node_compute_lrt_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP groupSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type group(groupSEXP); + rcpp_result_gen = Rcpp::wrap(node_compute_lrt_exported(y_node, w_node, group)); + return rcpp_result_gen; +END_RCPP +} +// node_fill_group_exported +void node_fill_group_exported(arma::vec& group, const arma::uvec& XB_sorted, const arma::uword start, const arma::uword stop, const double value); +RcppExport SEXP _aorsf_node_fill_group_exported(SEXP groupSEXP, SEXP XB_sortedSEXP, SEXP startSEXP, SEXP stopSEXP, SEXP valueSEXP) { +BEGIN_RCPP + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::vec& >::type group(groupSEXP); + Rcpp::traits::input_parameter< const arma::uvec& >::type XB_sorted(XB_sortedSEXP); + Rcpp::traits::input_parameter< const arma::uword >::type start(startSEXP); + Rcpp::traits::input_parameter< const arma::uword >::type stop(stopSEXP); + Rcpp::traits::input_parameter< const double >::type value(valueSEXP); + node_fill_group_exported(group, XB_sorted, start, stop, value); + return R_NilValue; +END_RCPP +} +// which_cols_valid_exported +arma::uvec which_cols_valid_exported(const arma::mat& y_inbag, const arma::mat& x_inbag, arma::uvec& rows_node, const arma::uword mtry); +RcppExport SEXP _aorsf_which_cols_valid_exported(SEXP y_inbagSEXP, SEXP x_inbagSEXP, SEXP rows_nodeSEXP, SEXP mtrySEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< const arma::mat& >::type y_inbag(y_inbagSEXP); + Rcpp::traits::input_parameter< const arma::mat& >::type x_inbag(x_inbagSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type rows_node(rows_nodeSEXP); + Rcpp::traits::input_parameter< const arma::uword >::type mtry(mtrySEXP); + rcpp_result_gen = Rcpp::wrap(which_cols_valid_exported(y_inbag, x_inbag, rows_node, mtry)); return rcpp_result_gen; END_RCPP } @@ -73,19 +113,20 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int vi, int sr, int pt, bool oobag_pred); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP viSEXP, SEXP srSEXP, SEXP ptSEXP, SEXP oobag_predSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int n_tree, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, Rcpp::IntegerVector& tree_seeds, Rcpp::List& tree_params); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP n_treeSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP tree_seedsSEXP, SEXP tree_paramsSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); - Rcpp::traits::input_parameter< int >::type vi(viSEXP); - Rcpp::traits::input_parameter< int >::type sr(srSEXP); - Rcpp::traits::input_parameter< int >::type pt(ptSEXP); - Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, vi, sr, pt, oobag_pred)); + Rcpp::traits::input_parameter< int >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< Rcpp::Function >::type f_beta(f_betaSEXP); + Rcpp::traits::input_parameter< Rcpp::Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); + Rcpp::traits::input_parameter< Rcpp::List& >::type tree_params(tree_paramsSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params)); return rcpp_result_gen; END_RCPP } @@ -93,9 +134,12 @@ END_RCPP static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, - {"_aorsf_node_find_cps", (DL_FUNC) &_aorsf_node_find_cps, 6}, + {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, + {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, + {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, + {"_aorsf_which_cols_valid_exported", (DL_FUNC) &_aorsf_which_cols_valid_exported, 4}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 7}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 8}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 740b78d6..1717967b 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -8,98 +8,97 @@ #include #include "Tree.h" + using namespace arma; + using namespace Rcpp; + namespace aorsf { - Tree::Tree(Data* data, int leaf_min_obs, int mtry){ + Tree::Tree(Forest* forest){ - this->data = data; + this->forest = forest; arma::uword guess = std::ceil( - 0.5 * data->get_n_rows() / leaf_min_obs + 0.5 * forest->data->get_n_rows() / forest->leaf_min_obs ); - coef.zeros(guess, mtry); - coef_indices.zeros(guess, mtry); + coef.zeros(guess, forest->mtry); + coef_indices.zeros(guess, forest->mtry); cutpoint.zeros(guess); next_left_node.zeros(guess); leaf_values.zeros(guess, 1); leaf_indices.zeros(guess, 3); - } - void Tree::grow(bool oobag_pred){ - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - Rcpp::IntegerVector s = Rcpp::seq(0, 10); - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. + void Tree::grow(){ - arma::uword n_rows = data->get_n_rows(); - Rcpp::NumericVector probs = Rcpp::dbinom(s, n_rows, 1.0/n_rows, false); - - arma::vec boot_wts = Rcpp::as( - Rcpp::RcppArmadillo::sample(s, n_rows, true, probs) + vec boot_wts = as( + sample(forest->bootstrap_select_times, + forest->data->get_n_rows(), + true, + forest->bootstrap_select_probs) ); - if(data->has_weights()){ - - boot_wts = boot_wts % data->w; - - } - - arma::uvec rows_inbag = arma::find(boot_wts); - - // initalize the oob rows if oob predictions are being computed - if(oobag_pred) - rows_oobag = arma::find(boot_wts != 0); - - boot_wts = boot_wts(rows_inbag); - - if(VERBOSITY > 0){ - Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; - Rcpp::Rcout << rows_inbag << std::endl << std::endl; - Rcpp::Rcout << "------------ boot weights -----------" << std::endl; - Rcpp::Rcout << boot_wts << std::endl << std::endl; - - } - - arma::mat x_inbag = data->x_rows(rows_inbag); - arma::mat y_inbag = data->y_rows(rows_inbag); - arma::vec w_inbag = data->w_subvec(rows_inbag); - - // once the sub-matrix views are created, we do not use inbag rows - // (and if we really need them, we can get them from oobag rows) - rows_inbag.resize(0); - - arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); - arma::uvec nodes_to_grow(1, arma::fill::zeros); - arma::uword nodes_max_true = 0; - arma::uword leaf_node_counter = 0; - arma::uword leaf_node_index_counter = 0; - - if(VERBOSITY > 0){ - - arma::uword temp_uword_1, temp_uword_2; - - if(x_inbag.n_rows < 5) - temp_uword_1 = x_inbag.n_rows-1; - else - temp_uword_1 = 5; - - if(x_inbag.n_cols < 5) - temp_uword_2 = x_inbag.n_cols-1; - else - temp_uword_2 = 4; + // + // if(forest->data->has_weights()) boot_wts = boot_wts % data->w; + // + // arma::uvec rows_inbag = arma::find(boot_wts); + // + // // initalize the oob rows if oob predictions are being computed + // if(oobag_pred) + // rows_oobag = arma::find(boot_wts != 0); + // + // boot_wts = boot_wts(rows_inbag); + // + // if(VERBOSITY > 0){ + // Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; + // Rcpp::Rcout << rows_inbag << std::endl << std::endl; + // Rcpp::Rcout << "------------ boot weights -----------" << std::endl; + // Rcpp::Rcout << boot_wts << std::endl << std::endl; + // + // } + // + // arma::mat x_inbag = data->x_rows(rows_inbag); + // arma::mat y_inbag = data->y_rows(rows_inbag); + // arma::vec w_inbag = data->w_subvec(rows_inbag); + // + // + // + // // once the sub-matrix views are created, we do not use inbag rows + // // (if we really need them, we can get them from oobag rows) + // rows_inbag.resize(0); + // + // arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); + // arma::uvec nodes_to_grow(1, arma::fill::zeros); + // arma::uword nodes_max_true = 0; + // arma::uword leaf_node_counter = 0; + // arma::uword leaf_node_index_counter = 0; + // + // + // + // if(VERBOSITY > 0){ + // + // arma::uword temp_uword_1, temp_uword_2; + // + // if(x_inbag.n_rows < 5) + // temp_uword_1 = x_inbag.n_rows-1; + // else + // temp_uword_1 = 5; + // + // if(x_inbag.n_cols < 5) + // temp_uword_2 = x_inbag.n_cols-1; + // else + // temp_uword_2 = 4; + // + // Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; + // Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); + // Rcpp::Rcout << std::endl << std::endl; + // + // } - Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; - Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); - Rcpp::Rcout << std::endl << std::endl; - } } // Tree::grow diff --git a/src/Tree.h b/src/Tree.h index 0182502d..c9a07de8 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -10,6 +10,7 @@ #include "Data.h" #include "globals.h" +#include "Forest.h" namespace aorsf { @@ -17,21 +18,15 @@ public: - Tree() = default; + // Construct trees from an existing forest + Tree(Forest* forest); - Tree(Data* data, int leaf_min_obs, int mtry); + // deleting the copy constructor + Tree(const Tree&) = delete; + // deleting the copy assignment operator + Tree& operator=(const Tree&) = delete; - // @description sample weights to mimic a bootstrap sample - // Note: the sampling extension for RcppArmadillo can only - // be defined once. So, all functions that use sample need - // to be defined in this file, unless we move the inclusion - // of RcppArmadilloExtension/sample.h to another place. - void grow(bool oobag_pred); - - // INPUTS - - // Pointer to original data - Data* data; + void grow(); // which rows of data are held out while growing the tree arma::uvec rows_oobag; @@ -59,9 +54,12 @@ // indices of predicted values for each leaf node arma::umat leaf_indices; - protected: + // Pointer to a forest + Forest* forest; + + }; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 703d1e3d..3c5bc6b4 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -8,19 +8,25 @@ - Byron C. Jaeger (http://byronjaeger.com) #----------------------------------------------------------------------------*/ + #include + #include "globals.h" #include "Data.h" #include "Tree.h" +#include "Forest.h" #include "Coxph.h" #include "NodeSplitStats.h" +#include +#include // [[Rcpp::depends(RcppArmadillo)]] using namespace Rcpp; using namespace arma; using namespace aorsf; + // @description sample weights to mimic a bootstrap sample // arma::vec bootstrap_sample_testthat(arma::mat& x, // arma::mat& y, @@ -83,184 +89,116 @@ } // [[Rcpp::export]] - arma::vec node_find_cps(arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - arma::uword n_split, - double leaf_min_events, - double leaf_min_obs){ - - - vec - // unsafe_cols point to cols in y_node. - y_time = y_node.unsafe_col(0), - y_status = y_node.unsafe_col(1), - cp_placeholder(n_split), - cp_lwr(1), - cp_mid, - cp_upr(1); + List node_find_cps_exported(arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, + double leaf_min_events, + double leaf_min_obs){ // sort XB to iterate over the sorted indices uvec XB_sorted = sort_index(XB, "ascend"); - cp_placeholder.fill(R_PosInf); + uvec cp_index = node_find_cps(y_node, + w_node, + XB, + XB_sorted, + leaf_min_events, + leaf_min_obs); - uword i, j, k; + // vec group(y_node.n_rows, fill::zeros); + // uvec::iterator XB_iter; + // uword j = 0; + // XB_iter = XB_sorted.begin(); + // while(j <= cp_index(0)){ + // group(*XB_iter) = 1; + // ++XB_iter; + // ++j; + // } - uvec::iterator - XB_iter, - XB_iter_lwr, - XB_iter_upr; - double n_events = 0, n_risk = 0; - if(VERBOSITY > 0){ - Rcout << "----- finding a lower bound for cut-points -----" << std::endl; - } - - // stop at end-1 b/c we access XB_iter+1 in XB_sorted - for(XB_iter = XB_sorted.begin(); XB_iter < XB_sorted.end()-1; ++XB_iter){ - - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; - - - if(VERBOSITY > 1){ - Rcout << "current XB"<< XB(*XB_iter) << " ---- "; - Rcout << "next XB"<< XB(*(XB_iter+1)) << " ---- "; - Rcout << "N events" << n_events << " ---- "; - Rcout << "N risk" << n_risk << std::endl; - } - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! + return( + List::create( + _["cp_index"] = cp_index, + _["XB_sorted"] = XB_sorted + ) + ); - if(XB[*XB_iter] != XB[*(XB_iter+1)]){ - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } + } - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { + // [[Rcpp::export]] + double node_compute_lrt_exported(arma::mat& y_node, + arma::vec& w_node, + arma::vec& group){ - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, left node: " << n_events << std::endl; - Rcout << " - n_risk, left node: " << n_risk << std::endl; - Rcout << std::endl; - } + double out = node_compute_lrt(y_node, w_node, group); - break; + return(out); - } + } - } + // [[Rcpp::export]] + void node_fill_group_exported(arma::vec& group, + const arma::uvec& XB_sorted, + const arma::uword start, + const arma::uword stop, + const double value){ - } + node_fill_group(group, XB_sorted, start, stop, value); - if(XB_iter == XB_sorted.end()-1) { + } - if(VERBOSITY > 1){ - Rcout << "Could not find a valid lower cut-point" << std::endl; - } + // valid columns are non-constant in the rows where events occurred + // [[Rcpp::export]] + arma::uvec which_cols_valid_exported(const arma::mat& y_inbag, + const arma::mat& x_inbag, + arma::uvec& rows_node, + const arma::uword mtry){ - return(cp_placeholder); + uvec result(x_inbag.n_cols, arma::fill::zeros); - } + // j moves along columns, i along rows, and iit along + uword j; + uvec::iterator iit; - XB_iter_lwr = XB_iter; - cp_lwr[0] = XB[*XB_iter]; + double temp1;//, temp2; - // set j to be the number of steps we have taken forward in XB - j = XB_iter - XB_sorted.begin(); + for(j = 0; j < result.size(); j++){ - // reset before finding the upper limit - n_events=0, n_risk=0; + temp1 = R_PosInf; - // stop at beginning+1 b/c we access XB_iter-1 in XB_sorted - for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ + for(iit = rows_node.begin(); iit != rows_node.end(); ++iit){ - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; + if(y_inbag.at(*iit, 1) == 1){ - if(VERBOSITY > 1){ - Rcout << XB(*XB_iter) << " ---- "; - Rcout << XB(*(XB_iter-1)) << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } + if (temp1 < R_PosInf){ - if(XB(*XB_iter) != XB(*(XB_iter-1))){ + if(x_inbag.at(*iit, j) != temp1){ - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } + result[j] = 1; + break; - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { + } - // the upper cutpoint needs to be one step below the current - // XB_iter value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if XB_iter currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. + } else { - --XB_iter; + temp1 = x_inbag.at(*iit, j); - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, right node: " << n_events << std::endl; - Rcout << " - n_risk, right node: " << n_risk << std::endl; } - break; - } } } - // k = n steps from beginning of sorted XB to current XB_iter - k = XB_iter + 1 - XB_sorted.begin(); - - if(VERBOSITY > 1){ - Rcout << "N steps from beginning to first cp: " << j << std::endl; - Rcout << "N steps from beginning to last cp: " << k << std::endl; - Rcout << "n potential cutpoints: " << k-j << std::endl; - } - - if(j > k){ - - if(VERBOSITY > 1) { - Rcout << "Could not find valid cut-points" << std::endl; - } - - return(cp_placeholder); - - } - - XB_iter_upr = XB_iter; - cp_upr[0] = XB[*XB_iter]; - - uvec tmp = XB_sorted(*XB_iter_lwr, *XB_iter_upr); - Rcout << XB(tmp) << std::endl; - - if(cp_lwr[0] != cp_upr[0]){ - - } - - return(join_vert(cp_lwr, cp_mid, cp_upr)); - + return(result); } + + // deprecated, need to drop this // [[Rcpp::export]] List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, @@ -289,58 +227,44 @@ } + // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] + List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, - int vi = 0, - int sr = 1, - int pt = 1, - bool oobag_pred = true){ - - - int mtry = 2; - int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; - // int split_min_obs = DEFAULT_SPLIT_MIN_OBS; - // int split_min_stat = DEFAULT_SPLIT_MIN_STAT; - // int max_retry = DEFAULT_MAX_RETRY; - // int n_split = DEFAULT_N_SPLIT; - // int oobag_eval_every = 0; - // int seed = 0; - - VariableImportance variable_importance = static_cast(vi); + int n_tree, + Rcpp::Function f_beta, + Rcpp::Function f_oobag_eval, + Rcpp::IntegerVector& tree_seeds, + Rcpp::List& tree_params){ + + + // int mtry = 2; + // int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; + // VariableImportance variable_importance = static_cast(vi); // SplitRule split_rule = static_cast(sr); // PredType pred_type = static_cast(pt); - // if( variable_importance == VI_NONE ) - // Rcout << variable_importance << std::endl; - Data data = Data(x, y, w); + std::unique_ptr forest { }; + std::unique_ptr data { }; - if(VERBOSITY > 0){ - Rcout << "------------ dimensions ------------" << std::endl; - Rcout << "N obs total: " << data.get_n_rows() << std::endl; - Rcout << "N columns total: " << data.get_n_cols() << std::endl; - Rcout << "------------------------------------"; - Rcout << std::endl << std::endl; - } + data = std::make_unique(x, y, w); - Rcpp::List result; + forest = std::make_unique(); - Data* data_ptr = &data; + forest->init(std::move(data), + n_tree, + tree_seeds, + tree_params); - Tree tree(data_ptr, leaf_min_obs, mtry); - - tree.grow(oobag_pred); + Rcpp::List result; - result.push_back(tree.rows_oobag, "rows_oobag"); - result.push_back(tree.coef, "coef"); - result.push_back(tree.coef_indices, "coef_indices"); - result.push_back(tree.cutpoint, "cutpoint"); - result.push_back(tree.next_left_node, "next_left_node"); - result.push_back(tree.leaf_values, "leaf_values"); - result.push_back(tree.pred_oobag, "pred_oobag"); - result.push_back(tree.leaf_indices, "leaf_indices"); + result.push_back( + forest->get_bootstrap_select_probs(), + "bootstrap_select_probs" + ); return(result); diff --git a/tests/testthat/test-cp_find_bounds.R b/tests/testthat/test-cp_find_bounds.R new file mode 100644 index 00000000..dd3aecae --- /dev/null +++ b/tests/testthat/test-cp_find_bounds.R @@ -0,0 +1,137 @@ + + +run_cp_bounds_test <- function(test_values, XB){ + + xb_uni <- unique(XB) + + cp_stats <- cp_find_bounds_R(y, w, XB, xb_uni, leaf_min_events, leaf_min_obs) + + if(!any(cp_stats$valid_cp)){ + return(NULL) + } + + cps_true_values <- sort(xb_uni[cp_stats$valid_cp]) + cps_test_values <- XB[test_values$XB_sorted+1][test_values$cp_index+1] + + test_that( + desc = 'cutpoints identified are unique and valid', + code = { + + expect_equal( + length(cps_test_values), length(unique(cps_test_values)) + ) + + expect_equal(cps_true_values, cps_test_values) + + } + + ) + + test_that( + desc = "group values are filled corresponding to the given cut-point", + code = { + + group_cpp <- rep(0, length(XB)) + XB_sorted <- order(XB)-1 + + for(i in seq_along(cps_true_values)){ + + group_R = XB <= cps_true_values[i] + + if(i == 1) start <- 0 else start <- test_values$cp_index[i-1]+1 + + node_fill_group_exported( + group = group_cpp, + XB_sorted = XB_sorted, + start = start, + stop = test_values$cp_index[i], + value = 1 + ) + + expect_equal(as.numeric(group_R), + as.numeric(group_cpp)) + + } + } + ) + +} + +.leaf_min_events <- c(1, 5, 50, nrow(pbc_orsf)) + +# leaf_min_events = 1 + +for(leaf_min_events in .leaf_min_events){ + + leaf_min_obs <- leaf_min_events + 10 + + XB_ctns <- pbc_orsf$age + XB_catg <- round(pbc_orsf$bili) + XB_bnry <- as.numeric(pbc_orsf$sex) + + status <- pbc_orsf$status + time <- pbc_orsf$time + + t_sort <- order(time) + status <- status[t_sort] + XB_ctns <- XB_ctns[t_sort] + XB_catg <- XB_catg[t_sort] + XB_bnry <- XB_bnry[t_sort] + time <- time[t_sort] + + y <- cbind(time=time, status=status) + w <- rep(1, nrow(pbc_orsf)) + + cp_bounds <- lapply( + X = list(ctns = XB_ctns, + catg = XB_catg, + bnry = XB_bnry), + FUN = function(XB){ + node_find_cps_exported(y_node = y, + w_node = w, + XB = XB, + leaf_min_events = leaf_min_events, + leaf_min_obs = leaf_min_obs) + } + ) + + run_cp_bounds_test(test_values = cp_bounds$ctns, XB = XB_ctns) + run_cp_bounds_test(cp_bounds$catg, XB = XB_catg) + run_cp_bounds_test(cp_bounds$bnry, XB = XB_bnry) + + + +} + + +# benchmark does not need to be tested every time + +# bm <- microbenchmark::microbenchmark( +# +# R = { +# xb_uni = unique(XB_ctns) +# cp_find_bounds_R(y_node = y, +# w_node = w, +# XB = XB_ctns, +# xb_uni = xb_uni, +# leaf_min_events = 5, +# leaf_min_obs = 10) +# }, +# +# cpp = cp_find_bounds_exported(y_node = y, +# w_node = w, +# XB = XB_ctns, +# leaf_min_events = 5, +# leaf_min_obs = 10), +# +# times = 50 +# +# ) +# +# expect_lt( +# median(bm$time[bm$expr == 'cpp']), +# median(bm$time[bm$expr == 'R']) +# ) + + + diff --git a/tests/testthat/test-lrt_multi.R b/tests/testthat/test-lrt_multi.R index d5fc5e38..da77c0ac 100644 --- a/tests/testthat/test-lrt_multi.R +++ b/tests/testthat/test-lrt_multi.R @@ -37,23 +37,16 @@ run_lrt_multi_tests <- function(test_values, XB){ ) if(!any(cp_stats$valid_cp)){ - expect_true(is.infinite(test_values$cutpoints)) - expect_true(is.infinite(test_values$statistic)) return(NULL) } cp_first = xb_uni[min(which(cp_stats$valid_cp))] cp_last = xb_uni[max(which(cp_stats$valid_cp))] - index_last <- max(which(test_values$cutpoints!=0)) - test_that( desc = 'same chi-squared stats as survival survdiff', code = { - expect_equal(cp_first, test_values$cutpoints[1]) - expect_equal(cp_last, test_values$cutpoints[index_last]) - for(i in seq(index_last)){ XB_cut <- as.numeric(XB > test_values$cutpoints[i]) @@ -90,8 +83,7 @@ run_lrt_multi_tests <- function(test_values, XB){ } -n_total <- 100 -n_split <- 5 +n_total <- 250 .leaf_min_events <- c(1, 3, 5, 10, 15) @@ -123,30 +115,59 @@ for(leaf_min_events in .leaf_min_events){ y <- cbind(time=time, status=status) w <- rep(1, n_total) - lrt_multi_vals <- lapply( + cp_bounds <- lapply( X = list(ctns = XB_ctns, catg = XB_catg, bnry = XB_bnry), FUN = function(XB){ - lrt_multi_exported(y_ = y, - w_ = w, - XB_ = XB, - n_split_ = n_split, - split_min_stat = 3.841459, - leaf_min_events = leaf_min_events, - leaf_min_obs = leaf_min_obs) + cp_find_bounds_R(y_node = y, + w_node = w, + XB = XB, + xb_uni = unique(XB), + leaf_min_events = leaf_min_events, + leaf_min_obs = leaf_min_obs) } - ) + ) %>% + lapply(subset, valid_cp) + + for(i in seq_along(cp_bounds)){ - test_values = lrt_multi_vals[[1]] + XB <- switch (names(cp_bounds)[i], + 'ctns' = XB_ctns, + 'catg' = XB_catg, + 'bnry' = XB_bnry) + for(j in seq_along(cp_bounds[[i]]$cp)){ - run_lrt_multi_tests(lrt_multi_vals$ctns, XB_ctns) - run_lrt_multi_tests(lrt_multi_vals$catg, XB_catg) - run_lrt_multi_tests(lrt_multi_vals$bnry, XB_bnry) + group <- as.numeric(XB > cp_bounds[[i]]$cp[j]) + + + expect_equal( + node_compute_lrt_exported(y, w, group), + survival::survdiff(survival::Surv(time, status) ~ group)$chisq + ) + + } + + + } } +# # benchmark does not need to be tested every time +# +# bm <- microbenchmark::microbenchmark( +# R = survival::survdiff(survival::Surv(time, status) ~ group)$chisq, +# cpp = node_compute_lrt_exported(y, w, group), +# times = 50 +# ) +# +# expect_lt( +# median(bm$time[bm$expr == 'cpp']), +# median(bm$time[bm$expr == 'R']) +# ) + + diff --git a/tests/testthat/test-which_cols_valid.R b/tests/testthat/test-which_cols_valid.R new file mode 100644 index 00000000..351f3c44 --- /dev/null +++ b/tests/testthat/test-which_cols_valid.R @@ -0,0 +1,54 @@ + + +y <- matrix( + data = c(1,1, + 2,0, + 3,1, + 4,0, + 5,1, + 6,1), + byrow = TRUE, + ncol = 2 +) + +# column 1 is constant everywhere -> return value should be 0 +# column 2 is constant where events occurred -> return value should be 0 +# column 3 is unique everywhere -> return value should be 1 +# column 4 is unique where events occurred -> return value should be 1 + +x <- matrix( + data = c(1, 2, 3, 1, + 1, 0, 4, 1, + 1, 2, 5, 3, + 1, 0, 6, 3, + 1, 2, 7, 4, + 1, 2, 8, 4), + byrow = TRUE, + ncol = 4 +) + +test_that( + desc = "constant columns are detected in X matrix", + code = { + # include all rows + expect_equal( + which_cols_valid_exported(y, x, rows_node = seq(0, nrow(x)-1), mtry = 1), + matrix(data = c(0, 0, 1, 1), ncol = 1) + ) + + # same deal if you just include event rows + expect_equal( + which_cols_valid_exported(y, x, rows_node = c(0, 2, 4, 5), mtry = 1), + matrix(data = c(0, 0, 1, 1), ncol = 1) + ) + + # all cols should be constant if you remove rows with events + expect_equal( + which_cols_valid_exported(y, x, rows_node = c(1, 3), mtry = 1), + matrix(data = c(0, 0, 0, 0), ncol = 1) + ) + } +) + + + From 5e75fa945f0edceb48934fbaab8a3a73c714294d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 6 Aug 2023 12:49:00 -0400 Subject: [PATCH 024/103] test from home --- src/orsf_oop.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 3c5bc6b4..91abbdf2 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -6,6 +6,7 @@ Authors: - Byron C. Jaeger (http://byronjaeger.com) + - test #----------------------------------------------------------------------------*/ From b31637ff60e0fe88c24c07c0dbbef9e488a34dbe Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 6 Aug 2023 18:45:05 -0400 Subject: [PATCH 025/103] getting more specific with Rcpp data transfer --- R/RcppExports.R | 4 +- src/Forest.cpp | 90 +++++++++++++++++++++++++-------------------- src/Forest.h | 63 +++++++++++++++++++++++++++---- src/RcppExports.cpp | 32 ++++++++++++---- src/Tree.cpp | 34 +++++++++-------- src/Tree.h | 14 ++++--- src/globals.h | 4 +- src/orsf_oop.cpp | 65 +++++++++++++++++++++++++------- 8 files changed, 214 insertions(+), 92 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index c3833fd6..603e8acd 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -29,7 +29,7 @@ lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_e .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params) { - .Call(`_aorsf_orsf_cpp`, x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params) +orsf_cpp <- function(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Forest.cpp b/src/Forest.cpp index cf429f3b..0d4471f9 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -12,57 +12,63 @@ namespace aorsf { Forest::Forest(){ } void Forest::init(std::unique_ptr input_data, - int n_tree, Rcpp::IntegerVector& tree_seeds, - Rcpp::List& tree_params){ + int n_tree, + int mtry, + VariableImportance vi_type, + double leaf_min_events, + double leaf_min_obs, + SplitRule split_rule, + double split_min_events, + double split_min_obs, + double split_min_stat, + int split_max_retry, + LinearCombo lincomb_type, + double lincomb_eps, + int lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + int lincomb_df_target, + PredType pred_type, + double pred_horizon, + bool oobag_pred, + int oobag_eval_every){ this->data = std::move(input_data); - - uword n_rows = data->get_n_rows(); - - // this->n_tree = n_tree; - // this->tree_seeds = tree_seeds; - // this->tree_objects = Rcpp::List(n_tree); - - // this->n_split = tree_params["n_split"]; - // this->mtry = tree_params["mtry"]; - // this->leaf_min_events = tree_params["leaf_min_events"]; - // this->leaf_min_obs = tree_params["leaf_min_obs"]; - - // this->split_min_events = params["split_min_events"]; - // this->split_min_obs = params["split_min_obs"]; - // this->split_min_stat = params["split_min_stat"]; - // this->cph_method = params["cph_method"]; - // this->cph_eps = params["cph_eps"]; - // this->cph_iter_max = params["cph_iter_max"]; - // this->cph_do_scale = params["cph_do_scale"]; - // this->net_alpha = params["net_alpha"]; - // this->net_df_target = params["net_df_target"]; - // this->oobag_pred = params["oobag_pred"]; - // this->oobag_pred_type = params["oobag_pred_type"]; - // this->oobag_pred_horizon = params["oobag_pred_horizon"]; - // this->oobag_eval_every = params["oobag_eval_every"]; - // this->oobag_importance = params["oobag_importance"]; - // this->oobag_importance_type = params["oobag_importance_type"]; - // this->max_retry = params["max_retry"]; - // this->type_beta = params["type_beta"]; - - - if(VERBOSITY > 0){ + this->tree_seeds = tree_seeds; + this->n_tree = n_tree; + this->mtry = mtry; + this->vi_type = vi_type; + this->leaf_min_events = leaf_min_events; + this->leaf_min_obs = leaf_min_obs; + this->split_rule = split_rule; + this->split_min_events = split_min_events; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->split_max_retry = split_max_retry; + this->lincomb_type = lincomb_type; this->lincomb_eps = lincomb_eps; + this->lincomb_iter_max = lincomb_iter_max; + this->lincomb_scale = lincomb_scale; + this->lincomb_alpha = lincomb_alpha; + this->lincomb_df_target = lincomb_df_target; + this->pred_type = pred_type; + this->pred_horizon = pred_horizon; + this->oobag_pred = oobag_pred; + this->oobag_eval_every = oobag_eval_every; + + if(VERBOSITY > 0){ Rcout << "------------ dimensions ------------" << std::endl; Rcout << "N obs total: " << data->get_n_rows() << std::endl; Rcout << "N columns total: " << data->get_n_cols() << std::endl; Rcout << "------------------------------------"; Rcout << std::endl << std::endl; } - // - // // sample weights to mimic a bootstrap sample - // - // // s is the number of times you might get selected into - // // a bootstrap sample. Realistically this won't be >10, - // // but it could technically be as big as n_row. + + // sample weights to mimic a bootstrap sample this->bootstrap_select_times = seq(0, 10); + uword n_rows = data->get_n_rows(); + // compute probability of being selected into the bootstrap // 0 times, 1, times, ..., 9 times, or 10 times. this->bootstrap_select_probs = dbinom(bootstrap_select_times, @@ -72,5 +78,9 @@ void Forest::init(std::unique_ptr input_data, } +void Forest::grow(){ } + +void Forest::run(){ } + } diff --git a/src/Forest.h b/src/Forest.h index 41af040b..10e1d316 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -6,6 +6,7 @@ #include "Data.h" #include "globals.h" +#include "Tree.h" namespace aorsf { @@ -25,14 +26,38 @@ class Forest { // Methods void init(std::unique_ptr input_data, - int n_tree, Rcpp::IntegerVector& tree_seeds, - Rcpp::List& tree_params); + int n_tree, + int mtry, + VariableImportance vi_type, + // leaves + double leaf_min_events, + double leaf_min_obs, + // node splitting + SplitRule split_rule, + double split_min_events, + double split_min_obs, + double split_min_stat, + int split_max_retry, + // linear combinations + LinearCombo lincomb_type, + double lincomb_eps, + int lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + int lincomb_df_target, + // predictions + PredType pred_type, + double pred_horizon, + bool oobag_pred, + int oobag_eval_every); // virtual void initInternal() = 0; // Grow or predict - void run(bool verbose, bool compute_oob_error); + void run(); + + void grow(); Rcpp::IntegerVector get_bootstrap_select_times(){ return bootstrap_select_times; @@ -49,17 +74,41 @@ class Forest { Rcpp::NumericVector bootstrap_select_probs; int n_tree; + int mtry; Rcpp::IntegerVector tree_seeds; - Rcpp::List tree_objects; - arma::uword n_split; - arma::uword mtry; + std::vector> trees; + + std::unique_ptr data; + + VariableImportance vi_type; + // leaves double leaf_min_events; double leaf_min_obs; - std::unique_ptr data; + // node splitting + SplitRule split_rule; + double split_min_events; + double split_min_obs; + double split_min_stat; + int split_max_retry; + + // linear combinations + LinearCombo lincomb_type; + double lincomb_eps; + int lincomb_iter_max; + bool lincomb_scale; + double lincomb_alpha; + int lincomb_df_target; + + // predictions + PredType pred_type; + double pred_horizon; + bool oobag_pred; + int oobag_eval_every; + }; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index be87a357..8a167d0c 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -113,20 +113,38 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, int n_tree, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, Rcpp::IntegerVector& tree_seeds, Rcpp::List& tree_params); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP n_treeSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP tree_seedsSEXP, SEXP tree_paramsSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, int n_tree, int mtry, int vi_type_R, double leaf_min_events, double leaf_min_obs, int split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, int split_max_retry, int lincomb_type_R, double lincomb_eps, int lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, int lincomb_df_target, int pred_type_R, double pred_horizon, bool oobag_pred, int oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); - Rcpp::traits::input_parameter< int >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); Rcpp::traits::input_parameter< Rcpp::Function >::type f_beta(f_betaSEXP); Rcpp::traits::input_parameter< Rcpp::Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< Rcpp::List& >::type tree_params(tree_paramsSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, n_tree, f_beta, f_oobag_eval, tree_seeds, tree_params)); + Rcpp::traits::input_parameter< int >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< int >::type mtry(mtrySEXP); + Rcpp::traits::input_parameter< int >::type vi_type_R(vi_type_RSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); + Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); + Rcpp::traits::input_parameter< int >::type split_rule_R(split_rule_RSEXP); + Rcpp::traits::input_parameter< double >::type split_min_events(split_min_eventsSEXP); + Rcpp::traits::input_parameter< double >::type split_min_obs(split_min_obsSEXP); + Rcpp::traits::input_parameter< double >::type split_min_stat(split_min_statSEXP); + Rcpp::traits::input_parameter< int >::type split_max_retry(split_max_retrySEXP); + Rcpp::traits::input_parameter< int >::type lincomb_type_R(lincomb_type_RSEXP); + Rcpp::traits::input_parameter< double >::type lincomb_eps(lincomb_epsSEXP); + Rcpp::traits::input_parameter< int >::type lincomb_iter_max(lincomb_iter_maxSEXP); + Rcpp::traits::input_parameter< bool >::type lincomb_scale(lincomb_scaleSEXP); + Rcpp::traits::input_parameter< double >::type lincomb_alpha(lincomb_alphaSEXP); + Rcpp::traits::input_parameter< int >::type lincomb_df_target(lincomb_df_targetSEXP); + Rcpp::traits::input_parameter< int >::type pred_type_R(pred_type_RSEXP); + Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); + Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); + Rcpp::traits::input_parameter< int >::type oobag_eval_every(oobag_eval_everySEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } @@ -139,7 +157,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, {"_aorsf_which_cols_valid_exported", (DL_FUNC) &_aorsf_which_cols_valid_exported, 4}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 8}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 26}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 1717967b..ba4c647e 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -13,20 +13,24 @@ namespace aorsf { - Tree::Tree(Forest* forest){ + Tree::Tree(){ } + + void Tree::init(Data* data, + double leaf_min_obs, + double leaf_min_events, + int mtry){ - this->forest = forest; arma::uword guess = std::ceil( - 0.5 * forest->data->get_n_rows() / forest->leaf_min_obs + 0.5 * data->get_n_rows() / leaf_min_obs ); - coef.zeros(guess, forest->mtry); - coef_indices.zeros(guess, forest->mtry); - cutpoint.zeros(guess); - next_left_node.zeros(guess); - leaf_values.zeros(guess, 1); - leaf_indices.zeros(guess, 3); + // coef.zeros(guess, forest->mtry); + // coef_indices.zeros(guess, forest->mtry); + // cutpoint.zeros(guess); + // next_left_node.zeros(guess); + // leaf_values.zeros(guess, 1); + // leaf_indices.zeros(guess, 3); } @@ -34,12 +38,12 @@ void Tree::grow(){ - vec boot_wts = as( - sample(forest->bootstrap_select_times, - forest->data->get_n_rows(), - true, - forest->bootstrap_select_probs) - ); + // vec boot_wts = as( + // sample(forest->bootstrap_select_times, + // forest->data->get_n_rows(), + // true, + // forest->bootstrap_select_probs) + // ); // // if(forest->data->has_weights()) boot_wts = boot_wts % data->w; diff --git a/src/Tree.h b/src/Tree.h index c9a07de8..49de3ea3 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -10,7 +10,6 @@ #include "Data.h" #include "globals.h" -#include "Forest.h" namespace aorsf { @@ -18,16 +17,23 @@ public: - // Construct trees from an existing forest - Tree(Forest* forest); + Tree(); // deleting the copy constructor Tree(const Tree&) = delete; // deleting the copy assignment operator Tree& operator=(const Tree&) = delete; + void init(Data* data, + double leaf_min_obs, + double leaf_min_events, + int mtry); + void grow(); + // Pointer to original data + const Data* data; + // which rows of data are held out while growing the tree arma::uvec rows_oobag; @@ -56,8 +62,6 @@ protected: - // Pointer to a forest - Forest* forest; }; diff --git a/src/globals.h b/src/globals.h index 191fd37c..9d79fe05 100644 --- a/src/globals.h +++ b/src/globals.h @@ -34,9 +34,9 @@ }; // Linear combination method - enum LinearCombination { + enum LinearCombo { NEWTON_RAPHSON = 1, - USER_FUNCTION = 2 + R_FUNCTION = 2 }; // Prediction type diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 91abbdf2..f190d665 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -230,16 +230,32 @@ // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] - List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, - int n_tree, + Rcpp::IntegerVector& tree_seeds, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, - Rcpp::IntegerVector& tree_seeds, - Rcpp::List& tree_params){ - + int n_tree, + int mtry, + int vi_type_R, + double leaf_min_events, + double leaf_min_obs, + int split_rule_R, + double split_min_events, + double split_min_obs, + double split_min_stat, + int split_max_retry, + int lincomb_type_R, + double lincomb_eps, + int lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + int lincomb_df_target, + int pred_type_R, + double pred_horizon, + bool oobag_pred, + int oobag_eval_every){ // int mtry = 2; // int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; @@ -247,28 +263,49 @@ // SplitRule split_rule = static_cast(sr); // PredType pred_type = static_cast(pt); + // VariableImportance vi_type = static_cast(vi_type_R); + // SplitRule split_rule = static_cast(split_rule_r) ; + // LinearCombo lincomb_type = static_cast(lincomb_type_R); + // PredType pred_type = static_cast(pred_type_R); + std::unique_ptr forest { }; std::unique_ptr data { }; data = std::make_unique(x, y, w); + VariableImportance vi_type = (VariableImportance) vi_type_R; + SplitRule split_rule = (SplitRule) split_rule_R; + LinearCombo lincomb_type = (LinearCombo) lincomb_type_R; + PredType pred_type = (PredType) pred_type_R; + forest = std::make_unique(); forest->init(std::move(data), - n_tree, tree_seeds, - tree_params); + n_tree, + mtry, + vi_type, + leaf_min_events, + leaf_min_obs, + split_rule, + split_min_events, + split_min_obs, + split_min_stat, + split_max_retry, + lincomb_type, + lincomb_eps, + lincomb_iter_max, + lincomb_scale, + lincomb_alpha, + lincomb_df_target, + pred_type, + pred_horizon, + oobag_pred, + oobag_eval_every); Rcpp::List result; - result.push_back( - forest->get_bootstrap_select_probs(), - "bootstrap_select_probs" - ); - - return(result); - } From b58844d8b16314139b3be5304eb5611f3b8b8e39 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 7 Aug 2023 23:27:48 -0400 Subject: [PATCH 026/103] thinking about trees --- R/RcppExports.R | 4 ++-- src/Forest.cpp | 12 ++++++++++++ src/Forest.h | 7 +++++-- src/RcppExports.cpp | 9 +++++---- src/Tree.h | 17 ++++++++++------- src/orsf_oop.cpp | 7 ++++++- 6 files changed, 40 insertions(+), 16 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 603e8acd..defe7d95 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -29,7 +29,7 @@ lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_e .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Forest.cpp b/src/Forest.cpp index 0d4471f9..881a86cd 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -30,6 +30,7 @@ void Forest::init(std::unique_ptr input_data, double lincomb_alpha, int lincomb_df_target, PredType pred_type, + bool pred_mode, double pred_horizon, bool oobag_pred, int oobag_eval_every){ @@ -78,6 +79,17 @@ void Forest::init(std::unique_ptr input_data, } +// growInternal() in ranger +void Forest::plant() { + + trees.reserve(n_tree); + + for (int i = 0; i < n_tree; ++i) { + trees.push_back(std::make_unique()); + } + +} + void Forest::grow(){ } void Forest::run(){ } diff --git a/src/Forest.h b/src/Forest.h index 10e1d316..2ddcd729 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -34,7 +34,7 @@ class Forest { double leaf_min_events, double leaf_min_obs, // node splitting - SplitRule split_rule, + SplitRule split_rule, double split_min_events, double split_min_obs, double split_min_stat, @@ -47,7 +47,8 @@ class Forest { double lincomb_alpha, int lincomb_df_target, // predictions - PredType pred_type, + PredType pred_type, + bool pred_mode, double pred_horizon, bool oobag_pred, int oobag_eval_every); @@ -59,6 +60,8 @@ class Forest { void grow(); + void plant(); + Rcpp::IntegerVector get_bootstrap_select_times(){ return bootstrap_select_times; } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 8a167d0c..5afa8f8d 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -113,8 +113,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, int n_tree, int mtry, int vi_type_R, double leaf_min_events, double leaf_min_obs, int split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, int split_max_retry, int lincomb_type_R, double lincomb_eps, int lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, int lincomb_df_target, int pred_type_R, double pred_horizon, bool oobag_pred, int oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, int n_tree, int mtry, int vi_type_R, double leaf_min_events, double leaf_min_obs, int split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, int split_max_retry, int lincomb_type_R, double lincomb_eps, int lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, int lincomb_df_target, bool pred_mode, int pred_type_R, double pred_horizon, bool oobag_pred, int oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -140,11 +140,12 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type lincomb_scale(lincomb_scaleSEXP); Rcpp::traits::input_parameter< double >::type lincomb_alpha(lincomb_alphaSEXP); Rcpp::traits::input_parameter< int >::type lincomb_df_target(lincomb_df_targetSEXP); + Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); Rcpp::traits::input_parameter< int >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< int >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } @@ -157,7 +158,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, {"_aorsf_which_cols_valid_exported", (DL_FUNC) &_aorsf_which_cols_valid_exported, 4}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 26}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 27}, {NULL, NULL, 0} }; diff --git a/src/Tree.h b/src/Tree.h index 49de3ea3..7856e4d4 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -34,31 +34,34 @@ // Pointer to original data const Data* data; + // which node each inbag observation is currently in. + arma::vec node_assignments; + // which rows of data are held out while growing the tree arma::uvec rows_oobag; // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 - arma::mat coef; + std::vector coef_values; // indices of the predictors used by a node - arma::umat coef_indices; + std::vector coef_indices; // cutpoints used to split the nodes - arma::vec cutpoint; + std::vector cutpoint; // directions to the next node (right node = left node + 1) - arma::uvec next_left_node; + std::vector child_left; // leaf values (only in leaf nodes) - arma::mat leaf_values; + std::vector leaf_values; // predicted values for out-of-bag rows arma::vec pred_oobag; - // indices of predicted values for each leaf node - arma::umat leaf_indices; + // contains the node ID of each leaf node + std::vector leaf_index; protected: diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f190d665..39b147cc 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -252,6 +252,7 @@ bool lincomb_scale, double lincomb_alpha, int lincomb_df_target, + bool pred_mode, int pred_type_R, double pred_horizon, bool oobag_pred, @@ -268,6 +269,7 @@ // LinearCombo lincomb_type = static_cast(lincomb_type_R); // PredType pred_type = static_cast(pred_type_R); + Rcpp::List result; std::unique_ptr forest { }; std::unique_ptr data { }; @@ -300,11 +302,14 @@ lincomb_alpha, lincomb_df_target, pred_type, + pred_mode, pred_horizon, oobag_pred, oobag_eval_every); - Rcpp::List result; + forest->plant(); + + return(result); From c9f06729e9ca6a83b1dc298e007557ad6df2fd9e Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 8 Aug 2023 14:51:52 -0400 Subject: [PATCH 027/103] tinkering with init for trees --- src/Forest.cpp | 24 +++++++++++++++++++- src/Tree.cpp | 35 ++++++++++++++++++---------- src/Tree.h | 59 ++++++++++++++++++++++++++++++++++++++++++++---- src/orsf_oop.cpp | 2 ++ 4 files changed, 103 insertions(+), 17 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 881a86cd..23b92d79 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -90,7 +90,29 @@ void Forest::plant() { } -void Forest::grow(){ } +void Forest::grow(){ + + size_t i = 0; + + trees[i]->init(data.get(), + mtry, + leaf_min_events, + leaf_min_obs, + split_rule, + split_min_events, + split_min_obs, + split_min_stat, + split_max_retry, + lincomb_type, + lincomb_eps, + lincomb_iter_max, + lincomb_scale, + lincomb_alpha, + lincomb_df_target, + &bootstrap_select_times, + &bootstrap_select_probs); + +} void Forest::run(){ } diff --git a/src/Tree.cpp b/src/Tree.cpp index ba4c647e..ec9047d7 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -16,13 +16,29 @@ Tree::Tree(){ } void Tree::init(Data* data, - double leaf_min_obs, + int mtry, double leaf_min_events, - int mtry){ - - - arma::uword guess = std::ceil( - 0.5 * data->get_n_rows() / leaf_min_obs + double leaf_min_obs, + SplitRule split_rule, + double split_min_events, + double split_min_obs, + double split_min_stat, + int split_max_retry, + LinearCombo lincomb_type, + double lincomb_eps, + int lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + int lincomb_df_target, + Rcpp::IntegerVector* bootstrap_select_times, + Rcpp::NumericVector* bootstrap_select_probs){ + + + vec boot_wts = as( + sample(*bootstrap_select_times, + data->get_n_rows(), + true, + *bootstrap_select_probs) ); // coef.zeros(guess, forest->mtry); @@ -38,12 +54,7 @@ void Tree::grow(){ - // vec boot_wts = as( - // sample(forest->bootstrap_select_times, - // forest->data->get_n_rows(), - // true, - // forest->bootstrap_select_probs) - // ); + // // if(forest->data->has_weights()) boot_wts = boot_wts % data->w; diff --git a/src/Tree.h b/src/Tree.h index 7856e4d4..ccfbfcdb 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -25,15 +25,62 @@ Tree& operator=(const Tree&) = delete; void init(Data* data, - double leaf_min_obs, + int mtry, double leaf_min_events, - int mtry); + double leaf_min_obs, + SplitRule split_rule, + double split_min_events, + double split_min_obs, + double split_min_stat, + int split_max_retry, + LinearCombo lincomb_type, + double lincomb_eps, + int lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + int lincomb_df_target, + Rcpp::IntegerVector* bootstrap_select_times, + Rcpp::NumericVector* bootstrap_select_probs); + + + void bootstrap(); void grow(); // Pointer to original data const Data* data; + // submatrix views of data + arma::mat x_inbag; + arma::mat x_oobag; + arma::mat x_node; + + arma::mat y_inbag; + arma::mat y_oobag; + arma::mat y_node; + + arma::mat w_inbag; + arma::mat w_oobag; + arma::mat w_node; + + // tree growing parameters + int mtry; + double leaf_min_events; + double leaf_min_obs; + SplitRule split_rule; + double split_min_events; + double split_min_obs; + double split_min_stat; + int split_max_retry; + LinearCombo lincomb_type; + double lincomb_eps; + int lincomb_iter_max; + bool lincomb_scale; + double lincomb_alpha; + int lincomb_df_target; + double pred_horizon; + + // which node each inbag observation is currently in. arma::vec node_assignments; @@ -43,10 +90,10 @@ // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 - std::vector coef_values; + std::vector coef_values; // indices of the predictors used by a node - std::vector coef_indices; + std::vector coef_indices; // cutpoints used to split the nodes std::vector cutpoint; @@ -61,6 +108,10 @@ arma::vec pred_oobag; // contains the node ID of each leaf node + // e.g., if the first leaf is node 5, then the first value + // of leaf_index is 5. When new data end in node 5, find which + // value of leaf_index is 5, and go to that leaf to find the + // predictions. std::vector leaf_index; protected: diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 39b147cc..a6f928cb 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -309,6 +309,8 @@ forest->plant(); + forest->grow(); + return(result); From 70b2e6b6b5299693c2cf8551ff36baafe0a107a1 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 9 Aug 2023 16:09:26 -0400 Subject: [PATCH 028/103] faster bootstrap samples --- src/Data.h | 8 ++---- src/Forest.cpp | 47 ++++++++++++++++++------------- src/Tree.cpp | 76 ++++++++++++++++++++++++++++++++++++++------------ src/Tree.h | 18 +++++++++--- 4 files changed, 103 insertions(+), 46 deletions(-) diff --git a/src/Data.h b/src/Data.h index 461c1357..6deb3a9c 100644 --- a/src/Data.h +++ b/src/Data.h @@ -31,6 +31,7 @@ this->n_rows = x.n_rows; this->n_cols = x.n_cols; + this->has_weights = !w.empty(); } @@ -45,10 +46,6 @@ return(n_cols); } - bool has_weights() { - return(!w.empty()); - } - arma::mat x_rows(arma::uvec& vector_of_row_indices) { return(x.rows(vector_of_row_indices)); } @@ -83,13 +80,14 @@ arma::uword n_cols; arma::uword n_rows; + arma::vec w; + bool has_weights; private: arma::mat x; arma::mat y; - arma::vec w; }; diff --git a/src/Forest.cpp b/src/Forest.cpp index 23b92d79..48d07e72 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -92,25 +92,34 @@ void Forest::plant() { void Forest::grow(){ - size_t i = 0; - - trees[i]->init(data.get(), - mtry, - leaf_min_events, - leaf_min_obs, - split_rule, - split_min_events, - split_min_obs, - split_min_stat, - split_max_retry, - lincomb_type, - lincomb_eps, - lincomb_iter_max, - lincomb_scale, - lincomb_alpha, - lincomb_df_target, - &bootstrap_select_times, - &bootstrap_select_probs); + + for(int i = 0; i < n_tree; ++i){ + + trees[i]->init(data.get(), + tree_seeds[i], + mtry, + leaf_min_events, + leaf_min_obs, + split_rule, + split_min_events, + split_min_obs, + split_min_stat, + split_max_retry, + lincomb_type, + lincomb_eps, + lincomb_iter_max, + lincomb_scale, + lincomb_alpha, + lincomb_df_target, + &bootstrap_select_times, + &bootstrap_select_probs); + + trees[i]->grow(); + + + } + + } diff --git a/src/Tree.cpp b/src/Tree.cpp index ec9047d7..044540fd 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -5,7 +5,6 @@ #----------------------------------------------------------------------------*/ #include -#include #include "Tree.h" using namespace arma; @@ -15,8 +14,9 @@ Tree::Tree(){ } - void Tree::init(Data* data, - int mtry, + void Tree::init(Data* data, + int seed, + int mtry, double leaf_min_events, double leaf_min_obs, SplitRule split_rule, @@ -34,30 +34,70 @@ Rcpp::NumericVector* bootstrap_select_probs){ - vec boot_wts = as( - sample(*bootstrap_select_times, - data->get_n_rows(), - true, - *bootstrap_select_probs) - ); - - // coef.zeros(guess, forest->mtry); - // coef_indices.zeros(guess, forest->mtry); - // cutpoint.zeros(guess); - // next_left_node.zeros(guess); - // leaf_values.zeros(guess, 1); - // leaf_indices.zeros(guess, 3); + this->data = data; + this->seed = seed; + this->mtry = mtry; + this->leaf_min_events = leaf_min_events; + this->leaf_min_obs = leaf_min_obs; + this->split_rule = split_rule; + this->split_min_events = split_min_events; + this->split_min_obs = split_min_obs; + this->split_min_stat = split_min_stat; + this->split_max_retry = split_max_retry; + this->lincomb_type = lincomb_type; + this->lincomb_eps = lincomb_eps; + this->lincomb_iter_max = lincomb_iter_max; + this->lincomb_scale = lincomb_scale; + this->lincomb_alpha = lincomb_alpha; + this->lincomb_df_target = lincomb_df_target; + + // node_assignments.zeros(x_inbag.n_rows); + nodes_to_grow.zeros(1); + + // leaf_node_counter = 0; + // leaf_node_index_counter = 0; } + void Tree::bootstrap(){ + + // Initialize random number generator and set seed + random_number_generator.seed(seed); + + uword i, draw, n = data->n_rows; + + // Start with all samples OOB + vec boot_wts(n, fill::zeros); + + std::uniform_int_distribution unif_dist(0, n - 1); + + // Draw num_samples samples with replacement (num_samples_inbag out of n) as inbag and mark as not OOB + for (i = 0; i < n; ++i) { + draw = unif_dist(random_number_generator); + ++boot_wts[draw]; + } + + // multiply boot_wts by user specified weights. + if(data->has_weights){ + boot_wts = boot_wts = boot_wts % data->w; + } + + uvec rows_inbag = find(boot_wts > 0); + + this->rows_oobag = find(boot_wts == 0); + this->x_inbag = data->x_rows(rows_inbag); + this->y_inbag = data->y_rows(rows_inbag); + this->w_inbag = data->w_subvec(rows_inbag); + + } void Tree::grow(){ + bootstrap(); + Rcout << x_inbag << std::endl; - // - // if(forest->data->has_weights()) boot_wts = boot_wts % data->w; // // arma::uvec rows_inbag = arma::find(boot_wts); // diff --git a/src/Tree.h b/src/Tree.h index ccfbfcdb..3c6e1605 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -25,6 +25,7 @@ Tree& operator=(const Tree&) = delete; void init(Data* data, + int seed, int mtry, double leaf_min_events, double leaf_min_obs, @@ -48,7 +49,9 @@ void grow(); // Pointer to original data - const Data* data; + Data* data; + + int seed; // submatrix views of data arma::mat x_inbag; @@ -59,9 +62,12 @@ arma::mat y_oobag; arma::mat y_node; - arma::mat w_inbag; - arma::mat w_oobag; - arma::mat w_node; + arma::vec w_inbag; + arma::vec w_oobag; + arma::vec w_node; + + // Random number generator + std::mt19937_64 random_number_generator; // tree growing parameters int mtry; @@ -86,6 +92,10 @@ // which rows of data are held out while growing the tree arma::uvec rows_oobag; + arma::uvec rows_node; + + arma::uvec nodes_to_grow; + arma::uvec nodes_to_grow_next; // coefficients for linear combinations; // one row per variable (mtry rows), one column per node From c1820fe5b806e9b5a615e7d45862622afa789876 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 11 Aug 2023 16:13:22 -0400 Subject: [PATCH 029/103] handling R function passage --- R/RcppExports.R | 8 +- src/Data.h | 6 +- src/Forest.cpp | 47 +++++------ src/Forest.h | 58 +++++++------ src/RcppExports.cpp | 45 ++++------ src/Tree.cpp | 201 +++++++++++++++++++++++++++----------------- src/Tree.h | 47 +++++++---- src/orsf_oop.cpp | 81 ++++-------------- 8 files changed, 245 insertions(+), 248 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index defe7d95..d3840bf5 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -21,15 +21,11 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -which_cols_valid_exported <- function(y_inbag, x_inbag, rows_node, mtry) { - .Call(`_aorsf_which_cols_valid_exported`, y_inbag, x_inbag, rows_node, mtry) -} - lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) { .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Data.h b/src/Data.h index 6deb3a9c..02b36233 100644 --- a/src/Data.h +++ b/src/Data.h @@ -23,7 +23,7 @@ Data(arma::mat& x, arma::mat& y, - arma::vec& w) { + arma::uvec& w) { this->x = x; this->y = y; @@ -72,7 +72,7 @@ return(y.submat(vector_of_row_indices, vector_of_column_indices)); } - arma::vec w_subvec(arma::uvec& vector_of_indices){ + arma::uvec w_subvec(arma::uvec& vector_of_indices){ return(w(vector_of_indices)); } @@ -80,7 +80,7 @@ arma::uword n_cols; arma::uword n_rows; - arma::vec w; + arma::uvec w; bool has_weights; diff --git a/src/Forest.cpp b/src/Forest.cpp index 48d07e72..0085529d 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -13,8 +13,8 @@ Forest::Forest(){ } void Forest::init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, - int n_tree, - int mtry, + arma::uword n_tree, + arma::uword mtry, VariableImportance vi_type, double leaf_min_events, double leaf_min_obs, @@ -22,18 +22,18 @@ void Forest::init(std::unique_ptr input_data, double split_min_events, double split_min_obs, double split_min_stat, - int split_max_retry, + arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, - int lincomb_iter_max, + arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, - int lincomb_df_target, + arma::uword lincomb_df_target, PredType pred_type, bool pred_mode, double pred_horizon, bool oobag_pred, - int oobag_eval_every){ + arma::uword oobag_eval_every){ this->data = std::move(input_data); this->tree_seeds = tree_seeds; @@ -65,18 +65,6 @@ void Forest::init(std::unique_ptr input_data, Rcout << std::endl << std::endl; } - // sample weights to mimic a bootstrap sample - this->bootstrap_select_times = seq(0, 10); - - uword n_rows = data->get_n_rows(); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - this->bootstrap_select_probs = dbinom(bootstrap_select_times, - n_rows, - 1.0 / n_rows, - false); - } // growInternal() in ranger @@ -84,16 +72,16 @@ void Forest::plant() { trees.reserve(n_tree); - for (int i = 0; i < n_tree; ++i) { + for (arma::uword i = 0; i < n_tree; ++i) { trees.push_back(std::make_unique()); } } -void Forest::grow(){ +void Forest::grow(Function& lincomb_R_function){ - for(int i = 0; i < n_tree; ++i){ + for(uword i = 0; i < n_tree; ++i){ trees[i]->init(data.get(), tree_seeds[i], @@ -110,15 +98,26 @@ void Forest::grow(){ lincomb_iter_max, lincomb_scale, lincomb_alpha, - lincomb_df_target, - &bootstrap_select_times, - &bootstrap_select_probs); + lincomb_df_target); trees[i]->grow(); } + double x_dbl = 1.0; + + NumericMatrix test_mat = lincomb_R_function(x_dbl); + + arma::mat test_mat_arma(test_mat.begin(), + test_mat.nrow(), + test_mat.ncol(), false); + + Rcout << "--- test R function output ---" << std::endl << std::endl; + Rcout << test_mat_arma << std::endl; + + // result.push_back(test_mat_arma, "test"); + } diff --git a/src/Forest.h b/src/Forest.h index 2ddcd729..1baa5248 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -27,8 +27,8 @@ class Forest { void init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, - int n_tree, - int mtry, + arma::uword n_tree, + arma::uword mtry, VariableImportance vi_type, // leaves double leaf_min_events, @@ -38,46 +38,50 @@ class Forest { double split_min_events, double split_min_obs, double split_min_stat, - int split_max_retry, + arma::uword split_max_retry, // linear combinations - LinearCombo lincomb_type, + LinearCombo lincomb_type, double lincomb_eps, - int lincomb_iter_max, - bool lincomb_scale, + arma::uword lincomb_iter_max, + bool lincomb_scale, double lincomb_alpha, - int lincomb_df_target, + arma::uword lincomb_df_target, // predictions PredType pred_type, - bool pred_mode, + bool pred_mode, double pred_horizon, - bool oobag_pred, - int oobag_eval_every); + bool oobag_pred, + arma::uword oobag_eval_every); - // virtual void initInternal() = 0; + // virtual void initarma::uwordernal() = 0; // Grow or predict void run(); - void grow(); + void grow(Function& lincomb_R_function); void plant(); - Rcpp::IntegerVector get_bootstrap_select_times(){ - return bootstrap_select_times; - } - Rcpp::NumericVector get_bootstrap_select_probs(){ - return bootstrap_select_probs; - } + std::vector> get_coef_indices() { + + std::vector> result; + for (auto& tree : trees) { + result.push_back(tree->get_coef_indices()); + } + + return result; + + } // Member variables Rcpp::IntegerVector bootstrap_select_times; Rcpp::NumericVector bootstrap_select_probs; - int n_tree; - int mtry; + arma::uword n_tree; + arma::uword mtry; Rcpp::IntegerVector tree_seeds; @@ -93,24 +97,24 @@ class Forest { // node splitting SplitRule split_rule; - double split_min_events; - double split_min_obs; - double split_min_stat; - int split_max_retry; + double split_min_events; + double split_min_obs; + double split_min_stat; + arma::uword split_max_retry; // linear combinations LinearCombo lincomb_type; double lincomb_eps; - int lincomb_iter_max; bool lincomb_scale; double lincomb_alpha; - int lincomb_df_target; + arma::uword lincomb_iter_max; + arma::uword lincomb_df_target; // predictions PredType pred_type; double pred_horizon; bool oobag_pred; - int oobag_eval_every; + arma::uword oobag_eval_every; }; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 5afa8f8d..678947db 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -81,20 +81,6 @@ BEGIN_RCPP return R_NilValue; END_RCPP } -// which_cols_valid_exported -arma::uvec which_cols_valid_exported(const arma::mat& y_inbag, const arma::mat& x_inbag, arma::uvec& rows_node, const arma::uword mtry); -RcppExport SEXP _aorsf_which_cols_valid_exported(SEXP y_inbagSEXP, SEXP x_inbagSEXP, SEXP rows_nodeSEXP, SEXP mtrySEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const arma::mat& >::type y_inbag(y_inbagSEXP); - Rcpp::traits::input_parameter< const arma::mat& >::type x_inbag(x_inbagSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type rows_node(rows_nodeSEXP); - Rcpp::traits::input_parameter< const arma::uword >::type mtry(mtrySEXP); - rcpp_result_gen = Rcpp::wrap(which_cols_valid_exported(y_inbag, x_inbag, rows_node, mtry)); - return rcpp_result_gen; -END_RCPP -} // lrt_multi_exported List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, NumericVector& XB_, int n_split_, double split_min_stat, double leaf_min_events, double leaf_min_obs); RcppExport SEXP _aorsf_lrt_multi_exported(SEXP y_SEXP, SEXP w_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP split_min_statSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { @@ -113,39 +99,39 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function f_beta, Rcpp::Function f_oobag_eval, int n_tree, int mtry, int vi_type_R, double leaf_min_events, double leaf_min_obs, int split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, int split_max_retry, int lincomb_type_R, double lincomb_eps, int lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, int lincomb_df_target, bool pred_mode, int pred_type_R, double pred_horizon, bool oobag_pred, int oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP f_betaSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::uvec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function f_oobag_eval, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type f_beta(f_betaSEXP); + Rcpp::traits::input_parameter< Rcpp::Function& >::type lincomb_R_function(lincomb_R_functionSEXP); Rcpp::traits::input_parameter< Rcpp::Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< int >::type n_tree(n_treeSEXP); - Rcpp::traits::input_parameter< int >::type mtry(mtrySEXP); - Rcpp::traits::input_parameter< int >::type vi_type_R(vi_type_RSEXP); + Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); + Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); - Rcpp::traits::input_parameter< int >::type split_rule_R(split_rule_RSEXP); + Rcpp::traits::input_parameter< arma::uword >::type split_rule_R(split_rule_RSEXP); Rcpp::traits::input_parameter< double >::type split_min_events(split_min_eventsSEXP); Rcpp::traits::input_parameter< double >::type split_min_obs(split_min_obsSEXP); Rcpp::traits::input_parameter< double >::type split_min_stat(split_min_statSEXP); - Rcpp::traits::input_parameter< int >::type split_max_retry(split_max_retrySEXP); - Rcpp::traits::input_parameter< int >::type lincomb_type_R(lincomb_type_RSEXP); + Rcpp::traits::input_parameter< arma::uword >::type split_max_retry(split_max_retrySEXP); + Rcpp::traits::input_parameter< arma::uword >::type lincomb_type_R(lincomb_type_RSEXP); Rcpp::traits::input_parameter< double >::type lincomb_eps(lincomb_epsSEXP); - Rcpp::traits::input_parameter< int >::type lincomb_iter_max(lincomb_iter_maxSEXP); + Rcpp::traits::input_parameter< arma::uword >::type lincomb_iter_max(lincomb_iter_maxSEXP); Rcpp::traits::input_parameter< bool >::type lincomb_scale(lincomb_scaleSEXP); Rcpp::traits::input_parameter< double >::type lincomb_alpha(lincomb_alphaSEXP); - Rcpp::traits::input_parameter< int >::type lincomb_df_target(lincomb_df_targetSEXP); + Rcpp::traits::input_parameter< arma::uword >::type lincomb_df_target(lincomb_df_targetSEXP); Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); - Rcpp::traits::input_parameter< int >::type pred_type_R(pred_type_RSEXP); + Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); - Rcpp::traits::input_parameter< int >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, f_beta, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } @@ -156,7 +142,6 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_which_cols_valid_exported", (DL_FUNC) &_aorsf_which_cols_valid_exported, 4}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 27}, {NULL, NULL, 0} diff --git a/src/Tree.cpp b/src/Tree.cpp index 044540fd..045fde20 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -14,27 +14,27 @@ Tree::Tree(){ } - void Tree::init(Data* data, - int seed, - int mtry, + void Tree::init(Data* data, + int seed, + arma::uword mtry, double leaf_min_events, double leaf_min_obs, SplitRule split_rule, double split_min_events, double split_min_obs, double split_min_stat, - int split_max_retry, + arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, - int lincomb_iter_max, - bool lincomb_scale, + arma::uword lincomb_iter_max, + bool lincomb_scale, double lincomb_alpha, - int lincomb_df_target, - Rcpp::IntegerVector* bootstrap_select_times, - Rcpp::NumericVector* bootstrap_select_probs){ + arma::uword lincomb_df_target){ this->data = data; + this->n_cols = data->n_cols; + this->seed = seed; this->mtry = mtry; this->leaf_min_events = leaf_min_events; @@ -51,12 +51,6 @@ this->lincomb_alpha = lincomb_alpha; this->lincomb_df_target = lincomb_df_target; - // node_assignments.zeros(x_inbag.n_rows); - nodes_to_grow.zeros(1); - - // leaf_node_counter = 0; - // leaf_node_index_counter = 0; - } void Tree::bootstrap(){ @@ -67,11 +61,11 @@ uword i, draw, n = data->n_rows; // Start with all samples OOB - vec boot_wts(n, fill::zeros); + uvec boot_wts(n, fill::zeros); std::uniform_int_distribution unif_dist(0, n - 1); - // Draw num_samples samples with replacement (num_samples_inbag out of n) as inbag and mark as not OOB + // sample with replacement for (i = 0; i < n; ++i) { draw = unif_dist(random_number_generator); ++boot_wts[draw]; @@ -83,75 +77,130 @@ } uvec rows_inbag = find(boot_wts > 0); - - this->rows_oobag = find(boot_wts == 0); this->x_inbag = data->x_rows(rows_inbag); this->y_inbag = data->y_rows(rows_inbag); this->w_inbag = data->w_subvec(rows_inbag); + this->rows_oobag = find(boot_wts == 0); + + // all observations start in node 0 + this->rows_node = linspace(0, x_inbag.n_rows-1, x_inbag.n_rows); + + rows_inbag.clear(); + boot_wts.clear(); } - void Tree::grow(){ + bool Tree::is_col_valid(uword j){ + + vec status = y_inbag.unsafe_col(1); + + uvec::iterator i; + + // initialize as 0 but do not make comparisons until x_first_value + // is formally defined at the first instance of status == 1 + double x_first_value=0; + + bool x_first_undef = true; + + for (i = rows_node.begin(); i != rows_node.end(); ++i) { + + if(status[*i] == 1){ + + if(x_first_undef){ + + x_first_value = x_inbag.at(*i, j); + x_first_undef = false; + + } else { + + if(x_inbag.at(*i, j) != x_first_value){ + return(true); + } + + } + + } + + } + + return(false); + + } + + void Tree::sample_cols(){ + + // Start empty + std::vector cols_assessed, cols_accepted; + cols_assessed.reserve(n_cols); + cols_accepted.reserve(mtry); + std::uniform_int_distribution unif_dist(0, n_cols - 1); + + uword i, draw; + + for (i = 0; i < n_cols; ++i) { + + draw = unif_dist(random_number_generator); + + // Ensure the drawn number is not already in the sample + while (std::find(cols_assessed.begin(), + cols_assessed.end(), + draw) != cols_assessed.end()) { + + draw = unif_dist(random_number_generator); + + + } + + cols_assessed.push_back(draw); + + if(is_col_valid(draw)){ + cols_accepted.push_back(draw); + } + + if(cols_accepted.size() == mtry) break; + + } + + this->cols_node = uvec(cols_accepted.data(), + cols_accepted.size(), + false, + true); + + } + + void Tree::grow(){ bootstrap(); - Rcout << x_inbag << std::endl; - - // - // arma::uvec rows_inbag = arma::find(boot_wts); - // - // // initalize the oob rows if oob predictions are being computed - // if(oobag_pred) - // rows_oobag = arma::find(boot_wts != 0); - // - // boot_wts = boot_wts(rows_inbag); - // - // if(VERBOSITY > 0){ - // Rcpp::Rcout << "------------ in-bag rows ------------" << std::endl; - // Rcpp::Rcout << rows_inbag << std::endl << std::endl; - // Rcpp::Rcout << "------------ boot weights -----------" << std::endl; - // Rcpp::Rcout << boot_wts << std::endl << std::endl; - // - // } - // - // arma::mat x_inbag = data->x_rows(rows_inbag); - // arma::mat y_inbag = data->y_rows(rows_inbag); - // arma::vec w_inbag = data->w_subvec(rows_inbag); - // - // - // - // // once the sub-matrix views are created, we do not use inbag rows - // // (if we really need them, we can get them from oobag rows) - // rows_inbag.resize(0); - // - // arma::vec node_assignments(rows_inbag.size(), arma::fill::zeros); - // arma::uvec nodes_to_grow(1, arma::fill::zeros); - // arma::uword nodes_max_true = 0; - // arma::uword leaf_node_counter = 0; - // arma::uword leaf_node_index_counter = 0; - // - // - // - // if(VERBOSITY > 0){ - // - // arma::uword temp_uword_1, temp_uword_2; - // - // if(x_inbag.n_rows < 5) - // temp_uword_1 = x_inbag.n_rows-1; - // else - // temp_uword_1 = 5; - // - // if(x_inbag.n_cols < 5) - // temp_uword_2 = x_inbag.n_cols-1; - // else - // temp_uword_2 = 4; - // - // Rcpp::Rcout << "---- here is a view of x_inbag ---- " << std::endl; - // Rcpp::Rcout << x_inbag.submat(0, 0, temp_uword_1, temp_uword_2); - // Rcpp::Rcout << std::endl << std::endl; - // - // } + sample_cols(); + + coef_indices.push_back(cols_node); + + node_assignments.zeros(x_inbag.n_rows); + + uvec nodes_to_grow(1, fill::zeros); + uvec rows_node; + + if(VERBOSITY > 0){ + + uword temp_uword_1, temp_uword_2; + + if(x_inbag.n_rows < 5) + temp_uword_1 = x_inbag.n_rows-1; + else + temp_uword_1 = 5; + + if(x_inbag.n_cols < 5) + temp_uword_2 = x_inbag.n_cols-1; + else + temp_uword_2 = 4; + + Rcout << " ---- view of x_inbag ---- " << std::endl << std::endl; + Rcout << round(x_inbag.submat(0, 0, temp_uword_1, temp_uword_2)); + Rcout << std::endl << std::endl; + + } diff --git a/src/Tree.h b/src/Tree.h index 3c6e1605..13b51fcd 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -26,34 +26,43 @@ void init(Data* data, int seed, - int mtry, + arma::uword mtry, double leaf_min_events, double leaf_min_obs, SplitRule split_rule, double split_min_events, double split_min_obs, double split_min_stat, - int split_max_retry, + arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, - int lincomb_iter_max, + arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, - int lincomb_df_target, - Rcpp::IntegerVector* bootstrap_select_times, - Rcpp::NumericVector* bootstrap_select_probs); + arma::uword lincomb_df_target); void bootstrap(); void grow(); + bool is_col_valid(arma::uword j); + + void sample_cols(); + + + std::vector& get_coef_indices() { + return(coef_indices); + } + // Pointer to original data Data* data; + arma::uword n_cols; + int seed; - // submatrix views of data + // views of data arma::mat x_inbag; arma::mat x_oobag; arma::mat x_node; @@ -62,37 +71,39 @@ arma::mat y_oobag; arma::mat y_node; - arma::vec w_inbag; - arma::vec w_oobag; - arma::vec w_node; + arma::uvec w_inbag; + arma::uvec w_oobag; + arma::uvec w_node; + + // which rows of data are held out while growing the tree + arma::uvec rows_oobag; + arma::uvec rows_node; + arma::uvec cols_node; // Random number generator std::mt19937_64 random_number_generator; // tree growing parameters - int mtry; + arma::uword mtry; double leaf_min_events; double leaf_min_obs; SplitRule split_rule; double split_min_events; double split_min_obs; double split_min_stat; - int split_max_retry; + arma::uword split_max_retry; LinearCombo lincomb_type; double lincomb_eps; - int lincomb_iter_max; + arma::uword lincomb_iter_max; bool lincomb_scale; double lincomb_alpha; - int lincomb_df_target; + arma::uword lincomb_df_target; double pred_horizon; // which node each inbag observation is currently in. - arma::vec node_assignments; + arma::uvec node_assignments; - // which rows of data are held out while growing the tree - arma::uvec rows_oobag; - arma::uvec rows_node; arma::uvec nodes_to_grow; arma::uvec nodes_to_grow_next; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a6f928cb..39584ee7 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -150,55 +150,6 @@ } - // valid columns are non-constant in the rows where events occurred - // [[Rcpp::export]] - arma::uvec which_cols_valid_exported(const arma::mat& y_inbag, - const arma::mat& x_inbag, - arma::uvec& rows_node, - const arma::uword mtry){ - - uvec result(x_inbag.n_cols, arma::fill::zeros); - - // j moves along columns, i along rows, and iit along - uword j; - uvec::iterator iit; - - double temp1;//, temp2; - - for(j = 0; j < result.size(); j++){ - - temp1 = R_PosInf; - - for(iit = rows_node.begin(); iit != rows_node.end(); ++iit){ - - if(y_inbag.at(*iit, 1) == 1){ - - if (temp1 < R_PosInf){ - - if(x_inbag.at(*iit, j) != temp1){ - - result[j] = 1; - break; - - } - - } else { - - temp1 = x_inbag.at(*iit, j); - - } - - } - - } - - } - - return(result); - - } - - // deprecated, need to drop this // [[Rcpp::export]] List lrt_multi_exported(NumericMatrix& y_, @@ -232,31 +183,31 @@ // [[Rcpp::export]] List orsf_cpp(arma::mat& x, arma::mat& y, - arma::vec& w, + arma::uvec& w, Rcpp::IntegerVector& tree_seeds, - Rcpp::Function f_beta, - Rcpp::Function f_oobag_eval, - int n_tree, - int mtry, - int vi_type_R, + Rcpp::Function& lincomb_R_function, + Rcpp::Function& oobag_R_function, + arma::uword n_tree, + arma::uword mtry, + arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, - int split_rule_R, + arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, - int split_max_retry, - int lincomb_type_R, + arma::uword split_max_retry, + arma::uword lincomb_type_R, double lincomb_eps, - int lincomb_iter_max, + arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, - int lincomb_df_target, + arma::uword lincomb_df_target, bool pred_mode, - int pred_type_R, + arma::uword pred_type_R, double pred_horizon, bool oobag_pred, - int oobag_eval_every){ + arma::uword oobag_eval_every){ // int mtry = 2; // int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; @@ -309,9 +260,11 @@ forest->plant(); - forest->grow(); - + forest->grow(lincomb_R_function); + for(uword i = 0; i < n_tree; ++i){ + result.push_back(forest->get_coef_indices(), "coef_indices"); + } return(result); From 41504b775b4276c7cf8170f7320c54d4ef2993d8 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 12 Aug 2023 16:58:10 -0400 Subject: [PATCH 030/103] getting to coxph in tree grow --- R/RcppExports.R | 12 +++---- src/Coxph.cpp | 23 ++++++++++++++ src/Forest.h | 1 + src/NodeSplitStats.h | 1 + src/RcppExports.cpp | 30 +++++++++--------- src/Tree.cpp | 75 +++++++++++++++++++++++++++++++------------- src/Tree.h | 9 +++--- src/orsf_oop.cpp | 19 +++++------ src/utility.cpp | 33 +++++++++++++++++++ src/utility.h | 23 ++++++++++++++ 10 files changed, 168 insertions(+), 58 deletions(-) create mode 100644 src/utility.cpp create mode 100644 src/utility.h diff --git a/R/RcppExports.R b/R/RcppExports.R index d3840bf5..cda9d845 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,12 +1,12 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -coxph_scale_exported <- function(x_, w_) { - .Call(`_aorsf_coxph_scale_exported`, x_, w_) +coxph_scale_exported <- function(x_node, w_node) { + .Call(`_aorsf_coxph_scale_exported`, x_node, w_node) } -coxph_fit_exported <- function(x_, y_, w_, method, cph_eps, cph_iter_max) { - .Call(`_aorsf_coxph_fit_exported`, x_, y_, w_, method, cph_eps, cph_iter_max) +coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { + .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) } node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { @@ -25,7 +25,7 @@ lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_e .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 3bda32e2..0ef4f28a 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -7,6 +7,7 @@ #include #include "globals.h" #include "Coxph.h" +#include "utility.h" using namespace arma; using namespace Rcpp; @@ -675,6 +676,18 @@ } + if(VERBOSITY > 1){ + + Rcout << "--------- Newt-Raph algo; before rescale " << std::endl; + Rcout << "beta: " << beta_new.t() << std::endl; + Rcout << std::endl; + + } + + + print_mat(x_transforms, "x_transforms", 10, 10); + + // invert vmat cholesky_invert(vmat); @@ -683,6 +696,7 @@ beta_current[i] = beta_new[i]; if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ + Rcout << beta_current[i] << std::endl; beta_current[i] = 0; } @@ -715,6 +729,15 @@ } + if(VERBOSITY > 1){ + + Rcout << "--------- Newt-Raph algo; after rescale " << std::endl; + Rcout << "beta: " << beta_current.t() << std::endl; + Rcout << std::endl; + + } + + // if(verbose > 1) Rcout << std::endl; return(beta_current); diff --git a/src/Forest.h b/src/Forest.h index 1baa5248..f173aefc 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -6,6 +6,7 @@ #include "Data.h" #include "globals.h" +#include "utility.h" #include "Tree.h" namespace aorsf { diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h index 70f259df..44de3626 100644 --- a/src/NodeSplitStats.h +++ b/src/NodeSplitStats.h @@ -10,6 +10,7 @@ #include #include + namespace aorsf { arma::uvec node_find_cps(const arma::mat& y_node, diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 678947db..d223638a 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -12,30 +12,30 @@ Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif // coxph_scale_exported -List coxph_scale_exported(NumericMatrix& x_, NumericVector& w_); -RcppExport SEXP _aorsf_coxph_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { +List coxph_scale_exported(arma::vec& x_node, arma::vec& w_node); +RcppExport SEXP _aorsf_coxph_scale_exported(SEXP x_nodeSEXP, SEXP w_nodeSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(coxph_scale_exported(x_, w_)); + Rcpp::traits::input_parameter< arma::vec& >::type x_node(x_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); + rcpp_result_gen = Rcpp::wrap(coxph_scale_exported(x_node, w_node)); return rcpp_result_gen; END_RCPP } // coxph_fit_exported -List coxph_fit_exported(NumericMatrix& x_, NumericMatrix& y_, NumericVector& w_, int method, double cph_eps, int cph_iter_max); -RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_SEXP, SEXP y_SEXP, SEXP w_SEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { +List coxph_fit_exported(arma::vec& x_node, arma::vec& y_node, arma::vec& w_node, int method, double cph_eps, int cph_iter_max); +RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y_(y_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); + Rcpp::traits::input_parameter< arma::vec& >::type x_node(x_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); Rcpp::traits::input_parameter< int >::type method(methodSEXP); Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); Rcpp::traits::input_parameter< int >::type cph_iter_max(cph_iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_, y_, w_, method, cph_eps, cph_iter_max)); + rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); return rcpp_result_gen; END_RCPP } @@ -99,8 +99,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::uvec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function f_oobag_eval, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP f_oobag_evalSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::uvec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -109,7 +109,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uvec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); Rcpp::traits::input_parameter< Rcpp::Function& >::type lincomb_R_function(lincomb_R_functionSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< Rcpp::Function& >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); @@ -131,7 +131,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, f_oobag_eval, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } diff --git a/src/Tree.cpp b/src/Tree.cpp index 045fde20..5de8ea0b 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -6,6 +6,7 @@ #include #include "Tree.h" +#include "Coxph.h" using namespace arma; using namespace Rcpp; @@ -33,7 +34,7 @@ this->data = data; - this->n_cols = data->n_cols; + this->n_cols_total = data->n_cols; this->seed = seed; this->mtry = mtry; @@ -82,6 +83,12 @@ this->w_inbag = data->w_subvec(rows_inbag); this->rows_oobag = find(boot_wts == 0); + if(VERBOSITY > 0){ + + print_mat(x_inbag, "x_inbag", 5, 5); + + } + // all observations start in node 0 this->rows_node = linspace(0, x_inbag.n_rows-1, x_inbag.n_rows); @@ -131,14 +138,14 @@ // Start empty std::vector cols_assessed, cols_accepted; - cols_assessed.reserve(n_cols); + cols_assessed.reserve(n_cols_total); cols_accepted.reserve(mtry); - std::uniform_int_distribution unif_dist(0, n_cols - 1); + std::uniform_int_distribution unif_dist(0, n_cols_total - 1); uword i, draw; - for (i = 0; i < n_cols; ++i) { + for (i = 0; i < n_cols_total; ++i) { draw = unif_dist(random_number_generator); @@ -171,39 +178,63 @@ void Tree::grow(){ + // create inbag views of x, y, and w, bootstrap(); - sample_cols(); + // assign all inbag observations to node 0 + node_assignments.zeros(x_inbag.n_rows); - coef_indices.push_back(cols_node); + // coordinate the order that nodes are grown. + uvec nodes_open(1, fill::zeros); + uvec nodes_queued; - node_assignments.zeros(x_inbag.n_rows); + // iterate through nodes to be grown + uvec::iterator node; - uvec nodes_to_grow(1, fill::zeros); - uvec rows_node; + for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - if(VERBOSITY > 0){ + if(nodes_open[0] == 0){ + + // when growing the first node, there is no need to find + // which rows are in the node. + rows_node = linspace(0, + x_inbag.n_rows-1, + x_inbag.n_rows); + + } else { - uword temp_uword_1, temp_uword_2; + // identify which rows are in the current node. + rows_node = find(node_assignments == *node); - if(x_inbag.n_rows < 5) - temp_uword_1 = x_inbag.n_rows-1; - else - temp_uword_1 = 5; + } + + y_node = y_inbag.rows(rows_node); + w_node = w_inbag(rows_node); + + sample_cols(); + + x_node = x_inbag(rows_node, cols_node); + + Rcout << x_node << std::endl; - if(x_inbag.n_cols < 5) - temp_uword_2 = x_inbag.n_cols-1; - else - temp_uword_2 = 4; + print_mat(x_node, "x_node", 5, 5); - Rcout << " ---- view of x_inbag ---- " << std::endl << std::endl; - Rcout << round(x_inbag.submat(0, 0, temp_uword_1, temp_uword_2)); - Rcout << std::endl << std::endl; + vec w_node_doubles = conv_to::from(w_node); + vec beta = coxph_fit(x_node, y_node, w_node_doubles, 1, 1e-9, 20, 'A'); + + Rcout << beta << std::endl; + + print_mat(beta, "beta", 5, 5); + + coef_values.push_back(beta); + + coef_indices.push_back(cols_node); } + } // Tree::grow } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index 13b51fcd..79c7a3c8 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -10,6 +10,7 @@ #include "Data.h" #include "globals.h" +#include "utility.h" namespace aorsf { @@ -58,7 +59,7 @@ // Pointer to original data Data* data; - arma::uword n_cols; + arma::uword n_cols_total; int seed; @@ -91,13 +92,13 @@ double split_min_events; double split_min_obs; double split_min_stat; - arma::uword split_max_retry; + arma::uword split_max_retry; LinearCombo lincomb_type; double lincomb_eps; - arma::uword lincomb_iter_max; + arma::uword lincomb_iter_max; bool lincomb_scale; double lincomb_alpha; - arma::uword lincomb_df_target; + arma::uword lincomb_df_target; double pred_horizon; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 39584ee7..7f01e531 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -42,11 +42,9 @@ // Same as x_node_scale, but this can be called from R // [[Rcpp::export]] - List coxph_scale_exported(NumericMatrix& x_, - NumericVector& w_){ + List coxph_scale_exported(arma::vec& x_node, + arma::vec& w_node){ - mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - vec w_node = vec(w_.begin(), w_.length(), false); mat x_transforms = coxph_scale(x_node, w_node); return( @@ -59,16 +57,16 @@ } // [[Rcpp::export]] - List coxph_fit_exported(NumericMatrix& x_, - NumericMatrix& y_, - NumericVector& w_, + List coxph_fit_exported(arma::vec& x_node, + arma::vec& y_node, + arma::vec& w_node, int method, double cph_eps, int cph_iter_max){ - mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); - vec w_node = vec(w_.begin(), w_.length(), false); + // mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + // mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); + // uvec w_node = uvec(w_.begin(), w_.length(), false); uword cph_iter_max_ = cph_iter_max; @@ -178,7 +176,6 @@ } - // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] List orsf_cpp(arma::mat& x, diff --git a/src/utility.cpp b/src/utility.cpp new file mode 100644 index 00000000..ba0cbf26 --- /dev/null +++ b/src/utility.cpp @@ -0,0 +1,33 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include +#include "Utility.h" + + using namespace arma; + using namespace Rcpp; + + namespace aorsf { + + void print_mat(arma::mat& x, + std::string label, + arma::uword max_cols, + arma::uword max_rows){ + + uword nrow_print = max_rows-1; + uword ncol_print = max_cols-1; + + if(x.n_rows < max_rows) nrow_print = x.n_rows-1; + if(x.n_cols < max_cols) ncol_print = x.n_cols-1; + + + Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + Rcout << x.submat(0, 0, nrow_print, ncol_print); + Rcout << std::endl << std::endl; + + } + + } diff --git a/src/utility.h b/src/utility.h new file mode 100644 index 00000000..0ecc6e0f --- /dev/null +++ b/src/utility.h @@ -0,0 +1,23 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. +Author: Byron C Jaeger +aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef UTILITY_H +#define UTILITY_H + +#include +#include + + + namespace aorsf { + + void print_mat(arma::mat& x, + std::string label, + arma::uword max_cols, + arma::uword max_rows); + + } + +#endif /* UTILITY_H */ From 396f139b068d7b2be3ffa4327afadc883be68e23 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 13 Aug 2023 23:48:02 -0400 Subject: [PATCH 031/103] incorporated coxph into grow --- src/Coxph.cpp | 84 ++++++++++++------------------ src/Data.h | 6 +-- src/NodeSplitStats.cpp | 14 ++--- src/NodeSplitStats.h | 14 ++--- src/RcppExports.cpp | 20 +++---- src/Tree.cpp | 21 +++++--- src/Tree.h | 7 +-- src/orsf_oop.cpp | 14 ++--- tests/testthat/test-newtraph_cph.R | 60 ++++++++++++++++++++- 9 files changed, 145 insertions(+), 95 deletions(-) diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 0ef4f28a..d4c9a9fd 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -212,30 +212,30 @@ char oobag_importance_type = 'A'){ uword - person, - iter, - i, - j, - k, - n_vars; + person, + iter, + i, + j, + k, + n_vars; vec - beta_current, - beta_new, - XB, - Risk, - u, - a, - a2, - vi_pval_numer, - vi_pval_denom; + beta_current, + beta_new, + XB, + Risk, + u, + a, + a2, + vi_pval_numer, + vi_pval_denom; uvec cols_node; mat - vmat, - cmat, - cmat2; + vmat, + cmat, + cmat2; bool break_loop; @@ -285,6 +285,7 @@ } + beta_current.zeros(n_vars); beta_new.zeros(n_vars); @@ -314,9 +315,9 @@ cmat.fill(0); cmat2.fill(0); - // this loop has a strange break condition to accomodate - // the restriction that a uvec (uword) cannot be < 0 + // the outer loop needs to be broken when a condition occurs in + // the inner loop - set up a bool to break the outer loop break_loop = false; // xb = 0.0; @@ -458,17 +459,17 @@ for(iter = 1; iter < cph_iter_max; iter++){ - if(VERBOSITY > 1){ - - Rcout << "--------- Newt-Raph algo; iter " << iter; - Rcout << " ---------" << std::endl; - Rcout << "beta: " << beta_new.t(); - Rcout << "loglik: " << stat_best; - Rcout << std::endl; - Rcout << "------------------------------------------"; - Rcout << std::endl << std::endl << std::endl; - - } + // if(VERBOSITY > 1){ + // + // Rcout << "--------- Newt-Raph algo; iter " << iter; + // Rcout << " ---------" << std::endl; + // Rcout << "beta: " << beta_new.t(); + // Rcout << "loglik: " << stat_best; + // Rcout << std::endl; + // Rcout << "------------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // + // } // do the next iteration @@ -493,6 +494,7 @@ XB = x_node * beta_new; Risk = exp(XB) % w_node; + for( ; ; ){ temp2 = y_node.at(person, 0); // time of event for current person @@ -676,17 +678,6 @@ } - if(VERBOSITY > 1){ - - Rcout << "--------- Newt-Raph algo; before rescale " << std::endl; - Rcout << "beta: " << beta_new.t() << std::endl; - Rcout << std::endl; - - } - - - print_mat(x_transforms, "x_transforms", 10, 10); - // invert vmat cholesky_invert(vmat); @@ -696,7 +687,6 @@ beta_current[i] = beta_new[i]; if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ - Rcout << beta_current[i] << std::endl; beta_current[i] = 0; } @@ -729,14 +719,6 @@ } - if(VERBOSITY > 1){ - - Rcout << "--------- Newt-Raph algo; after rescale " << std::endl; - Rcout << "beta: " << beta_current.t() << std::endl; - Rcout << std::endl; - - } - // if(verbose > 1) Rcout << std::endl; diff --git a/src/Data.h b/src/Data.h index 02b36233..6deb3a9c 100644 --- a/src/Data.h +++ b/src/Data.h @@ -23,7 +23,7 @@ Data(arma::mat& x, arma::mat& y, - arma::uvec& w) { + arma::vec& w) { this->x = x; this->y = y; @@ -72,7 +72,7 @@ return(y.submat(vector_of_row_indices, vector_of_column_indices)); } - arma::uvec w_subvec(arma::uvec& vector_of_indices){ + arma::vec w_subvec(arma::uvec& vector_of_indices){ return(w(vector_of_indices)); } @@ -80,7 +80,7 @@ arma::uword n_cols; arma::uword n_rows; - arma::uvec w; + arma::vec w; bool has_weights; diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp index 7424121a..bcfae616 100644 --- a/src/NodeSplitStats.cpp +++ b/src/NodeSplitStats.cpp @@ -13,9 +13,9 @@ namespace aorsf { - arma::uvec node_find_cps(const arma::mat& y_node, - const arma::vec& w_node, - const arma::vec& XB, + arma::uvec node_find_cps(arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, arma::uvec& XB_sorted, double leaf_min_events, double leaf_min_obs){ @@ -197,10 +197,10 @@ } void node_fill_group(arma::vec& group, - const arma::uvec& XB_sorted, - const arma::uword start, - const arma::uword stop, - const double value){ + arma::uvec& XB_sorted, + arma::uword start, + arma::uword stop, + double value){ group.elem(XB_sorted.subvec(start, stop)).fill(value); diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h index 44de3626..4c51113b 100644 --- a/src/NodeSplitStats.h +++ b/src/NodeSplitStats.h @@ -13,18 +13,18 @@ namespace aorsf { - arma::uvec node_find_cps(const arma::mat& y_node, - const arma::vec& w_node, - const arma::vec& XB, + arma::uvec node_find_cps(arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, arma::uvec& XB_sorted, double leaf_min_events, double leaf_min_obs); void node_fill_group(arma::vec& group, - const arma::uvec& XB_sorted, - const arma::uword start, - const arma::uword stop, - const double value); + arma::uvec& XB_sorted, + arma::uword start, + arma::uword stop, + double value); double node_compute_lrt(arma::mat& y_node, diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index d223638a..0e5da8c5 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -24,13 +24,13 @@ BEGIN_RCPP END_RCPP } // coxph_fit_exported -List coxph_fit_exported(arma::vec& x_node, arma::vec& y_node, arma::vec& w_node, int method, double cph_eps, int cph_iter_max); +List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, int cph_iter_max); RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::vec& >::type x_node(x_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type x_node(x_nodeSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); Rcpp::traits::input_parameter< int >::type method(methodSEXP); Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); @@ -68,15 +68,15 @@ BEGIN_RCPP END_RCPP } // node_fill_group_exported -void node_fill_group_exported(arma::vec& group, const arma::uvec& XB_sorted, const arma::uword start, const arma::uword stop, const double value); +void node_fill_group_exported(arma::vec& group, arma::uvec& XB_sorted, arma::uword start, arma::uword stop, double value); RcppExport SEXP _aorsf_node_fill_group_exported(SEXP groupSEXP, SEXP XB_sortedSEXP, SEXP startSEXP, SEXP stopSEXP, SEXP valueSEXP) { BEGIN_RCPP Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::vec& >::type group(groupSEXP); - Rcpp::traits::input_parameter< const arma::uvec& >::type XB_sorted(XB_sortedSEXP); - Rcpp::traits::input_parameter< const arma::uword >::type start(startSEXP); - Rcpp::traits::input_parameter< const arma::uword >::type stop(stopSEXP); - Rcpp::traits::input_parameter< const double >::type value(valueSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type XB_sorted(XB_sortedSEXP); + Rcpp::traits::input_parameter< arma::uword >::type start(startSEXP); + Rcpp::traits::input_parameter< arma::uword >::type stop(stopSEXP); + Rcpp::traits::input_parameter< double >::type value(valueSEXP); node_fill_group_exported(group, XB_sorted, start, stop, value); return R_NilValue; END_RCPP @@ -99,14 +99,14 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::uvec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); Rcpp::traits::input_parameter< Rcpp::Function& >::type lincomb_R_function(lincomb_R_functionSEXP); Rcpp::traits::input_parameter< Rcpp::Function& >::type oobag_R_function(oobag_R_functionSEXP); diff --git a/src/Tree.cpp b/src/Tree.cpp index 5de8ea0b..8f7ae9b2 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -7,6 +7,7 @@ #include #include "Tree.h" #include "Coxph.h" +#include "NodeSplitStats.h" using namespace arma; using namespace Rcpp; @@ -62,7 +63,7 @@ uword i, draw, n = data->n_rows; // Start with all samples OOB - uvec boot_wts(n, fill::zeros); + vec boot_wts(n, fill::zeros); std::uniform_int_distribution unif_dist(0, n - 1); @@ -215,17 +216,25 @@ x_node = x_inbag(rows_node, cols_node); - Rcout << x_node << std::endl; - print_mat(x_node, "x_node", 5, 5); - vec w_node_doubles = conv_to::from(w_node); - vec beta = coxph_fit(x_node, y_node, w_node_doubles, 1, 1e-9, 20, 'A'); + vec beta = coxph_fit(x_node, y_node, w_node, 1, 1e-9, 20, 'A'); + + vec lincomb = x_node * beta; - Rcout << beta << std::endl; + uvec lincomb_sort = sort_index(lincomb); + + uvec cutpoint_indices = node_find_cps(y_node, + w_node, + lincomb, + lincomb_sort, + leaf_min_events, + leaf_min_obs); print_mat(beta, "beta", 5, 5); + // print_mat(lincomb_sort, "lincomb_sort", 5, 5); + coef_values.push_back(beta); coef_indices.push_back(cols_node); diff --git a/src/Tree.h b/src/Tree.h index 79c7a3c8..e44c0bc9 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -72,9 +72,9 @@ arma::mat y_oobag; arma::mat y_node; - arma::uvec w_inbag; - arma::uvec w_oobag; - arma::uvec w_node; + arma::vec w_inbag; + arma::vec w_oobag; + arma::vec w_node; // which rows of data are held out while growing the tree arma::uvec rows_oobag; @@ -94,6 +94,7 @@ double split_min_stat; arma::uword split_max_retry; LinearCombo lincomb_type; + arma::vec lincomb_vals; double lincomb_eps; arma::uword lincomb_iter_max; bool lincomb_scale; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 7f01e531..aa3a2072 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -57,8 +57,8 @@ } // [[Rcpp::export]] - List coxph_fit_exported(arma::vec& x_node, - arma::vec& y_node, + List coxph_fit_exported(arma::mat& x_node, + arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, @@ -139,10 +139,10 @@ // [[Rcpp::export]] void node_fill_group_exported(arma::vec& group, - const arma::uvec& XB_sorted, - const arma::uword start, - const arma::uword stop, - const double value){ + arma::uvec& XB_sorted, + arma::uword start, + arma::uword stop, + double value){ node_fill_group(group, XB_sorted, start, stop, value); @@ -180,7 +180,7 @@ // [[Rcpp::export]] List orsf_cpp(arma::mat& x, arma::mat& y, - arma::uvec& w, + arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, diff --git a/tests/testthat/test-newtraph_cph.R b/tests/testthat/test-newtraph_cph.R index 157d452c..1a4c26a1 100644 --- a/tests/testthat/test-newtraph_cph.R +++ b/tests/testthat/test-newtraph_cph.R @@ -52,7 +52,6 @@ run_cph_test <- function(x, y, method){ rownames(beta) <- names(tt$coefficients) beta_vec <- beta[, 1, drop = TRUE] - perc_diff <- function(a,b) abs(a-b) / (abs(0.001 + a+b)/2) # maximum percent difference @@ -118,3 +117,62 @@ test_that( expect_true( run_cph_test(x, y, method = 1) < 1e-2 ) } ) + + + +# speed comparison -------------------------------------------------------- + +data("flchain", package = 'survival') + +df <- na.omit(flchain) + +df$chapter <- NULL + +time <- 'futime' +status <- 'death' + +df_nomiss <- na.omit(df) + +df_sorted <- df_nomiss[order(df_nomiss[[time]]),] + +df_x <- df_sorted +df_x[[time]] <- NULL +df_x[[status]] <- NULL + +flchain_x <- model.matrix(~.-1, data = df_x) + +flchain_y <- survival::Surv(time = df_sorted[[time]], + event = df_sorted[[status]]) + +x <- flchain_x[, c('age', 'sexF','sample.yr', 'kappa', 'lambda')] +y <- flchain_y + +wts <- sample(seq(1:2), size = nrow(x), replace = TRUE) + +method = 0 + +control <- survival::coxph.control(iter.max = 1, eps = 1e-8) + +microbenchmark::microbenchmark( + + tt = survival::coxph.fit(x = x, + y = y, + strata = NULL, + offset = NULL, + init = rep(0, ncol(x)), + control = control, + weights = wts, + method = if(method == 0) 'breslow' else 'efron', + rownames = NULL, + resid = FALSE, + nocenter = c(0)), + + bcj = coxph_fit_exported(x[, , drop = FALSE], + y, + wts, + method = method, + cph_eps = 1e-8, + cph_iter_max = control$iter.max) + +) + From 62924589ca6ee9b6ff05caaf3528fd75b8935799 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Mon, 14 Aug 2023 15:15:21 -0400 Subject: [PATCH 032/103] setting up logrank compare --- R/RcppExports.R | 4 +- src/Forest.cpp | 7 +- src/Forest.h | 2 + src/RcppExports.cpp | 9 +- src/Tree.cpp | 364 ++++++++++++++++++++++++++++++++++++++------ src/Tree.h | 40 +++-- src/orsf_oop.cpp | 2 + src/utility.cpp | 24 +++ src/utility.h | 8 + 9 files changed, 395 insertions(+), 65 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index cda9d845..3b0f1867 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -25,7 +25,7 @@ lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_e .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Forest.cpp b/src/Forest.cpp index 0085529d..7b1a814a 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -22,6 +22,7 @@ void Forest::init(std::unique_ptr input_data, double split_min_events, double split_min_obs, double split_min_stat, + arma::uword split_max_cuts, arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, @@ -46,6 +47,7 @@ void Forest::init(std::unique_ptr input_data, this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; this->split_min_stat = split_min_stat; + this->split_max_cuts = split_max_cuts; this->split_max_retry = split_max_retry; this->lincomb_type = lincomb_type; this->lincomb_eps = lincomb_eps; this->lincomb_iter_max = lincomb_iter_max; @@ -58,10 +60,10 @@ void Forest::init(std::unique_ptr input_data, this->oobag_eval_every = oobag_eval_every; if(VERBOSITY > 0){ - Rcout << "------------ dimensions ------------" << std::endl; + Rcout << "------------ input data dimensions ------------" << std::endl; Rcout << "N obs total: " << data->get_n_rows() << std::endl; Rcout << "N columns total: " << data->get_n_cols() << std::endl; - Rcout << "------------------------------------"; + Rcout << "-----------------------------------------------"; Rcout << std::endl << std::endl; } @@ -92,6 +94,7 @@ void Forest::grow(Function& lincomb_R_function){ split_min_events, split_min_obs, split_min_stat, + split_max_cuts, split_max_retry, lincomb_type, lincomb_eps, diff --git a/src/Forest.h b/src/Forest.h index f173aefc..f3d75fa1 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -39,6 +39,7 @@ class Forest { double split_min_events, double split_min_obs, double split_min_stat, + arma::uword split_max_cuts, arma::uword split_max_retry, // linear combinations LinearCombo lincomb_type, @@ -101,6 +102,7 @@ class Forest { double split_min_events; double split_min_obs; double split_min_stat; + arma::uword split_max_cuts; arma::uword split_max_retry; // linear combinations diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 0e5da8c5..0d40c89f 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -99,8 +99,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -119,6 +119,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< double >::type split_min_events(split_min_eventsSEXP); Rcpp::traits::input_parameter< double >::type split_min_obs(split_min_obsSEXP); Rcpp::traits::input_parameter< double >::type split_min_stat(split_min_statSEXP); + Rcpp::traits::input_parameter< arma::uword >::type split_max_cuts(split_max_cutsSEXP); Rcpp::traits::input_parameter< arma::uword >::type split_max_retry(split_max_retrySEXP); Rcpp::traits::input_parameter< arma::uword >::type lincomb_type_R(lincomb_type_RSEXP); Rcpp::traits::input_parameter< double >::type lincomb_eps(lincomb_epsSEXP); @@ -131,7 +132,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } @@ -143,7 +144,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 27}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 28}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 8f7ae9b2..063d79f5 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -25,6 +25,7 @@ double split_min_events, double split_min_obs, double split_min_stat, + arma::uword split_max_cuts, arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, @@ -45,6 +46,7 @@ this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; this->split_min_stat = split_min_stat; + this->split_max_cuts = split_max_cuts; this->split_max_retry = split_max_retry; this->lincomb_type = lincomb_type; this->lincomb_eps = lincomb_eps; @@ -55,7 +57,7 @@ } - void Tree::bootstrap(){ + void Tree::sample_rows(){ // Initialize random number generator and set seed random_number_generator.seed(seed); @@ -90,15 +92,54 @@ } - // all observations start in node 0 - this->rows_node = linspace(0, x_inbag.n_rows-1, x_inbag.n_rows); - rows_inbag.clear(); boot_wts.clear(); } - bool Tree::is_col_valid(uword j){ + void Tree::sample_cols(){ + + // Start empty + std::vector cols_assessed, cols_accepted; + cols_assessed.reserve(n_cols_total); + cols_accepted.reserve(mtry); + + std::uniform_int_distribution unif_dist(0, n_cols_total - 1); + + uword i, draw; + + for (i = 0; i < n_cols_total; ++i) { + + draw = unif_dist(random_number_generator); + + // Ensure the drawn number is not already in the sample + while (std::find(cols_assessed.begin(), + cols_assessed.end(), + draw) != cols_assessed.end()) { + + draw = unif_dist(random_number_generator); + + + } + + cols_assessed.push_back(draw); + + if(is_col_splittable(draw)){ + cols_accepted.push_back(draw); + } + + if(cols_accepted.size() == mtry) break; + + } + + this->cols_node = uvec(cols_accepted.data(), + cols_accepted.size(), + false, + true); + + } + + bool Tree::is_col_splittable(uword j){ vec status = y_inbag.unsafe_col(1); @@ -135,55 +176,266 @@ } - void Tree::sample_cols(){ + bool Tree::is_left_node_splittable(){ - // Start empty - std::vector cols_assessed, cols_accepted; - cols_assessed.reserve(n_cols_total); - cols_accepted.reserve(mtry); + return(n_events_left >= 2*leaf_min_events && + n_risk_left >= 2*leaf_min_obs && + n_events_left >= split_min_events && + n_risk_left >= split_min_obs); - std::uniform_int_distribution unif_dist(0, n_cols_total - 1); + } - uword i, draw; + bool Tree::is_right_node_splittable(){ - for (i = 0; i < n_cols_total; ++i) { + return(n_events_right >= 2*leaf_min_events && + n_risk_right >= 2*leaf_min_obs && + n_events_right >= split_min_events && + n_risk_right >= split_min_obs); - draw = unif_dist(random_number_generator); + } - // Ensure the drawn number is not already in the sample - while (std::find(cols_assessed.begin(), - cols_assessed.end(), - draw) != cols_assessed.end()) { + uvec Tree::find_cutpoints(vec& lincomb, uvec& lincomb_sort){ - draw = unif_dist(random_number_generator); + vec y_status = y_node.unsafe_col(1); + + // placeholder with values indicating invalid cps + uvec output; + + uword i, j, k; + + uvec::iterator it, it_min, it_max; + + double n_events = 0, n_risk = 0; + + if(VERBOSITY > 0){ + Rcout << "----- finding lower bound for cut-points -----" << std::endl; + } + + // stop at end-1 b/c we access it+1 in lincomb_sort + for(it = lincomb_sort.begin(); it < lincomb_sort.end()-1; ++it){ + + n_events += y_status[*it] * w_node[*it]; + n_risk += w_node[*it]; + if(VERBOSITY > 2){ + Rcout << "current value: "<< lincomb(*it) << " ---- "; + Rcout << "next value: "<< lincomb(*(it+1)) << " ---- "; + Rcout << "N events: " << n_events << " ---- "; + Rcout << "N risk: " << n_risk << std::endl; } - cols_assessed.push_back(draw); + // If we want to make the current value of lincomb a cut-point, we need + // to make sure the next value of lincomb isn't equal to this current value. + // Otherwise, we will have the same value of lincomb in both groups! + + if(lincomb[*it] != lincomb[*(it+1)]){ + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << lincomb(*it) << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } - if(is_col_valid(draw)){ - cols_accepted.push_back(draw); } - if(cols_accepted.size() == mtry) break; + } + + it_min = it; + + if(it == lincomb_sort.end()-1) { + + if(VERBOSITY > 1){ + Rcout << "Could not find a valid cut-point" << std::endl; + } + + return(output); } - this->cols_node = uvec(cols_accepted.data(), - cols_accepted.size(), - false, - true); + // j = number of steps we have taken forward in lincomb + j = it - lincomb_sort.begin(); + + // reset before finding the upper limit + n_events=0, n_risk=0; + + if(VERBOSITY > 0){ + Rcout << "----- finding upper bound for cut-points -----" << std::endl; + } + + // stop at beginning+1 b/c we access it-1 in lincomb_sort + for(it = lincomb_sort.end()-1; it >= lincomb_sort.begin()+1; --it){ + + n_events += y_status[*it] * w_node[*it]; + n_risk += w_node[*it]; + + if(VERBOSITY > 2){ + Rcout << "current value: "<< lincomb(*it) << " ---- "; + Rcout << "next value: "<< lincomb(*(it-1)) << " ---- "; + Rcout << "N events: " << n_events << " ---- "; + Rcout << "N risk: " << n_risk << std::endl; + } + + if(lincomb(*it) != lincomb(*(it-1))){ + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // it value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if it currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --it; + + if(VERBOSITY > 1){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << lincomb(*it) << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + it_max = it; + + // k = n steps from beginning of sorted lincomb to current it + k = it - lincomb_sort.begin(); + + if(j > k){ + + if(VERBOSITY > 1) { + Rcout << "Could not find valid cut-points" << std::endl; + } + + return(output); + + } + + // only one valid cutpoint + if(j == k){ + + uvec output = {j}; + return(output); + + } + + i = 0; + uvec output_middle(k-j); + + for(it = it_min+1; + it < it_max; ++it){ + if(lincomb(*it) != lincomb(*(it+1))){ + output_middle[i] = it - lincomb_sort.begin(); + i++; + } + } + + output_middle.resize(i); + + uvec output_left = {j}; + uvec output_right = {k}; + + output = join_vert(output_left, output_middle, output_right); + + return(output); + + + + + } + + double Tree::score_logrank(){ + + double n_risk=0, g_risk=0, observed=0, expected=0, V=0; + double temp1, temp2, n_events; + + vec y_time = y_node.unsafe_col(0); + vec y_status = y_node.unsafe_col(1); + + bool break_loop = false; + + uword i = y_node.n_rows-1; + + if(VERBOSITY > 1){ + Rcout << "N obs, right node: " << sum(g_node % w_node); + Rcout << std::endl; + } + + // breaking condition of outer loop governed by inner loop + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += g_node[i] * w_node[i]; + observed += y_status[i] * g_node[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but turns out its faster to multiply by 0 than + // it is to check whether n_events is > 0 + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + + return(pow(expected-observed, 2) / V); } void Tree::grow(){ // create inbag views of x, y, and w, - bootstrap(); + sample_rows(); + + uword n_inbag = x_inbag.n_rows; + + // all inbag observations are in the first node + rows_node = regspace(0, n_inbag-1); // assign all inbag observations to node 0 - node_assignments.zeros(x_inbag.n_rows); + node_assignments.zeros(n_inbag); // coordinate the order that nodes are grown. uvec nodes_open(1, fill::zeros); @@ -192,17 +444,10 @@ // iterate through nodes to be grown uvec::iterator node; - for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - - if(nodes_open[0] == 0){ - // when growing the first node, there is no need to find - // which rows are in the node. - rows_node = linspace(0, - x_inbag.n_rows-1, - x_inbag.n_rows); + for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - } else { + if(nodes_open[0] != 0){ // identify which rows are in the current node. rows_node = find(node_assignments == *node); @@ -212,6 +457,7 @@ y_node = y_inbag.rows(rows_node); w_node = w_inbag(rows_node); + sample_cols(); x_node = x_inbag(rows_node, cols_node); @@ -224,19 +470,43 @@ uvec lincomb_sort = sort_index(lincomb); - uvec cutpoint_indices = node_find_cps(y_node, - w_node, - lincomb, - lincomb_sort, - leaf_min_events, - leaf_min_obs); + uvec cutpoint_indices = find_cutpoints(lincomb, lincomb_sort); - print_mat(beta, "beta", 5, 5); + uvec cuts = linspace(cutpoint_indices.front(), + cutpoint_indices.back(), + split_max_cuts); - // print_mat(lincomb_sort, "lincomb_sort", 5, 5); + uword start = 0; - coef_values.push_back(beta); + g_node.zeros(lincomb.size()); + + uvec::iterator it, it_best; + + double stat, stat_best = 0; + + for(it = cuts.begin(); it != cuts.end(); ++it){ + // flip node assignments from left to right, up to the next cutpoint + g_node.elem(lincomb_sort.subvec(start, *it)).fill(1); + + // compute split statistics with this cut-point + double stat = score_logrank(); + + // update leaderboard + if(stat > stat_best) { + stat_best = stat; + it_best = it; + } + + start = *it; + + } + + + + + // update tree parameters + coef_values.push_back(beta); coef_indices.push_back(cols_node); } diff --git a/src/Tree.h b/src/Tree.h index e44c0bc9..60c11507 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -34,6 +34,7 @@ double split_min_events, double split_min_obs, double split_min_stat, + arma::uword split_max_cuts, arma::uword split_max_retry, LinearCombo lincomb_type, double lincomb_eps, @@ -43,14 +44,22 @@ arma::uword lincomb_df_target); - void bootstrap(); - void grow(); - - bool is_col_valid(arma::uword j); + void sample_rows(); void sample_cols(); + bool is_col_splittable(arma::uword j); + + bool is_left_node_splittable(); + + bool is_right_node_splittable(); + + arma::uvec find_cutpoints(arma::vec& lincomb, arma::uvec& lincomb_sort); + + double score_logrank(); + + void grow(); std::vector& get_coef_indices() { return(coef_indices); @@ -72,10 +81,16 @@ arma::mat y_oobag; arma::mat y_node; + // the 'w' is short for 'weights' arma::vec w_inbag; arma::vec w_oobag; arma::vec w_node; + // g_node indicates where observations will go when this node splits + // 0 means go down to left node, 1 means go down to right node + // the 'g' is short for 'groups' + arma::uvec g_node; + // which rows of data are held out while growing the tree arma::uvec rows_oobag; arma::uvec rows_node; @@ -84,17 +99,26 @@ // Random number generator std::mt19937_64 random_number_generator; - // tree growing parameters + // tree growing members arma::uword mtry; double leaf_min_events; double leaf_min_obs; + + // node split members SplitRule split_rule; double split_min_events; double split_min_obs; double split_min_stat; + arma::uword split_max_cuts; arma::uword split_max_retry; + + double n_events_left; + double n_events_right; + double n_risk_left; + double n_risk_right; + + // linear combination members LinearCombo lincomb_type; - arma::vec lincomb_vals; double lincomb_eps; arma::uword lincomb_iter_max; bool lincomb_scale; @@ -106,10 +130,6 @@ // which node each inbag observation is currently in. arma::uvec node_assignments; - - arma::uvec nodes_to_grow; - arma::uvec nodes_to_grow_next; - // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index aa3a2072..37cb6635 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -193,6 +193,7 @@ double split_min_events, double split_min_obs, double split_min_stat, + arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, @@ -242,6 +243,7 @@ split_min_events, split_min_obs, split_min_stat, + split_max_cuts, split_max_retry, lincomb_type, lincomb_eps, diff --git a/src/utility.cpp b/src/utility.cpp index ba0cbf26..f8208bc7 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -30,4 +30,28 @@ } + void print_vec(arma::vec& x, + std::string label, + arma::uword max_elem){ + + uword n_print = max_elem-1; + + if(x.size() < n_print) n_print = x.size()-1; + + Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + Rcout << x.subvec(0, n_print); + Rcout << std::endl << std::endl; + + } + + void print_uvec(arma::uvec& x, + std::string label, + arma::uword max_elem){ + + vec x_vec = conv_to::from(x); + + print_vec(x_vec, label, max_elem); + + } + } diff --git a/src/utility.h b/src/utility.h index 0ecc6e0f..e6937c70 100644 --- a/src/utility.h +++ b/src/utility.h @@ -18,6 +18,14 @@ aorsf may be modified and distributed under the terms of the MIT license. arma::uword max_cols, arma::uword max_rows); + void print_vec(arma::vec& x, + std::string label, + arma::uword max_elem); + + void print_uvec(arma::uvec& x, + std::string label, + arma::uword max_elem); + } #endif /* UTILITY_H */ From 37f04fcebb12367bf20df5a754ccc6c2d2e5e891 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 14 Aug 2023 23:47:40 -0400 Subject: [PATCH 033/103] setting up vi pointers --- R/RcppExports.R | 4 ++-- src/Coxph.cpp | 48 ++++++++++++++++++++++++--------------------- src/Coxph.h | 1 + src/Forest.cpp | 10 +++++++++- src/Forest.h | 11 ++++++----- src/RcppExports.cpp | 13 ++++++------ src/Tree.cpp | 13 ++++++++++-- src/Tree.h | 6 +++++- src/orsf_oop.cpp | 14 +++++-------- 9 files changed, 72 insertions(+), 48 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 3b0f1867..da54037d 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -25,7 +25,7 @@ lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_e .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) } -orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Coxph.cpp b/src/Coxph.cpp index d4c9a9fd..daa2b762 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -206,6 +206,7 @@ vec coxph_fit(mat& x_node, mat& y_node, vec& w_node, + bool do_scale, int ties_method = 1, double cph_eps = 1e-9, uword cph_iter_max = 20, @@ -235,7 +236,8 @@ mat vmat, cmat, - cmat2; + cmat2, + x_transforms; bool break_loop; @@ -262,29 +264,34 @@ vi_pval_numer.zeros(n_vars); vi_pval_denom.zeros(n_vars); - mat x_transforms(n_vars, 2, fill::zeros); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + if(do_scale){ - w_node_sum = sum(w_node); + x_transforms.set_size(n_vars, 2); + x_transforms.fill(0); - for(i = 0; i < n_vars; i++) { + vec means = x_transforms.unsafe_col(0); // Reference to column 1 + vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; + w_node_sum = sum(w_node); - x_node.col(i) -= means.at(i); + for(i = 0; i < n_vars; i++) { - scales.at(i) = sum(w_node % abs(x_node.col(i))); + means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; - if(scales(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; + x_node.col(i) -= means.at(i); - x_node.col(i) *= scales.at(i); + scales.at(i) = sum(w_node % abs(x_node.col(i))); - } + if(scales(i) > 0) + scales.at(i) = w_node_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x_node.col(i) *= scales.at(i); + + } + } beta_current.zeros(n_vars); beta_new.zeros(n_vars); @@ -694,13 +701,10 @@ vmat.at(i, i) = 1.0; } - // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; - - - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); - - // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; + if(do_scale){ + beta_current.at(i) *= x_transforms.at(i, 1); + vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); + } // if(oobag_importance_type == 'A'){ // diff --git a/src/Coxph.h b/src/Coxph.h index 4c7b6387..35ee5e1f 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -79,6 +79,7 @@ arma::vec coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, + bool do_scale, int ties_method, double cph_eps, arma::uword cph_iter_max, diff --git a/src/Forest.cpp b/src/Forest.cpp index 7b1a814a..06dfd9f4 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -30,6 +30,7 @@ void Forest::init(std::unique_ptr input_data, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, + arma::uword lincomb_ties_method, PredType pred_type, bool pred_mode, double pred_horizon, @@ -54,11 +55,17 @@ void Forest::init(std::unique_ptr input_data, this->lincomb_scale = lincomb_scale; this->lincomb_alpha = lincomb_alpha; this->lincomb_df_target = lincomb_df_target; + this->lincomb_ties_method = lincomb_ties_method; this->pred_type = pred_type; this->pred_horizon = pred_horizon; this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; + if(vi_type != VI_NONE){ + vi_numer.set_size(data->get_n_cols()); + vi_denom.set_size(data->get_n_cols()); + } + if(VERBOSITY > 0){ Rcout << "------------ input data dimensions ------------" << std::endl; Rcout << "N obs total: " << data->get_n_rows() << std::endl; @@ -101,7 +108,8 @@ void Forest::grow(Function& lincomb_R_function){ lincomb_iter_max, lincomb_scale, lincomb_alpha, - lincomb_df_target); + lincomb_df_target, + lincomb_ties_method); trees[i]->grow(); diff --git a/src/Forest.h b/src/Forest.h index f3d75fa1..30d3af7e 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -48,6 +48,7 @@ class Forest { bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, + arma::uword lincomb_ties_method, // predictions PredType pred_type, bool pred_mode, @@ -55,8 +56,6 @@ class Forest { bool oobag_pred, arma::uword oobag_eval_every); - // virtual void initarma::uwordernal() = 0; - // Grow or predict void run(); @@ -79,19 +78,20 @@ class Forest { // Member variables - Rcpp::IntegerVector bootstrap_select_times; - Rcpp::NumericVector bootstrap_select_probs; - arma::uword n_tree; arma::uword mtry; + Rcpp::IntegerVector tree_seeds; std::vector> trees; std::unique_ptr data; + // variable importance VariableImportance vi_type; + arma::vec vi_numer; + arma::vec vi_denom; // leaves double leaf_min_events; @@ -112,6 +112,7 @@ class Forest { double lincomb_alpha; arma::uword lincomb_iter_max; arma::uword lincomb_df_target; + arma::uword lincomb_ties_method; // predictions PredType pred_type; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 0d40c89f..52bb32df 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -24,7 +24,7 @@ BEGIN_RCPP END_RCPP } // coxph_fit_exported -List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, int cph_iter_max); +List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; @@ -34,7 +34,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); Rcpp::traits::input_parameter< int >::type method(methodSEXP); Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); - Rcpp::traits::input_parameter< int >::type cph_iter_max(cph_iter_maxSEXP); + Rcpp::traits::input_parameter< arma::uword >::type cph_iter_max(cph_iter_maxSEXP); rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); return rcpp_result_gen; END_RCPP @@ -99,8 +99,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -127,12 +127,13 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type lincomb_scale(lincomb_scaleSEXP); Rcpp::traits::input_parameter< double >::type lincomb_alpha(lincomb_alphaSEXP); Rcpp::traits::input_parameter< arma::uword >::type lincomb_df_target(lincomb_df_targetSEXP); + Rcpp::traits::input_parameter< arma::uword >::type lincomb_ties_method(lincomb_ties_methodSEXP); Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); return rcpp_result_gen; END_RCPP } @@ -144,7 +145,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 28}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 29}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 063d79f5..5881a6f2 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -32,7 +32,8 @@ arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, - arma::uword lincomb_df_target){ + arma::uword lincomb_df_target, + arma::uword lincomb_ties_method){ this->data = data; @@ -54,6 +55,7 @@ this->lincomb_scale = lincomb_scale; this->lincomb_alpha = lincomb_alpha; this->lincomb_df_target = lincomb_df_target; + this->lincomb_ties_method = lincomb_ties_method; } @@ -464,7 +466,14 @@ print_mat(x_node, "x_node", 5, 5); - vec beta = coxph_fit(x_node, y_node, w_node, 1, 1e-9, 20, 'A'); + vec beta = coxph_fit(x_node, + y_node, + w_node, + lincomb_scale, + lincomb_ties_method, + lincomb_eps, + lincomb_iter_max, + 'A'); vec lincomb = x_node * beta; diff --git a/src/Tree.h b/src/Tree.h index 60c11507..66091462 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -41,7 +41,8 @@ arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, - arma::uword lincomb_df_target); + arma::uword lincomb_df_target, + arma::uword lincomb_ties_method); @@ -124,6 +125,9 @@ bool lincomb_scale; double lincomb_alpha; arma::uword lincomb_df_target; + arma::uword lincomb_ties_method; + + // prediction members double pred_horizon; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 37cb6635..9cb04541 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -62,21 +62,15 @@ arma::vec& w_node, int method, double cph_eps, - int cph_iter_max){ - - // mat x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - // mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); - // uvec w_node = uvec(w_.begin(), w_.length(), false); - - uword cph_iter_max_ = cph_iter_max; - + arma::uword cph_iter_max){ vec beta = coxph_fit(x_node, y_node, w_node, + true, method, cph_eps, - cph_iter_max_, + cph_iter_max, 'A'); return( @@ -201,6 +195,7 @@ bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, + arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, @@ -251,6 +246,7 @@ lincomb_scale, lincomb_alpha, lincomb_df_target, + lincomb_ties_method, pred_type, pred_mode, pred_horizon, From 52ed250502d9995c46db608ae1c146b9e150f7e6 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 15 Aug 2023 21:42:51 -0400 Subject: [PATCH 034/103] already catching bugs! weights in trees now sum to n total --- src/Tree.cpp | 93 ++++++++++++++++++++++++++++++++-------------------- src/Tree.h | 1 + 2 files changed, 58 insertions(+), 36 deletions(-) diff --git a/src/Tree.cpp b/src/Tree.cpp index 5881a6f2..442c31c5 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -67,35 +67,25 @@ uword i, draw, n = data->n_rows; // Start with all samples OOB - vec boot_wts(n, fill::zeros); + vec w_inbag(n, fill::zeros); std::uniform_int_distribution unif_dist(0, n - 1); // sample with replacement for (i = 0; i < n; ++i) { draw = unif_dist(random_number_generator); - ++boot_wts[draw]; + ++w_inbag[draw]; } - // multiply boot_wts by user specified weights. + // multiply w_inbag by user specified weights. if(data->has_weights){ - boot_wts = boot_wts = boot_wts % data->w; + w_inbag = w_inbag % data->w; } - uvec rows_inbag = find(boot_wts > 0); - this->x_inbag = data->x_rows(rows_inbag); - this->y_inbag = data->y_rows(rows_inbag); - this->w_inbag = data->w_subvec(rows_inbag); - this->rows_oobag = find(boot_wts == 0); - - if(VERBOSITY > 0){ - - print_mat(x_inbag, "x_inbag", 5, 5); - - } - - rows_inbag.clear(); - boot_wts.clear(); + this->rows_inbag = find(w_inbag > 0); + this->rows_oobag = find(w_inbag == 0); + // shrink the size of w_inbag from n to n wts > 0 + this->w_inbag = w_inbag(rows_inbag); } @@ -368,8 +358,15 @@ double Tree::score_logrank(){ - double n_risk=0, g_risk=0, observed=0, expected=0, V=0; - double temp1, temp2, n_events; + double + n_risk=0, + g_risk=0, + observed=0, + expected=0, + V=0, + temp1, + temp2, + n_events; vec y_time = y_node.unsafe_col(0); vec y_status = y_node.unsafe_col(1); @@ -378,11 +375,6 @@ uword i = y_node.n_rows-1; - if(VERBOSITY > 1){ - Rcout << "N obs, right node: " << sum(g_node % w_node); - Rcout << std::endl; - } - // breaking condition of outer loop governed by inner loop for (; ;){ @@ -405,8 +397,8 @@ } // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 + // but in practice its often faster to multiply by 0 + // versus check if n_events is > 0. temp2 = g_risk / n_risk; expected += n_events * temp2; @@ -428,9 +420,12 @@ void Tree::grow(){ - // create inbag views of x, y, and w, sample_rows(); + // create inbag views of x, y, and w, + this->x_inbag = data->x_rows(rows_inbag); + this->y_inbag = data->y_rows(rows_inbag); + uword n_inbag = x_inbag.n_rows; // all inbag observations are in the first node @@ -459,7 +454,6 @@ y_node = y_inbag.rows(rows_node); w_node = w_inbag(rows_node); - sample_cols(); x_node = x_inbag(rows_node, cols_node); @@ -481,38 +475,65 @@ uvec cutpoint_indices = find_cutpoints(lincomb, lincomb_sort); + uvec cuts = linspace(cutpoint_indices.front(), cutpoint_indices.back(), split_max_cuts); - uword start = 0; - g_node.zeros(lincomb.size()); - uvec::iterator it, it_best; + mat temp; + + uvec::iterator it; + + uword it_start = 0, it_best; double stat, stat_best = 0; for(it = cuts.begin(); it != cuts.end(); ++it){ // flip node assignments from left to right, up to the next cutpoint - g_node.elem(lincomb_sort.subvec(start, *it)).fill(1); + g_node.elem(lincomb_sort.subvec(it_start, *it)).fill(1); + + Rcout << "cutpoint: " << lincomb.at(lincomb_sort(*it)) << std::endl << std::endl; + + temp = arma::join_horiz(lincomb, conv_to::from(g_node)); + + Rcout << "temp mat: " << std::endl << temp.rows(lincomb_sort) << std::endl; + + Rcout << "sum(g_node) " << sum(g_node % w_node) << std::endl; // compute split statistics with this cut-point - double stat = score_logrank(); + stat = score_logrank(); + + Rcout << "stat in loop: " << stat << std::endl << std::endl << std::endl; + // update leaderboard if(stat > stat_best) { stat_best = stat; - it_best = it; + + it_best = *it; + } - start = *it; + it_start = *it; + + } + + Rcout << "it_best: " << it_best << std::endl; + + Rcout << "start: " << it_start << std::endl; + if(it_best < it_start){ + g_node.elem(lincomb_sort.subvec(it_best+1, it_start)).fill(0); } + Rcout << "sum(g_node) after back-fill " << sum(g_node % w_node) << std::endl; + double check_stat = score_logrank(); + Rcout << "best stat after loop: " << check_stat << std::endl; // update tree parameters coef_values.push_back(beta); diff --git a/src/Tree.h b/src/Tree.h index 66091462..b6b048b2 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -93,6 +93,7 @@ arma::uvec g_node; // which rows of data are held out while growing the tree + arma::uvec rows_inbag; arma::uvec rows_oobag; arma::uvec rows_node; arma::uvec cols_node; From c70413d946a2dc2f041804df0ce9a15a37066112 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 16 Aug 2023 20:23:59 -0400 Subject: [PATCH 035/103] vi references included, need to make these pointers --- src/Coxph.cpp | 60 +++++++++++++++++++++++++++--------------------- src/Coxph.h | 11 ++++++--- src/Forest.cpp | 16 +++++++++---- src/Forest.h | 2 +- src/Tree.cpp | 19 ++++++++++----- src/Tree.h | 6 ++++- src/orsf_oop.cpp | 14 +++++++++-- 7 files changed, 84 insertions(+), 44 deletions(-) diff --git a/src/Coxph.cpp b/src/Coxph.cpp index daa2b762..1839dbb3 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -203,14 +203,19 @@ } - vec coxph_fit(mat& x_node, - mat& y_node, - vec& w_node, + + vec coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + arma::uvec& cols_node, bool do_scale, - int ties_method = 1, - double cph_eps = 1e-9, - uword cph_iter_max = 20, - char oobag_importance_type = 'A'){ + int ties_method, + double epsilon, + arma::uword iter_max, + double vi_pval_threshold, + VariableImportance vi_type, + arma::vec& vi_numer, + arma::uvec& vi_denom){ uword person, @@ -231,8 +236,6 @@ vi_pval_numer, vi_pval_denom; - uvec cols_node; - mat vmat, cmat, @@ -462,9 +465,9 @@ cholesky_solve(vmat, u); beta_new = beta_current + u; - if(cph_iter_max > 1 && stat_best < R_PosInf){ + if(iter_max > 1 && stat_best < R_PosInf){ - for(iter = 1; iter < cph_iter_max; iter++){ + for(iter = 1; iter < iter_max; iter++){ // if(VERBOSITY > 1){ // @@ -647,7 +650,7 @@ // check for convergence // break the loop if the new ll is ~ same as old best ll - if(fabs(1 - stat_best / stat_current) < cph_eps){ + if(fabs(1 - stat_best / stat_current) < epsilon){ break; } @@ -706,20 +709,25 @@ vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); } - // if(oobag_importance_type == 'A'){ - // - // if(beta_current.at(i) != 0){ - // - // temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), - // 1, false, false); - // - // if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; - // - // } - // - // vi_pval_denom[cols_node[i]]++; - // - // } + + if(vi_type == VI_ANOVA){ + + if(beta_current.at(i) != 0){ + + temp1 = R::pchisq( + pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false + ); + + if(temp1 < vi_pval_threshold){ + vi_numer[cols_node[i]]++; + } + + } + + vi_denom[cols_node[i]]++; + + } + } diff --git a/src/Coxph.h b/src/Coxph.h index 35ee5e1f..86ba06bb 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -8,6 +8,7 @@ #define COXPH_H #include +#include "globals.h" namespace aorsf { @@ -79,11 +80,15 @@ arma::vec coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, + arma::uvec& cols_node, bool do_scale, int ties_method, - double cph_eps, - arma::uword cph_iter_max, - char oobag_importance_type); + double epsilon, + arma::uword iter_max, + double vi_pval_threshold, + VariableImportance vi_type, + arma::vec& vi_numer, + arma::uvec& vi_denom); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 06dfd9f4..c609464b 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -62,8 +62,8 @@ void Forest::init(std::unique_ptr input_data, this->oobag_eval_every = oobag_eval_every; if(vi_type != VI_NONE){ - vi_numer.set_size(data->get_n_cols()); - vi_denom.set_size(data->get_n_cols()); + vi_numer.zeros(data->get_n_cols()); + vi_denom.zeros(data->get_n_cols()); } if(VERBOSITY > 0){ @@ -97,6 +97,7 @@ void Forest::grow(Function& lincomb_R_function){ mtry, leaf_min_events, leaf_min_obs, + vi_type, split_rule, split_min_events, split_min_obs, @@ -111,7 +112,7 @@ void Forest::grow(Function& lincomb_R_function){ lincomb_df_target, lincomb_ties_method); - trees[i]->grow(); + trees[i]->grow(vi_numer, vi_denom); } @@ -124,8 +125,13 @@ void Forest::grow(Function& lincomb_R_function){ test_mat.nrow(), test_mat.ncol(), false); - Rcout << "--- test R function output ---" << std::endl << std::endl; - Rcout << test_mat_arma << std::endl; + Rcout << "--- test R function output ---" << std::endl; + Rcout << test_mat_arma << std::endl << std::endl; + + Rcout << "-- test VI numerator ---" << std::endl; + Rcout << vi_numer << std::endl << std::endl; + Rcout << "-- test VI denominator ---" << std::endl; + Rcout << vi_denom << std::endl << std::endl; // result.push_back(test_mat_arma, "test"); diff --git a/src/Forest.h b/src/Forest.h index 30d3af7e..6607ee17 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -91,7 +91,7 @@ class Forest { // variable importance VariableImportance vi_type; arma::vec vi_numer; - arma::vec vi_denom; + arma::uvec vi_denom; // leaves double leaf_min_events; diff --git a/src/Tree.cpp b/src/Tree.cpp index 442c31c5..4f46eb36 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -21,6 +21,7 @@ arma::uword mtry, double leaf_min_events, double leaf_min_obs, + VariableImportance vi_type, SplitRule split_rule, double split_min_events, double split_min_obs, @@ -43,6 +44,7 @@ this->mtry = mtry; this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; + this->vi_type = vi_type; this->split_rule = split_rule; this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; @@ -418,7 +420,8 @@ } - void Tree::grow(){ + void Tree::grow(arma::vec& vi_numer, + arma::uvec& vi_denom){ sample_rows(); @@ -463,11 +466,15 @@ vec beta = coxph_fit(x_node, y_node, w_node, - lincomb_scale, - lincomb_ties_method, - lincomb_eps, - lincomb_iter_max, - 'A'); + cols_node, + lincomb_scale, // do_scale + lincomb_ties_method, // ties_method + lincomb_eps, // epsilon + lincomb_iter_max, // iter_max + 0.10, // vi_pval_threshold + vi_type, // do importance? + vi_numer, + vi_denom); vec lincomb = x_node * beta; diff --git a/src/Tree.h b/src/Tree.h index b6b048b2..37aaf590 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -30,6 +30,7 @@ arma::uword mtry, double leaf_min_events, double leaf_min_obs, + VariableImportance vi_type, SplitRule split_rule, double split_min_events, double split_min_obs, @@ -60,7 +61,7 @@ double score_logrank(); - void grow(); + void grow(arma::vec& vi_numer, arma::uvec& vi_denom); std::vector& get_coef_indices() { return(coef_indices); @@ -98,6 +99,9 @@ arma::uvec rows_node; arma::uvec cols_node; + // variable importance + VariableImportance vi_type; + // Random number generator std::mt19937_64 random_number_generator; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9cb04541..f7f6bf74 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -64,18 +64,28 @@ double cph_eps, arma::uword cph_iter_max){ + arma::vec vi_numer(x_node.n_cols); + arma::uvec vi_denom(x_node.n_cols); + arma::uvec cols_node=regspace(0, x_node.n_cols-1); + vec beta = coxph_fit(x_node, y_node, w_node, + cols_node, true, method, cph_eps, cph_iter_max, - 'A'); + 0.10, + VI_ANOVA, + vi_numer, + vi_denom); return( List::create( - _["beta"] = beta + _["beta"] = beta, + _["vi_numer"] = vi_numer, + _["vi_denom"] = vi_denom ) ); From 49714612ce1b6d69aa18bef60cbef6d310cdcd37 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 17 Aug 2023 16:48:57 -0400 Subject: [PATCH 036/103] tree growing do loop setup --- src/Forest.h | 1 + src/Tree.cpp | 236 ++++++++++++++++++++++++++++++++------------------- src/Tree.h | 22 ++--- 3 files changed, 163 insertions(+), 96 deletions(-) diff --git a/src/Forest.h b/src/Forest.h index 6607ee17..33485708 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -90,6 +90,7 @@ class Forest { // variable importance VariableImportance vi_type; + arma::vec vi_numer; arma::uvec vi_denom; diff --git a/src/Tree.cpp b/src/Tree.cpp index 4f46eb36..e7b5eac6 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -39,6 +39,7 @@ this->data = data; this->n_cols_total = data->n_cols; + this->n_rows_total = data->n_rows; this->seed = seed; this->mtry = mtry; @@ -170,25 +171,35 @@ } - bool Tree::is_left_node_splittable(){ + bool Tree::is_node_splittable(uword node_id){ - return(n_events_left >= 2*leaf_min_events && - n_risk_left >= 2*leaf_min_obs && - n_events_left >= split_min_events && - n_risk_left >= split_min_obs); + if(node_id == 0){ - } + // all inbag observations are in the first node + rows_node = regspace(0, n_rows_inbag-1); + y_node = y_inbag; + w_node = w_inbag; + return(true); + + } + + rows_node = find(node_assignments == node_id); - bool Tree::is_right_node_splittable(){ + y_node = y_inbag.rows(rows_node); + w_node = w_inbag(rows_node); - return(n_events_right >= 2*leaf_min_events && - n_risk_right >= 2*leaf_min_obs && - n_events_right >= split_min_events && - n_risk_right >= split_min_obs); + double n_risk = sum(w_node); + double n_events = sum(y_node.col(1) % w_node); + + return(n_events >= 2*leaf_min_events && + n_risk >= 2*leaf_min_obs && + n_events >= split_min_events && + n_risk >= split_min_obs); } - uvec Tree::find_cutpoints(vec& lincomb, uvec& lincomb_sort){ + + uvec Tree::find_cutpoints(){ vec y_status = y_node.unsafe_col(1); @@ -361,7 +372,7 @@ double Tree::score_logrank(){ double - n_risk=0, + n_risk=0, g_risk=0, observed=0, expected=0, @@ -420,6 +431,66 @@ } + uword Tree::split_node(arma::uvec& cuts_all){ + + uword n_cuts = split_max_cuts; + + if(split_max_cuts > cuts_all.size()){ + n_cuts = cuts_all.size(); + } + + uvec cuts_sampled = linspace(cuts_all.front(), + cuts_all.back(), + n_cuts); + + // initialize grouping for the current node + // value of 1 indicates go to right node + g_node.ones(lincomb.size()); + + uvec::iterator it; + + uword it_start = 0, it_best; + + double stat, stat_best = 0; + + for(it = cuts_sampled.begin(); it != cuts_sampled.end(); ++it){ + + // flip node assignments from left to right, up to the next cutpoint + g_node.elem(lincomb_sort.subvec(it_start, *it)).fill(0); + // compute split statistics with this cut-point + stat = score_logrank(); + // update leaderboard + if(stat > stat_best) { stat_best = stat; it_best = *it; } + // set up next loop run + it_start = *it; + + if(VERBOSITY > 1){ + mat temp = join_rows(lincomb, conv_to::from(g_node)); + temp = join_rows(temp, w_node); + temp = temp.rows(lincomb_sort); + Rcout << "testing cutpoint: " << lincomb.at(lincomb_sort(*it)); + Rcout << std::endl; + Rcout << std::endl; + print_mat(temp, "lincomb & g_node & w_node", 20, 20); + Rcout << "logrank stat for this cutpoint: " << stat; + Rcout << std::endl; + Rcout << " ------------------------------------------- "; + Rcout << std::endl; + Rcout << std::endl; + } + + } + + // backtrack g_node to be what it was when best it was found + if(it_best < it_start){ + g_node.elem(lincomb_sort.subvec(it_best+1, it_start)).fill(1); + } + + // return the cut-point from best split + return(lincomb_sort[it_best]); + + } + void Tree::grow(arma::vec& vi_numer, arma::uvec& vi_denom){ @@ -429,39 +500,63 @@ this->x_inbag = data->x_rows(rows_inbag); this->y_inbag = data->y_rows(rows_inbag); - uword n_inbag = x_inbag.n_rows; + if(VERBOSITY > 0){ + + Rcout << "Effective sample size: " << sum(w_inbag); + Rcout << std::endl; + Rcout << "Number of unique rows in x: " << x_inbag.n_rows; + Rcout << std::endl; + Rcout << std::endl; + + } - // all inbag observations are in the first node - rows_node = regspace(0, n_inbag-1); + n_rows_inbag = x_inbag.n_rows; // assign all inbag observations to node 0 - node_assignments.zeros(n_inbag); + node_assignments.zeros(n_rows_inbag); // coordinate the order that nodes are grown. - uvec nodes_open(1, fill::zeros); - uvec nodes_queued; + std::vector nodes_open; + + // start node 0 + nodes_open.push_back(0); + + // nodes to grow in the next run through the do-loop + std::vector nodes_queued; + + // reserve a little more space than we may need + nodes_open.reserve( std::ceil(n_rows_total / split_min_obs) ); + nodes_queued.reserve( nodes_open.size() ); + + // number of nodes in the tree starts at 0 + uword n_nodes=0; // iterate through nodes to be grown - uvec::iterator node; + std::vector::iterator node; + // ID of the left node (node_right = node_left + 1) + uword node_left; - for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ + // all possible cut-points for a linear combination + uvec cuts_all; - if(nodes_open[0] != 0){ + do{ - // identify which rows are in the current node. - rows_node = find(node_assignments == *node); + for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - } + Rcout << "growing node " << *node << std::endl << std::endl; - y_node = y_inbag.rows(rows_node); - w_node = w_inbag(rows_node); + // determine rows in the current node and if it can be split + if(!is_node_splittable(*node)) continue; sample_cols(); x_node = x_inbag(rows_node, cols_node); - print_mat(x_node, "x_node", 5, 5); + if(VERBOSITY > 1) { + print_mat(x_node, "x_node", 20, 20); + print_mat(y_node, "y_node", 20, 20); + } vec beta = coxph_fit(x_node, y_node, @@ -476,80 +571,51 @@ vi_numer, vi_denom); - vec lincomb = x_node * beta; - - uvec lincomb_sort = sort_index(lincomb); - - uvec cutpoint_indices = find_cutpoints(lincomb, lincomb_sort); - - - uvec cuts = linspace(cutpoint_indices.front(), - cutpoint_indices.back(), - split_max_cuts); - - g_node.zeros(lincomb.size()); - - mat temp; - uvec::iterator it; + // beta will be all 0 if something went wrong + lincomb = x_node * beta; + lincomb_sort = sort_index(lincomb); - uword it_start = 0, it_best; + cuts_all = find_cutpoints(); - double stat, stat_best = 0; + Rcout << cuts_all << std::endl; - for(it = cuts.begin(); it != cuts.end(); ++it){ + if(!cuts_all.is_empty()){ - // flip node assignments from left to right, up to the next cutpoint - g_node.elem(lincomb_sort.subvec(it_start, *it)).fill(1); + uword cut_here = split_node(cuts_all); - Rcout << "cutpoint: " << lincomb.at(lincomb_sort(*it)) << std::endl << std::endl; + // update tree parameters + cutpoint.push_back(lincomb[cut_here]); + coef_values.push_back(beta); + coef_indices.push_back(cols_node); + child_left.push_back(node_left); - temp = arma::join_horiz(lincomb, conv_to::from(g_node)); + // make new nodes if a valid cutpoint was found + node_left = n_nodes + 1; + n_nodes += 2; - Rcout << "temp mat: " << std::endl << temp.rows(lincomb_sort) << std::endl; - - Rcout << "sum(g_node) " << sum(g_node % w_node) << std::endl; - - // compute split statistics with this cut-point - stat = score_logrank(); - - Rcout << "stat in loop: " << stat << std::endl << std::endl << std::endl; - - - // update leaderboard - if(stat > stat_best) { - stat_best = stat; - - it_best = *it; + // re-assign observations in the current node + // (note that g_node is 0 if left, 1 if right) + node_assignments.elem(rows_node) = node_left + g_node; + if(VERBOSITY > 1){ + Rcout << "node assignments: "; + Rcout << std::endl; + Rcout << node_assignments(lincomb_sort); + Rcout << std::endl; } - it_start = *it; + nodes_queued.push_back(node_left); + nodes_queued.push_back(node_left + 1); } - Rcout << "it_best: " << it_best << std::endl; - - Rcout << "start: " << it_start << std::endl; - - if(it_best < it_start){ - g_node.elem(lincomb_sort.subvec(it_best+1, it_start)).fill(0); - } - - Rcout << "sum(g_node) after back-fill " << sum(g_node % w_node) << std::endl; - - double check_stat = score_logrank(); - - Rcout << "best stat after loop: " << check_stat << std::endl; - - // update tree parameters - coef_values.push_back(beta); - coef_indices.push_back(cols_node); - } + nodes_open = nodes_queued; + nodes_queued.clear(); - + } while (nodes_open.size() > 0); } // Tree::grow diff --git a/src/Tree.h b/src/Tree.h index 37aaf590..9efe0f01 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -53,11 +53,11 @@ bool is_col_splittable(arma::uword j); - bool is_left_node_splittable(); + bool is_node_splittable(arma::uword node_id); - bool is_right_node_splittable(); + arma::uvec find_cutpoints(); - arma::uvec find_cutpoints(arma::vec& lincomb, arma::uvec& lincomb_sort); + arma::uword split_node(arma::uvec& cuts_all); double score_logrank(); @@ -71,6 +71,9 @@ Data* data; arma::uword n_cols_total; + arma::uword n_rows_total; + + arma::uword n_rows_inbag; int seed; @@ -118,17 +121,14 @@ arma::uword split_max_cuts; arma::uword split_max_retry; - double n_events_left; - double n_events_right; - double n_risk_left; - double n_risk_right; - // linear combination members LinearCombo lincomb_type; - double lincomb_eps; + arma::vec lincomb; + arma::uvec lincomb_sort; + double lincomb_eps; arma::uword lincomb_iter_max; - bool lincomb_scale; - double lincomb_alpha; + bool lincomb_scale; + double lincomb_alpha; arma::uword lincomb_df_target; arma::uword lincomb_ties_method; From 283faeb17164f15ba4d91cc3c81e234783d874d0 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 21 Aug 2023 23:38:55 -0400 Subject: [PATCH 037/103] tree outputs now stdvecs, bc it seems these are most flexible and reliable --- R/RcppExports.R | 4 - src/Forest.cpp | 22 +--- src/Forest.h | 45 +++++++ src/RcppExports.cpp | 18 --- src/Tree.cpp | 280 +++++++++++++++++++++++++++++++++++++++----- src/Tree.h | 58 ++++++--- src/globals.h | 4 +- src/orsf_oop.cpp | 41 ++----- 8 files changed, 353 insertions(+), 119 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index da54037d..1791a743 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -21,10 +21,6 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -lrt_multi_exported <- function(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) { - .Call(`_aorsf_lrt_multi_exported`, y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs) -} - orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) } diff --git a/src/Forest.cpp b/src/Forest.cpp index c609464b..df2551e3 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -117,25 +117,15 @@ void Forest::grow(Function& lincomb_R_function){ } - double x_dbl = 1.0; + if(VERBOSITY > 1){ - NumericMatrix test_mat = lincomb_R_function(x_dbl); - - arma::mat test_mat_arma(test_mat.begin(), - test_mat.nrow(), - test_mat.ncol(), false); - - Rcout << "--- test R function output ---" << std::endl; - Rcout << test_mat_arma << std::endl << std::endl; - - Rcout << "-- test VI numerator ---" << std::endl; - Rcout << vi_numer << std::endl << std::endl; - Rcout << "-- test VI denominator ---" << std::endl; - Rcout << vi_denom << std::endl << std::endl; - - // result.push_back(test_mat_arma, "test"); + Rcout << "-- test VI numerator ---" << std::endl; + Rcout << vi_numer << std::endl << std::endl; + Rcout << "-- test VI denominator ---" << std::endl; + Rcout << vi_denom << std::endl << std::endl; + } } diff --git a/src/Forest.h b/src/Forest.h index 33485708..7a64e3eb 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -68,6 +68,8 @@ class Forest { std::vector> result; + result.reserve(n_tree); + for (auto& tree : trees) { result.push_back(tree->get_coef_indices()); } @@ -76,6 +78,49 @@ class Forest { } + std::vector> get_leaf_pred_horizon() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_leaf_pred_horizon()); + } + + return result; + + } + + std::vector> get_leaf_pred_surv() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_leaf_pred_surv()); + } + + return result; + + } + + std::vector> get_leaf_pred_chf() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_leaf_pred_chf()); + } + + return result; + + } + + // Member variables arma::uword n_tree; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 52bb32df..77cc097c 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -81,23 +81,6 @@ BEGIN_RCPP return R_NilValue; END_RCPP } -// lrt_multi_exported -List lrt_multi_exported(NumericMatrix& y_, NumericVector& w_, NumericVector& XB_, int n_split_, double split_min_stat, double leaf_min_events, double leaf_min_obs); -RcppExport SEXP _aorsf_lrt_multi_exported(SEXP y_SEXP, SEXP w_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP split_min_statSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type y_(y_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); - Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< double >::type split_min_stat(split_min_statSEXP); - Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); - Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); - rcpp_result_gen = Rcpp::wrap(lrt_multi_exported(y_, w_, XB_, n_split_, split_min_stat, leaf_min_events, leaf_min_obs)); - return rcpp_result_gen; -END_RCPP -} // orsf_cpp List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { @@ -144,7 +127,6 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_lrt_multi_exported", (DL_FUNC) &_aorsf_lrt_multi_exported, 7}, {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 29}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index e7b5eac6..b31c589d 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -136,8 +136,6 @@ bool Tree::is_col_splittable(uword j){ - vec status = y_inbag.unsafe_col(1); - uvec::iterator i; // initialize as 0 but do not make comparisons until x_first_value @@ -148,7 +146,8 @@ for (i = rows_node.begin(); i != rows_node.end(); ++i) { - if(status[*i] == 1){ + // if event occurred for this observation + if(y_inbag.at(*i, 1) == 1){ if(x_first_undef){ @@ -167,6 +166,20 @@ } + if(VERBOSITY > 1){ + + mat x_print = x_inbag.rows(rows_node); + mat y_print = y_inbag.rows(rows_node); + + uvec rows_event = find(y_print.col(1) == 1); + x_print = x_print.rows(rows_event); + + Rcout << "Column " << j << " was sampled but "; + Rcout << "unique values of column " << j << " are "; + Rcout << unique(x_print.col(j)) << std::endl; + + } + return(false); } @@ -364,9 +377,6 @@ return(output); - - - } double Tree::score_logrank(){ @@ -431,17 +441,64 @@ } - uword Tree::split_node(arma::uvec& cuts_all){ + uword Tree::node_split(arma::uvec& cuts_all){ + + // sample a subset of cutpoints. uword n_cuts = split_max_cuts; + uvec cuts_sampled; + // don't sample k points if k > no. of valid options. if(split_max_cuts > cuts_all.size()){ + n_cuts = cuts_all.size(); + // no need for random sample if there are fewer valid cut-points + // than the number of cut-points we planned to sample. + cuts_sampled = cuts_all; + + } else { + + cuts_sampled.set_size(n_cuts); + + std::uniform_int_distribution unif_dist(0, cuts_all.size() - 1); + + // sample without replacement + for (uword i = 0; i < cuts_all.size(); ++i) { + + uword draw = unif_dist(random_number_generator); + + // Ensure the drawn number is not already in the sample + while (std::find(cuts_sampled.begin(), + cuts_sampled.end(), + draw) != cuts_sampled.end()) { + + draw = unif_dist(random_number_generator); + + } + + cuts_sampled[i] = draw; + + } + + // important that cut-points are ordered from low to high + cuts_sampled = sort(cuts_sampled); + + if(VERBOSITY > 1){ + + Rcout << "Randomly sampled cutpoints: "; + Rcout << std::endl; + Rcout << lincomb(lincomb_sort(cuts_sampled)); + Rcout << std::endl; + Rcout << std::endl; + + } + } - uvec cuts_sampled = linspace(cuts_all.front(), - cuts_all.back(), - n_cuts); + // non-random version + // uvec cuts_sampled = linspace(cuts_all.front(), + // cuts_all.back(), + // n_cuts); // initialize grouping for the current node // value of 1 indicates go to right node @@ -491,30 +548,171 @@ } + void Tree::node_sprout(uword node_id){ + + // reserve as much size as could be needed (probably more) + mat leaf_data(y_node.n_rows, 3); + + uword person = 0; + + // find the first unique event time + while(y_node.at(person, 1) == 0 && person < y_node.n_rows){ + person++; + } + + // person corresponds to first event or last censor time + leaf_data.at(0, 0) = y_node.at(person, 0); + + // if no events in this node: + if(person == y_node.n_rows){ + + vec temp_surv(1, arma::fill::ones); + vec temp_chf(1, arma::fill::zeros); + + leaf_pred_horizon[node_id] = leaf_data.col(0); + leaf_pred_surv[node_id] = temp_surv; + leaf_pred_chf[node_id] = temp_chf; + + return; + + } + + double temp_time = y_node.at(person, 0); + + uword i = 1; + + // find the rest of the unique event times + for( ; person < y_node.n_rows; person++){ + + if(temp_time != y_node.at(person, 0) && y_node.at(person, 1) == 1){ + + leaf_data.at(i, 0) = y_node.at(person,0); + temp_time = y_node.at(person, 0); + i++; + + } + + } + + leaf_data.set_size(i, 3); + + // reset for kaplan meier loop + person = 0; i = 0; + double n_risk = sum(w_node); + double temp_surv = 1.0; + double temp_haz = 0.0; + + do { + + double n_events = 0; + double n_risk_sub = 0; + temp_time = y_node.at(person, 0); + + while(y_node.at(person, 0) == temp_time){ + + n_risk_sub += w_node.at(person); + n_events += y_node.at(person, 1) * w_node.at(person); + + if(person == y_node.n_rows-1) break; + + person++; + + } + + // only do km if a death was observed + + if(n_events > 0){ + + temp_surv = temp_surv * (n_risk - n_events) / n_risk; + + temp_haz = temp_haz + n_events / n_risk; + + leaf_data.at(i, 1) = temp_surv; + leaf_data.at(i, 2) = temp_haz; + i++; + + } + + n_risk -= n_risk_sub; + + } while (i < leaf_data.n_rows); + + + if(VERBOSITY > 1) print_mat(leaf_data, "leaf_data", 10, 5); + + leaf_pred_horizon[node_id] = leaf_data.col(0); + leaf_pred_surv[node_id] = leaf_data.col(1); + leaf_pred_chf[node_id] = leaf_data.col(2); + + } + void Tree::grow(arma::vec& vi_numer, arma::uvec& vi_denom){ sample_rows(); + // create inbag views of x, y, and w, this->x_inbag = data->x_rows(rows_inbag); this->y_inbag = data->y_rows(rows_inbag); + this->n_obs_inbag = sum(w_inbag); + this->n_events_inbag = sum(w_inbag % y_inbag.col(1)); + this->n_rows_inbag = x_inbag.n_rows; + if(VERBOSITY > 0){ - Rcout << "Effective sample size: " << sum(w_inbag); + Rcout << "Effective sample size: " << n_obs_inbag; Rcout << std::endl; - Rcout << "Number of unique rows in x: " << x_inbag.n_rows; + Rcout << "Effective number of events: " << n_events_inbag; + Rcout << std::endl; + Rcout << "Number of unique rows in x: " << n_rows_inbag; Rcout << std::endl; Rcout << std::endl; } - n_rows_inbag = x_inbag.n_rows; - - // assign all inbag observations to node 0 node_assignments.zeros(n_rows_inbag); + // find maximum number of leaves for this tree + // there are four ways to have maximal tree size: + vec max_leaves_4ways = { + // 1. every leaf node has exactly leaf_min_obs, + n_obs_inbag / leaf_min_obs, + // 2. every leaf node has exactly leaf_min_events, + n_events_inbag / leaf_min_events, + // 3. every leaf node has exactly split_min_obs - 1, + n_obs_inbag / (split_min_obs - 1), + // 4. every leaf node has exactly split_min_events-1 + n_events_inbag / (split_min_events - 1) + }; + + // number of nodes total in binary tree is 2*L - 1, + // where L is the number of leaf nodes in the tree. + // (can prove by induction) + double max_leaves = std::ceil(max(max_leaves_4ways)); + double max_nodes = (2 * max_leaves) - 1; + + if(VERBOSITY > 0){ + + Rcout << "Max number of nodes for this tree: " << max_nodes; + Rcout << std::endl; + Rcout << "Max number of leaves for this tree: " << max_leaves; + Rcout << std::endl; + Rcout << std::endl; + + + } + + // reserve memory for outputs (likely more than we need) + cutpoint.resize(max_nodes); + child_left.resize(max_nodes); + coef_values.resize(max_nodes); + coef_indices.resize(max_nodes); + leaf_pred_horizon.resize(max_nodes); + leaf_pred_surv.resize(max_nodes); + leaf_pred_chf.resize(max_nodes); + // coordinate the order that nodes are grown. std::vector nodes_open; @@ -524,12 +722,12 @@ // nodes to grow in the next run through the do-loop std::vector nodes_queued; - // reserve a little more space than we may need - nodes_open.reserve( std::ceil(n_rows_total / split_min_obs) ); - nodes_queued.reserve( nodes_open.size() ); + // reserve space (most we could ever need is max_leaves) + nodes_open.reserve(max_leaves); + nodes_queued.reserve(max_leaves); // number of nodes in the tree starts at 0 - uword n_nodes=0; + uword n_nodes = 0; // iterate through nodes to be grown std::vector::iterator node; @@ -544,10 +742,24 @@ for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - Rcout << "growing node " << *node << std::endl << std::endl; + if(VERBOSITY > 0){ + Rcout << "growing node " << *node; + Rcout << std::endl << std::endl; + } + // determine rows in the current node and if it can be split - if(!is_node_splittable(*node)) continue; + if(!is_node_splittable(*node)){ + + if(VERBOSITY > 0){ + Rcout << "sprouting new leaf with node " << *node; + Rcout << std::endl; + Rcout << std::endl; + } + node_sprout(*node); + continue; + + } sample_cols(); @@ -578,22 +790,22 @@ cuts_all = find_cutpoints(); - Rcout << cuts_all << std::endl; - + // empty cuts_all => no valid cutpoints => make leaf or retry if(!cuts_all.is_empty()){ - uword cut_here = split_node(cuts_all); - - // update tree parameters - cutpoint.push_back(lincomb[cut_here]); - coef_values.push_back(beta); - coef_indices.push_back(cols_node); - child_left.push_back(node_left); + uword cut_here = node_split(cuts_all); // make new nodes if a valid cutpoint was found node_left = n_nodes + 1; n_nodes += 2; + // update tree parameters + cutpoint[*node] = lincomb[cut_here]; + coef_values[*node] = beta; + coef_indices[*node] = cols_node; + child_left[*node] = node_left; + + // re-assign observations in the current node // (note that g_node is 0 if left, 1 if right) node_assignments.elem(rows_node) = node_left + g_node; @@ -617,6 +829,14 @@ } while (nodes_open.size() > 0); + cutpoint.resize(n_nodes); + child_left.resize(n_nodes); + coef_values.resize(n_nodes); + coef_indices.resize(n_nodes); + leaf_pred_horizon.resize(n_nodes); + leaf_pred_surv.resize(n_nodes); + leaf_pred_chf.resize(n_nodes); + } // Tree::grow } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index 9efe0f01..9fec4767 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -57,16 +57,39 @@ arma::uvec find_cutpoints(); - arma::uword split_node(arma::uvec& cuts_all); - double score_logrank(); + arma::uword node_split(arma::uvec& cuts_all); + + void node_sprout(arma::uword node_id); + void grow(arma::vec& vi_numer, arma::uvec& vi_denom); std::vector& get_coef_indices() { return(coef_indices); } + std::vector& get_leaf_pred_horizon(){ + return(leaf_pred_horizon); + } + + std::vector& get_leaf_pred_surv(){ + return(leaf_pred_surv); + } + + std::vector& get_leaf_pred_chf(){ + return(leaf_pred_chf); + } + + std::vector& get_cutpoint(){ + return(cutpoint); + } + + std::vector& get_child_left(){ + return(child_left); + } + + // Pointer to original data Data* data; @@ -75,6 +98,9 @@ arma::uword n_rows_inbag; + double n_obs_inbag; + double n_events_inbag; + int seed; // views of data @@ -135,36 +161,34 @@ // prediction members double pred_horizon; + // predicted values for out-of-bag rows + arma::vec pred_oobag; // which node each inbag observation is currently in. arma::uvec node_assignments; + // cutpoints used to split the nodes + std::vector cutpoint; + + // left child nodes (right child is left + 1) + std::vector child_left; + // coefficients for linear combinations; // one row per variable (mtry rows), one column per node // leaf nodes have all coefficients=0 std::vector coef_values; + // std::vector coef_values; // indices of the predictors used by a node std::vector coef_indices; - - // cutpoints used to split the nodes - std::vector cutpoint; - - // directions to the next node (right node = left node + 1) - std::vector child_left; + // std::vector coef_indices; // leaf values (only in leaf nodes) - std::vector leaf_values; + std::vector leaf_pred_horizon; + std::vector leaf_pred_surv; + std::vector leaf_pred_chf; - // predicted values for out-of-bag rows - arma::vec pred_oobag; - // contains the node ID of each leaf node - // e.g., if the first leaf is node 5, then the first value - // of leaf_index is 5. When new data end in node 5, find which - // value of leaf_index is 5, and go to that leaf to find the - // predictions. - std::vector leaf_index; protected: diff --git a/src/globals.h b/src/globals.h index 9d79fe05..80d253af 100644 --- a/src/globals.h +++ b/src/globals.h @@ -4,6 +4,8 @@ aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ +#define RCPP_ARMADILLO_FIX_Field 1 + #ifndef GLOBALS_H_ #define GLOBALS_H_ @@ -71,7 +73,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 2; + const int VERBOSITY = 0; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f7f6bf74..1544c596 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -9,7 +9,6 @@ - test #----------------------------------------------------------------------------*/ - #include #include "globals.h" @@ -152,34 +151,6 @@ } - // deprecated, need to drop this - // [[Rcpp::export]] - List lrt_multi_exported(NumericMatrix& y_, - NumericVector& w_, - NumericVector& XB_, - int n_split_, - double split_min_stat, - double leaf_min_events, - double leaf_min_obs){ - - mat y_node = mat(y_.begin(), y_.nrow(), y_.ncol(), false); - vec w_node = vec(w_.begin(), w_.length(), false); - vec XB = vec(XB_.begin(), XB_.length(), false); - - uword n_split = n_split_; - - List out = lrt_multi(y_node, - w_node, - XB, - n_split, - split_min_stat, - leaf_min_events, - leaf_min_obs); - - return(out); - - } - // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] List orsf_cpp(arma::mat& x, @@ -223,7 +194,7 @@ // LinearCombo lincomb_type = static_cast(lincomb_type_R); // PredType pred_type = static_cast(pred_type_R); - Rcpp::List result; + Rcpp::List result, forest_out; std::unique_ptr forest { }; std::unique_ptr data { }; @@ -267,9 +238,13 @@ forest->grow(lincomb_R_function); - for(uword i = 0; i < n_tree; ++i){ - result.push_back(forest->get_coef_indices(), "coef_indices"); - } + forest_out.push_back(forest->get_coef_indices(), "coef_indices"); + forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); + forest_out.push_back(forest->get_leaf_pred_surv(), "leaf_pred_surv"); + forest_out.push_back(forest->get_leaf_pred_chf(), "leaf_pred_chf"); + + + result.push_back(forest_out, "forest"); return(result); From 6949b9692f7c7a4640d56667baa987eab4f4c209 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 22 Aug 2023 21:01:37 -0400 Subject: [PATCH 038/103] parallel, very bare bones --- src/Coxph.cpp | 41 +++++++++++++++++++------------------- src/Coxph.h | 7 ++++--- src/Forest.cpp | 52 +++++++++++++++++++++++++++++++++++++++++++++++- src/Forest.h | 12 +++++++++++ src/Tree.cpp | 14 +++++++------ src/Tree.h | 4 +++- src/globals.h | 2 ++ src/orsf_oop.cpp | 7 ++++--- src/utility.cpp | 36 +++++++++++++++++++++++++++++++++ src/utility.h | 14 +++++++++++++ 10 files changed, 155 insertions(+), 34 deletions(-) diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 1839dbb3..4c1affb3 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -213,9 +213,10 @@ double epsilon, arma::uword iter_max, double vi_pval_threshold, - VariableImportance vi_type, - arma::vec& vi_numer, - arma::uvec& vi_denom){ + VariableImportance vi_type + // arma::vec& vi_numer, + // arma::uvec& vi_denom + ){ uword person, @@ -710,23 +711,23 @@ } - if(vi_type == VI_ANOVA){ - - if(beta_current.at(i) != 0){ - - temp1 = R::pchisq( - pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false - ); - - if(temp1 < vi_pval_threshold){ - vi_numer[cols_node[i]]++; - } - - } - - vi_denom[cols_node[i]]++; - - } + // if(vi_type == VI_ANOVA){ + // + // if(beta_current.at(i) != 0){ + // + // temp1 = R::pchisq( + // pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false + // ); + // + // if(temp1 < vi_pval_threshold){ + // vi_numer[cols_node[i]]++; + // } + // + // } + // + // vi_denom[cols_node[i]]++; + // + // } } diff --git a/src/Coxph.h b/src/Coxph.h index 86ba06bb..0cc4a958 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -86,9 +86,10 @@ double epsilon, arma::uword iter_max, double vi_pval_threshold, - VariableImportance vi_type, - arma::vec& vi_numer, - arma::uvec& vi_denom); + VariableImportance vi_type + // arma::vec& vi_numer, + // arma::uvec& vi_denom + ); } diff --git a/src/Forest.cpp b/src/Forest.cpp index df2551e3..888dca1e 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -61,6 +61,8 @@ void Forest::init(std::unique_ptr input_data, this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; + this->num_threads = 3; + if(vi_type != VI_NONE){ vi_numer.zeros(data->get_n_cols()); vi_denom.zeros(data->get_n_cols()); @@ -89,6 +91,8 @@ void Forest::plant() { void Forest::grow(Function& lincomb_R_function){ + // Create thread ranges + equalSplit(thread_ranges, 0, n_tree - 1, num_threads); for(uword i = 0; i < n_tree; ++i){ @@ -112,11 +116,30 @@ void Forest::grow(Function& lincomb_R_function){ lincomb_df_target, lincomb_ties_method); - trees[i]->grow(vi_numer, vi_denom); + } + + std::vector threads; + threads.reserve(num_threads); + + // Initialize importance per thread + std::vector vi_numer_threads; + std::vector vi_denom_threads; + + + for (uint i = 0; i < num_threads; ++i) { + // vi_numer_threads[i].zeros(data->get_n_cols()); + // vi_denom_threads[i].zeros(data->get_n_cols()); + + threads.emplace_back(&Forest::grow_in_threads, this, i); } + + for (auto &thread : threads) { + thread.join(); + } + if(VERBOSITY > 1){ Rcout << "-- test VI numerator ---" << std::endl; @@ -129,6 +152,33 @@ void Forest::grow(Function& lincomb_R_function){ } +void Forest::grow_in_threads(uint thread_idx) { + + if (thread_ranges.size() > thread_idx + 1) { + + for (int i = thread_ranges[thread_idx]; i < thread_ranges[thread_idx + 1]; ++i) { + + trees[i]->grow(); + + // // Check for user interrupt + // if (aborted) { + // std::unique_lock lock(mutex); + // ++aborted_threads; + // condition_variable.notify_one(); + // return; + // } + + // Increase progress by 1 tree + std::unique_lock lock(mutex); + // ++progress; + condition_variable.notify_one(); + + } + + } + +} + void Forest::run(){ } } diff --git a/src/Forest.h b/src/Forest.h index 7a64e3eb..377817b8 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -9,6 +9,10 @@ #include "utility.h" #include "Tree.h" +#include +#include +#include + namespace aorsf { class Forest { @@ -61,6 +65,8 @@ class Forest { void grow(Function& lincomb_R_function); + void grow_in_threads(uint thread_idx); + void plant(); @@ -166,6 +172,12 @@ class Forest { bool oobag_pred; arma::uword oobag_eval_every; + // multi-threading + uint num_threads; + std::vector thread_ranges; + std::mutex mutex; + std::condition_variable condition_variable; + }; diff --git a/src/Tree.cpp b/src/Tree.cpp index b31c589d..06524787 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -646,11 +646,12 @@ } - void Tree::grow(arma::vec& vi_numer, - arma::uvec& vi_denom){ + // arma::vec& vi_numer, + // arma::uvec& vi_denom - sample_rows(); + void Tree::grow(){ + sample_rows(); // create inbag views of x, y, and w, this->x_inbag = data->x_rows(rows_inbag); @@ -779,9 +780,10 @@ lincomb_eps, // epsilon lincomb_iter_max, // iter_max 0.10, // vi_pval_threshold - vi_type, // do importance? - vi_numer, - vi_denom); + vi_type // do importance? + // vi_numer, + // vi_denom + ); // beta will be all 0 if something went wrong diff --git a/src/Tree.h b/src/Tree.h index 9fec4767..35bf2782 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -63,7 +63,9 @@ void node_sprout(arma::uword node_id); - void grow(arma::vec& vi_numer, arma::uvec& vi_denom); + void grow(); + + // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); std::vector& get_coef_indices() { return(coef_indices); diff --git a/src/globals.h b/src/globals.h index 80d253af..97b72d38 100644 --- a/src/globals.h +++ b/src/globals.h @@ -13,6 +13,8 @@ namespace aorsf { + typedef unsigned int uint; + // Tree types enum TreeType { TREE_CLASSIFICATION = 1, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 1544c596..cbc2211a 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -76,9 +76,10 @@ cph_eps, cph_iter_max, 0.10, - VI_ANOVA, - vi_numer, - vi_denom); + VI_ANOVA + // vi_numer, + // vi_denom + ); return( List::create( diff --git a/src/utility.cpp b/src/utility.cpp index f8208bc7..9c0a2c28 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -54,4 +54,40 @@ } + void equalSplit(std::vector& result, uint start, uint end, uint num_parts) { + + result.reserve(num_parts + 1); + + // Return range if only 1 part + if (num_parts == 1) { + result.push_back(start); + result.push_back(end + 1); + return; + } + + // Return vector from start to end+1 if more parts than elements + if (num_parts > end - start + 1) { + for (uint i = start; i <= end + 1; ++i) { + result.push_back(i); + } + return; + } + + uint length = (end - start + 1); + uint part_length_short = length / num_parts; + uint part_length_long = (uint) ceil(length / ((double) num_parts)); + uint cut_pos = length % num_parts; + + // Add long ranges + for (uint i = start; i < start + cut_pos * part_length_long; i = i + part_length_long) { + result.push_back(i); + } + + // Add short ranges + for (uint i = start + cut_pos * part_length_long; i <= end + 1; i = i + part_length_short) { + result.push_back(i); + } + } + + } diff --git a/src/utility.h b/src/utility.h index e6937c70..cf697b94 100644 --- a/src/utility.h +++ b/src/utility.h @@ -9,10 +9,22 @@ aorsf may be modified and distributed under the terms of the MIT license. #include #include +#include "globals.h" namespace aorsf { + /** + * Split sequence start..end in num_parts parts with sizes as equal as possible. + * @param result Result vector of size num_parts+1. Ranges for the parts are then result[0]..result[1]-1, result[1]..result[2]-1, .. + * @param start minimum value + * @param end maximum value + * @param num_parts number of parts + * @note: this function is taken directly from ranger. + */ + void equalSplit(std::vector& result, uint start, uint end, uint num_parts); + + void print_mat(arma::mat& x, std::string label, arma::uword max_cols, @@ -26,6 +38,8 @@ aorsf may be modified and distributed under the terms of the MIT license. std::string label, arma::uword max_elem); + + } #endif /* UTILITY_H */ From 6bf288b6e0da2c0e4ec48ce773a8c1fb8913ea4d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 23 Aug 2023 11:39:26 -0400 Subject: [PATCH 039/103] placeholder ptrs for threads --- R/RcppExports.R | 8 ----- src/Coxph.cpp | 85 +++++---------------------------------------- src/Coxph.h | 38 ++++---------------- src/Forest.cpp | 29 +++++++++------- src/RcppExports.cpp | 30 ---------------- src/Tree.cpp | 37 +++++++++++++++----- src/Tree.h | 6 +++- src/orsf_oop.cpp | 73 ++++++++++++-------------------------- 8 files changed, 87 insertions(+), 219 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 1791a743..9f6b8a8a 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,14 +1,6 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -coxph_scale_exported <- function(x_node, w_node) { - .Call(`_aorsf_coxph_scale_exported`, x_node, w_node) -} - -coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { - .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) -} - node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { .Call(`_aorsf_node_find_cps_exported`, y_node, w_node, XB, leaf_min_events, leaf_min_obs) } diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 4c1affb3..b3d59848 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -14,42 +14,6 @@ namespace aorsf { - mat coxph_scale(mat& x_node, - vec& w_node){ - - // set aside memory for outputs - // first column holds the mean values - // second column holds the scale values - - uword n_vars = x_node.n_cols; - - mat x_transforms(n_vars, 2, fill::zeros); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - - double w_node_sum = sum(w_node); - - for(uword i = 0; i < n_vars; i++) { - - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; - - x_node.col(i) -= means.at(i); - - scales.at(i) = sum(w_node % abs(x_node.col(i))); - - if(scales(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; - - x_node.col(i) *= scales.at(i); - - } - - return(x_transforms); - - } - void cholesky_decomp(mat& vmat){ double eps_chol = 0; @@ -205,18 +169,13 @@ vec coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::uvec& cols_node, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max, - double vi_pval_threshold, - VariableImportance vi_type - // arma::vec& vi_numer, - // arma::uvec& vi_denom - ){ + arma::mat& y_node, + arma::vec& w_node, + arma::uvec& cols_node, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max){ uword person, @@ -233,9 +192,7 @@ Risk, u, a, - a2, - vi_pval_numer, - vi_pval_denom; + a2; mat vmat, @@ -265,9 +222,6 @@ n_vars = x_node.n_cols; - vi_pval_numer.zeros(n_vars); - vi_pval_denom.zeros(n_vars); - if(do_scale){ x_transforms.set_size(n_vars, 2); @@ -710,31 +664,8 @@ vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); } - - // if(vi_type == VI_ANOVA){ - // - // if(beta_current.at(i) != 0){ - // - // temp1 = R::pchisq( - // pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false - // ); - // - // if(temp1 < vi_pval_threshold){ - // vi_numer[cols_node[i]]++; - // } - // - // } - // - // vi_denom[cols_node[i]]++; - // - // } - - } - - // if(verbose > 1) Rcout << std::endl; - return(beta_current); } diff --git a/src/Coxph.h b/src/Coxph.h index 0cc4a958..a51d5e61 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -13,25 +13,6 @@ namespace aorsf { - // scale observations in predictor matrix - // - // @description this scales inputs in the same way as - // the survival::coxph() function. The main reasons we do this - // are to avoid exponential overflow and to prevent the scale - // of inputs from impacting the estimated beta coefficients. - // E.g., you can try multiplying numeric inputs by 100 prior - // to calling orsf() with orsf_control_fast(do_scale = FALSE) - // and you will see that you get back a different forest. - // - // @param x_node matrix of predictors - // @param w_node replication weights - // @param x_transforms matrix used to store the means and scales - // - // @return modified x_node and x_transform filled with values - // - arma::mat coxph_scale(arma::mat& x_node, - arma::vec& w_node); - // cholesky decomposition // // @description this function is copied from the survival package and @@ -78,18 +59,13 @@ // in newtraph_cph_iter() // arma::vec coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::uvec& cols_node, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max, - double vi_pval_threshold, - VariableImportance vi_type - // arma::vec& vi_numer, - // arma::uvec& vi_denom - ); + arma::mat& y_node, + arma::vec& w_node, + arma::uvec& cols_node, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 888dca1e..283e2d11 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -140,25 +140,21 @@ void Forest::grow(Function& lincomb_R_function){ thread.join(); } - if(VERBOSITY > 1){ - - Rcout << "-- test VI numerator ---" << std::endl; - Rcout << vi_numer << std::endl << std::endl; - Rcout << "-- test VI denominator ---" << std::endl; - Rcout << vi_denom << std::endl << std::endl; - - - } - } void Forest::grow_in_threads(uint thread_idx) { + vec vi_numer(1, fill::zeros); + uvec vi_denom(1, fill::zeros); + + vec* vi_numer_ptr = &vi_numer; + uvec* vi_denom_ptr = &vi_denom; + if (thread_ranges.size() > thread_idx + 1) { - for (int i = thread_ranges[thread_idx]; i < thread_ranges[thread_idx + 1]; ++i) { + for (uint i = thread_ranges[thread_idx]; i < thread_ranges[thread_idx + 1]; ++i) { - trees[i]->grow(); + trees[i]->grow(vi_numer_ptr, vi_denom_ptr); // // Check for user interrupt // if (aborted) { @@ -177,6 +173,15 @@ void Forest::grow_in_threads(uint thread_idx) { } + // if(VERBOSITY > 1){ + // + // Rcout << "-- test VI numerator ---" << std::endl; + // Rcout << vi_numer << std::endl << std::endl; + // Rcout << "-- test VI denominator ---" << std::endl; + // Rcout << vi_denom << std::endl << std::endl; + // + // } + } void Forest::run(){ } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 77cc097c..5246c010 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,34 +11,6 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// coxph_scale_exported -List coxph_scale_exported(arma::vec& x_node, arma::vec& w_node); -RcppExport SEXP _aorsf_coxph_scale_exported(SEXP x_nodeSEXP, SEXP w_nodeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::vec& >::type x_node(x_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); - rcpp_result_gen = Rcpp::wrap(coxph_scale_exported(x_node, w_node)); - return rcpp_result_gen; -END_RCPP -} -// coxph_fit_exported -List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); -RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::mat& >::type x_node(x_nodeSEXP); - Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); - Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); - Rcpp::traits::input_parameter< arma::uword >::type cph_iter_max(cph_iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); - return rcpp_result_gen; -END_RCPP -} // node_find_cps_exported List node_find_cps_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, double leaf_min_events, double leaf_min_obs); RcppExport SEXP _aorsf_node_find_cps_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { @@ -122,8 +94,6 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_coxph_scale_exported", (DL_FUNC) &_aorsf_coxph_scale_exported, 2}, - {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, diff --git a/src/Tree.cpp b/src/Tree.cpp index 06524787..6e9ea2da 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -646,10 +646,12 @@ } - // arma::vec& vi_numer, - // arma::uvec& vi_denom + void Tree::grow(arma::vec* vi_numer, arma::uvec* vi_denom){ - void Tree::grow(){ + this->vi_numer = vi_numer; + this->vi_denom = vi_denom; + + // (*vi_numer)[0]++; sample_rows(); @@ -778,12 +780,29 @@ lincomb_scale, // do_scale lincomb_ties_method, // ties_method lincomb_eps, // epsilon - lincomb_iter_max, // iter_max - 0.10, // vi_pval_threshold - vi_type // do importance? - // vi_numer, - // vi_denom - ); + lincomb_iter_max); // iter_max + + // vec beta = cph["beta"]; + // mat vmat = cph["vmat"]; + + // if(vi_type == VI_ANOVA){ + // + // if(beta_current.at(i) != 0){ + // + // temp1 = R::pchisq( + // pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false + // ); + // + // if(temp1 < vi_pval_threshold){ + // vi_numer[cols_node[i]]++; + // } + // + // } + // + // vi_denom[cols_node[i]]++; + // + // } + // beta will be all 0 if something went wrong diff --git a/src/Tree.h b/src/Tree.h index 35bf2782..76450f01 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -63,7 +63,7 @@ void node_sprout(arma::uword node_id); - void grow(); + void grow(arma::vec* vi_numer, arma::uvec* vi_denom); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); @@ -91,6 +91,10 @@ return(child_left); } + // pointers to variable importance in forest + arma::vec* vi_numer; + arma::uvec* vi_denom; + // Pointer to original data Data* data; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index cbc2211a..38d91e85 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -38,58 +38,29 @@ // // } - // Same as x_node_scale, but this can be called from R - // [[Rcpp::export]] - List coxph_scale_exported(arma::vec& x_node, - arma::vec& w_node){ - - mat x_transforms = coxph_scale(x_node, w_node); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - - } - - // [[Rcpp::export]] - List coxph_fit_exported(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - int method, - double cph_eps, - arma::uword cph_iter_max){ - - arma::vec vi_numer(x_node.n_cols); - arma::uvec vi_denom(x_node.n_cols); - arma::uvec cols_node=regspace(0, x_node.n_cols-1); - - vec beta = coxph_fit(x_node, - y_node, - w_node, - cols_node, - true, - method, - cph_eps, - cph_iter_max, - 0.10, - VI_ANOVA - // vi_numer, - // vi_denom - ); - - return( - List::create( - _["beta"] = beta, - _["vi_numer"] = vi_numer, - _["vi_denom"] = vi_denom - ) - ); - - } + // // [[Rcpp::export]] + // List coxph_fit_exported(arma::mat& x_node, + // arma::mat& y_node, + // arma::vec& w_node, + // int method, + // double cph_eps, + // arma::uword cph_iter_max){ + // + // arma::uvec cols_node=regspace(0, x_node.n_cols-1); + // + // List out = coxph_fit(x_node, + // y_node, + // w_node, + // cols_node, + // true, + // method, + // cph_eps, + // cph_iter_max); + // + // return(out); + // + // } // [[Rcpp::export]] List node_find_cps_exported(arma::mat& y_node, From 8c0af926accc361fd97305872423d0925cd09008 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 23 Aug 2023 17:25:08 -0400 Subject: [PATCH 040/103] bug fix on cp sample, n_threads an input, and split_max_stat incorporated --- R/RcppExports.R | 4 +- src/Coxph.cpp | 56 +++++++++-------- src/Coxph.h | 15 +++-- src/Forest.cpp | 31 +++++----- src/Forest.h | 7 ++- src/RcppExports.cpp | 10 ++-- src/Tree.cpp | 142 +++++++++++++++++++++++++------------------- src/Tree.h | 4 +- src/globals.h | 7 +-- src/orsf_oop.cpp | 12 +++- 10 files changed, 163 insertions(+), 125 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 9f6b8a8a..38fb6048 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every) +orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) } diff --git a/src/Coxph.cpp b/src/Coxph.cpp index b3d59848..f9869fb6 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -168,37 +168,36 @@ } - vec coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::uvec& cols_node, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max){ + std::vector coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max){ uword - person, - iter, - i, - j, - k, - n_vars; + person, + iter, + i, + j, + k, + n_vars; vec - beta_current, - beta_new, - XB, - Risk, - u, - a, - a2; + beta_current, + beta_new, + XB, + Risk, + u, + a, + a2; mat - vmat, - cmat, - cmat2, - x_transforms; + vmat, + cmat, + cmat2, + x_transforms; bool break_loop; @@ -666,7 +665,12 @@ } - return(beta_current); + std::vector result; + + result.push_back(beta_current); + result.push_back(vmat.diag()); + + return(result); } diff --git a/src/Coxph.h b/src/Coxph.h index a51d5e61..fc70c275 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -58,14 +58,13 @@ // of the Cox model. All inputs are described above // in newtraph_cph_iter() // - arma::vec coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::uvec& cols_node, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max); + std::vector coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 283e2d11..81c04af0 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -16,6 +16,7 @@ void Forest::init(std::unique_ptr input_data, arma::uword n_tree, arma::uword mtry, VariableImportance vi_type, + double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, SplitRule split_rule, @@ -35,13 +36,15 @@ void Forest::init(std::unique_ptr input_data, bool pred_mode, double pred_horizon, bool oobag_pred, - arma::uword oobag_eval_every){ + arma::uword oobag_eval_every, + uint n_thread){ this->data = std::move(input_data); this->tree_seeds = tree_seeds; this->n_tree = n_tree; this->mtry = mtry; this->vi_type = vi_type; + this->vi_max_pvalue = vi_max_pvalue; this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; this->split_rule = split_rule; @@ -60,8 +63,7 @@ void Forest::init(std::unique_ptr input_data, this->pred_horizon = pred_horizon; this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; - - this->num_threads = 3; + this->n_thread = n_thread; if(vi_type != VI_NONE){ vi_numer.zeros(data->get_n_cols()); @@ -92,7 +94,7 @@ void Forest::plant() { void Forest::grow(Function& lincomb_R_function){ // Create thread ranges - equalSplit(thread_ranges, 0, n_tree - 1, num_threads); + equalSplit(thread_ranges, 0, n_tree - 1, n_thread); for(uword i = 0; i < n_tree; ++i){ @@ -102,6 +104,7 @@ void Forest::grow(Function& lincomb_R_function){ leaf_min_events, leaf_min_obs, vi_type, + vi_max_pvalue, split_rule, split_min_events, split_min_obs, @@ -119,14 +122,14 @@ void Forest::grow(Function& lincomb_R_function){ } std::vector threads; - threads.reserve(num_threads); + threads.reserve(n_thread); // Initialize importance per thread std::vector vi_numer_threads; std::vector vi_denom_threads; - for (uint i = 0; i < num_threads; ++i) { + for (uint i = 0; i < n_thread; ++i) { // vi_numer_threads[i].zeros(data->get_n_cols()); // vi_denom_threads[i].zeros(data->get_n_cols()); @@ -144,11 +147,11 @@ void Forest::grow(Function& lincomb_R_function){ void Forest::grow_in_threads(uint thread_idx) { - vec vi_numer(1, fill::zeros); - uvec vi_denom(1, fill::zeros); + // vec vi_numer(data->get_n_cols(), fill::zeros); + // uvec vi_denom(data->get_n_cols(), fill::zeros); - vec* vi_numer_ptr = &vi_numer; - uvec* vi_denom_ptr = &vi_denom; + vec* vi_numer_ptr = &this->vi_numer; + uvec* vi_denom_ptr = &this->vi_denom; if (thread_ranges.size() > thread_idx + 1) { @@ -175,10 +178,10 @@ void Forest::grow_in_threads(uint thread_idx) { // if(VERBOSITY > 1){ // - // Rcout << "-- test VI numerator ---" << std::endl; - // Rcout << vi_numer << std::endl << std::endl; - // Rcout << "-- test VI denominator ---" << std::endl; - // Rcout << vi_denom << std::endl << std::endl; + // Rcout << "-- test VI numerator ---" << std::endl; + // Rcout << vi_numer << std::endl << std::endl; + // Rcout << "-- test VI denominator ---" << std::endl; + // Rcout << vi_denom << std::endl << std::endl; // // } diff --git a/src/Forest.h b/src/Forest.h index 377817b8..050b0080 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -35,6 +35,7 @@ class Forest { arma::uword n_tree, arma::uword mtry, VariableImportance vi_type, + double vi_max_pvalue, // leaves double leaf_min_events, double leaf_min_obs, @@ -58,7 +59,8 @@ class Forest { bool pred_mode, double pred_horizon, bool oobag_pred, - arma::uword oobag_eval_every); + arma::uword oobag_eval_every, + uint n_thread); // Grow or predict void run(); @@ -141,6 +143,7 @@ class Forest { // variable importance VariableImportance vi_type; + double vi_max_pvalue; arma::vec vi_numer; arma::uvec vi_denom; @@ -173,7 +176,7 @@ class Forest { arma::uword oobag_eval_every; // multi-threading - uint num_threads; + uint n_thread; std::vector thread_ranges; std::mutex mutex; std::condition_variable condition_variable; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 5246c010..aa063737 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -54,8 +54,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -68,6 +68,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); + Rcpp::traits::input_parameter< double >::type vi_max_pvalue(vi_max_pvalueSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); Rcpp::traits::input_parameter< arma::uword >::type split_rule_R(split_rule_RSEXP); @@ -88,7 +89,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every)); + Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread)); return rcpp_result_gen; END_RCPP } @@ -97,7 +99,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 29}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 31}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 6e9ea2da..3579f1f3 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -22,6 +22,7 @@ double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, + double vi_max_pvalue, SplitRule split_rule, double split_min_events, double split_min_obs, @@ -46,6 +47,7 @@ this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; this->vi_type = vi_type; + this->vi_max_pvalue = vi_max_pvalue; this->split_rule = split_rule; this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; @@ -441,7 +443,7 @@ } - uword Tree::node_split(arma::uvec& cuts_all){ + double Tree::node_split(arma::uvec& cuts_all){ // sample a subset of cutpoints. @@ -470,13 +472,13 @@ // Ensure the drawn number is not already in the sample while (std::find(cuts_sampled.begin(), cuts_sampled.end(), - draw) != cuts_sampled.end()) { + cuts_all[draw]) != cuts_sampled.end()) { draw = unif_dist(random_number_generator); } - cuts_sampled[i] = draw; + cuts_sampled[i] = cuts_all[draw]; } @@ -538,18 +540,38 @@ } + // do not split if best stat < minimum stat + if(stat_best < split_min_stat){ + + if(VERBOSITY > 1){ + Rcout << "best split stat, " << stat_best; + Rcout << ", was < split_min_stat, " << split_min_stat; + Rcout << std::endl; + } + + return(R_PosInf); + + } + // backtrack g_node to be what it was when best it was found if(it_best < it_start){ g_node.elem(lincomb_sort.subvec(it_best+1, it_start)).fill(1); } + // return the cut-point from best split - return(lincomb_sort[it_best]); + return(lincomb[lincomb_sort[it_best]]); } void Tree::node_sprout(uword node_id){ + if(VERBOSITY > 0){ + Rcout << "sprouting new leaf with node " << node_id; + Rcout << std::endl; + Rcout << std::endl; + } + // reserve as much size as could be needed (probably more) mat leaf_data(y_node.n_rows, 3); @@ -651,8 +673,6 @@ this->vi_numer = vi_numer; this->vi_denom = vi_denom; - // (*vi_numer)[0]++; - sample_rows(); // create inbag views of x, y, and w, @@ -754,11 +774,6 @@ // determine rows in the current node and if it can be split if(!is_node_splittable(*node)){ - if(VERBOSITY > 0){ - Rcout << "sprouting new leaf with node " << *node; - Rcout << std::endl; - Rcout << std::endl; - } node_sprout(*node); continue; @@ -773,40 +788,40 @@ print_mat(y_node, "y_node", 20, 20); } - vec beta = coxph_fit(x_node, - y_node, - w_node, - cols_node, - lincomb_scale, // do_scale - lincomb_ties_method, // ties_method - lincomb_eps, // epsilon - lincomb_iter_max); // iter_max - - // vec beta = cph["beta"]; - // mat vmat = cph["vmat"]; - - // if(vi_type == VI_ANOVA){ - // - // if(beta_current.at(i) != 0){ - // - // temp1 = R::pchisq( - // pow(beta_current[i], 2) / vmat.at(i, i), 1, false, false - // ); - // - // if(temp1 < vi_pval_threshold){ - // vi_numer[cols_node[i]]++; - // } - // - // } - // - // vi_denom[cols_node[i]]++; - // - // } + std::vector cph = coxph_fit(x_node, + y_node, + w_node, + lincomb_scale, // do_scale + lincomb_ties_method, // ties_method + lincomb_eps, // epsilon + lincomb_iter_max); // iter_max + + vec beta_est = cph[0]; + vec beta_var = cph[1]; + + double pvalue; + + if(vi_type == VI_ANOVA){ + for(uword i = 0; i < beta_est.size(); ++i){ + + (*vi_denom)[cols_node[i]]++; + + if(beta_est[i] != 0){ + + pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); + + if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } + + } + + } + + } // beta will be all 0 if something went wrong - lincomb = x_node * beta; + lincomb = x_node * beta_est; lincomb_sort = sort_index(lincomb); cuts_all = find_cutpoints(); @@ -814,32 +829,37 @@ // empty cuts_all => no valid cutpoints => make leaf or retry if(!cuts_all.is_empty()){ - uword cut_here = node_split(cuts_all); + double cut_point = node_split(cuts_all); - // make new nodes if a valid cutpoint was found - node_left = n_nodes + 1; - n_nodes += 2; + if(cut_point < R_PosInf){ - // update tree parameters - cutpoint[*node] = lincomb[cut_here]; - coef_values[*node] = beta; - coef_indices[*node] = cols_node; - child_left[*node] = node_left; + // make new nodes if a valid cutpoint was found + node_left = n_nodes + 1; + n_nodes += 2; + // update tree parameters + cutpoint[*node] = cut_point; + coef_values[*node] = beta_est; + coef_indices[*node] = cols_node; + child_left[*node] = node_left; + // re-assign observations in the current node + // (note that g_node is 0 if left, 1 if right) + node_assignments.elem(rows_node) = node_left + g_node; + if(VERBOSITY > 1){ + Rcout << "node assignments: "; + Rcout << std::endl; + Rcout << node_assignments(lincomb_sort); + Rcout << std::endl; + } - // re-assign observations in the current node - // (note that g_node is 0 if left, 1 if right) - node_assignments.elem(rows_node) = node_left + g_node; + nodes_queued.push_back(node_left); + nodes_queued.push_back(node_left + 1); - if(VERBOSITY > 1){ - Rcout << "node assignments: "; - Rcout << std::endl; - Rcout << node_assignments(lincomb_sort); - Rcout << std::endl; - } + } else { - nodes_queued.push_back(node_left); - nodes_queued.push_back(node_left + 1); + node_sprout(*node); + + } } diff --git a/src/Tree.h b/src/Tree.h index 76450f01..ec8355f6 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -31,6 +31,7 @@ double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, + double vi_max_pvalue, SplitRule split_rule, double split_min_events, double split_min_obs, @@ -59,7 +60,7 @@ double score_logrank(); - arma::uword node_split(arma::uvec& cuts_all); + double node_split(arma::uvec& cuts_all); void node_sprout(arma::uword node_id); @@ -136,6 +137,7 @@ // variable importance VariableImportance vi_type; + double vi_max_pvalue; // Random number generator std::mt19937_64 random_number_generator; diff --git a/src/globals.h b/src/globals.h index 97b72d38..dc6a2121 100644 --- a/src/globals.h +++ b/src/globals.h @@ -4,8 +4,6 @@ aorsf may be modified and distributed under the terms of the MIT license. #----------------------------------------------------------------------------*/ -#define RCPP_ARMADILLO_FIX_Field 1 - #ifndef GLOBALS_H_ #define GLOBALS_H_ @@ -57,7 +55,8 @@ // Default values const int DEFAULT_N_TREE = 500; - const int DEFAULT_N_THREADS = 0; + const int DEFAULT_N_THREADS = 1; + const VariableImportance DEFAULT_IMPORTANCE = VI_NONE; const int DEFAULT_LEAF_MIN_OBS_CLASSIFICATION = 1; @@ -75,7 +74,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 0; + const int VERBOSITY = 3; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 38d91e85..2729e856 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -134,6 +134,7 @@ arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, + double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, @@ -153,7 +154,8 @@ arma::uword pred_type_R, double pred_horizon, bool oobag_pred, - arma::uword oobag_eval_every){ + arma::uword oobag_eval_every, + unsigned int n_thread){ // int mtry = 2; // int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; @@ -166,7 +168,7 @@ // LinearCombo lincomb_type = static_cast(lincomb_type_R); // PredType pred_type = static_cast(pred_type_R); - Rcpp::List result, forest_out; + List result, forest_out; std::unique_ptr forest { }; std::unique_ptr data { }; @@ -185,6 +187,7 @@ n_tree, mtry, vi_type, + vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule, @@ -204,7 +207,8 @@ pred_mode, pred_horizon, oobag_pred, - oobag_eval_every); + oobag_eval_every, + n_thread); forest->plant(); @@ -217,6 +221,8 @@ result.push_back(forest_out, "forest"); + result.push_back(forest->vi_numer, "vi_numer"); + result.push_back(forest->vi_denom, "vi_denom"); return(result); From 4c61747a616eb78aafaff73b317d19a7f940f582 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 23 Aug 2023 22:33:08 -0400 Subject: [PATCH 041/103] bug hunting --- R/RcppExports.R | 4 + orsf_output.txt | 18074 ++++++++++++++++++++++++++++++++++++++++++ src/Coxph.cpp | 7 +- src/Coxph.h | 1 + src/RcppExports.cpp | 17 + src/Tree.cpp | 39 +- src/globals.h | 2 +- src/orsf_oop.cpp | 49 +- 8 files changed, 18148 insertions(+), 45 deletions(-) create mode 100644 orsf_output.txt diff --git a/R/RcppExports.R b/R/RcppExports.R index 38fb6048..13f9be89 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,6 +1,10 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 +coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { + .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) +} + node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { .Call(`_aorsf_node_find_cps_exported`, y_node, w_node, XB, leaf_min_events, leaf_min_obs) } diff --git a/orsf_output.txt b/orsf_output.txt new file mode 100644 index 00000000..fc563130 --- /dev/null +++ b/orsf_output.txt @@ -0,0 +1,18074 @@ +------------ input data dimensions ------------ +N obs total: 276 +N columns total: 17 +----------------------------------------------- + +Effective sample size: 276 +Effective number of events: 111 +Number of unique rows in x: 176 + +Max number of nodes for this tree: 221 +Max number of leaves for this tree: 111 + +growing node 0 + + ---- view of x_node ---- + + 1.0000e+00 2.2000e+02 7.0500e+02 + 2.0000e+00 2.2100e+02 3.6974e+03 + 2.0000e+00 5.7000e+01 1.2730e+03 + 2.0000e+00 5.8800e+02 9.6100e+02 + 2.0000e+00 2.2500e+02 1.0560e+03 + 2.0000e+00 9.1000e+01 8.1500e+02 + 1.0000e+00 7.5000e+01 1.8600e+03 + 2.0000e+00 2.3300e+02 3.7400e+03 + 2.0000e+00 5.5800e+02 6.0648e+03 + 2.0000e+00 1.7200e+02 7.2770e+03 + 2.0000e+00 1.9900e+02 1.8190e+03 + 1.0000e+00 1.2300e+02 1.8330e+03 + 1.0000e+00 3.6000e+01 1.6260e+03 + 2.0000e+00 1.5600e+02 1.7180e+03 + 2.0000e+00 1.1000e+02 2.4600e+03 + 1.0000e+00 1.0000e+02 1.1420e+03 + 2.0000e+00 2.0900e+02 1.9750e+03 + 1.0000e+00 1.4500e+02 7.4600e+02 + 1.0000e+00 2.2700e+02 2.3100e+03 + 1.0000e+00 6.2000e+01 3.1960e+03 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 7.7000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.3300e+02 0 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.59756 -- next: -1.58577 -- N events: 0 -- N risk: 1 +current value: -1.58577 -- next: -1.53527 -- N events: 3 -- N risk: 4 +current value: -1.53527 -- next: -1.53522 -- N events: 4 -- N risk: 5 + +lower cutpoint: -1.53527 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 7.73062 ---- next value: 7.63707 ---- N events: 3 ---- N risk: 3 +current value: 7.63707 ---- next value: 5.07487 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 5.07487 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.5545 + -0.4360 + 1.7280 + 3.1856 + 4.5244 + + +testing cutpoint: -0.554471 + + ---- view of lincomb & g_node & w_node ---- + + -1.5976 0 1.0000 + -1.5858 0 3.0000 + -1.5353 0 1.0000 + -1.5352 0 1.0000 + -1.5091 0 1.0000 + -1.4746 0 3.0000 + -1.4675 0 1.0000 + -1.4408 0 3.0000 + -1.4312 0 2.0000 + -1.4002 0 1.0000 + -1.3992 0 1.0000 + -1.3932 0 1.0000 + -1.3583 0 2.0000 + -1.3466 0 1.0000 + -1.2999 0 1.0000 + -1.2835 0 1.0000 + -1.2730 0 2.0000 + -1.2596 0 2.0000 + -1.2455 0 1.0000 + -1.2326 0 1.0000 + + +logrank stat for this cutpoint: 40.6294 + ------------------------------------------- + +testing cutpoint: -0.436006 + + ---- view of lincomb & g_node & w_node ---- + + -1.5976 0 1.0000 + -1.5858 0 3.0000 + -1.5353 0 1.0000 + -1.5352 0 1.0000 + -1.5091 0 1.0000 + -1.4746 0 3.0000 + -1.4675 0 1.0000 + -1.4408 0 3.0000 + -1.4312 0 2.0000 + -1.4002 0 1.0000 + -1.3992 0 1.0000 + -1.3932 0 1.0000 + -1.3583 0 2.0000 + -1.3466 0 1.0000 + -1.2999 0 1.0000 + -1.2835 0 1.0000 + -1.2730 0 2.0000 + -1.2596 0 2.0000 + -1.2455 0 1.0000 + -1.2326 0 1.0000 + + +logrank stat for this cutpoint: 40.4868 + ------------------------------------------- + +testing cutpoint: 1.72796 + + ---- view of lincomb & g_node & w_node ---- + + -1.5976 0 1.0000 + -1.5858 0 3.0000 + -1.5353 0 1.0000 + -1.5352 0 1.0000 + -1.5091 0 1.0000 + -1.4746 0 3.0000 + -1.4675 0 1.0000 + -1.4408 0 3.0000 + -1.4312 0 2.0000 + -1.4002 0 1.0000 + -1.3992 0 1.0000 + -1.3932 0 1.0000 + -1.3583 0 2.0000 + -1.3466 0 1.0000 + -1.2999 0 1.0000 + -1.2835 0 1.0000 + -1.2730 0 2.0000 + -1.2596 0 2.0000 + -1.2455 0 1.0000 + -1.2326 0 1.0000 + + +logrank stat for this cutpoint: 155.335 + ------------------------------------------- + +testing cutpoint: 3.18565 + + ---- view of lincomb & g_node & w_node ---- + + -1.5976 0 1.0000 + -1.5858 0 3.0000 + -1.5353 0 1.0000 + -1.5352 0 1.0000 + -1.5091 0 1.0000 + -1.4746 0 3.0000 + -1.4675 0 1.0000 + -1.4408 0 3.0000 + -1.4312 0 2.0000 + -1.4002 0 1.0000 + -1.3992 0 1.0000 + -1.3932 0 1.0000 + -1.3583 0 2.0000 + -1.3466 0 1.0000 + -1.2999 0 1.0000 + -1.2835 0 1.0000 + -1.2730 0 2.0000 + -1.2596 0 2.0000 + -1.2455 0 1.0000 + -1.2326 0 1.0000 + + +logrank stat for this cutpoint: 8.87422 + ------------------------------------------- + +testing cutpoint: 4.52439 + + ---- view of lincomb & g_node & w_node ---- + + -1.5976 0 1.0000 + -1.5858 0 3.0000 + -1.5353 0 1.0000 + -1.5352 0 1.0000 + -1.5091 0 1.0000 + -1.4746 0 3.0000 + -1.4675 0 1.0000 + -1.4408 0 3.0000 + -1.4312 0 2.0000 + -1.4002 0 1.0000 + -1.3992 0 1.0000 + -1.3932 0 1.0000 + -1.3583 0 2.0000 + -1.3466 0 1.0000 + -1.2999 0 1.0000 + -1.2835 0 1.0000 + -1.2730 0 2.0000 + -1.2596 0 2.0000 + -1.2455 0 1.0000 + -1.2326 0 1.0000 + + +logrank stat for this cutpoint: 17.5604 + ------------------------------------------- + +node assignments: + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + +growing node 1 + + ---- view of x_node ---- + + 3.0000e+00 2.0000e+00 2.2900e+02 + 3.0000e+00 2.0000e+00 1.0200e+02 + 1.0000e+00 1.0000e+00 1.0100e+02 + 1.0000e+00 1.0000e+00 7.2000e+01 + 3.0000e+00 2.0000e+00 1.5500e+02 + 3.0000e+00 2.0000e+00 7.0000e+01 + 3.0000e+00 2.0000e+00 1.7200e+02 + 2.0000e+00 1.0000e+00 5.6000e+01 + 1.0000e+00 1.0000e+00 9.1000e+01 + 1.0000e+00 1.0000e+00 1.2200e+02 + 2.0000e+00 1.0000e+00 9.1000e+01 + 1.0000e+00 1.0000e+00 9.1000e+01 + 1.0000e+00 1.0000e+00 1.0300e+02 + 1.0000e+00 1.0000e+00 1.4900e+02 + 1.0000e+00 1.0000e+00 2.1000e+02 + 2.0000e+00 1.0000e+00 2.4200e+02 + 1.0000e+00 1.0000e+00 2.0500e+02 + 1.0000e+00 1.0000e+00 1.3100e+02 + 1.0000e+00 1.0000e+00 1.3900e+02 + 1.0000e+00 1.0000e+00 1.0000e+02 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.3300e+02 0 + 5.5200e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3700e+02 0 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.3900e+02 0 + + +----- finding lower bound for cut-points ----- +current value: -1.85704 -- next: -1.77944 -- N events: 0 -- N risk: 1 +current value: -1.77944 -- next: -1.77944 -- N events: 0 -- N risk: 2 +current value: -1.77944 -- next: -1.72301 -- N events: 0 -- N risk: 3 +current value: -1.72301 -- next: -1.72301 -- N events: 0 -- N risk: 5 +current value: -1.72301 -- next: -1.70185 -- N events: 0 -- N risk: 6 +current value: -1.70185 -- next: -1.70185 -- N events: 0 -- N risk: 10 +current value: -1.70185 -- next: -1.69479 -- N events: 0 -- N risk: 13 +current value: -1.69479 -- next: -1.69479 -- N events: 0 -- N risk: 14 +current value: -1.69479 -- next: -1.69479 -- N events: 0 -- N risk: 16 +current value: -1.69479 -- next: -1.68068 -- N events: 0 -- N risk: 17 +current value: -1.68068 -- next: -1.68068 -- N events: 1 -- N risk: 18 +current value: -1.68068 -- next: -1.68068 -- N events: 1 -- N risk: 20 +current value: -1.68068 -- next: -1.67363 -- N events: 1 -- N risk: 21 + +lower cutpoint: -1.68068 + - n_events, left node: 1 + - n_risk, left node: 21 + +----- finding upper bound for cut-points ----- +current value: 47.7165 ---- next value: 47.3144 ---- N events: 1 ---- N risk: 1 +current value: 47.3144 ---- next value: 47.1945 ---- N events: 2 ---- N risk: 2 +current value: 47.1945 ---- next value: 46.8206 ---- N events: 3 ---- N risk: 3 +current value: 46.8206 ---- next value: 46.5949 ---- N events: 4 ---- N risk: 4 +current value: 46.5949 ---- next value: 1.32785 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 1.32785 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -1.5678 + -1.5325 + -0.6437 + -0.5839 + -0.5449 + + +testing cutpoint: -1.56781 + + ---- view of lincomb & g_node & w_node ---- + + -1.8570 0 1.0000 + -1.7794 0 1.0000 + -1.7794 0 1.0000 + -1.7230 0 2.0000 + -1.7230 0 1.0000 + -1.7018 0 4.0000 + -1.7018 0 3.0000 + -1.6948 0 1.0000 + -1.6948 0 2.0000 + -1.6948 0 1.0000 + -1.6807 0 1.0000 + -1.6807 0 2.0000 + -1.6807 0 1.0000 + -1.6736 0 2.0000 + -1.6525 0 3.0000 + -1.6242 0 2.0000 + -1.6172 0 1.0000 + -1.6101 0 3.0000 + -1.6101 0 1.0000 + -1.6101 0 1.0000 + + +logrank stat for this cutpoint: 9.36007 + ------------------------------------------- + +testing cutpoint: -1.53254 + + ---- view of lincomb & g_node & w_node ---- + + -1.8570 0 1.0000 + -1.7794 0 1.0000 + -1.7794 0 1.0000 + -1.7230 0 2.0000 + -1.7230 0 1.0000 + -1.7018 0 4.0000 + -1.7018 0 3.0000 + -1.6948 0 1.0000 + -1.6948 0 2.0000 + -1.6948 0 1.0000 + -1.6807 0 1.0000 + -1.6807 0 2.0000 + -1.6807 0 1.0000 + -1.6736 0 2.0000 + -1.6525 0 3.0000 + -1.6242 0 2.0000 + -1.6172 0 1.0000 + -1.6101 0 3.0000 + -1.6101 0 1.0000 + -1.6101 0 1.0000 + + +logrank stat for this cutpoint: 7.97427 + ------------------------------------------- + +testing cutpoint: -0.643678 + + ---- view of lincomb & g_node & w_node ---- + + -1.8570 0 1.0000 + -1.7794 0 1.0000 + -1.7794 0 1.0000 + -1.7230 0 2.0000 + -1.7230 0 1.0000 + -1.7018 0 4.0000 + -1.7018 0 3.0000 + -1.6948 0 1.0000 + -1.6948 0 2.0000 + -1.6948 0 1.0000 + -1.6807 0 1.0000 + -1.6807 0 2.0000 + -1.6807 0 1.0000 + -1.6736 0 2.0000 + -1.6525 0 3.0000 + -1.6242 0 2.0000 + -1.6172 0 1.0000 + -1.6101 0 3.0000 + -1.6101 0 1.0000 + -1.6101 0 1.0000 + + +logrank stat for this cutpoint: 26.531 + ------------------------------------------- + +testing cutpoint: -0.583909 + + ---- view of lincomb & g_node & w_node ---- + + -1.8570 0 1.0000 + -1.7794 0 1.0000 + -1.7794 0 1.0000 + -1.7230 0 2.0000 + -1.7230 0 1.0000 + -1.7018 0 4.0000 + -1.7018 0 3.0000 + -1.6948 0 1.0000 + -1.6948 0 2.0000 + -1.6948 0 1.0000 + -1.6807 0 1.0000 + -1.6807 0 2.0000 + -1.6807 0 1.0000 + -1.6736 0 2.0000 + -1.6525 0 3.0000 + -1.6242 0 2.0000 + -1.6172 0 1.0000 + -1.6101 0 3.0000 + -1.6101 0 1.0000 + -1.6101 0 1.0000 + + +logrank stat for this cutpoint: 36.9854 + ------------------------------------------- + +testing cutpoint: -0.544915 + + ---- view of lincomb & g_node & w_node ---- + + -1.8570 0 1.0000 + -1.7794 0 1.0000 + -1.7794 0 1.0000 + -1.7230 0 2.0000 + -1.7230 0 1.0000 + -1.7018 0 4.0000 + -1.7018 0 3.0000 + -1.6948 0 1.0000 + -1.6948 0 2.0000 + -1.6948 0 1.0000 + -1.6807 0 1.0000 + -1.6807 0 2.0000 + -1.6807 0 1.0000 + -1.6736 0 2.0000 + -1.6525 0 3.0000 + -1.6242 0 2.0000 + -1.6172 0 1.0000 + -1.6101 0 3.0000 + -1.6101 0 1.0000 + -1.6101 0 1.0000 + + +logrank stat for this cutpoint: 36.163 + ------------------------------------------- + +node assignments: + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 2 + 2 + 3 + 3 + 3 + 3 + 3 + 4 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 4 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 4 + 2 + 3 + 4 + 2 + 3 + 4 + 3 + 3 + 3 + 2 + 3 + 3 + 2 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 4 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 4 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 2 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 2 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 2 + 3 + 4 + +growing node 2 + + ---- view of x_node ---- + + 3.6974e+03 2.0000e+00 5.4439e+01 + 9.6100e+02 2.0000e+00 5.3930e+01 + 1.0560e+03 1.0000e+00 6.9377e+01 + 3.7400e+03 2.0000e+00 5.2693e+01 + 6.0648e+03 2.0000e+00 5.5967e+01 + 7.2770e+03 2.0000e+00 4.1385e+01 + 1.8190e+03 2.0000e+00 4.9826e+01 + 1.9750e+03 2.0000e+00 4.4947e+01 + 2.3100e+03 2.0000e+00 4.6264e+01 + 1.7940e+03 2.0000e+00 4.6790e+01 + 2.8700e+03 2.0000e+00 3.5792e+01 + 1.6640e+03 2.0000e+00 6.1804e+01 + 2.1840e+03 1.0000e+00 5.6772e+01 + 1.1190e+03 2.0000e+00 4.1374e+01 + 2.4240e+03 2.0000e+00 5.1250e+01 + 2.0650e+03 2.0000e+00 4.4227e+01 + 3.8360e+03 2.0000e+00 3.0864e+01 + 5.4872e+03 2.0000e+00 3.9198e+01 + 9.8300e+02 2.0000e+00 7.8439e+01 + 7.6600e+02 1.0000e+00 3.5151e+01 + + + ---- view of y_node ---- + + 7.7000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 8.3700e+02 0 + 1.2970e+03 1.0000e+00 + 1.4130e+03 1.0000e+00 + 1.4270e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.7650e+03 0 + 2.0330e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.955205 -- next: -0.593793 -- N events: 0 -- N risk: 2 +current value: -0.593793 -- next: -0.419104 -- N events: 0 -- N risk: 3 +current value: -0.419104 -- next: -0.38141 -- N events: 1 -- N risk: 4 +current value: -0.38141 -- next: -0.313098 -- N events: 3 -- N risk: 6 + +lower cutpoint: -0.38141 + - n_events, left node: 3 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 0.863482 ---- next value: 0.644185 ---- N events: 2 ---- N risk: 2 +current value: 0.644185 ---- next value: 0.555569 ---- N events: 4 ---- N risk: 4 +current value: 0.555569 ---- next value: 0.339184 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 0.339184 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.3814 + -0.3131 + -0.3083 + -0.1848 + 0.2923 + + +testing cutpoint: -0.38141 + + ---- view of lincomb & g_node & w_node ---- + + -0.9552 0 2.0000 + -0.5938 0 1.0000 + -0.4191 0 1.0000 + -0.3814 0 2.0000 + -0.3131 1.0000 1.0000 + -0.3083 1.0000 1.0000 + -0.2862 1.0000 1.0000 + -0.2269 1.0000 3.0000 + -0.1992 1.0000 1.0000 + -0.1848 1.0000 2.0000 + -0.0180 1.0000 1.0000 + 0.0162 1.0000 2.0000 + 0.1643 1.0000 1.0000 + 0.1896 1.0000 3.0000 + 0.2150 1.0000 1.0000 + 0.2923 1.0000 1.0000 + 0.3392 1.0000 3.0000 + 0.5556 1.0000 1.0000 + 0.6442 1.0000 2.0000 + 0.8635 1.0000 2.0000 + + +logrank stat for this cutpoint: 8.4874 + ------------------------------------------- + +testing cutpoint: -0.313098 + + ---- view of lincomb & g_node & w_node ---- + + -0.9552 0 2.0000 + -0.5938 0 1.0000 + -0.4191 0 1.0000 + -0.3814 0 2.0000 + -0.3131 0 1.0000 + -0.3083 1.0000 1.0000 + -0.2862 1.0000 1.0000 + -0.2269 1.0000 3.0000 + -0.1992 1.0000 1.0000 + -0.1848 1.0000 2.0000 + -0.0180 1.0000 1.0000 + 0.0162 1.0000 2.0000 + 0.1643 1.0000 1.0000 + 0.1896 1.0000 3.0000 + 0.2150 1.0000 1.0000 + 0.2923 1.0000 1.0000 + 0.3392 1.0000 3.0000 + 0.5556 1.0000 1.0000 + 0.6442 1.0000 2.0000 + 0.8635 1.0000 2.0000 + + +logrank stat for this cutpoint: 9.26812 + ------------------------------------------- + +testing cutpoint: -0.308327 + + ---- view of lincomb & g_node & w_node ---- + + -0.9552 0 2.0000 + -0.5938 0 1.0000 + -0.4191 0 1.0000 + -0.3814 0 2.0000 + -0.3131 0 1.0000 + -0.3083 0 1.0000 + -0.2862 1.0000 1.0000 + -0.2269 1.0000 3.0000 + -0.1992 1.0000 1.0000 + -0.1848 1.0000 2.0000 + -0.0180 1.0000 1.0000 + 0.0162 1.0000 2.0000 + 0.1643 1.0000 1.0000 + 0.1896 1.0000 3.0000 + 0.2150 1.0000 1.0000 + 0.2923 1.0000 1.0000 + 0.3392 1.0000 3.0000 + 0.5556 1.0000 1.0000 + 0.6442 1.0000 2.0000 + 0.8635 1.0000 2.0000 + + +logrank stat for this cutpoint: 8.25082 + ------------------------------------------- + +testing cutpoint: -0.184792 + + ---- view of lincomb & g_node & w_node ---- + + -0.9552 0 2.0000 + -0.5938 0 1.0000 + -0.4191 0 1.0000 + -0.3814 0 2.0000 + -0.3131 0 1.0000 + -0.3083 0 1.0000 + -0.2862 0 1.0000 + -0.2269 0 3.0000 + -0.1992 0 1.0000 + -0.1848 0 2.0000 + -0.0180 1.0000 1.0000 + 0.0162 1.0000 2.0000 + 0.1643 1.0000 1.0000 + 0.1896 1.0000 3.0000 + 0.2150 1.0000 1.0000 + 0.2923 1.0000 1.0000 + 0.3392 1.0000 3.0000 + 0.5556 1.0000 1.0000 + 0.6442 1.0000 2.0000 + 0.8635 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.01565 + ------------------------------------------- + +testing cutpoint: 0.292292 + + ---- view of lincomb & g_node & w_node ---- + + -0.9552 0 2.0000 + -0.5938 0 1.0000 + -0.4191 0 1.0000 + -0.3814 0 2.0000 + -0.3131 0 1.0000 + -0.3083 0 1.0000 + -0.2862 0 1.0000 + -0.2269 0 3.0000 + -0.1992 0 1.0000 + -0.1848 0 2.0000 + -0.0180 0 1.0000 + 0.0162 0 2.0000 + 0.1643 0 1.0000 + 0.1896 0 3.0000 + 0.2150 0 1.0000 + 0.2923 0 1.0000 + 0.3392 1.0000 3.0000 + 0.5556 1.0000 1.0000 + 0.6442 1.0000 2.0000 + 0.8635 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.16019 + ------------------------------------------- + +node assignments: + 3 + 4 + 6 + 6 + 3 + 6 + 6 + 6 + 6 + 3 + 3 + 4 + 4 + 4 + 3 + 6 + 4 + 6 + 3 + 6 + +growing node 3 + + ---- view of x_node ---- + + 1.0000e+00 1.2000e+01 1.0100e+02 + 1.0000e+00 1.0700e+01 7.2000e+01 + 2.0000e+00 1.1900e+01 5.6000e+01 + 1.0000e+00 1.1300e+01 9.1000e+01 + 1.0000e+00 1.2000e+01 1.2200e+02 + 2.0000e+00 1.1400e+01 9.1000e+01 + 1.0000e+00 1.0000e+01 9.1000e+01 + 1.0000e+00 1.1000e+01 1.0300e+02 + 1.0000e+00 1.0800e+01 1.4900e+02 + 1.0000e+00 1.0800e+01 2.1000e+02 + 1.0000e+00 1.1500e+01 2.0500e+02 + 1.0000e+00 1.0000e+01 1.3100e+02 + 1.0000e+00 1.0000e+01 1.3900e+02 + 1.0000e+00 1.0200e+01 1.0000e+02 + 1.0000e+00 1.0800e+01 8.2000e+01 + 2.0000e+00 1.2000e+01 5.5000e+01 + 1.0000e+00 9.6000e+00 1.1300e+02 + 1.0000e+00 1.0700e+01 1.5700e+02 + 1.0000e+00 1.1000e+01 1.4900e+02 + 1.0000e+00 1.0000e+01 1.4600e+02 + + + ---- view of y_node ---- + + 1.8600e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.3300e+02 0 + 5.5200e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3700e+02 0 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.3900e+02 0 + 9.9400e+02 0 + 1.0120e+03 1.0000e+00 + 1.0300e+03 0 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.0840e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.70177 -- next: -1.27412 -- N events: 0 -- N risk: 1 +current value: -1.27412 -- next: -1.23375 -- N events: 0 -- N risk: 3 +current value: -1.23375 -- next: -1.10714 -- N events: 0 -- N risk: 7 +current value: -1.10714 -- next: -1.07774 -- N events: 0 -- N risk: 8 +current value: -1.07774 -- next: -0.988876 -- N events: 0 -- N risk: 9 +current value: -0.988876 -- next: -0.916466 -- N events: 0 -- N risk: 10 +current value: -0.916466 -- next: -0.911199 -- N events: 0 -- N risk: 11 +current value: -0.911199 -- next: -0.876093 -- N events: 0 -- N risk: 12 +current value: -0.876093 -- next: -0.79798 -- N events: 3 -- N risk: 15 + +lower cutpoint: -0.876093 + - n_events, left node: 3 + - n_risk, left node: 15 + +----- finding upper bound for cut-points ----- +current value: 2.09574 ---- next value: 1.75893 ---- N events: 1 ---- N risk: 1 +current value: 1.75893 ---- next value: 1.37909 ---- N events: 2 ---- N risk: 2 +current value: 1.37909 ---- next value: 1.30429 ---- N events: 2 ---- N risk: 3 +current value: 1.30429 ---- next value: 1.24 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 1.24 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.6720 + -0.2521 + 0.0270 + 0.2239 + 0.2991 + + +testing cutpoint: -0.67203 + + ---- view of lincomb & g_node & w_node ---- + + -1.7018 0 1.0000 + -1.2741 0 2.0000 + -1.2337 0 4.0000 + -1.1071 0 1.0000 + -1.0777 0 1.0000 + -0.9889 0 1.0000 + -0.9165 0 1.0000 + -0.9112 0 1.0000 + -0.8761 0 3.0000 + -0.7980 0 3.0000 + -0.7657 0 1.0000 + -0.7552 0 2.0000 + -0.7541 0 4.0000 + -0.7069 0 1.0000 + -0.6744 0 1.0000 + -0.6720 0 1.0000 + -0.6665 1.0000 1.0000 + -0.6611 1.0000 1.0000 + -0.6128 1.0000 2.0000 + -0.6102 1.0000 3.0000 + + +logrank stat for this cutpoint: 0.491217 + ------------------------------------------- + +testing cutpoint: -0.252061 + + ---- view of lincomb & g_node & w_node ---- + + -1.7018 0 1.0000 + -1.2741 0 2.0000 + -1.2337 0 4.0000 + -1.1071 0 1.0000 + -1.0777 0 1.0000 + -0.9889 0 1.0000 + -0.9165 0 1.0000 + -0.9112 0 1.0000 + -0.8761 0 3.0000 + -0.7980 0 3.0000 + -0.7657 0 1.0000 + -0.7552 0 2.0000 + -0.7541 0 4.0000 + -0.7069 0 1.0000 + -0.6744 0 1.0000 + -0.6720 0 1.0000 + -0.6665 0 1.0000 + -0.6611 0 1.0000 + -0.6128 0 2.0000 + -0.6102 0 3.0000 + + +logrank stat for this cutpoint: 1.15624 + ------------------------------------------- + +testing cutpoint: 0.0270451 + + ---- view of lincomb & g_node & w_node ---- + + -1.7018 0 1.0000 + -1.2741 0 2.0000 + -1.2337 0 4.0000 + -1.1071 0 1.0000 + -1.0777 0 1.0000 + -0.9889 0 1.0000 + -0.9165 0 1.0000 + -0.9112 0 1.0000 + -0.8761 0 3.0000 + -0.7980 0 3.0000 + -0.7657 0 1.0000 + -0.7552 0 2.0000 + -0.7541 0 4.0000 + -0.7069 0 1.0000 + -0.6744 0 1.0000 + -0.6720 0 1.0000 + -0.6665 0 1.0000 + -0.6611 0 1.0000 + -0.6128 0 2.0000 + -0.6102 0 3.0000 + + +logrank stat for this cutpoint: 8.86848 + ------------------------------------------- + +testing cutpoint: 0.223862 + + ---- view of lincomb & g_node & w_node ---- + + -1.7018 0 1.0000 + -1.2741 0 2.0000 + -1.2337 0 4.0000 + -1.1071 0 1.0000 + -1.0777 0 1.0000 + -0.9889 0 1.0000 + -0.9165 0 1.0000 + -0.9112 0 1.0000 + -0.8761 0 3.0000 + -0.7980 0 3.0000 + -0.7657 0 1.0000 + -0.7552 0 2.0000 + -0.7541 0 4.0000 + -0.7069 0 1.0000 + -0.6744 0 1.0000 + -0.6720 0 1.0000 + -0.6665 0 1.0000 + -0.6611 0 1.0000 + -0.6128 0 2.0000 + -0.6102 0 3.0000 + + +logrank stat for this cutpoint: 16.0897 + ------------------------------------------- + +testing cutpoint: 0.299124 + + ---- view of lincomb & g_node & w_node ---- + + -1.7018 0 1.0000 + -1.2741 0 2.0000 + -1.2337 0 4.0000 + -1.1071 0 1.0000 + -1.0777 0 1.0000 + -0.9889 0 1.0000 + -0.9165 0 1.0000 + -0.9112 0 1.0000 + -0.8761 0 3.0000 + -0.7980 0 3.0000 + -0.7657 0 1.0000 + -0.7552 0 2.0000 + -0.7541 0 4.0000 + -0.7069 0 1.0000 + -0.6744 0 1.0000 + -0.6720 0 1.0000 + -0.6665 0 1.0000 + -0.6611 0 1.0000 + -0.6128 0 2.0000 + -0.6102 0 3.0000 + + +logrank stat for this cutpoint: 13.633 + ------------------------------------------- + +node assignments: + 7 + 7 + 7 + 8 + 8 + 7 + 8 + 7 + 7 + 8 + 7 + 7 + 7 + 7 + 4 + 7 + 6 + 7 + 7 + 6 + 7 + 7 + 7 + 7 + 7 + 4 + 6 + 7 + 4 + 7 + 4 + 8 + 4 + 7 + 8 + 4 + 7 + 5 + 6 + 4 + 7 + 7 + 7 + 7 + 7 + 4 + 8 + 8 + 7 + 7 + 4 + 7 + 7 + 8 + 6 + 7 + 8 + 7 + 7 + 5 + 7 + 7 + 6 + 4 + 5 + 8 + 7 + 6 + 6 + 7 + 7 + 5 + 4 + 7 + 7 + 7 + 7 + 8 + 8 + 5 + 7 + 7 + 8 + 8 + 8 + 7 + 8 + 4 + 8 + 7 + 7 + 7 + 8 + 8 + 7 + 8 + 7 + 7 + 6 + 8 + 8 + 8 + 6 + 4 + 7 + 8 + 7 + 7 + 7 + 8 + 7 + 7 + 7 + 7 + 8 + 7 + 7 + 6 + 8 + 7 + 4 + 7 + 8 + 6 + 7 + 7 + 7 + 4 + 7 + 7 + 7 + 6 + 8 + 6 + 7 + 6 + 7 + +growing node 4 + + ---- view of x_node ---- + + 3.0000e+00 1.0000e+00 3.3800e+02 + 3.0000e+00 2.0000e+00 1.1935e+02 + 3.0000e+00 2.0000e+00 1.3400e+02 + 3.0000e+00 1.0000e+00 8.6800e+01 + 3.0000e+00 2.0000e+00 1.3795e+02 + 2.0000e+00 2.0000e+00 8.6000e+01 + 2.0000e+00 2.0000e+00 1.9840e+02 + 2.0000e+00 2.0000e+00 2.1545e+02 + 3.0000e+00 2.0000e+00 1.6300e+02 + 1.0000e+00 1.0000e+00 7.9980e+01 + 1.0000e+00 1.0000e+00 7.0000e+01 + 1.0000e+00 1.0000e+00 2.7280e+02 + 1.0000e+00 2.0000e+00 7.9050e+01 + 1.0000e+00 2.0000e+00 5.2700e+01 + 1.0000e+00 2.0000e+00 9.5460e+01 + 2.0000e+00 1.0000e+00 1.0695e+02 + 3.0000e+00 2.0000e+00 1.1935e+02 + 1.0000e+00 1.0000e+00 1.1780e+02 + 1.0000e+00 2.0000e+00 2.2188e+02 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.1700e+03 1.0000e+00 + 1.3200e+03 0 + 1.3600e+03 1.0000e+00 + 1.6140e+03 0 + 1.6900e+03 1.0000e+00 + 1.7860e+03 1.0000e+00 + 1.7900e+03 0 + 1.8470e+03 1.0000e+00 + 3.3360e+03 0 + 3.4280e+03 1.0000e+00 + 3.5740e+03 1.0000e+00 + 4.0790e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.23739 -- next: -1.14712 -- N events: 0 -- N risk: 1 +current value: -1.14712 -- next: -1.0909 -- N events: 2 -- N risk: 3 +current value: -1.0909 -- next: -0.928327 -- N events: 3 -- N risk: 4 +current value: -0.928327 -- next: -0.894138 -- N events: 3 -- N risk: 6 + +lower cutpoint: -0.928327 + - n_events, left node: 3 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.90516 ---- next value: 1.05585 ---- N events: 1 ---- N risk: 1 +current value: 1.05585 ---- next value: 1.04461 ---- N events: 1 ---- N risk: 2 +current value: 1.04461 ---- next value: 0.970037 ---- N events: 3 ---- N risk: 4 +current value: 0.970037 ---- next value: 0.956505 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 0.956505 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.7646 + -0.1656 + 0.2194 + 0.2778 + 0.9565 + + +testing cutpoint: -0.764574 + + ---- view of lincomb & g_node & w_node ---- + + -1.2374 0 1.0000 + -1.1471 0 2.0000 + -1.0909 0 1.0000 + -0.9283 0 2.0000 + -0.8941 0 1.0000 + -0.7646 0 1.0000 + -0.6578 1.0000 1.0000 + -0.2336 1.0000 3.0000 + -0.1656 1.0000 1.0000 + 0.1559 1.0000 1.0000 + 0.2194 1.0000 2.0000 + 0.2778 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9565 1.0000 1.0000 + 0.9700 1.0000 1.0000 + 1.0446 1.0000 2.0000 + 1.0559 1.0000 1.0000 + 1.9052 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.64509 + ------------------------------------------- + +testing cutpoint: -0.165622 + + ---- view of lincomb & g_node & w_node ---- + + -1.2374 0 1.0000 + -1.1471 0 2.0000 + -1.0909 0 1.0000 + -0.9283 0 2.0000 + -0.8941 0 1.0000 + -0.7646 0 1.0000 + -0.6578 0 1.0000 + -0.2336 0 3.0000 + -0.1656 0 1.0000 + 0.1559 1.0000 1.0000 + 0.2194 1.0000 2.0000 + 0.2778 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9565 1.0000 1.0000 + 0.9700 1.0000 1.0000 + 1.0446 1.0000 2.0000 + 1.0559 1.0000 1.0000 + 1.9052 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.26925 + ------------------------------------------- + +testing cutpoint: 0.219437 + + ---- view of lincomb & g_node & w_node ---- + + -1.2374 0 1.0000 + -1.1471 0 2.0000 + -1.0909 0 1.0000 + -0.9283 0 2.0000 + -0.8941 0 1.0000 + -0.7646 0 1.0000 + -0.6578 0 1.0000 + -0.2336 0 3.0000 + -0.1656 0 1.0000 + 0.1559 0 1.0000 + 0.2194 0 2.0000 + 0.2778 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9565 1.0000 1.0000 + 0.9700 1.0000 1.0000 + 1.0446 1.0000 2.0000 + 1.0559 1.0000 1.0000 + 1.9052 1.0000 1.0000 + + +logrank stat for this cutpoint: 7.66785 + ------------------------------------------- + +testing cutpoint: 0.277847 + + ---- view of lincomb & g_node & w_node ---- + + -1.2374 0 1.0000 + -1.1471 0 2.0000 + -1.0909 0 1.0000 + -0.9283 0 2.0000 + -0.8941 0 1.0000 + -0.7646 0 1.0000 + -0.6578 0 1.0000 + -0.2336 0 3.0000 + -0.1656 0 1.0000 + 0.1559 0 1.0000 + 0.2194 0 2.0000 + 0.2778 0 1.0000 + 0.9063 1.0000 1.0000 + 0.9063 1.0000 1.0000 + 0.9565 1.0000 1.0000 + 0.9700 1.0000 1.0000 + 1.0446 1.0000 2.0000 + 1.0559 1.0000 1.0000 + 1.9052 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.75099 + ------------------------------------------- + +testing cutpoint: 0.956505 + + ---- view of lincomb & g_node & w_node ---- + + -1.2374 0 1.0000 + -1.1471 0 2.0000 + -1.0909 0 1.0000 + -0.9283 0 2.0000 + -0.8941 0 1.0000 + -0.7646 0 1.0000 + -0.6578 0 1.0000 + -0.2336 0 3.0000 + -0.1656 0 1.0000 + 0.1559 0 1.0000 + 0.2194 0 2.0000 + 0.2778 0 1.0000 + 0.9063 0 1.0000 + 0.9063 0 1.0000 + 0.9565 0 1.0000 + 0.9700 1.0000 1.0000 + 1.0446 1.0000 2.0000 + 1.0559 1.0000 1.0000 + 1.9052 1.0000 1.0000 + + +logrank stat for this cutpoint: 7.49696 + ------------------------------------------- + +node assignments: + 10 + 10 + 7 + 6 + 6 + 8 + 6 + 10 + 8 + 8 + 7 + 6 + 6 + 6 + 10 + 6 + 6 + 6 + 10 + +growing node 5 + +sprouting new leaf with node 5 + + ---- view of leaf_data ---- + + 7.3300e+02 8.5714e-01 1.4286e-01 + 1.4130e+03 6.8571e-01 3.4286e-01 + 1.4270e+03 3.4286e-01 8.4286e-01 + + +growing node 6 + + ---- view of x_node ---- + + 2.0000e+00 8.0000e+01 4.0000e+00 + 2.0000e+00 2.8300e+02 4.0000e+00 + 2.0000e+00 1.0800e+02 3.0000e+00 + 2.0000e+00 3.9900e+02 4.0000e+00 + 2.0000e+00 2.1400e+02 4.0000e+00 + 2.0000e+00 1.2400e+02 4.0000e+00 + 2.0000e+00 1.3200e+02 3.0000e+00 + 2.0000e+00 1.4400e+02 4.0000e+00 + 1.0000e+00 2.4000e+02 3.0000e+00 + 2.0000e+00 3.1900e+02 4.0000e+00 + 2.0000e+00 1.4000e+02 4.0000e+00 + 1.0000e+00 3.8200e+02 4.0000e+00 + 1.0000e+00 2.5200e+02 3.0000e+00 + 2.0000e+00 2.5400e+02 4.0000e+00 + 2.0000e+00 9.7000e+01 4.0000e+00 + + + ---- view of y_node ---- + + 7.7000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 1.2970e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.7650e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.780735 -- next: -0.473536 -- N events: 2 -- N risk: 2 +current value: -0.473536 -- next: -0.456068 -- N events: 3 -- N risk: 3 +current value: -0.456068 -- next: -0.144167 -- N events: 4 -- N risk: 4 +current value: -0.144167 -- next: -0.119422 -- N events: 7 -- N risk: 7 + +lower cutpoint: -0.144167 + - n_events, left node: 7 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 0.445423 ---- next value: 0.410488 ---- N events: 2 ---- N risk: 2 +current value: 0.410488 ---- next value: 0.320177 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.320177 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.1442 + -0.1194 + -0.0568 + 0.1091 + 0.1513 + + +testing cutpoint: -0.144167 + + ---- view of lincomb & g_node & w_node ---- + + -0.7807 0 2.0000 + -0.4735 0 1.0000 + -0.4561 0 1.0000 + -0.1442 0 3.0000 + -0.1194 1.0000 1.0000 + -0.0801 1.0000 2.0000 + -0.0568 1.0000 1.0000 + -0.0510 1.0000 1.0000 + 0.0509 1.0000 2.0000 + 0.1091 1.0000 1.0000 + 0.1513 1.0000 3.0000 + 0.2037 1.0000 1.0000 + 0.3202 1.0000 1.0000 + 0.4105 1.0000 3.0000 + 0.4454 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.0696515 + ------------------------------------------- + +testing cutpoint: -0.119422 + + ---- view of lincomb & g_node & w_node ---- + + -0.7807 0 2.0000 + -0.4735 0 1.0000 + -0.4561 0 1.0000 + -0.1442 0 3.0000 + -0.1194 0 1.0000 + -0.0801 1.0000 2.0000 + -0.0568 1.0000 1.0000 + -0.0510 1.0000 1.0000 + 0.0509 1.0000 2.0000 + 0.1091 1.0000 1.0000 + 0.1513 1.0000 3.0000 + 0.2037 1.0000 1.0000 + 0.3202 1.0000 1.0000 + 0.4105 1.0000 3.0000 + 0.4454 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.25178 + ------------------------------------------- + +testing cutpoint: -0.0568298 + + ---- view of lincomb & g_node & w_node ---- + + -0.7807 0 2.0000 + -0.4735 0 1.0000 + -0.4561 0 1.0000 + -0.1442 0 3.0000 + -0.1194 0 1.0000 + -0.0801 0 2.0000 + -0.0568 0 1.0000 + -0.0510 1.0000 1.0000 + 0.0509 1.0000 2.0000 + 0.1091 1.0000 1.0000 + 0.1513 1.0000 3.0000 + 0.2037 1.0000 1.0000 + 0.3202 1.0000 1.0000 + 0.4105 1.0000 3.0000 + 0.4454 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.16359 + ------------------------------------------- + +testing cutpoint: 0.109111 + + ---- view of lincomb & g_node & w_node ---- + + -0.7807 0 2.0000 + -0.4735 0 1.0000 + -0.4561 0 1.0000 + -0.1442 0 3.0000 + -0.1194 0 1.0000 + -0.0801 0 2.0000 + -0.0568 0 1.0000 + -0.0510 0 1.0000 + 0.0509 0 2.0000 + 0.1091 0 1.0000 + 0.1513 1.0000 3.0000 + 0.2037 1.0000 1.0000 + 0.3202 1.0000 1.0000 + 0.4105 1.0000 3.0000 + 0.4454 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.34551 + ------------------------------------------- + +testing cutpoint: 0.151325 + + ---- view of lincomb & g_node & w_node ---- + + -0.7807 0 2.0000 + -0.4735 0 1.0000 + -0.4561 0 1.0000 + -0.1442 0 3.0000 + -0.1194 0 1.0000 + -0.0801 0 2.0000 + -0.0568 0 1.0000 + -0.0510 0 1.0000 + 0.0509 0 2.0000 + 0.1091 0 1.0000 + 0.1513 0 3.0000 + 0.2037 1.0000 1.0000 + 0.3202 1.0000 1.0000 + 0.4105 1.0000 3.0000 + 0.4454 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.30649 + ------------------------------------------- + +node assignments: + 10 + 11 + 10 + 10 + 7 + 8 + 12 + 12 + 12 + 10 + 11 + 11 + 12 + 10 + 7 + +growing node 7 + + ---- view of x_node ---- + + 3.4500e+02 7.5000e+01 3.0000e+00 + 3.2500e+02 1.1000e+02 4.0000e+00 + 4.2000e+02 6.2000e+01 3.0000e+00 + 2.2700e+02 1.2100e+02 3.0000e+00 + 3.9600e+02 5.8000e+01 4.0000e+00 + 4.6800e+02 1.3900e+02 4.0000e+00 + 4.3400e+02 3.9000e+01 2.0000e+00 + 2.6000e+02 4.1000e+01 2.0000e+00 + 4.1200e+02 1.0300e+02 4.0000e+00 + 3.4800e+02 1.2100e+02 4.0000e+00 + 2.7300e+02 5.2000e+01 2.0000e+00 + 2.4600e+02 2.4000e+01 2.0000e+00 + 5.1800e+02 1.1500e+02 4.0000e+00 + 4.0800e+02 6.7000e+01 3.0000e+00 + 2.1900e+02 2.2000e+01 3.0000e+00 + 3.7300e+02 1.5500e+02 4.0000e+00 + 3.3500e+02 4.3000e+01 2.0000e+00 + 3.9300e+02 5.0000e+01 4.0000e+00 + 5.7200e+02 7.7000e+01 4.0000e+00 + 3.7400e+02 1.4300e+02 2.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3700e+02 0 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.3900e+02 0 + 9.9400e+02 0 + 1.0300e+03 0 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.1650e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2300e+03 0 + 1.2340e+03 0 + 1.2710e+03 0 + 1.2950e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -2.75173 -- next: -2.32271 -- N events: 0 -- N risk: 1 +current value: -2.32271 -- next: -2.06012 -- N events: 0 -- N risk: 3 +current value: -2.06012 -- next: -1.92567 -- N events: 1 -- N risk: 4 +current value: -1.92567 -- next: -1.7402 -- N events: 1 -- N risk: 5 + +lower cutpoint: -1.92567 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 4.65531 ---- next value: 2.38172 ---- N events: 1 ---- N risk: 1 +current value: 2.38172 ---- next value: 2.32736 ---- N events: 1 ---- N risk: 2 +current value: 2.32736 ---- next value: 2.20229 ---- N events: 2 ---- N risk: 3 +current value: 2.20229 ---- next value: 1.76686 ---- N events: 3 ---- N risk: 4 +current value: 1.76686 ---- next value: 1.64203 ---- N events: 3 ---- N risk: 6 + +upper cutpoint: 1.64203 + - n_events, right node: 3 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.2290 + 0.3018 + 0.6666 + 0.9422 + 1.0865 + + +testing cutpoint: -0.229001 + + ---- view of lincomb & g_node & w_node ---- + + -2.7517 0 1.0000 + -2.3227 0 2.0000 + -2.0601 0 1.0000 + -1.9257 0 1.0000 + -1.7402 0 1.0000 + -1.4944 0 1.0000 + -1.4372 0 1.0000 + -1.3666 0 2.0000 + -1.3139 0 1.0000 + -1.1931 0 2.0000 + -1.1204 0 1.0000 + -1.0993 0 2.0000 + -1.0537 0 1.0000 + -1.0236 0 2.0000 + -0.9727 0 2.0000 + -0.9102 0 2.0000 + -0.8128 0 1.0000 + -0.8028 0 1.0000 + -0.7868 0 1.0000 + -0.7413 0 3.0000 + + +logrank stat for this cutpoint: 8.95259 + ------------------------------------------- + +testing cutpoint: 0.301798 + + ---- view of lincomb & g_node & w_node ---- + + -2.7517 0 1.0000 + -2.3227 0 2.0000 + -2.0601 0 1.0000 + -1.9257 0 1.0000 + -1.7402 0 1.0000 + -1.4944 0 1.0000 + -1.4372 0 1.0000 + -1.3666 0 2.0000 + -1.3139 0 1.0000 + -1.1931 0 2.0000 + -1.1204 0 1.0000 + -1.0993 0 2.0000 + -1.0537 0 1.0000 + -1.0236 0 2.0000 + -0.9727 0 2.0000 + -0.9102 0 2.0000 + -0.8128 0 1.0000 + -0.8028 0 1.0000 + -0.7868 0 1.0000 + -0.7413 0 3.0000 + + +logrank stat for this cutpoint: 27.8785 + ------------------------------------------- + +testing cutpoint: 0.66657 + + ---- view of lincomb & g_node & w_node ---- + + -2.7517 0 1.0000 + -2.3227 0 2.0000 + -2.0601 0 1.0000 + -1.9257 0 1.0000 + -1.7402 0 1.0000 + -1.4944 0 1.0000 + -1.4372 0 1.0000 + -1.3666 0 2.0000 + -1.3139 0 1.0000 + -1.1931 0 2.0000 + -1.1204 0 1.0000 + -1.0993 0 2.0000 + -1.0537 0 1.0000 + -1.0236 0 2.0000 + -0.9727 0 2.0000 + -0.9102 0 2.0000 + -0.8128 0 1.0000 + -0.8028 0 1.0000 + -0.7868 0 1.0000 + -0.7413 0 3.0000 + + +logrank stat for this cutpoint: 6.40745 + ------------------------------------------- + +testing cutpoint: 0.942172 + + ---- view of lincomb & g_node & w_node ---- + + -2.7517 0 1.0000 + -2.3227 0 2.0000 + -2.0601 0 1.0000 + -1.9257 0 1.0000 + -1.7402 0 1.0000 + -1.4944 0 1.0000 + -1.4372 0 1.0000 + -1.3666 0 2.0000 + -1.3139 0 1.0000 + -1.1931 0 2.0000 + -1.1204 0 1.0000 + -1.0993 0 2.0000 + -1.0537 0 1.0000 + -1.0236 0 2.0000 + -0.9727 0 2.0000 + -0.9102 0 2.0000 + -0.8128 0 1.0000 + -0.8028 0 1.0000 + -0.7868 0 1.0000 + -0.7413 0 3.0000 + + +logrank stat for this cutpoint: 17.512 + ------------------------------------------- + +testing cutpoint: 1.08647 + + ---- view of lincomb & g_node & w_node ---- + + -2.7517 0 1.0000 + -2.3227 0 2.0000 + -2.0601 0 1.0000 + -1.9257 0 1.0000 + -1.7402 0 1.0000 + -1.4944 0 1.0000 + -1.4372 0 1.0000 + -1.3666 0 2.0000 + -1.3139 0 1.0000 + -1.1931 0 2.0000 + -1.1204 0 1.0000 + -1.0993 0 2.0000 + -1.0537 0 1.0000 + -1.0236 0 2.0000 + -0.9727 0 2.0000 + -0.9102 0 2.0000 + -0.8128 0 1.0000 + -0.8028 0 1.0000 + -0.7868 0 1.0000 + -0.7413 0 3.0000 + + +logrank stat for this cutpoint: 22.3859 + ------------------------------------------- + +node assignments: + 13 + 14 + 14 + 13 + 12 + 13 + 8 + 14 + 10 + 8 + 12 + 13 + 9 + 14 + 12 + 13 + 14 + 14 + 13 + 14 + 14 + 11 + 10 + 13 + 8 + 9 + 13 + 14 + 10 + 14 + 9 + 8 + 8 + 14 + 5 + 14 + 13 + 8 + 14 + 8 + 14 + 8 + 9 + 14 + 11 + 12 + 8 + 5 + 13 + 11 + 13 + 14 + 8 + 13 + 14 + 13 + 5 + 8 + 13 + 14 + 8 + 10 + 13 + 14 + 11 + 13 + 14 + 13 + 8 + 8 + 10 + 14 + 10 + 11 + 9 + 8 + 5 + 9 + 8 + 8 + 9 + 11 + 8 + 11 + 8 + 12 + 11 + 11 + 8 + 8 + 10 + 11 + 8 + +growing node 8 + +Column 3 was sampled but unique values of column 3 are 1.0000 + + ---- view of x_node ---- + + 9.1000e+01 1.2000e+01 4.0000e+00 + 1.0000e+02 1.1300e+01 4.0000e+00 + 1.4500e+02 1.2000e+01 4.0000e+00 + 8.6000e+01 1.1000e+01 4.0000e+00 + 1.8600e+02 1.0800e+01 2.0000e+00 + 6.5000e+01 1.0800e+01 4.0000e+00 + 2.1900e+02 1.1500e+01 2.0000e+00 + 2.1000e+02 1.2000e+01 4.0000e+00 + 1.4100e+02 1.0700e+01 3.0000e+00 + 1.1100e+02 1.1000e+01 4.0000e+00 + 7.3000e+01 1.0600e+01 3.0000e+00 + 9.0000e+01 1.0800e+01 3.0000e+00 + 8.8000e+01 1.0900e+01 4.0000e+00 + 1.4000e+02 1.3000e+01 4.0000e+00 + 5.2000e+01 1.1000e+01 3.0000e+00 + 1.8800e+02 1.1200e+01 3.0000e+00 + 5.1000e+01 1.2700e+01 3.0000e+00 + 3.6000e+01 1.0600e+01 2.0000e+00 + 7.5000e+01 1.0900e+01 3.0000e+00 + 2.0000e+02 1.0300e+01 4.0000e+00 + + + ---- view of y_node ---- + + 1.8600e+02 1.0000e+00 + 5.3300e+02 0 + 5.5200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 1.0120e+03 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.2160e+03 0 + 1.2930e+03 0 + 1.3020e+03 0 + 1.3560e+03 1.0000e+00 + 1.4870e+03 1.0000e+00 + 1.5420e+03 0 + 1.5760e+03 1.0000e+00 + 1.6140e+03 0 + 1.6570e+03 1.0000e+00 + 1.6820e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.13215 -- next: -1.01164 -- N events: 0 -- N risk: 2 +current value: -1.01164 -- next: -0.976375 -- N events: 0 -- N risk: 3 +current value: -0.976375 -- next: -0.951759 -- N events: 0 -- N risk: 4 +current value: -0.951759 -- next: -0.861664 -- N events: 0 -- N risk: 5 +current value: -0.861664 -- next: -0.793215 -- N events: 0 -- N risk: 8 +current value: -0.793215 -- next: -0.760888 -- N events: 0 -- N risk: 10 +current value: -0.760888 -- next: -0.755951 -- N events: 0 -- N risk: 12 +current value: -0.755951 -- next: -0.689985 -- N events: 1 -- N risk: 13 + +lower cutpoint: -0.755951 + - n_events, left node: 1 + - n_risk, left node: 13 + +----- finding upper bound for cut-points ----- +current value: 1.99815 ---- next value: 1.76209 ---- N events: 1 ---- N risk: 1 +current value: 1.76209 ---- next value: 1.72604 ---- N events: 2 ---- N risk: 2 +current value: 1.72604 ---- next value: 1.59518 ---- N events: 3 ---- N risk: 3 +current value: 1.59518 ---- next value: 1.40124 ---- N events: 7 ---- N risk: 7 + +upper cutpoint: 1.40124 + - n_events, right node: 7 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -0.2378 + -0.1650 + 0.3077 + 0.3281 + 1.4012 + + +testing cutpoint: -0.237778 + + ---- view of lincomb & g_node & w_node ---- + + -1.1321 0 2.0000 + -1.0116 0 1.0000 + -0.9764 0 1.0000 + -0.9518 0 1.0000 + -0.8617 0 3.0000 + -0.7932 0 2.0000 + -0.7609 0 2.0000 + -0.7560 0 1.0000 + -0.6900 0 3.0000 + -0.6210 0 2.0000 + -0.5614 0 2.0000 + -0.5560 0 2.0000 + -0.4946 0 1.0000 + -0.3315 0 3.0000 + -0.3244 0 2.0000 + -0.3229 0 2.0000 + -0.3146 0 1.0000 + -0.2642 0 2.0000 + -0.2568 0 2.0000 + -0.2500 0 1.0000 + + +logrank stat for this cutpoint: 6.26058 + ------------------------------------------- + +testing cutpoint: -0.164953 + + ---- view of lincomb & g_node & w_node ---- + + -1.1321 0 2.0000 + -1.0116 0 1.0000 + -0.9764 0 1.0000 + -0.9518 0 1.0000 + -0.8617 0 3.0000 + -0.7932 0 2.0000 + -0.7609 0 2.0000 + -0.7560 0 1.0000 + -0.6900 0 3.0000 + -0.6210 0 2.0000 + -0.5614 0 2.0000 + -0.5560 0 2.0000 + -0.4946 0 1.0000 + -0.3315 0 3.0000 + -0.3244 0 2.0000 + -0.3229 0 2.0000 + -0.3146 0 1.0000 + -0.2642 0 2.0000 + -0.2568 0 2.0000 + -0.2500 0 1.0000 + + +logrank stat for this cutpoint: 10.5928 + ------------------------------------------- + +testing cutpoint: 0.307735 + + ---- view of lincomb & g_node & w_node ---- + + -1.1321 0 2.0000 + -1.0116 0 1.0000 + -0.9764 0 1.0000 + -0.9518 0 1.0000 + -0.8617 0 3.0000 + -0.7932 0 2.0000 + -0.7609 0 2.0000 + -0.7560 0 1.0000 + -0.6900 0 3.0000 + -0.6210 0 2.0000 + -0.5614 0 2.0000 + -0.5560 0 2.0000 + -0.4946 0 1.0000 + -0.3315 0 3.0000 + -0.3244 0 2.0000 + -0.3229 0 2.0000 + -0.3146 0 1.0000 + -0.2642 0 2.0000 + -0.2568 0 2.0000 + -0.2500 0 1.0000 + + +logrank stat for this cutpoint: 18.6758 + ------------------------------------------- + +testing cutpoint: 0.328143 + + ---- view of lincomb & g_node & w_node ---- + + -1.1321 0 2.0000 + -1.0116 0 1.0000 + -0.9764 0 1.0000 + -0.9518 0 1.0000 + -0.8617 0 3.0000 + -0.7932 0 2.0000 + -0.7609 0 2.0000 + -0.7560 0 1.0000 + -0.6900 0 3.0000 + -0.6210 0 2.0000 + -0.5614 0 2.0000 + -0.5560 0 2.0000 + -0.4946 0 1.0000 + -0.3315 0 3.0000 + -0.3244 0 2.0000 + -0.3229 0 2.0000 + -0.3146 0 1.0000 + -0.2642 0 2.0000 + -0.2568 0 2.0000 + -0.2500 0 1.0000 + + +logrank stat for this cutpoint: 18.8947 + ------------------------------------------- + +testing cutpoint: 1.40124 + + ---- view of lincomb & g_node & w_node ---- + + -1.1321 0 2.0000 + -1.0116 0 1.0000 + -0.9764 0 1.0000 + -0.9518 0 1.0000 + -0.8617 0 3.0000 + -0.7932 0 2.0000 + -0.7609 0 2.0000 + -0.7560 0 1.0000 + -0.6900 0 3.0000 + -0.6210 0 2.0000 + -0.5614 0 2.0000 + -0.5560 0 2.0000 + -0.4946 0 1.0000 + -0.3315 0 3.0000 + -0.3244 0 2.0000 + -0.3229 0 2.0000 + -0.3146 0 1.0000 + -0.2642 0 2.0000 + -0.2568 0 2.0000 + -0.2500 0 1.0000 + + +logrank stat for this cutpoint: 9.29754 + ------------------------------------------- + +node assignments: + 16 + 16 + 9 + 16 + 15 + 16 + 13 + 13 + 12 + 11 + 14 + 16 + 16 + 14 + 12 + 5 + 11 + 11 + 13 + 11 + 15 + 13 + 13 + 5 + 10 + 12 + 10 + 14 + 14 + 14 + 14 + 10 + 11 + 11 + 11 + 10 + 12 + 10 + 15 + 15 + 14 + 14 + 9 + 12 + +growing node 9 + +sprouting new leaf with node 9 + + ---- view of leaf_data ---- + + 7.9900e+02 9.3750e-01 6.2500e-02 + 9.4300e+02 8.1250e-01 1.9583e-01 + 1.3600e+03 7.5000e-01 2.7276e-01 + 1.6900e+03 5.2500e-01 5.7276e-01 + 1.7860e+03 3.7500e-01 8.5847e-01 + + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 4.1000e+01 8.8889e-01 1.1111e-01 + 1.1000e+02 7.7778e-01 2.3611e-01 + 3.3400e+02 6.6667e-01 3.7897e-01 + 3.8800e+02 4.4444e-01 7.1230e-01 + 4.0000e+02 3.3333e-01 9.6230e-01 + + +growing node 11 + +sprouting new leaf with node 11 + + ---- view of leaf_data ---- + + 7.7000e+01 8.0000e-01 2.0000e-01 + 2.6400e+02 6.6667e-01 3.6667e-01 + 3.2100e+02 5.3333e-01 5.6667e-01 + 5.4900e+02 4.6667e-01 6.9167e-01 + 5.9700e+02 4.0000e-01 8.3452e-01 + + +growing node 12 + +sprouting new leaf with node 12 + + ---- view of leaf_data ---- + + 1.3100e+02 7.0000e-01 3.0000e-01 + 1.4000e+02 4.0000e-01 7.2857e-01 + 2.1600e+02 3.0000e-01 9.7857e-01 + 3.2600e+02 1.0000e-01 1.6452e+00 + 6.9400e+02 0 2.6452e+00 + + +growing node 13 + +sprouting new leaf with node 13 + + ---- view of leaf_data ---- + + 2.0550e+03 9.4643e-01 5.3571e-02 + 2.0900e+03 9.2857e-01 7.2439e-02 + 2.4190e+03 9.0126e-01 1.0185e-01 + 2.5830e+03 8.6788e-01 1.3889e-01 + 3.8390e+03 7.7145e-01 2.5000e-01 + + +growing node 14 + + ---- view of x_node ---- + + 1.0000 3.0000 10.7000 + 2.0000 4.0000 11.9000 + 2.0000 3.0000 11.4000 + 1.0000 4.0000 10.0000 + 1.0000 4.0000 10.0000 + 1.0000 4.0000 9.6000 + 1.0000 4.0000 10.0000 + 1.0000 4.0000 10.7000 + 1.0000 3.0000 10.1000 + 1.0000 4.0000 10.1000 + 1.0000 4.0000 10.5000 + 1.0000 4.0000 9.5000 + 1.0000 4.0000 10.1000 + 1.0000 3.0000 9.9000 + 1.0000 4.0000 9.5000 + 1.0000 3.0000 10.9000 + 1.0000 3.0000 10.1000 + 1.0000 3.0000 9.7000 + 1.0000 4.0000 10.9000 + 1.0000 4.0000 10.0000 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 1.0300e+03 0 + 1.0840e+03 0 + 1.1650e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2340e+03 0 + 1.2950e+03 0 + 1.3490e+03 0 + 1.4350e+03 0 + 1.4440e+03 1.0000e+00 + 1.4550e+03 0 + 1.5040e+03 0 + 1.5360e+03 1.0000e+00 + 1.5690e+03 0 + 1.7690e+03 0 + 1.7700e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.34347 -- next: -1.34347 -- N events: 0 -- N risk: 1 +current value: -1.34347 -- next: -1.29185 -- N events: 0 -- N risk: 2 +current value: -1.29185 -- next: -1.25137 -- N events: 0 -- N risk: 4 +current value: -1.25137 -- next: -1.19975 -- N events: 0 -- N risk: 7 +current value: -1.19975 -- next: -1.10765 -- N events: 0 -- N risk: 9 +current value: -1.10765 -- next: -1.10765 -- N events: 0 -- N risk: 12 +current value: -1.10765 -- next: -0.975069 -- N events: 1 -- N risk: 13 + +lower cutpoint: -1.10765 + - n_events, left node: 1 + - n_risk, left node: 13 + +----- finding upper bound for cut-points ----- +current value: 20.5564 ---- next value: 19.9633 ---- N events: 1 ---- N risk: 1 +current value: 19.9633 ---- next value: 0.498545 ---- N events: 2 ---- N risk: 2 +current value: 0.498545 ---- next value: -0.0540606 ---- N events: 2 ---- N risk: 3 +current value: -0.0540606 ---- next value: -0.0945364 ---- N events: 2 ---- N risk: 5 + +upper cutpoint: -0.0945364 + - n_events, right node: 2 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.1076 + -0.8830 + -0.7281 + -0.3304 + -0.1866 + + +testing cutpoint: -1.10765 + + ---- view of lincomb & g_node & w_node ---- + + -1.3435 0 1.0000 + -1.3435 0 1.0000 + -1.2918 0 2.0000 + -1.2514 0 3.0000 + -1.1997 0 2.0000 + -1.1076 0 3.0000 + -1.1076 0 1.0000 + -0.9751 1.0000 2.0000 + -0.9639 1.0000 2.0000 + -0.9234 1.0000 1.0000 + -0.9234 1.0000 2.0000 + -0.9234 1.0000 2.0000 + -0.8830 1.0000 1.0000 + -0.8830 1.0000 2.0000 + -0.8830 1.0000 1.0000 + -0.8830 1.0000 1.0000 + -0.8830 1.0000 2.0000 + -0.7909 1.0000 1.0000 + -0.7909 1.0000 3.0000 + -0.7909 1.0000 2.0000 + + +logrank stat for this cutpoint: 3.16921 + ------------------------------------------- + +testing cutpoint: -0.882968 + + ---- view of lincomb & g_node & w_node ---- + + -1.3435 0 1.0000 + -1.3435 0 1.0000 + -1.2918 0 2.0000 + -1.2514 0 3.0000 + -1.1997 0 2.0000 + -1.1076 0 3.0000 + -1.1076 0 1.0000 + -0.9751 0 2.0000 + -0.9639 0 2.0000 + -0.9234 0 1.0000 + -0.9234 0 2.0000 + -0.9234 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.7909 1.0000 1.0000 + -0.7909 1.0000 3.0000 + -0.7909 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.06258 + ------------------------------------------- + +testing cutpoint: -0.728093 + + ---- view of lincomb & g_node & w_node ---- + + -1.3435 0 1.0000 + -1.3435 0 1.0000 + -1.2918 0 2.0000 + -1.2514 0 3.0000 + -1.1997 0 2.0000 + -1.1076 0 3.0000 + -1.1076 0 1.0000 + -0.9751 0 2.0000 + -0.9639 0 2.0000 + -0.9234 0 1.0000 + -0.9234 0 2.0000 + -0.9234 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.7909 0 1.0000 + -0.7909 0 3.0000 + -0.7909 0 2.0000 + + +logrank stat for this cutpoint: 4.03228 + ------------------------------------------- + +testing cutpoint: -0.330363 + + ---- view of lincomb & g_node & w_node ---- + + -1.3435 0 1.0000 + -1.3435 0 1.0000 + -1.2918 0 2.0000 + -1.2514 0 3.0000 + -1.1997 0 2.0000 + -1.1076 0 3.0000 + -1.1076 0 1.0000 + -0.9751 0 2.0000 + -0.9639 0 2.0000 + -0.9234 0 1.0000 + -0.9234 0 2.0000 + -0.9234 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.7909 0 1.0000 + -0.7909 0 3.0000 + -0.7909 0 2.0000 + + +logrank stat for this cutpoint: 1.23608 + ------------------------------------------- + +testing cutpoint: -0.186637 + + ---- view of lincomb & g_node & w_node ---- + + -1.3435 0 1.0000 + -1.3435 0 1.0000 + -1.2918 0 2.0000 + -1.2514 0 3.0000 + -1.1997 0 2.0000 + -1.1076 0 3.0000 + -1.1076 0 1.0000 + -0.9751 0 2.0000 + -0.9639 0 2.0000 + -0.9234 0 1.0000 + -0.9234 0 2.0000 + -0.9234 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.8830 0 1.0000 + -0.8830 0 1.0000 + -0.8830 0 2.0000 + -0.7909 0 1.0000 + -0.7909 0 3.0000 + -0.7909 0 2.0000 + + +logrank stat for this cutpoint: 0.43425 + ------------------------------------------- + +node assignments: + 18 + 10 + 16 + 15 + 16 + 12 + 10 + 11 + 17 + 11 + 5 + 11 + 12 + 16 + 12 + 18 + 18 + 10 + 5 + 11 + 15 + 15 + 12 + 10 + 11 + 9 + 12 + 15 + 17 + 11 + 13 + 10 + 11 + +growing node 15 + + ---- view of x_node ---- + + 1.0100e+02 3.1900e+00 2.6000e+02 + 9.1000e+01 3.4300e+00 2.7500e+02 + 1.0300e+02 3.6000e+00 3.3200e+02 + 2.1000e+02 3.3100e+00 6.0800e+02 + 1.4400e+02 3.6100e+00 4.2600e+02 + 1.2700e+02 3.7600e+00 3.4200e+02 + 1.3300e+02 3.0700e+00 1.0000e+03 + 1.8800e+02 3.5000e+00 3.7300e+02 + 6.2000e+01 3.5300e+00 2.2500e+02 + 1.4600e+02 4.2300e+00 2.8000e+02 + 1.7400e+02 3.2100e+00 1.6000e+03 + 9.8000e+01 3.6500e+00 4.0800e+02 + 1.7700e+02 3.3500e+00 5.7800e+02 + 2.1300e+02 4.0900e+00 3.2200e+02 + 1.0900e+02 3.5400e+00 4.8600e+02 + 9.8000e+01 3.4800e+00 1.8700e+02 + 6.2000e+01 3.3600e+00 2.2600e+02 + 8.3000e+01 4.0600e+00 2.9600e+02 + 1.1800e+02 3.3700e+00 4.5000e+02 + 1.5500e+02 4.2200e+00 6.6000e+02 + + + ---- view of y_node ---- + + 1.8600e+02 1.0000e+00 + 5.3300e+02 0 + 7.8600e+02 1.0000e+00 + 7.9000e+02 1.0000e+00 + 1.2160e+03 0 + 1.2930e+03 0 + 1.3020e+03 0 + 1.4870e+03 1.0000e+00 + 1.5760e+03 1.0000e+00 + 1.6140e+03 0 + 1.6570e+03 1.0000e+00 + 1.7410e+03 1.0000e+00 + 1.7760e+03 0 + 1.8320e+03 0 + 2.1050e+03 1.0000e+00 + 2.3320e+03 0 + 2.3630e+03 0 + 2.4520e+03 0 + 2.4750e+03 0 + 2.6890e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.27239 -- next: -1.10472 -- N events: 0 -- N risk: 2 +current value: -1.10472 -- next: -1.03921 -- N events: 0 -- N risk: 3 +current value: -1.03921 -- next: -0.764163 -- N events: 0 -- N risk: 5 +current value: -0.764163 -- next: -0.652607 -- N events: 0 -- N risk: 7 +current value: -0.652607 -- next: -0.636941 -- N events: 3 -- N risk: 10 + +lower cutpoint: -0.652607 + - n_events, left node: 3 + - n_risk, left node: 10 + +----- finding upper bound for cut-points ----- +current value: 5.39049 ---- next value: 3.19471 ---- N events: 1 ---- N risk: 1 +current value: 3.19471 ---- next value: 0.781602 ---- N events: 1 ---- N risk: 2 +current value: 0.781602 ---- next value: 0.713065 ---- N events: 1 ---- N risk: 4 +current value: 0.713065 ---- next value: 0.692374 ---- N events: 3 ---- N risk: 6 + +upper cutpoint: 0.692374 + - n_events, right node: 3 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.4783 + -0.3292 + -0.2667 + -0.2465 + 0.0083 + + +testing cutpoint: -0.478319 + + ---- view of lincomb & g_node & w_node ---- + + -1.2724 0 2.0000 + -1.1047 0 1.0000 + -1.0392 0 2.0000 + -0.7642 0 2.0000 + -0.6526 0 3.0000 + -0.6369 0 2.0000 + -0.5222 0 1.0000 + -0.4783 0 2.0000 + -0.4280 1.0000 2.0000 + -0.4088 1.0000 1.0000 + -0.3940 1.0000 1.0000 + -0.3339 1.0000 1.0000 + -0.3292 1.0000 2.0000 + -0.2667 1.0000 2.0000 + -0.2465 1.0000 1.0000 + -0.2361 1.0000 1.0000 + -0.1556 1.0000 1.0000 + -0.1458 1.0000 1.0000 + -0.1008 1.0000 1.0000 + -0.0509 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.08018 + ------------------------------------------- + +testing cutpoint: -0.329238 + + ---- view of lincomb & g_node & w_node ---- + + -1.2724 0 2.0000 + -1.1047 0 1.0000 + -1.0392 0 2.0000 + -0.7642 0 2.0000 + -0.6526 0 3.0000 + -0.6369 0 2.0000 + -0.5222 0 1.0000 + -0.4783 0 2.0000 + -0.4280 0 2.0000 + -0.4088 0 1.0000 + -0.3940 0 1.0000 + -0.3339 0 1.0000 + -0.3292 0 2.0000 + -0.2667 1.0000 2.0000 + -0.2465 1.0000 1.0000 + -0.2361 1.0000 1.0000 + -0.1556 1.0000 1.0000 + -0.1458 1.0000 1.0000 + -0.1008 1.0000 1.0000 + -0.0509 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.88497 + ------------------------------------------- + +testing cutpoint: -0.266698 + + ---- view of lincomb & g_node & w_node ---- + + -1.2724 0 2.0000 + -1.1047 0 1.0000 + -1.0392 0 2.0000 + -0.7642 0 2.0000 + -0.6526 0 3.0000 + -0.6369 0 2.0000 + -0.5222 0 1.0000 + -0.4783 0 2.0000 + -0.4280 0 2.0000 + -0.4088 0 1.0000 + -0.3940 0 1.0000 + -0.3339 0 1.0000 + -0.3292 0 2.0000 + -0.2667 0 2.0000 + -0.2465 1.0000 1.0000 + -0.2361 1.0000 1.0000 + -0.1556 1.0000 1.0000 + -0.1458 1.0000 1.0000 + -0.1008 1.0000 1.0000 + -0.0509 1.0000 1.0000 + + +logrank stat for this cutpoint: 7.33381 + ------------------------------------------- + +testing cutpoint: -0.246499 + + ---- view of lincomb & g_node & w_node ---- + + -1.2724 0 2.0000 + -1.1047 0 1.0000 + -1.0392 0 2.0000 + -0.7642 0 2.0000 + -0.6526 0 3.0000 + -0.6369 0 2.0000 + -0.5222 0 1.0000 + -0.4783 0 2.0000 + -0.4280 0 2.0000 + -0.4088 0 1.0000 + -0.3940 0 1.0000 + -0.3339 0 1.0000 + -0.3292 0 2.0000 + -0.2667 0 2.0000 + -0.2465 0 1.0000 + -0.2361 1.0000 1.0000 + -0.1556 1.0000 1.0000 + -0.1458 1.0000 1.0000 + -0.1008 1.0000 1.0000 + -0.0509 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.54989 + ------------------------------------------- + +testing cutpoint: 0.00833389 + + ---- view of lincomb & g_node & w_node ---- + + -1.2724 0 2.0000 + -1.1047 0 1.0000 + -1.0392 0 2.0000 + -0.7642 0 2.0000 + -0.6526 0 3.0000 + -0.6369 0 2.0000 + -0.5222 0 1.0000 + -0.4783 0 2.0000 + -0.4280 0 2.0000 + -0.4088 0 1.0000 + -0.3940 0 1.0000 + -0.3339 0 1.0000 + -0.3292 0 2.0000 + -0.2667 0 2.0000 + -0.2465 0 1.0000 + -0.2361 0 1.0000 + -0.1556 0 1.0000 + -0.1458 0 1.0000 + -0.1008 0 1.0000 + -0.0509 0 1.0000 + + +logrank stat for this cutpoint: 10.8641 + ------------------------------------------- + +node assignments: + 10 + 11 + 19 + 12 + 5 + 11 + 16 + 19 + 16 + 16 + 13 + 5 + 12 + 20 + 20 + 17 + 17 + 9 + 11 + 11 + 11 + 10 + 11 + 10 + 12 + 10 + 18 + 11 + 18 + 12 + 10 + 18 + 12 + +growing node 16 + +sprouting new leaf with node 16 + + ---- view of leaf_data ---- + + 5.5200e+02 9.3750e-01 6.2500e-02 + 8.5300e+02 8.6538e-01 1.3942e-01 + 1.0120e+03 7.9327e-01 2.2276e-01 + 1.0800e+03 6.4904e-01 4.0457e-01 + 1.0830e+03 5.7692e-01 5.1569e-01 + + +growing node 17 + +sprouting new leaf with node 17 + + ---- view of leaf_data ---- + + 9.0400e+02 9.6552e-01 3.4483e-02 + 9.3000e+02 9.3103e-01 7.0197e-02 + 1.2120e+03 8.5007e-01 1.5715e-01 + 1.4440e+03 8.0757e-01 2.0715e-01 + 1.5360e+03 7.6271e-01 2.6271e-01 + + +growing node 18 + + ---- view of x_node ---- + + 1.0700e+01 1.0000e+00 3.4500e+02 + 1.1900e+01 2.0000e+00 3.2500e+02 + 1.1400e+01 2.0000e+00 4.2000e+02 + 1.0700e+01 2.0000e+00 5.1800e+02 + 1.0100e+01 1.0000e+00 3.7300e+02 + 1.0500e+01 1.0000e+00 3.9300e+02 + 1.0100e+01 2.0000e+00 3.8700e+02 + 1.0900e+01 2.0000e+00 2.7900e+02 + 1.0900e+01 2.0000e+00 2.9900e+02 + 1.1500e+01 2.0000e+00 3.0200e+02 + 1.0600e+01 2.0000e+00 2.8200e+02 + 1.0600e+01 1.0000e+00 6.1400e+02 + 1.0300e+01 2.0000e+00 2.4800e+02 + 1.0600e+01 2.0000e+00 2.5700e+02 + 1.0100e+01 1.0000e+00 3.3100e+02 + 1.1000e+01 1.0000e+00 2.3100e+02 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2340e+03 0 + 1.2950e+03 0 + 1.4350e+03 0 + 1.5040e+03 0 + 1.7690e+03 0 + 1.9790e+03 0 + 2.2970e+03 1.0000e+00 + 2.3860e+03 1.0000e+00 + 2.5560e+03 0 + 2.5980e+03 1.0000e+00 + 2.7960e+03 1.0000e+00 + 3.5840e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.84018 -- next: -1.47462 -- N events: 3 -- N risk: 3 +current value: -1.47462 -- next: -1.41711 -- N events: 3 -- N risk: 5 + +lower cutpoint: -1.47462 + - n_events, left node: 3 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.39467 ---- next value: 2.28639 ---- N events: 1 ---- N risk: 1 +current value: 2.28639 ---- next value: 2.24163 ---- N events: 2 ---- N risk: 2 +current value: 2.24163 ---- next value: 1.51135 ---- N events: 3 ---- N risk: 3 +current value: 1.51135 ---- next value: 1.34155 ---- N events: 3 ---- N risk: 4 +current value: 1.34155 ---- next value: 0.622945 ---- N events: 5 ---- N risk: 6 + +upper cutpoint: 0.622945 + - n_events, right node: 5 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.8560 + -0.6832 + -0.1738 + 0.0438 + 0.6229 + + +testing cutpoint: -0.856032 + + ---- view of lincomb & g_node & w_node ---- + + -1.8402 0 3.0000 + -1.4746 0 2.0000 + -1.4171 0 1.0000 + -0.8560 0 1.0000 + -0.7257 1.0000 1.0000 + -0.6832 1.0000 2.0000 + -0.1738 1.0000 2.0000 + 0.0438 1.0000 3.0000 + 0.2392 1.0000 1.0000 + 0.4489 1.0000 1.0000 + 0.6229 1.0000 2.0000 + 1.3416 1.0000 2.0000 + 1.5113 1.0000 1.0000 + 2.2416 1.0000 1.0000 + 2.2864 1.0000 1.0000 + 2.3947 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.64645 + ------------------------------------------- + +testing cutpoint: -0.683236 + + ---- view of lincomb & g_node & w_node ---- + + -1.8402 0 3.0000 + -1.4746 0 2.0000 + -1.4171 0 1.0000 + -0.8560 0 1.0000 + -0.7257 0 1.0000 + -0.6832 0 2.0000 + -0.1738 1.0000 2.0000 + 0.0438 1.0000 3.0000 + 0.2392 1.0000 1.0000 + 0.4489 1.0000 1.0000 + 0.6229 1.0000 2.0000 + 1.3416 1.0000 2.0000 + 1.5113 1.0000 1.0000 + 2.2416 1.0000 1.0000 + 2.2864 1.0000 1.0000 + 2.3947 1.0000 1.0000 + + +logrank stat for this cutpoint: 8.56305 + ------------------------------------------- + +testing cutpoint: -0.173757 + + ---- view of lincomb & g_node & w_node ---- + + -1.8402 0 3.0000 + -1.4746 0 2.0000 + -1.4171 0 1.0000 + -0.8560 0 1.0000 + -0.7257 0 1.0000 + -0.6832 0 2.0000 + -0.1738 0 2.0000 + 0.0438 1.0000 3.0000 + 0.2392 1.0000 1.0000 + 0.4489 1.0000 1.0000 + 0.6229 1.0000 2.0000 + 1.3416 1.0000 2.0000 + 1.5113 1.0000 1.0000 + 2.2416 1.0000 1.0000 + 2.2864 1.0000 1.0000 + 2.3947 1.0000 1.0000 + + +logrank stat for this cutpoint: 10.1591 + ------------------------------------------- + +testing cutpoint: 0.0438364 + + ---- view of lincomb & g_node & w_node ---- + + -1.8402 0 3.0000 + -1.4746 0 2.0000 + -1.4171 0 1.0000 + -0.8560 0 1.0000 + -0.7257 0 1.0000 + -0.6832 0 2.0000 + -0.1738 0 2.0000 + 0.0438 0 3.0000 + 0.2392 1.0000 1.0000 + 0.4489 1.0000 1.0000 + 0.6229 1.0000 2.0000 + 1.3416 1.0000 2.0000 + 1.5113 1.0000 1.0000 + 2.2416 1.0000 1.0000 + 2.2864 1.0000 1.0000 + 2.3947 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.2167 + ------------------------------------------- + +testing cutpoint: 0.622945 + + ---- view of lincomb & g_node & w_node ---- + + -1.8402 0 3.0000 + -1.4746 0 2.0000 + -1.4171 0 1.0000 + -0.8560 0 1.0000 + -0.7257 0 1.0000 + -0.6832 0 2.0000 + -0.1738 0 2.0000 + 0.0438 0 3.0000 + 0.2392 0 1.0000 + 0.4489 0 1.0000 + 0.6229 0 2.0000 + 1.3416 1.0000 2.0000 + 1.5113 1.0000 1.0000 + 2.2416 1.0000 1.0000 + 2.2864 1.0000 1.0000 + 2.3947 1.0000 1.0000 + + +logrank stat for this cutpoint: 8.12951 + ------------------------------------------- + +node assignments: + 22 + 12 + 19 + 10 + 20 + 10 + 10 + 12 + 21 + 12 + 11 + 10 + 11 + 12 + 11 + 10 + +growing node 19 + + ---- view of x_node ---- + + 9.1000e+01 1.0000e+00 1.1420e+03 + 1.0300e+02 2.0000e+00 1.4920e+03 + 1.2700e+02 2.0000e+00 1.6530e+03 + 1.8800e+02 2.0000e+00 1.0090e+03 + 6.2000e+01 2.0000e+00 9.3300e+02 + 1.4600e+02 2.0000e+00 3.7700e+02 + 2.1300e+02 2.0000e+00 8.2400e+02 + 9.8000e+01 2.0000e+00 6.5400e+02 + 8.3000e+01 2.0000e+00 1.0320e+03 + 2.0600e+02 2.0000e+00 1.8680e+03 + 1.0600e+02 2.0000e+00 8.5800e+02 + 1.2100e+02 2.0000e+00 8.3600e+02 + 8.4000e+01 2.0000e+00 2.0450e+03 + 1.5600e+02 2.0000e+00 1.5840e+03 + 8.3000e+01 1.0000e+00 8.4300e+02 + 9.0000e+01 2.0000e+00 7.5400e+02 + 1.3000e+02 2.0000e+00 1.1810e+03 + 1.6600e+02 2.0000e+00 1.6890e+03 + 7.9000e+01 2.0000e+00 1.1040e+03 + 1.4300e+02 2.0000e+00 4.3320e+03 + + + ---- view of y_node ---- + + 5.3300e+02 0 + 7.8600e+02 1.0000e+00 + 1.2930e+03 0 + 1.4870e+03 1.0000e+00 + 1.5760e+03 1.0000e+00 + 1.6140e+03 0 + 1.8320e+03 0 + 2.3320e+03 0 + 2.4520e+03 0 + 2.8350e+03 0 + 2.9760e+03 0 + 3.1500e+03 0 + 3.3580e+03 1.0000e+00 + 3.4220e+03 0 + 3.4450e+03 0 + 3.4450e+03 1.0000e+00 + 3.5770e+03 0 + 3.5810e+03 0 + 3.7620e+03 1.0000e+00 + 3.8530e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.151 -- next: -0.725468 -- N events: 1 -- N risk: 1 +current value: -0.725468 -- next: -0.679275 -- N events: 1 -- N risk: 3 +current value: -0.679275 -- next: -0.31774 -- N events: 1 -- N risk: 4 +current value: -0.31774 -- next: -0.298695 -- N events: 1 -- N risk: 6 + +lower cutpoint: -0.31774 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 0.459977 ---- next value: 0.369419 ---- N events: 1 ---- N risk: 1 +current value: 0.369419 ---- next value: 0.349949 ---- N events: 4 ---- N risk: 4 +current value: 0.349949 ---- next value: 0.328203 ---- N events: 4 ---- N risk: 6 + +upper cutpoint: 0.328203 + - n_events, right node: 4 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.1917 + -0.0359 + -0.0138 + 0.1049 + 0.1126 + + +testing cutpoint: -0.191712 + + ---- view of lincomb & g_node & w_node ---- + + -1.1510 0 1.0000 + -0.7255 0 2.0000 + -0.6793 0 1.0000 + -0.3177 0 2.0000 + -0.2987 0 2.0000 + -0.1917 0 2.0000 + -0.0893 1.0000 1.0000 + -0.0359 1.0000 2.0000 + -0.0138 1.0000 1.0000 + 0.0354 1.0000 1.0000 + 0.1049 1.0000 2.0000 + 0.1126 1.0000 2.0000 + 0.1570 1.0000 1.0000 + 0.2341 1.0000 1.0000 + 0.2392 1.0000 2.0000 + 0.2605 1.0000 1.0000 + 0.2787 1.0000 2.0000 + 0.3184 1.0000 1.0000 + 0.3282 1.0000 1.0000 + 0.3499 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.126299 + ------------------------------------------- + +testing cutpoint: -0.0359329 + + ---- view of lincomb & g_node & w_node ---- + + -1.1510 0 1.0000 + -0.7255 0 2.0000 + -0.6793 0 1.0000 + -0.3177 0 2.0000 + -0.2987 0 2.0000 + -0.1917 0 2.0000 + -0.0893 0 1.0000 + -0.0359 0 2.0000 + -0.0138 1.0000 1.0000 + 0.0354 1.0000 1.0000 + 0.1049 1.0000 2.0000 + 0.1126 1.0000 2.0000 + 0.1570 1.0000 1.0000 + 0.2341 1.0000 1.0000 + 0.2392 1.0000 2.0000 + 0.2605 1.0000 1.0000 + 0.2787 1.0000 2.0000 + 0.3184 1.0000 1.0000 + 0.3282 1.0000 1.0000 + 0.3499 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.813352 + ------------------------------------------- + +testing cutpoint: -0.0138088 + + ---- view of lincomb & g_node & w_node ---- + + -1.1510 0 1.0000 + -0.7255 0 2.0000 + -0.6793 0 1.0000 + -0.3177 0 2.0000 + -0.2987 0 2.0000 + -0.1917 0 2.0000 + -0.0893 0 1.0000 + -0.0359 0 2.0000 + -0.0138 0 1.0000 + 0.0354 1.0000 1.0000 + 0.1049 1.0000 2.0000 + 0.1126 1.0000 2.0000 + 0.1570 1.0000 1.0000 + 0.2341 1.0000 1.0000 + 0.2392 1.0000 2.0000 + 0.2605 1.0000 1.0000 + 0.2787 1.0000 2.0000 + 0.3184 1.0000 1.0000 + 0.3282 1.0000 1.0000 + 0.3499 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.930918 + ------------------------------------------- + +testing cutpoint: 0.104883 + + ---- view of lincomb & g_node & w_node ---- + + -1.1510 0 1.0000 + -0.7255 0 2.0000 + -0.6793 0 1.0000 + -0.3177 0 2.0000 + -0.2987 0 2.0000 + -0.1917 0 2.0000 + -0.0893 0 1.0000 + -0.0359 0 2.0000 + -0.0138 0 1.0000 + 0.0354 0 1.0000 + 0.1049 0 2.0000 + 0.1126 1.0000 2.0000 + 0.1570 1.0000 1.0000 + 0.2341 1.0000 1.0000 + 0.2392 1.0000 2.0000 + 0.2605 1.0000 1.0000 + 0.2787 1.0000 2.0000 + 0.3184 1.0000 1.0000 + 0.3282 1.0000 1.0000 + 0.3499 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.25938 + ------------------------------------------- + +testing cutpoint: 0.112643 + + ---- view of lincomb & g_node & w_node ---- + + -1.1510 0 1.0000 + -0.7255 0 2.0000 + -0.6793 0 1.0000 + -0.3177 0 2.0000 + -0.2987 0 2.0000 + -0.1917 0 2.0000 + -0.0893 0 1.0000 + -0.0359 0 2.0000 + -0.0138 0 1.0000 + 0.0354 0 1.0000 + 0.1049 0 2.0000 + 0.1126 0 2.0000 + 0.1570 1.0000 1.0000 + 0.2341 1.0000 1.0000 + 0.2392 1.0000 2.0000 + 0.2605 1.0000 1.0000 + 0.2787 1.0000 2.0000 + 0.3184 1.0000 1.0000 + 0.3282 1.0000 1.0000 + 0.3499 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.51249 + ------------------------------------------- + +best split stat, 2.51249, was < split_min_stat, 3.84 +sprouting new leaf with node 19 + + ---- view of leaf_data ---- + + 7.8600e+02 9.3750e-01 6.2500e-02 + 1.4870e+03 8.7054e-01 1.3393e-01 + 1.5760e+03 8.3705e-01 1.7239e-01 + 3.3580e+03 7.7726e-01 2.4382e-01 + 3.4450e+03 7.0660e-01 3.3473e-01 + + +growing node 20 + + ---- view of x_node ---- + + 2.0000e+00 5.8817e+01 2.6000e+02 + 2.0000e+00 3.6079e+01 6.0800e+02 + 2.0000e+00 4.3066e+01 4.2600e+02 + 2.0000e+00 6.0537e+01 1.0000e+03 + 2.0000e+00 5.2758e+01 1.6000e+03 + 2.0000e+00 5.2444e+01 4.0800e+02 + 1.0000e+00 3.4379e+01 5.7800e+02 + 2.0000e+00 3.8910e+01 4.8600e+02 + 2.0000e+00 5.7040e+01 2.2600e+02 + 1.0000e+00 3.6493e+01 4.5000e+02 + 1.0000e+00 3.3476e+01 6.6000e+02 + + + ---- view of y_node ---- + + 1.8600e+02 1.0000e+00 + 7.9000e+02 1.0000e+00 + 1.2160e+03 0 + 1.3020e+03 0 + 1.6570e+03 1.0000e+00 + 1.7410e+03 1.0000e+00 + 1.7760e+03 0 + 2.1050e+03 1.0000e+00 + 2.3630e+03 0 + 2.4750e+03 0 + 2.6890e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.87672 -- next: -1.41022 -- N events: 0 -- N risk: 1 +current value: -1.41022 -- next: -1.13588 -- N events: 0 -- N risk: 3 +current value: -1.13588 -- next: -0.777821 -- N events: 2 -- N risk: 5 + +lower cutpoint: -1.13588 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 3.23164 ---- next value: 1.41495 ---- N events: 1 ---- N risk: 1 +current value: 1.41495 ---- next value: 1.16077 ---- N events: 3 ---- N risk: 3 +current value: 1.16077 ---- next value: 0.925898 ---- N events: 3 ---- N risk: 4 +current value: 0.925898 ---- next value: 0.535008 ---- N events: 5 ---- N risk: 6 + +upper cutpoint: 0.535008 + - n_events, right node: 5 + - n_risk, right node: 6 + +testing cutpoint: -1.13588 + + ---- view of lincomb & g_node & w_node ---- + + -1.8767 0 1.0000 + -1.4102 0 2.0000 + -1.1359 0 2.0000 + -0.7778 1.0000 1.0000 + -0.7745 1.0000 3.0000 + -0.0246 1.0000 3.0000 + 0.5350 1.0000 2.0000 + 0.9259 1.0000 2.0000 + 1.1608 1.0000 1.0000 + 1.4150 1.0000 2.0000 + 3.2316 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.19187 + ------------------------------------------- + +testing cutpoint: -0.777821 + + ---- view of lincomb & g_node & w_node ---- + + -1.8767 0 1.0000 + -1.4102 0 2.0000 + -1.1359 0 2.0000 + -0.7778 0 1.0000 + -0.7745 1.0000 3.0000 + -0.0246 1.0000 3.0000 + 0.5350 1.0000 2.0000 + 0.9259 1.0000 2.0000 + 1.1608 1.0000 1.0000 + 1.4150 1.0000 2.0000 + 3.2316 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.42133 + ------------------------------------------- + +testing cutpoint: -0.774514 + + ---- view of lincomb & g_node & w_node ---- + + -1.8767 0 1.0000 + -1.4102 0 2.0000 + -1.1359 0 2.0000 + -0.7778 0 1.0000 + -0.7745 0 3.0000 + -0.0246 1.0000 3.0000 + 0.5350 1.0000 2.0000 + 0.9259 1.0000 2.0000 + 1.1608 1.0000 1.0000 + 1.4150 1.0000 2.0000 + 3.2316 1.0000 1.0000 + + +logrank stat for this cutpoint: 9.49708 + ------------------------------------------- + +testing cutpoint: -0.0246133 + + ---- view of lincomb & g_node & w_node ---- + + -1.8767 0 1.0000 + -1.4102 0 2.0000 + -1.1359 0 2.0000 + -0.7778 0 1.0000 + -0.7745 0 3.0000 + -0.0246 0 3.0000 + 0.5350 1.0000 2.0000 + 0.9259 1.0000 2.0000 + 1.1608 1.0000 1.0000 + 1.4150 1.0000 2.0000 + 3.2316 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.39872 + ------------------------------------------- + +testing cutpoint: 0.535008 + + ---- view of lincomb & g_node & w_node ---- + + -1.8767 0 1.0000 + -1.4102 0 2.0000 + -1.1359 0 2.0000 + -0.7778 0 1.0000 + -0.7745 0 3.0000 + -0.0246 0 3.0000 + 0.5350 0 2.0000 + 0.9259 1.0000 2.0000 + 1.1608 1.0000 1.0000 + 1.4150 1.0000 2.0000 + 3.2316 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.83739 + ------------------------------------------- + +node assignments: + 11 + 21 + 12 + 10 + 11 + 23 + 10 + 12 + 12 + 11 + 12 + +growing node 21 + +sprouting new leaf with node 21 + + ---- view of leaf_data ---- + + 1.9800e+02 9.1667e-01 8.3333e-02 + 2.5980e+03 6.1111e-01 4.1667e-01 + 2.7960e+03 1.5278e-01 1.1667e+00 + 3.5840e+03 0 2.1667e+00 + + +growing node 22 + +sprouting new leaf with node 22 + + ---- view of leaf_data ---- + + 4.6000e+02 9.2308e-01 7.6923e-02 + 6.1100e+02 8.4615e-01 1.6026e-01 + 1.1650e+03 7.6923e-01 2.5117e-01 + 2.2970e+03 3.0769e-01 8.5117e-01 + 2.3860e+03 0 1.8512e+00 + + +growing node 23 + +sprouting new leaf with node 23 + + ---- view of leaf_data ---- + + 1.8600e+02 8.8889e-01 1.1111e-01 + 2.6890e+03 0 1.1111e+00 + + +growing node 24 + +sprouting new leaf with node 24 + + ---- view of leaf_data ---- + + 7.9000e+02 8.1818e-01 1.8182e-01 + 1.6570e+03 6.8182e-01 3.4848e-01 + 1.7410e+03 2.7273e-01 9.4848e-01 + 2.1050e+03 0 1.9485e+00 + + +Effective sample size: 276 +Effective number of events: 95 +Number of unique rows in x: 183 + +Max number of nodes for this tree: 189 +Max number of leaves for this tree: 95 + +growing node 0 + + ---- view of x_node ---- + + 1.2900e+01 1.7900e+01 7.0500e+02 + 1.1500e+01 1.2600e+01 9.1800e+02 + 1.1600e+01 1.2200e+01 2.1320e+03 + 1.1100e+01 2.5000e+00 1.2730e+03 + 1.2400e+01 1.1400e+01 9.6100e+02 + 1.4100e+01 2.4000e+00 1.0560e+03 + 1.2000e+01 3.2000e+00 8.1500e+02 + 1.3200e+01 1.3000e+00 1.1120e+03 + 1.0700e+01 1.1000e+00 1.8600e+03 + 1.5200e+01 2.4500e+01 3.7400e+03 + 1.1700e+01 1.7400e+01 6.0648e+03 + 1.3600e+01 3.6000e+00 5.9100e+02 + 1.1000e+01 3.6000e+00 7.2770e+03 + 1.2100e+01 6.6000e+00 1.8190e+03 + 1.1000e+01 1.4100e+01 1.8330e+03 + 1.1400e+01 4.5000e+00 1.0200e+03 + 1.2200e+01 1.4000e+00 1.6260e+03 + 9.5000e+00 6.0000e-01 9.4400e+02 + 1.3000e+01 1.7200e+01 1.9750e+03 + 1.1400e+01 2.0000e+00 3.1960e+03 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9100e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.71086 -- next: -1.70118 -- N events: 0 -- N risk: 2 +current value: -1.70118 -- next: -1.69005 -- N events: 2 -- N risk: 4 +current value: -1.69005 -- next: -1.65518 -- N events: 2 -- N risk: 5 + +lower cutpoint: -1.69005 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 11.1993 ---- next value: 9.61411 ---- N events: 1 ---- N risk: 1 +current value: 9.61411 ---- next value: 7.85146 ---- N events: 3 ---- N risk: 3 +current value: 7.85146 ---- next value: 7.2078 ---- N events: 4 ---- N risk: 4 +current value: 7.2078 ---- next value: 6.99739 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 6.99739 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.4302 + -0.8393 + -0.6693 + -0.2376 + 1.4914 + + +testing cutpoint: -1.43019 + + ---- view of lincomb & g_node & w_node ---- + + -1.7109 0 2.0000 + -1.7012 0 2.0000 + -1.6900 0 1.0000 + -1.6552 0 4.0000 + -1.6507 0 1.0000 + -1.6355 0 2.0000 + -1.6124 0 1.0000 + -1.5929 0 2.0000 + -1.5830 0 2.0000 + -1.5680 0 1.0000 + -1.5444 0 2.0000 + -1.5340 0 1.0000 + -1.4742 0 1.0000 + -1.4739 0 2.0000 + -1.4715 0 2.0000 + -1.4702 0 2.0000 + -1.4463 0 1.0000 + -1.4415 0 1.0000 + -1.4361 0 1.0000 + -1.4326 0 2.0000 + + +logrank stat for this cutpoint: 10.5786 + ------------------------------------------- + +testing cutpoint: -0.839331 + + ---- view of lincomb & g_node & w_node ---- + + -1.7109 0 2.0000 + -1.7012 0 2.0000 + -1.6900 0 1.0000 + -1.6552 0 4.0000 + -1.6507 0 1.0000 + -1.6355 0 2.0000 + -1.6124 0 1.0000 + -1.5929 0 2.0000 + -1.5830 0 2.0000 + -1.5680 0 1.0000 + -1.5444 0 2.0000 + -1.5340 0 1.0000 + -1.4742 0 1.0000 + -1.4739 0 2.0000 + -1.4715 0 2.0000 + -1.4702 0 2.0000 + -1.4463 0 1.0000 + -1.4415 0 1.0000 + -1.4361 0 1.0000 + -1.4326 0 2.0000 + + +logrank stat for this cutpoint: 51.5425 + ------------------------------------------- + +testing cutpoint: -0.669287 + + ---- view of lincomb & g_node & w_node ---- + + -1.7109 0 2.0000 + -1.7012 0 2.0000 + -1.6900 0 1.0000 + -1.6552 0 4.0000 + -1.6507 0 1.0000 + -1.6355 0 2.0000 + -1.6124 0 1.0000 + -1.5929 0 2.0000 + -1.5830 0 2.0000 + -1.5680 0 1.0000 + -1.5444 0 2.0000 + -1.5340 0 1.0000 + -1.4742 0 1.0000 + -1.4739 0 2.0000 + -1.4715 0 2.0000 + -1.4702 0 2.0000 + -1.4463 0 1.0000 + -1.4415 0 1.0000 + -1.4361 0 1.0000 + -1.4326 0 2.0000 + + +logrank stat for this cutpoint: 70.567 + ------------------------------------------- + +testing cutpoint: -0.237564 + + ---- view of lincomb & g_node & w_node ---- + + -1.7109 0 2.0000 + -1.7012 0 2.0000 + -1.6900 0 1.0000 + -1.6552 0 4.0000 + -1.6507 0 1.0000 + -1.6355 0 2.0000 + -1.6124 0 1.0000 + -1.5929 0 2.0000 + -1.5830 0 2.0000 + -1.5680 0 1.0000 + -1.5444 0 2.0000 + -1.5340 0 1.0000 + -1.4742 0 1.0000 + -1.4739 0 2.0000 + -1.4715 0 2.0000 + -1.4702 0 2.0000 + -1.4463 0 1.0000 + -1.4415 0 1.0000 + -1.4361 0 1.0000 + -1.4326 0 2.0000 + + +logrank stat for this cutpoint: 110.827 + ------------------------------------------- + +testing cutpoint: 1.49143 + + ---- view of lincomb & g_node & w_node ---- + + -1.7109 0 2.0000 + -1.7012 0 2.0000 + -1.6900 0 1.0000 + -1.6552 0 4.0000 + -1.6507 0 1.0000 + -1.6355 0 2.0000 + -1.6124 0 1.0000 + -1.5929 0 2.0000 + -1.5830 0 2.0000 + -1.5680 0 1.0000 + -1.5444 0 2.0000 + -1.5340 0 1.0000 + -1.4742 0 1.0000 + -1.4739 0 2.0000 + -1.4715 0 2.0000 + -1.4702 0 2.0000 + -1.4463 0 1.0000 + -1.4415 0 1.0000 + -1.4361 0 1.0000 + -1.4326 0 2.0000 + + +logrank stat for this cutpoint: 145.052 + ------------------------------------------- + +node assignments: + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + +growing node 1 + + ---- view of x_node ---- + + 1.1000e+02 3.6700e+00 2.0000e+00 + 1.0800e+02 2.5600e+00 2.0000e+00 + 1.6000e+02 3.1900e+00 2.0000e+00 + 2.1300e+02 3.0800e+00 1.0000e+00 + 4.4700e+02 4.4000e+00 1.0000e+00 + 1.2400e+02 2.5400e+00 2.0000e+00 + 1.3900e+02 3.0500e+00 1.0000e+00 + 1.4500e+02 3.1300e+00 1.0000e+00 + 3.0600e+02 3.8300e+00 2.0000e+00 + 3.4400e+02 3.2600e+00 1.0000e+00 + 1.7300e+02 3.6300e+00 2.0000e+00 + 2.9700e+02 2.8300e+00 1.0000e+00 + 2.6400e+02 3.7500e+00 2.0000e+00 + 1.4000e+02 3.7900e+00 2.0000e+00 + 2.2400e+02 3.1500e+00 1.0000e+00 + 2.7700e+02 3.6000e+00 1.0000e+00 + 2.0000e+02 3.7900e+00 2.0000e+00 + 2.6900e+02 3.9900e+00 1.0000e+00 + 2.8200e+02 3.6200e+00 2.0000e+00 + 3.0600e+02 3.8300e+00 1.0000e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9100e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.3700e+02 0 + 7.6200e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 8.7700e+02 0 + + +----- finding lower bound for cut-points ----- +current value: -2.04367 -- next: -1.58138 -- N events: 1 -- N risk: 1 +current value: -1.58138 -- next: -1.50955 -- N events: 1 -- N risk: 3 +current value: -1.50955 -- next: -1.47315 -- N events: 1 -- N risk: 5 + +lower cutpoint: -1.50955 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.7716 ---- next value: 2.74151 ---- N events: 1 ---- N risk: 1 +current value: 2.74151 ---- next value: 2.51881 ---- N events: 2 ---- N risk: 2 +current value: 2.51881 ---- next value: 1.62059 ---- N events: 4 ---- N risk: 4 +current value: 1.62059 ---- next value: 1.53254 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 1.53254 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -1.0870 + -0.4586 + -0.2352 + -0.0304 + 0.7594 + + +testing cutpoint: -1.08696 + + ---- view of lincomb & g_node & w_node ---- + + -2.0437 0 1.0000 + -1.5814 0 2.0000 + -1.5095 0 2.0000 + -1.4731 0 2.0000 + -1.3873 0 2.0000 + -1.3669 0 2.0000 + -1.3557 0 3.0000 + -1.3280 0 1.0000 + -1.1972 0 1.0000 + -1.1582 0 1.0000 + -1.1248 0 1.0000 + -1.0870 0 1.0000 + -1.0184 1.0000 1.0000 + -0.9867 1.0000 6.0000 + -0.9556 1.0000 2.0000 + -0.8619 1.0000 1.0000 + -0.7783 1.0000 1.0000 + -0.7671 1.0000 1.0000 + -0.7622 1.0000 2.0000 + -0.7505 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0127544 + ------------------------------------------- + +testing cutpoint: -0.458584 + + ---- view of lincomb & g_node & w_node ---- + + -2.0437 0 1.0000 + -1.5814 0 2.0000 + -1.5095 0 2.0000 + -1.4731 0 2.0000 + -1.3873 0 2.0000 + -1.3669 0 2.0000 + -1.3557 0 3.0000 + -1.3280 0 1.0000 + -1.1972 0 1.0000 + -1.1582 0 1.0000 + -1.1248 0 1.0000 + -1.0870 0 1.0000 + -1.0184 0 1.0000 + -0.9867 0 6.0000 + -0.9556 0 2.0000 + -0.8619 0 1.0000 + -0.7783 0 1.0000 + -0.7671 0 1.0000 + -0.7622 0 2.0000 + -0.7505 0 1.0000 + + +logrank stat for this cutpoint: 8.24198 + ------------------------------------------- + +testing cutpoint: -0.235211 + + ---- view of lincomb & g_node & w_node ---- + + -2.0437 0 1.0000 + -1.5814 0 2.0000 + -1.5095 0 2.0000 + -1.4731 0 2.0000 + -1.3873 0 2.0000 + -1.3669 0 2.0000 + -1.3557 0 3.0000 + -1.3280 0 1.0000 + -1.1972 0 1.0000 + -1.1582 0 1.0000 + -1.1248 0 1.0000 + -1.0870 0 1.0000 + -1.0184 0 1.0000 + -0.9867 0 6.0000 + -0.9556 0 2.0000 + -0.8619 0 1.0000 + -0.7783 0 1.0000 + -0.7671 0 1.0000 + -0.7622 0 2.0000 + -0.7505 0 1.0000 + + +logrank stat for this cutpoint: 5.84767 + ------------------------------------------- + +testing cutpoint: -0.0304298 + + ---- view of lincomb & g_node & w_node ---- + + -2.0437 0 1.0000 + -1.5814 0 2.0000 + -1.5095 0 2.0000 + -1.4731 0 2.0000 + -1.3873 0 2.0000 + -1.3669 0 2.0000 + -1.3557 0 3.0000 + -1.3280 0 1.0000 + -1.1972 0 1.0000 + -1.1582 0 1.0000 + -1.1248 0 1.0000 + -1.0870 0 1.0000 + -1.0184 0 1.0000 + -0.9867 0 6.0000 + -0.9556 0 2.0000 + -0.8619 0 1.0000 + -0.7783 0 1.0000 + -0.7671 0 1.0000 + -0.7622 0 2.0000 + -0.7505 0 1.0000 + + +logrank stat for this cutpoint: 9.11941 + ------------------------------------------- + +testing cutpoint: 0.759415 + + ---- view of lincomb & g_node & w_node ---- + + -2.0437 0 1.0000 + -1.5814 0 2.0000 + -1.5095 0 2.0000 + -1.4731 0 2.0000 + -1.3873 0 2.0000 + -1.3669 0 2.0000 + -1.3557 0 3.0000 + -1.3280 0 1.0000 + -1.1972 0 1.0000 + -1.1582 0 1.0000 + -1.1248 0 1.0000 + -1.0870 0 1.0000 + -1.0184 0 1.0000 + -0.9867 0 6.0000 + -0.9556 0 2.0000 + -0.8619 0 1.0000 + -0.7783 0 1.0000 + -0.7671 0 1.0000 + -0.7622 0 2.0000 + -0.7505 0 1.0000 + + +logrank stat for this cutpoint: 48.9475 + ------------------------------------------- + +node assignments: + 2 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 3 + 4 + 2 + 3 + 4 + 2 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 3 + 3 + 3 + 4 + 2 + 3 + 3 + 3 + 4 + 2 + 2 + 3 + 3 + 2 + 3 + 3 + 3 + 4 + 3 + 4 + 3 + 2 + 3 + 3 + 3 + 3 + 3 + 3 + 2 + 3 + 2 + 3 + 3 + 3 + 4 + 3 + 3 + 2 + 4 + 3 + 3 + 4 + 3 + 4 + 4 + 3 + 3 + 2 + 2 + 3 + 3 + 4 + 3 + 3 + 4 + 4 + 3 + 2 + 3 + 3 + 4 + 3 + 2 + 4 + 3 + 3 + 4 + 2 + 3 + 2 + 3 + 2 + 4 + 4 + 3 + 2 + 3 + 3 + 4 + 4 + 4 + 3 + 4 + 3 + 3 + 3 + 3 + 2 + 3 + 4 + 2 + +growing node 2 + + ---- view of x_node ---- + + 7.0500e+02 2.2900e+02 3.0000e+00 + 9.1800e+02 1.4300e+02 3.0000e+00 + 2.1320e+03 2.4300e+02 2.0000e+00 + 9.6100e+02 2.0000e+02 3.0000e+00 + 3.7400e+03 4.3200e+02 1.0000e+00 + 6.0648e+03 1.9100e+02 3.0000e+00 + 5.9100e+02 9.5000e+01 1.0000e+00 + 1.8190e+03 9.1000e+01 2.0000e+00 + 1.8330e+03 1.5500e+02 3.0000e+00 + 1.9750e+03 1.9500e+02 3.0000e+00 + 1.7900e+03 2.1000e+02 1.0000e+00 + 2.4680e+03 2.0500e+02 1.0000e+00 + 1.3030e+03 9.1000e+01 1.0000e+00 + 2.0090e+03 1.3900e+02 1.0000e+00 + 2.4120e+03 1.4000e+02 1.0000e+00 + 9.7900e+02 1.0000e+02 1.0000e+00 + 6.3700e+02 2.4200e+02 2.0000e+00 + 2.3740e+03 1.4900e+02 1.0000e+00 + 3.2920e+03 1.8400e+02 2.0000e+00 + 2.0780e+03 5.9800e+02 2.0000e+00 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.1000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 7.9000e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.7400e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 1.0670e+03 0 + 1.0830e+03 1.0000e+00 + 1.1700e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.729419 -- next: -0.659925 -- N events: 1 -- N risk: 1 +current value: -0.659925 -- next: -0.569259 -- N events: 2 -- N risk: 2 +current value: -0.569259 -- next: -0.559599 -- N events: 3 -- N risk: 3 +current value: -0.559599 -- next: -0.515862 -- N events: 5 -- N risk: 5 + +lower cutpoint: -0.559599 + - n_events, left node: 5 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 0.840697 ---- next value: 0.794871 ---- N events: 0 ---- N risk: 1 +current value: 0.794871 ---- next value: 0.78988 ---- N events: 2 ---- N risk: 3 +current value: 0.78988 ---- next value: 0.788011 ---- N events: 3 ---- N risk: 4 +current value: 0.788011 ---- next value: 0.757398 ---- N events: 6 ---- N risk: 7 + +upper cutpoint: 0.757398 + - n_events, right node: 6 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -0.4886 + -0.4879 + -0.4731 + 0.1206 + 0.7197 + + +testing cutpoint: -0.488599 + + ---- view of lincomb & g_node & w_node ---- + + -0.7294 0 1.0000 + -0.6599 0 1.0000 + -0.5693 0 1.0000 + -0.5596 0 2.0000 + -0.5159 0 1.0000 + -0.5110 0 2.0000 + -0.5085 0 1.0000 + -0.5084 0 2.0000 + -0.4886 0 1.0000 + -0.4879 1.0000 2.0000 + -0.4787 1.0000 1.0000 + -0.4761 1.0000 1.0000 + -0.4731 1.0000 1.0000 + -0.4516 1.0000 1.0000 + -0.2187 1.0000 2.0000 + 0.0522 1.0000 1.0000 + 0.0640 1.0000 1.0000 + 0.1206 1.0000 1.0000 + 0.1822 1.0000 2.0000 + 0.7197 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.178962 + ------------------------------------------- + +testing cutpoint: -0.487877 + + ---- view of lincomb & g_node & w_node ---- + + -0.7294 0 1.0000 + -0.6599 0 1.0000 + -0.5693 0 1.0000 + -0.5596 0 2.0000 + -0.5159 0 1.0000 + -0.5110 0 2.0000 + -0.5085 0 1.0000 + -0.5084 0 2.0000 + -0.4886 0 1.0000 + -0.4879 0 2.0000 + -0.4787 1.0000 1.0000 + -0.4761 1.0000 1.0000 + -0.4731 1.0000 1.0000 + -0.4516 1.0000 1.0000 + -0.2187 1.0000 2.0000 + 0.0522 1.0000 1.0000 + 0.0640 1.0000 1.0000 + 0.1206 1.0000 1.0000 + 0.1822 1.0000 2.0000 + 0.7197 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0127319 + ------------------------------------------- + +testing cutpoint: -0.473087 + + ---- view of lincomb & g_node & w_node ---- + + -0.7294 0 1.0000 + -0.6599 0 1.0000 + -0.5693 0 1.0000 + -0.5596 0 2.0000 + -0.5159 0 1.0000 + -0.5110 0 2.0000 + -0.5085 0 1.0000 + -0.5084 0 2.0000 + -0.4886 0 1.0000 + -0.4879 0 2.0000 + -0.4787 0 1.0000 + -0.4761 0 1.0000 + -0.4731 0 1.0000 + -0.4516 1.0000 1.0000 + -0.2187 1.0000 2.0000 + 0.0522 1.0000 1.0000 + 0.0640 1.0000 1.0000 + 0.1206 1.0000 1.0000 + 0.1822 1.0000 2.0000 + 0.7197 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.14172 + ------------------------------------------- + +testing cutpoint: 0.120597 + + ---- view of lincomb & g_node & w_node ---- + + -0.7294 0 1.0000 + -0.6599 0 1.0000 + -0.5693 0 1.0000 + -0.5596 0 2.0000 + -0.5159 0 1.0000 + -0.5110 0 2.0000 + -0.5085 0 1.0000 + -0.5084 0 2.0000 + -0.4886 0 1.0000 + -0.4879 0 2.0000 + -0.4787 0 1.0000 + -0.4761 0 1.0000 + -0.4731 0 1.0000 + -0.4516 0 1.0000 + -0.2187 0 2.0000 + 0.0522 0 1.0000 + 0.0640 0 1.0000 + 0.1206 0 1.0000 + 0.1822 1.0000 2.0000 + 0.7197 1.0000 1.0000 + + +logrank stat for this cutpoint: 11.4292 + ------------------------------------------- + +testing cutpoint: 0.719716 + + ---- view of lincomb & g_node & w_node ---- + + -0.7294 0 1.0000 + -0.6599 0 1.0000 + -0.5693 0 1.0000 + -0.5596 0 2.0000 + -0.5159 0 1.0000 + -0.5110 0 2.0000 + -0.5085 0 1.0000 + -0.5084 0 2.0000 + -0.4886 0 1.0000 + -0.4879 0 2.0000 + -0.4787 0 1.0000 + -0.4761 0 1.0000 + -0.4731 0 1.0000 + -0.4516 0 1.0000 + -0.2187 0 2.0000 + 0.0522 0 1.0000 + 0.0640 0 1.0000 + 0.1206 0 1.0000 + 0.1822 0 2.0000 + 0.7197 0 1.0000 + + +logrank stat for this cutpoint: 5.50321 + ------------------------------------------- + +node assignments: + 6 + 3 + 6 + 5 + 3 + 6 + 4 + 6 + 4 + 4 + 4 + 3 + 3 + 4 + 3 + 4 + 5 + 6 + 4 + 6 + 4 + 5 + 3 + 6 + 4 + 4 + +growing node 3 + + ---- view of x_node ---- + + 1.0000 1.0000 2.0000 + 1.0000 1.0000 2.0000 + 2.0000 2.0000 1.0000 + 1.0000 2.0000 2.0000 + 2.0000 2.0000 2.0000 + 2.0000 2.0000 2.0000 + 2.0000 1.0000 2.0000 + 1.0000 2.0000 1.0000 + 2.0000 2.0000 2.0000 + 1.0000 1.0000 1.0000 + 1.0000 1.0000 2.0000 + 1.0000 1.0000 2.0000 + 1.0000 1.0000 1.0000 + 2.0000 1.0000 2.0000 + 2.0000 1.0000 2.0000 + 2.0000 2.0000 2.0000 + 2.0000 1.0000 2.0000 + 1.0000 2.0000 2.0000 + 2.0000 1.0000 2.0000 + 2.0000 2.0000 2.0000 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3700e+02 0 + 7.6900e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 8.7700e+02 0 + 9.0100e+02 0 + 9.3900e+02 0 + 1.0120e+03 1.0000e+00 + 1.0300e+03 0 + 1.0800e+03 1.0000e+00 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 2 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 3 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 4 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 8 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 10 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 11 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 12 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 13 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 15 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 17 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 18 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 20 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 21 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 23 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 24 +current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 26 +current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 28 +current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 29 +current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 30 +current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 31 +current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 32 +current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 33 +current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 34 +current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 35 +current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 37 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 39 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 41 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 42 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 45 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 47 +current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 49 +current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 50 +current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 53 +current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 55 +current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 57 +current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 61 +current value: -0.490365 -- next: -0.487628 -- N events: 6 -- N risk: 62 + +lower cutpoint: -0.490365 + - n_events, left node: 6 + - n_risk, left node: 62 + +----- finding upper bound for cut-points ----- +current value: 2.7847 ---- next value: 2.7847 ---- N events: 2 ---- N risk: 2 +current value: 2.7847 ---- next value: 2.78196 ---- N events: 2 ---- N risk: 3 +current value: 2.78196 ---- next value: 2.78196 ---- N events: 3 ---- N risk: 4 +current value: 2.78196 ---- next value: 2.78196 ---- N events: 4 ---- N risk: 5 +current value: 2.78196 ---- next value: 2.78196 ---- N events: 5 ---- N risk: 6 +current value: 2.78196 ---- next value: 2.08134 ---- N events: 5 ---- N risk: 7 + +upper cutpoint: 2.08134 + - n_events, right node: 5 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -0.4904 + 0.2130 + 0.2157 + 2.0786 + 2.0813 + + +testing cutpoint: -0.490365 + + ---- view of lincomb & g_node & w_node ---- + + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 4.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + + +logrank stat for this cutpoint: 8.96747 + ------------------------------------------- + +testing cutpoint: 0.212989 + + ---- view of lincomb & g_node & w_node ---- + + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 4.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + + +logrank stat for this cutpoint: 12.7343 + ------------------------------------------- + +testing cutpoint: 0.215726 + + ---- view of lincomb & g_node & w_node ---- + + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 4.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + + +logrank stat for this cutpoint: 22.9887 + ------------------------------------------- + +testing cutpoint: 2.07861 + + ---- view of lincomb & g_node & w_node ---- + + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 4.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + + +logrank stat for this cutpoint: 6.02857 + ------------------------------------------- + +testing cutpoint: 2.08134 + + ---- view of lincomb & g_node & w_node ---- + + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 4.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 2.0000 + -0.4904 0 2.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + -0.4904 0 1.0000 + + +logrank stat for this cutpoint: 8.07356 + ------------------------------------------- + +node assignments: + 7 + 4 + 5 + 8 + 7 + 5 + 5 + 7 + 7 + 7 + 7 + 7 + 4 + 8 + 7 + 7 + 6 + 7 + 7 + 4 + 7 + 7 + 4 + 7 + 8 + 7 + 5 + 7 + 7 + 4 + 7 + 6 + 5 + 6 + 7 + 5 + 4 + 4 + 4 + 8 + 7 + 4 + 7 + 7 + 7 + 7 + 4 + 6 + 4 + 4 + 7 + 4 + 7 + 6 + 6 + 7 + 7 + 7 + 7 + 4 + 7 + 7 + 7 + 7 + 7 + 5 + 7 + 4 + 7 + 8 + 8 + 5 + 7 + 7 + 7 + 4 + 7 + 5 + 4 + 7 + 7 + 7 + 4 + 5 + 7 + 7 + 7 + 7 + 5 + 7 + 7 + 7 + 7 + 4 + 7 + 7 + 6 + 4 + 7 + 7 + 6 + 4 + 8 + 4 + 7 + 5 + 8 + 7 + 7 + 4 + 5 + 4 + 7 + 7 + 4 + 7 + 7 + 5 + 4 + 5 + 7 + 7 + 4 + 4 + 7 + 7 + 5 + +growing node 4 + + ---- view of x_node ---- + + 2.0000e+00 2.0000e+00 1.2730e+03 + 1.0000e+00 1.0000e+00 1.0560e+03 + 2.0000e+00 2.0000e+00 8.1500e+02 + 2.0000e+00 1.0000e+00 1.1120e+03 + 2.0000e+00 2.0000e+00 7.2770e+03 + 1.0000e+00 2.0000e+00 1.0200e+03 + 1.0000e+00 2.0000e+00 1.6260e+03 + 1.0000e+00 2.0000e+00 1.3760e+03 + 1.0000e+00 2.0000e+00 3.6810e+03 + 1.0000e+00 1.0000e+00 1.6640e+03 + 1.0000e+00 2.0000e+00 1.4400e+03 + 2.0000e+00 2.0000e+00 1.1660e+03 + 1.0000e+00 2.0000e+00 1.7680e+03 + 2.0000e+00 2.0000e+00 1.1900e+03 + 1.0000e+00 2.0000e+00 1.2570e+03 + 1.0000e+00 2.0000e+00 5.4872e+03 + 2.0000e+00 2.0000e+00 6.7100e+02 + 2.0000e+00 2.0000e+00 1.9110e+03 + 2.0000e+00 2.0000e+00 1.6770e+03 + 1.0000e+00 2.0000e+00 9.3300e+02 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9100e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.6200e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.9400e+02 0 + 1.2340e+03 0 + 1.2500e+03 0 + 1.4080e+03 0 + 1.4340e+03 1.0000e+00 + 1.5040e+03 0 + 1.5420e+03 0 + 1.5580e+03 0 + 1.5760e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.883772 -- next: -0.817287 -- N events: 0 -- N risk: 1 +current value: -0.817287 -- next: -0.790767 -- N events: 0 -- N risk: 3 +current value: -0.790767 -- next: -0.736437 -- N events: 2 -- N risk: 5 + +lower cutpoint: -0.790767 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 5.10489 ---- next value: 4.99292 ---- N events: 1 ---- N risk: 1 +current value: 4.99292 ---- next value: 4.6897 ---- N events: 2 ---- N risk: 2 +current value: 4.6897 ---- next value: 0.500111 ---- N events: 3 ---- N risk: 3 +current value: 0.500111 ---- next value: 0.399335 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.399335 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.7217 + -0.7064 + -0.6320 + -0.4555 + 0.0506 + + +testing cutpoint: -0.721703 + + ---- view of lincomb & g_node & w_node ---- + + -0.8838 0 1.0000 + -0.8173 0 2.0000 + -0.7908 0 2.0000 + -0.7364 0 1.0000 + -0.7261 0 2.0000 + -0.7217 0 1.0000 + -0.7064 1.0000 1.0000 + -0.6604 1.0000 1.0000 + -0.6320 1.0000 1.0000 + -0.6293 1.0000 2.0000 + -0.5889 1.0000 1.0000 + -0.5253 1.0000 3.0000 + -0.4555 1.0000 1.0000 + -0.4395 1.0000 1.0000 + -0.3958 1.0000 1.0000 + -0.3938 1.0000 1.0000 + -0.3739 1.0000 1.0000 + -0.3621 1.0000 2.0000 + -0.3413 1.0000 1.0000 + -0.3279 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.866692 + ------------------------------------------- + +testing cutpoint: -0.706417 + + ---- view of lincomb & g_node & w_node ---- + + -0.8838 0 1.0000 + -0.8173 0 2.0000 + -0.7908 0 2.0000 + -0.7364 0 1.0000 + -0.7261 0 2.0000 + -0.7217 0 1.0000 + -0.7064 0 1.0000 + -0.6604 1.0000 1.0000 + -0.6320 1.0000 1.0000 + -0.6293 1.0000 2.0000 + -0.5889 1.0000 1.0000 + -0.5253 1.0000 3.0000 + -0.4555 1.0000 1.0000 + -0.4395 1.0000 1.0000 + -0.3958 1.0000 1.0000 + -0.3938 1.0000 1.0000 + -0.3739 1.0000 1.0000 + -0.3621 1.0000 2.0000 + -0.3413 1.0000 1.0000 + -0.3279 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.114467 + ------------------------------------------- + +testing cutpoint: -0.632013 + + ---- view of lincomb & g_node & w_node ---- + + -0.8838 0 1.0000 + -0.8173 0 2.0000 + -0.7908 0 2.0000 + -0.7364 0 1.0000 + -0.7261 0 2.0000 + -0.7217 0 1.0000 + -0.7064 0 1.0000 + -0.6604 0 1.0000 + -0.6320 0 1.0000 + -0.6293 1.0000 2.0000 + -0.5889 1.0000 1.0000 + -0.5253 1.0000 3.0000 + -0.4555 1.0000 1.0000 + -0.4395 1.0000 1.0000 + -0.3958 1.0000 1.0000 + -0.3938 1.0000 1.0000 + -0.3739 1.0000 1.0000 + -0.3621 1.0000 2.0000 + -0.3413 1.0000 1.0000 + -0.3279 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.16065 + ------------------------------------------- + +testing cutpoint: -0.455506 + + ---- view of lincomb & g_node & w_node ---- + + -0.8838 0 1.0000 + -0.8173 0 2.0000 + -0.7908 0 2.0000 + -0.7364 0 1.0000 + -0.7261 0 2.0000 + -0.7217 0 1.0000 + -0.7064 0 1.0000 + -0.6604 0 1.0000 + -0.6320 0 1.0000 + -0.6293 0 2.0000 + -0.5889 0 1.0000 + -0.5253 0 3.0000 + -0.4555 0 1.0000 + -0.4395 1.0000 1.0000 + -0.3958 1.0000 1.0000 + -0.3938 1.0000 1.0000 + -0.3739 1.0000 1.0000 + -0.3621 1.0000 2.0000 + -0.3413 1.0000 1.0000 + -0.3279 1.0000 1.0000 + + +logrank stat for this cutpoint: 10.4348 + ------------------------------------------- + +testing cutpoint: 0.0505909 + + ---- view of lincomb & g_node & w_node ---- + + -0.8838 0 1.0000 + -0.8173 0 2.0000 + -0.7908 0 2.0000 + -0.7364 0 1.0000 + -0.7261 0 2.0000 + -0.7217 0 1.0000 + -0.7064 0 1.0000 + -0.6604 0 1.0000 + -0.6320 0 1.0000 + -0.6293 0 2.0000 + -0.5889 0 1.0000 + -0.5253 0 3.0000 + -0.4555 0 1.0000 + -0.4395 0 1.0000 + -0.3958 0 1.0000 + -0.3938 0 1.0000 + -0.3739 0 1.0000 + -0.3621 0 2.0000 + -0.3413 0 1.0000 + -0.3279 0 1.0000 + + +logrank stat for this cutpoint: 7.87524 + ------------------------------------------- + +node assignments: + 7 + 10 + 5 + 10 + 5 + 6 + 6 + 7 + 6 + 7 + 7 + 8 + 8 + 10 + 6 + 7 + 10 + 6 + 10 + 9 + 10 + 10 + 5 + 7 + 10 + 6 + 7 + 9 + 6 + 5 + +growing node 5 + + ---- view of x_node ---- + + 2.0000 2.0000 1.0000 + 2.0000 1.0000 2.0000 + 1.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 2.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 2.0000 1.0000 + 2.0000 2.0000 2.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 2.0000 1.0000 1.0000 + 1.0000 1.0000 1.0000 + + + ---- view of y_node ---- + + 7.1000e+01 1.0000e+00 + 2.1600e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 7.9000e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.7400e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 1.0670e+03 0 + 1.0830e+03 1.0000e+00 + 1.1700e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.3560e+03 1.0000e+00 + 1.8820e+03 0 + 2.2560e+03 1.0000e+00 + 2.5400e+03 1.0000e+00 + 3.3880e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.388904 -- next: -0.388904 -- N events: 1 -- N risk: 1 +current value: -0.388904 -- next: -0.388904 -- N events: 2 -- N risk: 2 +current value: -0.388904 -- next: -0.280695 -- N events: 2 -- N risk: 3 +current value: -0.280695 -- next: -0.280695 -- N events: 2 -- N risk: 4 +current value: -0.280695 -- next: 0.0885312 -- N events: 4 -- N risk: 6 + +lower cutpoint: -0.280695 + - n_events, left node: 4 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 0.574743 ---- next value: 0.0973081 ---- N events: 1 ---- N risk: 1 +current value: 0.0973081 ---- next value: 0.0885312 ---- N events: 3 ---- N risk: 3 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 4 ---- N risk: 4 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 5 ---- N risk: 5 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 5 ---- N risk: 6 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 6 ---- N risk: 7 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 7 ---- N risk: 8 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 8 ---- N risk: 9 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 9 ---- N risk: 10 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 11 ---- N risk: 12 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 13 ---- N risk: 14 +current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 14 ---- N risk: 15 +current value: 0.0885312 ---- next value: -0.280695 ---- N events: 16 ---- N risk: 17 + +upper cutpoint: -0.280695 + - n_events, right node: 16 + - n_risk, right node: 17 + +testing cutpoint: -0.280695 + + ---- view of lincomb & g_node & w_node ---- + + -0.3889 0 1.0000 + -0.3889 0 1.0000 + -0.3889 0 1.0000 + -0.2807 0 1.0000 + -0.2807 0 2.0000 + 0.0885 1.0000 2.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 2.0000 + 0.0885 1.0000 2.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0885 1.0000 1.0000 + 0.0973 1.0000 2.0000 + 0.5747 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0986449 + ------------------------------------------- + +best split stat, 0.0986449, was < split_min_stat, 3.84 +sprouting new leaf with node 5 + + ---- view of leaf_data ---- + + 7.1000e+01 9.5652e-01 4.3478e-02 + 2.1600e+02 9.1304e-01 8.8933e-02 + 3.0400e+02 8.2609e-01 1.8417e-01 + 7.9000e+02 7.8261e-01 2.3680e-01 + 8.5300e+02 6.9565e-01 3.4791e-01 + + +growing node 6 + +sprouting new leaf with node 6 + + ---- view of leaf_data ---- + + 4.1000e+01 9.2857e-01 7.1429e-02 + 5.1000e+01 8.5714e-01 1.4835e-01 + 1.3100e+02 7.8571e-01 2.3168e-01 + 2.6400e+02 6.4286e-01 4.1350e-01 + 3.2600e+02 5.0000e-01 6.3573e-01 + + +growing node 7 + + ---- view of x_node ---- + + 2.1855e+02 4.4700e+02 1.0000e+00 + 9.7650e+01 3.0600e+02 1.0000e+00 + 1.1000e+02 2.6400e+02 1.0000e+00 + 1.1780e+02 2.2400e+02 2.0000e+00 + 1.3485e+02 2.7700e+02 2.0000e+00 + 1.3600e+02 2.0000e+02 2.0000e+00 + 1.1470e+02 2.8200e+02 2.0000e+00 + 2.0500e+02 3.0400e+02 1.0000e+00 + 1.7100e+02 2.3400e+02 1.0000e+00 + 9.1000e+01 4.2200e+02 2.0000e+00 + 2.0305e+02 2.1600e+02 2.0000e+00 + 1.2000e+02 2.9600e+02 2.0000e+00 + 1.3000e+02 3.4400e+02 2.0000e+00 + 9.1000e+01 2.8800e+02 1.0000e+00 + 1.4260e+02 2.9500e+02 2.0000e+00 + 2.8800e+02 2.7500e+02 2.0000e+00 + 4.5000e+01 2.4600e+02 1.0000e+00 + 7.4000e+01 2.9500e+02 2.0000e+00 + 1.9000e+02 2.4800e+02 2.0000e+00 + 1.3700e+02 2.9300e+02 2.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 7.3700e+02 0 + 7.6900e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 8.3700e+02 0 + 9.0100e+02 0 + 9.3900e+02 0 + 1.0300e+03 0 + 1.0800e+03 1.0000e+00 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2300e+03 0 + 1.2950e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.535166 -- next: -0.485257 -- N events: 0 -- N risk: 1 +current value: -0.485257 -- next: -0.483903 -- N events: 0 -- N risk: 2 +current value: -0.483903 -- next: -0.482685 -- N events: 0 -- N risk: 4 +current value: -0.482685 -- next: -0.481037 -- N events: 0 -- N risk: 5 +current value: -0.481037 -- next: -0.480347 -- N events: 0 -- N risk: 7 +current value: -0.480347 -- next: -0.476723 -- N events: 0 -- N risk: 8 +current value: -0.476723 -- next: -0.474017 -- N events: 0 -- N risk: 9 +current value: -0.474017 -- next: -0.472976 -- N events: 0 -- N risk: 11 +current value: -0.472976 -- next: -0.433407 -- N events: 0 -- N risk: 13 +current value: -0.433407 -- next: -0.412031 -- N events: 0 -- N risk: 15 +current value: -0.412031 -- next: -0.407689 -- N events: 0 -- N risk: 18 +current value: -0.407689 -- next: -0.40617 -- N events: 0 -- N risk: 19 +current value: -0.40617 -- next: -0.400797 -- N events: 0 -- N risk: 21 +current value: -0.400797 -- next: -0.341982 -- N events: 0 -- N risk: 22 +current value: -0.341982 -- next: -0.339588 -- N events: 0 -- N risk: 23 +current value: -0.339588 -- next: -0.322862 -- N events: 0 -- N risk: 24 +current value: -0.322862 -- next: -0.318393 -- N events: 1 -- N risk: 25 + +lower cutpoint: -0.322862 + - n_events, left node: 1 + - n_risk, left node: 25 + +----- finding upper bound for cut-points ----- +current value: 0.995688 ---- next value: 0.714673 ---- N events: 0 ---- N risk: 1 +current value: 0.714673 ---- next value: 0.658321 ---- N events: 0 ---- N risk: 7 +current value: 0.658321 ---- next value: 0.563605 ---- N events: 0 ---- N risk: 8 +current value: 0.563605 ---- next value: 0.554736 ---- N events: 2 ---- N risk: 10 + +upper cutpoint: 0.554736 + - n_events, right node: 2 + - n_risk, right node: 10 + +Randomly sampled cutpoints: + -0.0154 + 0.0558 + 0.2163 + 0.3910 + 0.4601 + + +testing cutpoint: -0.0153728 + + ---- view of lincomb & g_node & w_node ---- + + -0.5352 0 1.0000 + -0.4853 0 1.0000 + -0.4839 0 2.0000 + -0.4827 0 1.0000 + -0.4810 0 2.0000 + -0.4803 0 1.0000 + -0.4767 0 1.0000 + -0.4740 0 2.0000 + -0.4730 0 2.0000 + -0.4334 0 2.0000 + -0.4120 0 3.0000 + -0.4077 0 1.0000 + -0.4062 0 2.0000 + -0.4008 0 1.0000 + -0.3420 0 1.0000 + -0.3396 0 1.0000 + -0.3229 0 1.0000 + -0.3184 0 2.0000 + -0.3116 0 2.0000 + -0.2964 0 1.0000 + + +logrank stat for this cutpoint: 0.873139 + ------------------------------------------- + +testing cutpoint: 0.0557706 + + ---- view of lincomb & g_node & w_node ---- + + -0.5352 0 1.0000 + -0.4853 0 1.0000 + -0.4839 0 2.0000 + -0.4827 0 1.0000 + -0.4810 0 2.0000 + -0.4803 0 1.0000 + -0.4767 0 1.0000 + -0.4740 0 2.0000 + -0.4730 0 2.0000 + -0.4334 0 2.0000 + -0.4120 0 3.0000 + -0.4077 0 1.0000 + -0.4062 0 2.0000 + -0.4008 0 1.0000 + -0.3420 0 1.0000 + -0.3396 0 1.0000 + -0.3229 0 1.0000 + -0.3184 0 2.0000 + -0.3116 0 2.0000 + -0.2964 0 1.0000 + + +logrank stat for this cutpoint: 1.09862 + ------------------------------------------- + +testing cutpoint: 0.216325 + + ---- view of lincomb & g_node & w_node ---- + + -0.5352 0 1.0000 + -0.4853 0 1.0000 + -0.4839 0 2.0000 + -0.4827 0 1.0000 + -0.4810 0 2.0000 + -0.4803 0 1.0000 + -0.4767 0 1.0000 + -0.4740 0 2.0000 + -0.4730 0 2.0000 + -0.4334 0 2.0000 + -0.4120 0 3.0000 + -0.4077 0 1.0000 + -0.4062 0 2.0000 + -0.4008 0 1.0000 + -0.3420 0 1.0000 + -0.3396 0 1.0000 + -0.3229 0 1.0000 + -0.3184 0 2.0000 + -0.3116 0 2.0000 + -0.2964 0 1.0000 + + +logrank stat for this cutpoint: 10.2286 + ------------------------------------------- + +testing cutpoint: 0.39104 + + ---- view of lincomb & g_node & w_node ---- + + -0.5352 0 1.0000 + -0.4853 0 1.0000 + -0.4839 0 2.0000 + -0.4827 0 1.0000 + -0.4810 0 2.0000 + -0.4803 0 1.0000 + -0.4767 0 1.0000 + -0.4740 0 2.0000 + -0.4730 0 2.0000 + -0.4334 0 2.0000 + -0.4120 0 3.0000 + -0.4077 0 1.0000 + -0.4062 0 2.0000 + -0.4008 0 1.0000 + -0.3420 0 1.0000 + -0.3396 0 1.0000 + -0.3229 0 1.0000 + -0.3184 0 2.0000 + -0.3116 0 2.0000 + -0.2964 0 1.0000 + + +logrank stat for this cutpoint: 0.542733 + ------------------------------------------- + +testing cutpoint: 0.460087 + + ---- view of lincomb & g_node & w_node ---- + + -0.5352 0 1.0000 + -0.4853 0 1.0000 + -0.4839 0 2.0000 + -0.4827 0 1.0000 + -0.4810 0 2.0000 + -0.4803 0 1.0000 + -0.4767 0 1.0000 + -0.4740 0 2.0000 + -0.4730 0 2.0000 + -0.4334 0 2.0000 + -0.4120 0 3.0000 + -0.4077 0 1.0000 + -0.4062 0 2.0000 + -0.4008 0 1.0000 + -0.3420 0 1.0000 + -0.3396 0 1.0000 + -0.3229 0 1.0000 + -0.3184 0 2.0000 + -0.3116 0 2.0000 + -0.2964 0 1.0000 + + +logrank stat for this cutpoint: 3.17724 + ------------------------------------------- + +node assignments: + 10 + 5 + 5 + 9 + 12 + 8 + 12 + 12 + 10 + 11 + 8 + 5 + 11 + 11 + 11 + 11 + 12 + 11 + 9 + 11 + 6 + 5 + 11 + 5 + 10 + 6 + 8 + 10 + 5 + 9 + 5 + 12 + 11 + 11 + 11 + 12 + 11 + 11 + 10 + 8 + 12 + 10 + 6 + 5 + 5 + 11 + 9 + 12 + 11 + 12 + 11 + 5 + 11 + 5 + 11 + 11 + 11 + 11 + 11 + 5 + 5 + 11 + 10 + 11 + 9 + 12 + 11 + 10 + 5 + 11 + 11 + 11 + 9 + 11 + 8 + 11 + 11 + 12 + 9 + 12 + 11 + 9 + 9 + 11 + 11 + 5 + 11 + 10 + 10 + 9 + 10 + 10 + 11 + 6 + 11 + 8 + 11 + 6 + 8 + 10 + 11 + 11 + 6 + 11 + 10 + 10 + 6 + 12 + 6 + 11 + 11 + 8 + 11 + 10 + +growing node 8 + +sprouting new leaf with node 8 + + ---- view of leaf_data ---- + + 6.1100e+02 8.8889e-01 1.1111e-01 + 7.9900e+02 8.3333e-01 1.7361e-01 + 1.0120e+03 7.0513e-01 3.2746e-01 + 1.3600e+03 6.4103e-01 4.1837e-01 + 1.5360e+03 5.7692e-01 5.1837e-01 + + +growing node 9 + +sprouting new leaf with node 9 + + ---- view of leaf_data ---- + + 1.1000e+02 9.4737e-01 5.2632e-02 + 1.8600e+02 8.4211e-01 1.6374e-01 + 1.5760e+03 7.4854e-01 2.7485e-01 + 3.0900e+03 0 1.2749e+00 + + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 1.4000e+02 9.4737e-01 5.2632e-02 + 1.9100e+02 8.9474e-01 1.0819e-01 + 3.2100e+02 8.4211e-01 1.6701e-01 + 3.4800e+02 7.8947e-01 2.2951e-01 + 3.8800e+02 7.3684e-01 2.9618e-01 + + +growing node 11 + + ---- view of x_node ---- + + 1.2900e+02 9.5000e+00 9.7650e+01 + 1.2100e+02 1.0000e+01 1.1000e+02 + 1.5900e+02 1.0500e+01 1.1780e+02 + 1.8600e+02 1.0800e+01 1.3600e+02 + 3.0800e+02 9.8000e+00 1.1470e+02 + 3.9000e+01 1.0200e+01 1.7100e+02 + 1.0300e+02 9.6000e+00 9.1000e+01 + 1.2100e+02 1.0000e+01 1.2000e+02 + 5.2000e+01 1.0500e+01 1.3000e+02 + 2.4000e+01 1.0400e+01 9.1000e+01 + 2.2000e+01 1.0800e+01 4.5000e+01 + 5.0000e+01 1.0500e+01 7.4000e+01 + 6.5000e+01 1.0000e+01 5.7000e+01 + 6.9000e+01 9.6000e+00 1.4200e+02 + 3.8000e+01 9.8000e+00 5.7000e+01 + 4.4000e+01 9.8000e+00 8.4000e+01 + 6.3000e+01 1.0100e+01 1.5035e+02 + 9.7000e+01 9.5000e+00 7.1000e+01 + 4.0000e+01 9.9000e+00 8.3000e+01 + 6.7000e+01 1.0700e+01 1.4500e+02 + + + ---- view of y_node ---- + + 5.1500e+02 1.0000e+00 + 7.3700e+02 0 + 7.6900e+02 1.0000e+00 + 7.8800e+02 0 + 8.3700e+02 0 + 9.3900e+02 0 + 1.0300e+03 0 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2300e+03 0 + 1.2950e+03 0 + 1.4010e+03 0 + 1.4120e+03 0 + 1.4330e+03 0 + 1.4340e+03 0 + 1.4350e+03 0 + 1.4550e+03 0 + 1.4570e+03 0 + 1.4810e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.06915 -- next: -0.978985 -- N events: 0 -- N risk: 4 +current value: -0.978985 -- next: -0.971888 -- N events: 0 -- N risk: 5 +current value: -0.971888 -- next: -0.900924 -- N events: 0 -- N risk: 7 +current value: -0.900924 -- next: -0.877177 -- N events: 0 -- N risk: 9 +current value: -0.877177 -- next: -0.776323 -- N events: 0 -- N risk: 11 +current value: -0.776323 -- next: -0.766868 -- N events: 0 -- N risk: 12 +current value: -0.766868 -- next: -0.714359 -- N events: 0 -- N risk: 13 +current value: -0.714359 -- next: -0.699652 -- N events: 0 -- N risk: 14 +current value: -0.699652 -- next: -0.693545 -- N events: 1 -- N risk: 15 + +lower cutpoint: -0.699652 + - n_events, left node: 1 + - n_risk, left node: 15 + +----- finding upper bound for cut-points ----- +current value: 3.45673 ---- next value: 3.01662 ---- N events: 0 ---- N risk: 2 +current value: 3.01662 ---- next value: 2.09452 ---- N events: 3 ---- N risk: 5 + +upper cutpoint: 2.09452 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.5298 + -0.3881 + 0.2090 + 0.2207 + 0.6986 + + +testing cutpoint: -0.529784 + + ---- view of lincomb & g_node & w_node ---- + + -1.0692 0 4.0000 + -0.9790 0 1.0000 + -0.9719 0 2.0000 + -0.9009 0 2.0000 + -0.8772 0 2.0000 + -0.7763 0 1.0000 + -0.7669 0 1.0000 + -0.7144 0 1.0000 + -0.6997 0 1.0000 + -0.6935 0 1.0000 + -0.6609 0 1.0000 + -0.6392 0 1.0000 + -0.6317 0 2.0000 + -0.6285 0 2.0000 + -0.6222 0 1.0000 + -0.6047 0 1.0000 + -0.6040 0 1.0000 + -0.5889 0 1.0000 + -0.5691 0 2.0000 + -0.5584 0 1.0000 + + +logrank stat for this cutpoint: 0.211496 + ------------------------------------------- + +testing cutpoint: -0.388112 + + ---- view of lincomb & g_node & w_node ---- + + -1.0692 0 4.0000 + -0.9790 0 1.0000 + -0.9719 0 2.0000 + -0.9009 0 2.0000 + -0.8772 0 2.0000 + -0.7763 0 1.0000 + -0.7669 0 1.0000 + -0.7144 0 1.0000 + -0.6997 0 1.0000 + -0.6935 0 1.0000 + -0.6609 0 1.0000 + -0.6392 0 1.0000 + -0.6317 0 2.0000 + -0.6285 0 2.0000 + -0.6222 0 1.0000 + -0.6047 0 1.0000 + -0.6040 0 1.0000 + -0.5889 0 1.0000 + -0.5691 0 2.0000 + -0.5584 0 1.0000 + + +logrank stat for this cutpoint: 1.31492 + ------------------------------------------- + +testing cutpoint: 0.208971 + + ---- view of lincomb & g_node & w_node ---- + + -1.0692 0 4.0000 + -0.9790 0 1.0000 + -0.9719 0 2.0000 + -0.9009 0 2.0000 + -0.8772 0 2.0000 + -0.7763 0 1.0000 + -0.7669 0 1.0000 + -0.7144 0 1.0000 + -0.6997 0 1.0000 + -0.6935 0 1.0000 + -0.6609 0 1.0000 + -0.6392 0 1.0000 + -0.6317 0 2.0000 + -0.6285 0 2.0000 + -0.6222 0 1.0000 + -0.6047 0 1.0000 + -0.6040 0 1.0000 + -0.5889 0 1.0000 + -0.5691 0 2.0000 + -0.5584 0 1.0000 + + +logrank stat for this cutpoint: 5.31815 + ------------------------------------------- + +testing cutpoint: 0.220693 + + ---- view of lincomb & g_node & w_node ---- + + -1.0692 0 4.0000 + -0.9790 0 1.0000 + -0.9719 0 2.0000 + -0.9009 0 2.0000 + -0.8772 0 2.0000 + -0.7763 0 1.0000 + -0.7669 0 1.0000 + -0.7144 0 1.0000 + -0.6997 0 1.0000 + -0.6935 0 1.0000 + -0.6609 0 1.0000 + -0.6392 0 1.0000 + -0.6317 0 2.0000 + -0.6285 0 2.0000 + -0.6222 0 1.0000 + -0.6047 0 1.0000 + -0.6040 0 1.0000 + -0.5889 0 1.0000 + -0.5691 0 2.0000 + -0.5584 0 1.0000 + + +logrank stat for this cutpoint: 8.69912 + ------------------------------------------- + +testing cutpoint: 0.698605 + + ---- view of lincomb & g_node & w_node ---- + + -1.0692 0 4.0000 + -0.9790 0 1.0000 + -0.9719 0 2.0000 + -0.9009 0 2.0000 + -0.8772 0 2.0000 + -0.7763 0 1.0000 + -0.7669 0 1.0000 + -0.7144 0 1.0000 + -0.6997 0 1.0000 + -0.6935 0 1.0000 + -0.6609 0 1.0000 + -0.6392 0 1.0000 + -0.6317 0 2.0000 + -0.6285 0 2.0000 + -0.6222 0 1.0000 + -0.6047 0 1.0000 + -0.6040 0 1.0000 + -0.5889 0 1.0000 + -0.5691 0 2.0000 + -0.5584 0 1.0000 + + +logrank stat for this cutpoint: 11.3364 + ------------------------------------------- + +node assignments: + 12 + 5 + 9 + 8 + 13 + 13 + 12 + 5 + 9 + 8 + 13 + 5 + 13 + 12 + 5 + 13 + 13 + 13 + 6 + 6 + 13 + 6 + 6 + 10 + 13 + 14 + 10 + 14 + 5 + 13 + 9 + 13 + 12 + 5 + 12 + 10 + 10 + 10 + 13 + 13 + 12 + 5 + 14 + 13 + 5 + 10 + 12 + 6 + 5 + 10 + 10 + 12 + 5 + 13 + 12 + 5 + 10 + 13 + 8 + 13 + 9 + 12 + 5 + 9 + 13 + 5 + 8 + 10 + 13 + 10 + 13 + 13 + 13 + 9 + 8 + 12 + 13 + 10 + 13 + 6 + 10 + 6 + 13 + 8 + 12 + 5 + 12 + 8 + 9 + 9 + 10 + 9 + 6 + +growing node 12 + + ---- view of x_node ---- + + 4.4700e+02 4.4000e+00 1.0000e+00 + 2.7700e+02 3.6000e+00 2.0000e+00 + 3.0400e+02 3.1800e+00 1.0000e+00 + 2.1600e+02 3.8500e+00 2.0000e+00 + 2.9500e+02 4.2200e+00 2.0000e+00 + 2.7500e+02 3.6100e+00 2.0000e+00 + 2.4800e+02 3.5700e+00 2.0000e+00 + 2.9300e+02 3.3100e+00 2.0000e+00 + 1.5100e+02 3.5000e+00 2.0000e+00 + 2.1500e+02 3.7000e+00 2.0000e+00 + 3.3000e+02 3.2600e+00 2.0000e+00 + 1.7800e+02 3.5000e+00 2.0000e+00 + 3.0300e+02 3.3600e+00 2.0000e+00 + 3.3200e+02 3.5500e+00 2.0000e+00 + 2.8300e+02 3.4800e+00 2.0000e+00 + 1.7500e+02 4.3800e+00 2.0000e+00 + 3.5600e+02 3.6500e+00 2.0000e+00 + 3.4800e+02 4.2000e+00 2.0000e+00 + 3.2700e+02 3.6000e+00 2.0000e+00 + 1.9500e+02 3.4400e+00 2.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 9.0100e+02 0 + 1.0800e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + 1.3630e+03 0 + 1.4200e+03 0 + 1.4270e+03 1.0000e+00 + 1.4870e+03 1.0000e+00 + 1.7690e+03 0 + 2.3180e+03 0 + 2.4190e+03 1.0000e+00 + 2.5630e+03 0 + 2.5760e+03 0 + 3.0920e+03 0 + 3.5810e+03 0 + 3.8390e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.04851 -- next: -0.611927 -- N events: 1 -- N risk: 1 +current value: -0.611927 -- next: -0.481616 -- N events: 1 -- N risk: 3 +current value: -0.481616 -- next: -0.367461 -- N events: 1 -- N risk: 9 + +lower cutpoint: -0.481616 + - n_events, left node: 1 + - n_risk, left node: 9 + +----- finding upper bound for cut-points ----- +current value: 0.591883 ---- next value: 0.496857 ---- N events: 1 ---- N risk: 1 +current value: 0.496857 ---- next value: 0.475427 ---- N events: 1 ---- N risk: 3 +current value: 0.475427 ---- next value: 0.379899 ---- N events: 1 ---- N risk: 4 +current value: 0.379899 ---- next value: 0.355096 ---- N events: 1 ---- N risk: 6 + +upper cutpoint: 0.355096 + - n_events, right node: 1 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.3675 + -0.1750 + 0.0854 + 0.1336 + 0.2461 + + +testing cutpoint: -0.367461 + + ---- view of lincomb & g_node & w_node ---- + + -1.0485 0 1.0000 + -0.6119 0 2.0000 + -0.4816 0 6.0000 + -0.3675 0 2.0000 + -0.1750 1.0000 1.0000 + -0.0772 1.0000 2.0000 + -0.0243 1.0000 2.0000 + 0.0854 1.0000 2.0000 + 0.1336 1.0000 1.0000 + 0.1758 1.0000 1.0000 + 0.2335 1.0000 1.0000 + 0.2461 1.0000 1.0000 + 0.2470 1.0000 2.0000 + 0.2567 1.0000 1.0000 + 0.3350 1.0000 1.0000 + 0.3433 1.0000 1.0000 + 0.3551 1.0000 3.0000 + 0.3799 1.0000 2.0000 + 0.4754 1.0000 1.0000 + 0.4969 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.08391 + ------------------------------------------- + +testing cutpoint: -0.175028 + + ---- view of lincomb & g_node & w_node ---- + + -1.0485 0 1.0000 + -0.6119 0 2.0000 + -0.4816 0 6.0000 + -0.3675 0 2.0000 + -0.1750 0 1.0000 + -0.0772 1.0000 2.0000 + -0.0243 1.0000 2.0000 + 0.0854 1.0000 2.0000 + 0.1336 1.0000 1.0000 + 0.1758 1.0000 1.0000 + 0.2335 1.0000 1.0000 + 0.2461 1.0000 1.0000 + 0.2470 1.0000 2.0000 + 0.2567 1.0000 1.0000 + 0.3350 1.0000 1.0000 + 0.3433 1.0000 1.0000 + 0.3551 1.0000 3.0000 + 0.3799 1.0000 2.0000 + 0.4754 1.0000 1.0000 + 0.4969 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.85141 + ------------------------------------------- + +testing cutpoint: 0.085427 + + ---- view of lincomb & g_node & w_node ---- + + -1.0485 0 1.0000 + -0.6119 0 2.0000 + -0.4816 0 6.0000 + -0.3675 0 2.0000 + -0.1750 0 1.0000 + -0.0772 0 2.0000 + -0.0243 0 2.0000 + 0.0854 0 2.0000 + 0.1336 1.0000 1.0000 + 0.1758 1.0000 1.0000 + 0.2335 1.0000 1.0000 + 0.2461 1.0000 1.0000 + 0.2470 1.0000 2.0000 + 0.2567 1.0000 1.0000 + 0.3350 1.0000 1.0000 + 0.3433 1.0000 1.0000 + 0.3551 1.0000 3.0000 + 0.3799 1.0000 2.0000 + 0.4754 1.0000 1.0000 + 0.4969 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.56307 + ------------------------------------------- + +testing cutpoint: 0.133567 + + ---- view of lincomb & g_node & w_node ---- + + -1.0485 0 1.0000 + -0.6119 0 2.0000 + -0.4816 0 6.0000 + -0.3675 0 2.0000 + -0.1750 0 1.0000 + -0.0772 0 2.0000 + -0.0243 0 2.0000 + 0.0854 0 2.0000 + 0.1336 0 1.0000 + 0.1758 1.0000 1.0000 + 0.2335 1.0000 1.0000 + 0.2461 1.0000 1.0000 + 0.2470 1.0000 2.0000 + 0.2567 1.0000 1.0000 + 0.3350 1.0000 1.0000 + 0.3433 1.0000 1.0000 + 0.3551 1.0000 3.0000 + 0.3799 1.0000 2.0000 + 0.4754 1.0000 1.0000 + 0.4969 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.80053 + ------------------------------------------- + +testing cutpoint: 0.246138 + + ---- view of lincomb & g_node & w_node ---- + + -1.0485 0 1.0000 + -0.6119 0 2.0000 + -0.4816 0 6.0000 + -0.3675 0 2.0000 + -0.1750 0 1.0000 + -0.0772 0 2.0000 + -0.0243 0 2.0000 + 0.0854 0 2.0000 + 0.1336 0 1.0000 + 0.1758 0 1.0000 + 0.2335 0 1.0000 + 0.2461 0 1.0000 + 0.2470 1.0000 2.0000 + 0.2567 1.0000 1.0000 + 0.3350 1.0000 1.0000 + 0.3433 1.0000 1.0000 + 0.3551 1.0000 3.0000 + 0.3799 1.0000 2.0000 + 0.4754 1.0000 1.0000 + 0.4969 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.1569 + ------------------------------------------- + +node assignments: + 6 + 10 + 10 + 5 + 6 + 13 + 9 + 5 + 15 + 5 + 9 + 10 + 8 + 6 + 6 + 10 + 6 + 6 + 10 + 10 + 6 + +growing node 13 + +Column 2 was sampled but unique values of column 2 are 2.0000 + + ---- view of x_node ---- + + 9.4400e+02 9.5000e+00 2.0000e+00 + 1.1360e+03 1.0000e+01 2.0000e+00 + 1.7130e+03 1.0200e+01 1.0000e+00 + 1.2930e+03 9.6000e+00 1.0000e+00 + 9.3800e+02 1.0000e+01 1.0000e+00 + 1.2820e+03 1.0500e+01 1.0000e+00 + 7.9700e+02 1.0400e+01 1.0000e+00 + 6.6300e+02 1.0800e+01 1.0000e+00 + 1.3070e+03 1.0500e+01 1.0000e+00 + 6.8800e+02 1.0000e+01 1.0000e+00 + 2.5830e+03 9.6000e+00 1.0000e+00 + 9.1100e+02 9.8000e+00 1.0000e+00 + 1.6360e+03 9.8000e+00 1.0000e+00 + 1.6130e+03 1.0100e+01 1.0000e+00 + 1.6220e+03 9.5000e+00 1.0000e+00 + 6.7600e+02 9.9000e+00 1.0000e+00 + 6.4000e+02 1.0700e+01 1.0000e+00 + 1.1280e+03 1.0200e+01 2.0000e+00 + 9.5500e+02 9.7000e+00 1.0000e+00 + 1.3950e+03 1.0200e+01 1.0000e+00 + + + ---- view of y_node ---- + + 5.1500e+02 1.0000e+00 + 7.3700e+02 0 + 9.3900e+02 0 + 1.0300e+03 0 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2300e+03 0 + 1.2950e+03 0 + 1.4010e+03 0 + 1.4120e+03 0 + 1.4330e+03 0 + 1.4340e+03 0 + 1.4350e+03 0 + 1.4550e+03 0 + 1.4570e+03 0 + 1.4810e+03 0 + 1.5680e+03 0 + 1.5690e+03 0 + 1.5920e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.38963 -- next: -1.38696 -- N events: 0 -- N risk: 2 +current value: -1.38696 -- next: -1.33391 -- N events: 0 -- N risk: 4 +current value: -1.33391 -- next: -1.25207 -- N events: 0 -- N risk: 5 +current value: -1.25207 -- next: -1.24853 -- N events: 0 -- N risk: 6 +current value: -1.24853 -- next: -1.2111 -- N events: 0 -- N risk: 7 +current value: -1.2111 -- next: -1.20263 -- N events: 0 -- N risk: 9 +current value: -1.20263 -- next: -1.18819 -- N events: 0 -- N risk: 10 +current value: -1.18819 -- next: -1.17469 -- N events: 0 -- N risk: 12 +current value: -1.17469 -- next: -1.17407 -- N events: 0 -- N risk: 13 +current value: -1.17407 -- next: -1.14371 -- N events: 0 -- N risk: 15 +current value: -1.14371 -- next: -1.13726 -- N events: 0 -- N risk: 17 +current value: -1.13726 -- next: -1.1207 -- N events: 0 -- N risk: 18 +current value: -1.1207 -- next: -1.11623 -- N events: 0 -- N risk: 20 +current value: -1.11623 -- next: -1.10093 -- N events: 0 -- N risk: 21 +current value: -1.10093 -- next: -1.093 -- N events: 0 -- N risk: 22 +current value: -1.093 -- next: -1.0671 -- N events: 0 -- N risk: 24 +current value: -1.0671 -- next: -1.03422 -- N events: 0 -- N risk: 25 +current value: -1.03422 -- next: -1.01555 -- N events: 0 -- N risk: 26 +current value: -1.01555 -- next: -1.00715 -- N events: 0 -- N risk: 28 +current value: -1.00715 -- next: -0.983378 -- N events: 0 -- N risk: 30 +current value: -0.983378 -- next: -0.977969 -- N events: 0 -- N risk: 31 +current value: -0.977969 -- next: -0.956072 -- N events: 0 -- N risk: 32 +current value: -0.956072 -- next: -0.925153 -- N events: 0 -- N risk: 33 +current value: -0.925153 -- next: -0.907726 -- N events: 0 -- N risk: 35 +current value: -0.907726 -- next: -0.875243 -- N events: 0 -- N risk: 36 +current value: -0.875243 -- next: -0.871239 -- N events: 0 -- N risk: 38 +current value: -0.871239 -- next: -0.861585 -- N events: 0 -- N risk: 39 +current value: -0.861585 -- next: -0.853745 -- N events: 0 -- N risk: 42 +current value: -0.853745 -- next: -0.844649 -- N events: 0 -- N risk: 44 +current value: -0.844649 -- next: -0.841345 -- N events: 0 -- N risk: 46 +current value: -0.841345 -- next: -0.81914 -- N events: 1 -- N risk: 47 + +lower cutpoint: -0.841345 + - n_events, left node: 1 + - n_risk, left node: 47 + +----- finding upper bound for cut-points ----- +current value: 9.25981 ---- next value: 5.83245 ---- N events: 1 ---- N risk: 1 +current value: 5.83245 ---- next value: 3.76609 ---- N events: 2 ---- N risk: 2 +current value: 3.76609 ---- next value: 2.78297 ---- N events: 3 ---- N risk: 3 +current value: 2.78297 ---- next value: 2.37319 ---- N events: 3 ---- N risk: 5 + +upper cutpoint: 2.37319 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.4629 + -0.2694 + 0.1807 + 1.5302 + 2.0753 + + +testing cutpoint: -0.462882 + + ---- view of lincomb & g_node & w_node ---- + + -1.3896 0 2.0000 + -1.3870 0 2.0000 + -1.3339 0 1.0000 + -1.2521 0 1.0000 + -1.2485 0 1.0000 + -1.2111 0 2.0000 + -1.2026 0 1.0000 + -1.1882 0 2.0000 + -1.1747 0 1.0000 + -1.1741 0 2.0000 + -1.1437 0 2.0000 + -1.1373 0 1.0000 + -1.1207 0 2.0000 + -1.1162 0 1.0000 + -1.1009 0 1.0000 + -1.0930 0 2.0000 + -1.0671 0 1.0000 + -1.0342 0 1.0000 + -1.0156 0 2.0000 + -1.0071 0 2.0000 + + +logrank stat for this cutpoint: 10.1151 + ------------------------------------------- + +testing cutpoint: -0.269382 + + ---- view of lincomb & g_node & w_node ---- + + -1.3896 0 2.0000 + -1.3870 0 2.0000 + -1.3339 0 1.0000 + -1.2521 0 1.0000 + -1.2485 0 1.0000 + -1.2111 0 2.0000 + -1.2026 0 1.0000 + -1.1882 0 2.0000 + -1.1747 0 1.0000 + -1.1741 0 2.0000 + -1.1437 0 2.0000 + -1.1373 0 1.0000 + -1.1207 0 2.0000 + -1.1162 0 1.0000 + -1.1009 0 1.0000 + -1.0930 0 2.0000 + -1.0671 0 1.0000 + -1.0342 0 1.0000 + -1.0156 0 2.0000 + -1.0071 0 2.0000 + + +logrank stat for this cutpoint: 12.5618 + ------------------------------------------- + +testing cutpoint: 0.180664 + + ---- view of lincomb & g_node & w_node ---- + + -1.3896 0 2.0000 + -1.3870 0 2.0000 + -1.3339 0 1.0000 + -1.2521 0 1.0000 + -1.2485 0 1.0000 + -1.2111 0 2.0000 + -1.2026 0 1.0000 + -1.1882 0 2.0000 + -1.1747 0 1.0000 + -1.1741 0 2.0000 + -1.1437 0 2.0000 + -1.1373 0 1.0000 + -1.1207 0 2.0000 + -1.1162 0 1.0000 + -1.1009 0 1.0000 + -1.0930 0 2.0000 + -1.0671 0 1.0000 + -1.0342 0 1.0000 + -1.0156 0 2.0000 + -1.0071 0 2.0000 + + +logrank stat for this cutpoint: 7.55791 + ------------------------------------------- + +testing cutpoint: 1.53023 + + ---- view of lincomb & g_node & w_node ---- + + -1.3896 0 2.0000 + -1.3870 0 2.0000 + -1.3339 0 1.0000 + -1.2521 0 1.0000 + -1.2485 0 1.0000 + -1.2111 0 2.0000 + -1.2026 0 1.0000 + -1.1882 0 2.0000 + -1.1747 0 1.0000 + -1.1741 0 2.0000 + -1.1437 0 2.0000 + -1.1373 0 1.0000 + -1.1207 0 2.0000 + -1.1162 0 1.0000 + -1.1009 0 1.0000 + -1.0930 0 2.0000 + -1.0671 0 1.0000 + -1.0342 0 1.0000 + -1.0156 0 2.0000 + -1.0071 0 2.0000 + + +logrank stat for this cutpoint: 3.39311 + ------------------------------------------- + +testing cutpoint: 2.07532 + + ---- view of lincomb & g_node & w_node ---- + + -1.3896 0 2.0000 + -1.3870 0 2.0000 + -1.3339 0 1.0000 + -1.2521 0 1.0000 + -1.2485 0 1.0000 + -1.2111 0 2.0000 + -1.2026 0 1.0000 + -1.1882 0 2.0000 + -1.1747 0 1.0000 + -1.1741 0 2.0000 + -1.1437 0 2.0000 + -1.1373 0 1.0000 + -1.1207 0 2.0000 + -1.1162 0 1.0000 + -1.1009 0 1.0000 + -1.0930 0 2.0000 + -1.0671 0 1.0000 + -1.0342 0 1.0000 + -1.0156 0 2.0000 + -1.0071 0 2.0000 + + +logrank stat for this cutpoint: 3.26708 + ------------------------------------------- + +node assignments: + 17 + 5 + 15 + 5 + 8 + 17 + 10 + 14 + 10 + 5 + 17 + 18 + 5 + 6 + 16 + 5 + 10 + 16 + 8 + 10 + 6 + 9 + 5 + 5 + 17 + 18 + 9 + 9 + 10 + 6 + 17 + 14 + 9 + 10 + 17 + 10 + 17 + 10 + 17 + 17 + 16 + 10 + 16 + 5 + 8 + 6 + 10 + 5 + 15 + 8 + 6 + 5 + 17 + 16 + 10 + 17 + 6 + 14 + 16 + 16 + 5 + 5 + 16 + 9 + 16 + 17 + 16 + 6 + 10 + 9 + 8 + 9 + 17 + 6 + 9 + 18 + 17 + 17 + 17 + 5 + 8 + 5 + +growing node 14 + +sprouting new leaf with node 14 + + ---- view of leaf_data ---- + + 7.6900e+02 9.3750e-01 6.2500e-02 + 2.8470e+03 8.3333e-01 1.7361e-01 + 3.2820e+03 3.3333e-01 7.7361e-01 + 3.5840e+03 0 1.7736e+00 + + +growing node 15 + +sprouting new leaf with node 15 + + ---- view of leaf_data ---- + + 1.9800e+02 9.0909e-01 9.0909e-02 + + +growing node 16 + + ---- view of x_node ---- + + 1.1000e+01 2.7700e+02 3.6000e+00 + 1.0700e+01 2.1600e+02 3.8500e+00 + 1.0100e+01 2.9500e+02 4.2200e+00 + 1.0600e+01 2.7500e+02 3.6100e+00 + 1.1400e+01 2.4800e+02 3.5700e+00 + 1.0900e+01 2.9300e+02 3.3100e+00 + 1.0100e+01 1.5100e+02 3.5000e+00 + 9.9000e+00 2.1500e+02 3.7000e+00 + 9.8000e+00 3.3000e+02 3.2600e+00 + 1.1000e+01 1.7800e+02 3.5000e+00 + 1.0900e+01 3.0300e+02 3.3600e+00 + 9.9000e+00 3.3200e+02 3.5500e+00 + 9.9000e+00 2.8300e+02 3.4800e+00 + 9.8000e+00 3.5600e+02 3.6500e+00 + 1.0300e+01 3.4800e+02 4.2000e+00 + 1.0400e+01 3.2700e+02 3.6000e+00 + 1.0300e+01 1.9500e+02 3.4400e+00 + + + ---- view of y_node ---- + + 7.8600e+02 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + 1.3630e+03 0 + 1.4200e+03 0 + 1.4270e+03 1.0000e+00 + 1.4870e+03 1.0000e+00 + 1.7690e+03 0 + 2.3180e+03 0 + 2.4190e+03 1.0000e+00 + 2.5760e+03 0 + 3.0920e+03 0 + 3.5810e+03 0 + 3.8390e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.906265 -- next: -0.795028 -- N events: 1 -- N risk: 1 +current value: -0.795028 -- next: -0.661674 -- N events: 1 -- N risk: 2 +current value: -0.661674 -- next: -0.387361 -- N events: 1 -- N risk: 4 +current value: -0.387361 -- next: -0.357995 -- N events: 4 -- N risk: 7 + +lower cutpoint: -0.387361 + - n_events, left node: 4 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 0.839194 ---- next value: 0.701205 ---- N events: 1 ---- N risk: 1 +current value: 0.701205 ---- next value: 0.612767 ---- N events: 3 ---- N risk: 3 +current value: 0.612767 ---- next value: 0.597032 ---- N events: 3 ---- N risk: 4 +current value: 0.597032 ---- next value: 0.354943 ---- N events: 3 ---- N risk: 5 + +upper cutpoint: 0.354943 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.3874 + -0.1093 + -0.1076 + 0.0881 + 0.2241 + + +testing cutpoint: -0.387361 + + ---- view of lincomb & g_node & w_node ---- + + -0.9063 0 1.0000 + -0.7950 0 1.0000 + -0.6617 0 2.0000 + -0.3874 0 3.0000 + -0.3580 1.0000 1.0000 + -0.1392 1.0000 1.0000 + -0.1093 1.0000 2.0000 + -0.1076 1.0000 2.0000 + 0.0881 1.0000 1.0000 + 0.1652 1.0000 1.0000 + 0.2241 1.0000 2.0000 + 0.2548 1.0000 1.0000 + 0.3549 1.0000 2.0000 + 0.5970 1.0000 1.0000 + 0.6128 1.0000 1.0000 + 0.7012 1.0000 2.0000 + 0.8392 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.146784 + ------------------------------------------- + +testing cutpoint: -0.109252 + + ---- view of lincomb & g_node & w_node ---- + + -0.9063 0 1.0000 + -0.7950 0 1.0000 + -0.6617 0 2.0000 + -0.3874 0 3.0000 + -0.3580 0 1.0000 + -0.1392 0 1.0000 + -0.1093 0 2.0000 + -0.1076 1.0000 2.0000 + 0.0881 1.0000 1.0000 + 0.1652 1.0000 1.0000 + 0.2241 1.0000 2.0000 + 0.2548 1.0000 1.0000 + 0.3549 1.0000 2.0000 + 0.5970 1.0000 1.0000 + 0.6128 1.0000 1.0000 + 0.7012 1.0000 2.0000 + 0.8392 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.306476 + ------------------------------------------- + +testing cutpoint: -0.107563 + + ---- view of lincomb & g_node & w_node ---- + + -0.9063 0 1.0000 + -0.7950 0 1.0000 + -0.6617 0 2.0000 + -0.3874 0 3.0000 + -0.3580 0 1.0000 + -0.1392 0 1.0000 + -0.1093 0 2.0000 + -0.1076 0 2.0000 + 0.0881 1.0000 1.0000 + 0.1652 1.0000 1.0000 + 0.2241 1.0000 2.0000 + 0.2548 1.0000 1.0000 + 0.3549 1.0000 2.0000 + 0.5970 1.0000 1.0000 + 0.6128 1.0000 1.0000 + 0.7012 1.0000 2.0000 + 0.8392 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.54954 + ------------------------------------------- + +testing cutpoint: 0.0880917 + + ---- view of lincomb & g_node & w_node ---- + + -0.9063 0 1.0000 + -0.7950 0 1.0000 + -0.6617 0 2.0000 + -0.3874 0 3.0000 + -0.3580 0 1.0000 + -0.1392 0 1.0000 + -0.1093 0 2.0000 + -0.1076 0 2.0000 + 0.0881 0 1.0000 + 0.1652 1.0000 1.0000 + 0.2241 1.0000 2.0000 + 0.2548 1.0000 1.0000 + 0.3549 1.0000 2.0000 + 0.5970 1.0000 1.0000 + 0.6128 1.0000 1.0000 + 0.7012 1.0000 2.0000 + 0.8392 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.0213 + ------------------------------------------- + +testing cutpoint: 0.224118 + + ---- view of lincomb & g_node & w_node ---- + + -0.9063 0 1.0000 + -0.7950 0 1.0000 + -0.6617 0 2.0000 + -0.3874 0 3.0000 + -0.3580 0 1.0000 + -0.1392 0 1.0000 + -0.1093 0 2.0000 + -0.1076 0 2.0000 + 0.0881 0 1.0000 + 0.1652 0 1.0000 + 0.2241 0 2.0000 + 0.2548 1.0000 1.0000 + 0.3549 1.0000 2.0000 + 0.5970 1.0000 1.0000 + 0.6128 1.0000 1.0000 + 0.7012 1.0000 2.0000 + 0.8392 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.02821 + ------------------------------------------- + +best split stat, 3.0213, was < split_min_stat, 3.84 +sprouting new leaf with node 16 + + ---- view of leaf_data ---- + + 7.8600e+02 9.6000e-01 4.0000e-02 + 1.0800e+03 8.8000e-01 1.2333e-01 + 1.2120e+03 8.4000e-01 1.6879e-01 + 1.4270e+03 7.8000e-01 2.4022e-01 + 1.4870e+03 7.2000e-01 3.1714e-01 + + +growing node 17 + +sprouting new leaf with node 17 + + ---- view of leaf_data ---- + + 2.0900e+03 9.7619e-01 2.3810e-02 + + +growing node 18 + + ---- view of x_node ---- + + 3.0600e+02 2.0000e+00 3.0000e+00 + 2.6400e+02 2.0000e+00 3.0000e+00 + 2.2800e+02 2.0000e+00 3.0000e+00 + 1.5600e+02 2.0000e+00 3.0000e+00 + 2.0000e+02 1.0000e+00 2.0000e+00 + 3.6500e+02 2.0000e+00 2.0000e+00 + 3.4100e+02 2.0000e+00 3.0000e+00 + 2.6900e+02 1.0000e+00 4.0000e+00 + 3.0900e+02 2.0000e+00 2.0000e+00 + 3.2100e+02 2.0000e+00 3.0000e+00 + 2.4000e+02 1.0000e+00 1.0000e+00 + 2.2800e+02 1.0000e+00 4.0000e+00 + 5.6300e+02 1.0000e+00 4.0000e+00 + 4.4200e+02 1.0000e+00 3.0000e+00 + 3.7300e+02 1.0000e+00 3.0000e+00 + 3.1300e+02 1.0000e+00 2.0000e+00 + 4.9300e+02 2.0000e+00 2.0000e+00 + 3.4400e+02 1.0000e+00 2.0000e+00 + 3.4900e+02 1.0000e+00 2.0000e+00 + 4.3800e+02 2.0000e+00 3.0000e+00 + + + ---- view of y_node ---- + + 5.1500e+02 1.0000e+00 + 7.3700e+02 0 + 1.5680e+03 0 + 1.7350e+03 0 + 1.7410e+03 1.0000e+00 + 1.8470e+03 1.0000e+00 + 1.9080e+03 0 + 2.0500e+03 0 + 2.2160e+03 0 + 2.2240e+03 1.0000e+00 + 2.2550e+03 0 + 2.2940e+03 0 + 2.2970e+03 1.0000e+00 + 2.4520e+03 0 + 2.4660e+03 1.0000e+00 + 2.4750e+03 0 + 2.6570e+03 0 + 2.9900e+03 0 + 3.0860e+03 1.0000e+00 + 3.3360e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.913244 -- next: -0.834836 -- N events: 0 -- N risk: 1 +current value: -0.834836 -- next: -0.802325 -- N events: 0 -- N risk: 2 +current value: -0.802325 -- next: -0.565187 -- N events: 0 -- N risk: 4 +current value: -0.565187 -- next: -0.288364 -- N events: 0 -- N risk: 6 +current value: -0.288364 -- next: -0.272589 -- N events: 1 -- N risk: 7 + +lower cutpoint: -0.288364 + - n_events, left node: 1 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 0.859103 ---- next value: 0.614315 ---- N events: 0 ---- N risk: 1 +current value: 0.614315 ---- next value: 0.50722 ---- N events: 1 ---- N risk: 2 +current value: 0.50722 ---- next value: 0.406338 ---- N events: 1 ---- N risk: 6 + +upper cutpoint: 0.406338 + - n_events, right node: 1 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.2726 + -0.2659 + -0.1564 + 0.1558 + 0.4063 + + +testing cutpoint: -0.272589 + + ---- view of lincomb & g_node & w_node ---- + + -0.9132 0 1.0000 + -0.8348 0 1.0000 + -0.8023 0 2.0000 + -0.5652 0 2.0000 + -0.2884 0 1.0000 + -0.2726 0 1.0000 + -0.2716 1.0000 1.0000 + -0.2659 1.0000 2.0000 + -0.1564 1.0000 2.0000 + -0.1330 1.0000 1.0000 + -0.1320 1.0000 2.0000 + -0.0555 1.0000 1.0000 + 0.0038 1.0000 1.0000 + 0.0047 1.0000 1.0000 + 0.0133 1.0000 1.0000 + 0.0736 1.0000 3.0000 + 0.1525 1.0000 2.0000 + 0.1539 1.0000 2.0000 + 0.1558 1.0000 1.0000 + 0.1826 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.632566 + ------------------------------------------- + +testing cutpoint: -0.26589 + + ---- view of lincomb & g_node & w_node ---- + + -0.9132 0 1.0000 + -0.8348 0 1.0000 + -0.8023 0 2.0000 + -0.5652 0 2.0000 + -0.2884 0 1.0000 + -0.2726 0 1.0000 + -0.2716 0 1.0000 + -0.2659 0 2.0000 + -0.1564 1.0000 2.0000 + -0.1330 1.0000 1.0000 + -0.1320 1.0000 2.0000 + -0.0555 1.0000 1.0000 + 0.0038 1.0000 1.0000 + 0.0047 1.0000 1.0000 + 0.0133 1.0000 1.0000 + 0.0736 1.0000 3.0000 + 0.1525 1.0000 2.0000 + 0.1539 1.0000 2.0000 + 0.1558 1.0000 1.0000 + 0.1826 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.909671 + ------------------------------------------- + +testing cutpoint: -0.156408 + + ---- view of lincomb & g_node & w_node ---- + + -0.9132 0 1.0000 + -0.8348 0 1.0000 + -0.8023 0 2.0000 + -0.5652 0 2.0000 + -0.2884 0 1.0000 + -0.2726 0 1.0000 + -0.2716 0 1.0000 + -0.2659 0 2.0000 + -0.1564 0 2.0000 + -0.1330 1.0000 1.0000 + -0.1320 1.0000 2.0000 + -0.0555 1.0000 1.0000 + 0.0038 1.0000 1.0000 + 0.0047 1.0000 1.0000 + 0.0133 1.0000 1.0000 + 0.0736 1.0000 3.0000 + 0.1525 1.0000 2.0000 + 0.1539 1.0000 2.0000 + 0.1558 1.0000 1.0000 + 0.1826 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.45225 + ------------------------------------------- + +testing cutpoint: 0.155814 + + ---- view of lincomb & g_node & w_node ---- + + -0.9132 0 1.0000 + -0.8348 0 1.0000 + -0.8023 0 2.0000 + -0.5652 0 2.0000 + -0.2884 0 1.0000 + -0.2726 0 1.0000 + -0.2716 0 1.0000 + -0.2659 0 2.0000 + -0.1564 0 2.0000 + -0.1330 0 1.0000 + -0.1320 0 2.0000 + -0.0555 0 1.0000 + 0.0038 0 1.0000 + 0.0047 0 1.0000 + 0.0133 0 1.0000 + 0.0736 0 3.0000 + 0.1525 0 2.0000 + 0.1539 0 2.0000 + 0.1558 0 1.0000 + 0.1826 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0182177 + ------------------------------------------- + +testing cutpoint: 0.406338 + + ---- view of lincomb & g_node & w_node ---- + + -0.9132 0 1.0000 + -0.8348 0 1.0000 + -0.8023 0 2.0000 + -0.5652 0 2.0000 + -0.2884 0 1.0000 + -0.2726 0 1.0000 + -0.2716 0 1.0000 + -0.2659 0 2.0000 + -0.1564 0 2.0000 + -0.1330 0 1.0000 + -0.1320 0 2.0000 + -0.0555 0 1.0000 + 0.0038 0 1.0000 + 0.0047 0 1.0000 + 0.0133 0 1.0000 + 0.0736 0 3.0000 + 0.1525 0 2.0000 + 0.1539 0 2.0000 + 0.1558 0 1.0000 + 0.1826 0 1.0000 + + +logrank stat for this cutpoint: 0.0638308 + ------------------------------------------- + +best split stat, 1.45225, was < split_min_stat, 3.84 +sprouting new leaf with node 18 + + ---- view of leaf_data ---- + + 5.1500e+02 9.5238e-01 4.7619e-02 + 1.7410e+03 9.2517e-01 7.6190e-02 + 1.8470e+03 8.9796e-01 1.0560e-01 + 2.2240e+03 8.5892e-01 1.4908e-01 + 2.2970e+03 8.1371e-01 2.0171e-01 + + +Effective sample size: 276 +Effective number of events: 112 +Number of unique rows in x: 180 + +Max number of nodes for this tree: 223 +Max number of leaves for this tree: 112 + +growing node 0 + + ---- view of x_node ---- + + 1.0000e+00 1.7900e+01 7.0500e+02 + 1.0000e+00 1.2600e+01 9.1800e+02 + 2.0000e+00 1.2200e+01 2.1320e+03 + 2.0000e+00 2.5000e+00 1.2730e+03 + 2.0000e+00 1.1400e+01 9.6100e+02 + 2.0000e+00 6.6000e+00 6.2000e+02 + 2.0000e+00 3.2000e+00 8.1500e+02 + 2.0000e+00 2.4500e+01 3.7400e+03 + 2.0000e+00 7.1000e+00 6.9312e+03 + 2.0000e+00 3.6000e+00 7.2770e+03 + 2.0000e+00 6.6000e+00 1.8190e+03 + 2.0000e+00 1.4100e+01 1.8330e+03 + 2.0000e+00 4.5000e+00 1.0200e+03 + 2.0000e+00 1.4500e+01 1.7180e+03 + 2.0000e+00 5.0000e+00 2.4600e+03 + 1.0000e+00 6.0000e-01 9.4400e+02 + 2.0000e+00 1.2000e+00 1.1420e+03 + 2.0000e+00 1.7200e+01 1.9750e+03 + 2.0000e+00 2.3000e+00 7.4600e+02 + 2.0000e+00 4.5000e+00 2.3100e+03 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.77819 -- next: -1.77517 -- N events: 0 -- N risk: 2 +current value: -1.77517 -- next: -1.74419 -- N events: 1 -- N risk: 3 +current value: -1.74419 -- next: -1.71141 -- N events: 1 -- N risk: 4 +current value: -1.71141 -- next: -1.69802 -- N events: 4 -- N risk: 7 + +lower cutpoint: -1.71141 + - n_events, left node: 4 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 9.71298 ---- next value: 9.3437 ---- N events: 1 ---- N risk: 1 +current value: 9.3437 ---- next value: 7.98428 ---- N events: 3 ---- N risk: 3 +current value: 7.98428 ---- next value: 7.39002 ---- N events: 4 ---- N risk: 4 +current value: 7.39002 ---- next value: 6.21543 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 6.21543 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -1.5559 + -1.5528 + -1.0908 + -0.9001 + -0.4050 + + +testing cutpoint: -1.5559 + + ---- view of lincomb & g_node & w_node ---- + + -1.7782 0 2.0000 + -1.7752 0 1.0000 + -1.7442 0 1.0000 + -1.7114 0 3.0000 + -1.6980 0 1.0000 + -1.6973 0 1.0000 + -1.6897 0 3.0000 + -1.6873 0 1.0000 + -1.6867 0 2.0000 + -1.6756 0 1.0000 + -1.6693 0 3.0000 + -1.6651 0 3.0000 + -1.6632 0 1.0000 + -1.6599 0 1.0000 + -1.6562 0 1.0000 + -1.6551 0 1.0000 + -1.6451 0 3.0000 + -1.6399 0 1.0000 + -1.6375 0 1.0000 + -1.6311 0 1.0000 + + +logrank stat for this cutpoint: 20.787 + ------------------------------------------- + +testing cutpoint: -1.55278 + + ---- view of lincomb & g_node & w_node ---- + + -1.7782 0 2.0000 + -1.7752 0 1.0000 + -1.7442 0 1.0000 + -1.7114 0 3.0000 + -1.6980 0 1.0000 + -1.6973 0 1.0000 + -1.6897 0 3.0000 + -1.6873 0 1.0000 + -1.6867 0 2.0000 + -1.6756 0 1.0000 + -1.6693 0 3.0000 + -1.6651 0 3.0000 + -1.6632 0 1.0000 + -1.6599 0 1.0000 + -1.6562 0 1.0000 + -1.6551 0 1.0000 + -1.6451 0 3.0000 + -1.6399 0 1.0000 + -1.6375 0 1.0000 + -1.6311 0 1.0000 + + +logrank stat for this cutpoint: 21.5589 + ------------------------------------------- + +testing cutpoint: -1.0908 + + ---- view of lincomb & g_node & w_node ---- + + -1.7782 0 2.0000 + -1.7752 0 1.0000 + -1.7442 0 1.0000 + -1.7114 0 3.0000 + -1.6980 0 1.0000 + -1.6973 0 1.0000 + -1.6897 0 3.0000 + -1.6873 0 1.0000 + -1.6867 0 2.0000 + -1.6756 0 1.0000 + -1.6693 0 3.0000 + -1.6651 0 3.0000 + -1.6632 0 1.0000 + -1.6599 0 1.0000 + -1.6562 0 1.0000 + -1.6551 0 1.0000 + -1.6451 0 3.0000 + -1.6399 0 1.0000 + -1.6375 0 1.0000 + -1.6311 0 1.0000 + + +logrank stat for this cutpoint: 60.1081 + ------------------------------------------- + +testing cutpoint: -0.900103 + + ---- view of lincomb & g_node & w_node ---- + + -1.7782 0 2.0000 + -1.7752 0 1.0000 + -1.7442 0 1.0000 + -1.7114 0 3.0000 + -1.6980 0 1.0000 + -1.6973 0 1.0000 + -1.6897 0 3.0000 + -1.6873 0 1.0000 + -1.6867 0 2.0000 + -1.6756 0 1.0000 + -1.6693 0 3.0000 + -1.6651 0 3.0000 + -1.6632 0 1.0000 + -1.6599 0 1.0000 + -1.6562 0 1.0000 + -1.6551 0 1.0000 + -1.6451 0 3.0000 + -1.6399 0 1.0000 + -1.6375 0 1.0000 + -1.6311 0 1.0000 + + +logrank stat for this cutpoint: 100.53 + ------------------------------------------- + +testing cutpoint: -0.404998 + + ---- view of lincomb & g_node & w_node ---- + + -1.7782 0 2.0000 + -1.7752 0 1.0000 + -1.7442 0 1.0000 + -1.7114 0 3.0000 + -1.6980 0 1.0000 + -1.6973 0 1.0000 + -1.6897 0 3.0000 + -1.6873 0 1.0000 + -1.6867 0 2.0000 + -1.6756 0 1.0000 + -1.6693 0 3.0000 + -1.6651 0 3.0000 + -1.6632 0 1.0000 + -1.6599 0 1.0000 + -1.6562 0 1.0000 + -1.6551 0 1.0000 + -1.6451 0 3.0000 + -1.6399 0 1.0000 + -1.6375 0 1.0000 + -1.6311 0 1.0000 + + +logrank stat for this cutpoint: 153.603 + ------------------------------------------- + +node assignments: + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + +growing node 1 + + ---- view of x_node ---- + + 1.1400e+02 5.4256e+01 1.2900e+02 + 9.1000e+01 5.5986e+01 1.0000e+02 + 5.5000e+01 5.6277e+01 4.6400e+02 + 1.9400e+02 3.5351e+01 1.0200e+02 + 6.3000e+01 5.8951e+01 1.7200e+02 + 1.1300e+02 6.2861e+01 1.0300e+02 + 5.9000e+01 3.0574e+01 5.2000e+01 + 1.1300e+02 6.1183e+01 2.4000e+01 + 1.3700e+02 3.5491e+01 6.7000e+01 + 6.4000e+01 5.6392e+01 3.1000e+01 + 7.5000e+01 3.5535e+01 2.2000e+01 + 1.0400e+02 3.7799e+01 4.3000e+01 + 9.3000e+01 5.2726e+01 7.3000e+01 + 7.7000e+01 3.4875e+01 4.5000e+01 + 9.5000e+01 3.1381e+01 6.2000e+01 + 1.1400e+02 3.8316e+01 7.7000e+01 + 2.1900e+02 6.5763e+01 1.2100e+02 + 1.1800e+02 3.8853e+01 7.0000e+01 + 1.4000e+02 4.6155e+01 6.9000e+01 + 1.9500e+02 4.8564e+01 7.5000e+01 + + + ---- view of y_node ---- + + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 6.7300e+02 1.0000e+00 + 8.7700e+02 0 + 9.9900e+02 1.0000e+00 + 1.0300e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.3000e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + 1.3490e+03 0 + 1.3600e+03 1.0000e+00 + 1.4080e+03 0 + 1.4120e+03 0 + 1.4180e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.18535 -- next: -1.08102 -- N events: 0 -- N risk: 1 +current value: -1.08102 -- next: -1.03388 -- N events: 0 -- N risk: 2 +current value: -1.03388 -- next: -1.02782 -- N events: 0 -- N risk: 3 +current value: -1.02782 -- next: -0.991534 -- N events: 0 -- N risk: 5 +current value: -0.991534 -- next: -0.979888 -- N events: 0 -- N risk: 8 +current value: -0.979888 -- next: -0.969025 -- N events: 0 -- N risk: 9 +current value: -0.969025 -- next: -0.945436 -- N events: 0 -- N risk: 10 +current value: -0.945436 -- next: -0.938951 -- N events: 0 -- N risk: 12 +current value: -0.938951 -- next: -0.934879 -- N events: 0 -- N risk: 15 +current value: -0.934879 -- next: -0.923736 -- N events: 0 -- N risk: 16 +current value: -0.923736 -- next: -0.923347 -- N events: 0 -- N risk: 17 +current value: -0.923347 -- next: -0.896972 -- N events: 0 -- N risk: 18 +current value: -0.896972 -- next: -0.896756 -- N events: 0 -- N risk: 20 +current value: -0.896756 -- next: -0.883927 -- N events: 2 -- N risk: 22 + +lower cutpoint: -0.896756 + - n_events, left node: 2 + - n_risk, left node: 22 + +----- finding upper bound for cut-points ----- +current value: 4.8671 ---- next value: 3.68648 ---- N events: 1 ---- N risk: 1 +current value: 3.68648 ---- next value: 2.56786 ---- N events: 1 ---- N risk: 2 +current value: 2.56786 ---- next value: 1.91415 ---- N events: 1 ---- N risk: 3 +current value: 1.91415 ---- next value: 1.8317 ---- N events: 2 ---- N risk: 4 +current value: 1.8317 ---- next value: 1.76352 ---- N events: 4 ---- N risk: 6 + +upper cutpoint: 1.76352 + - n_events, right node: 4 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.8968 + -0.6295 + -0.1169 + 0.4225 + 1.5813 + + +testing cutpoint: -0.896756 + + ---- view of lincomb & g_node & w_node ---- + + -1.1854 0 1.0000 + -1.0810 0 1.0000 + -1.0339 0 1.0000 + -1.0278 0 2.0000 + -0.9915 0 3.0000 + -0.9799 0 1.0000 + -0.9690 0 1.0000 + -0.9454 0 2.0000 + -0.9390 0 3.0000 + -0.9349 0 1.0000 + -0.9237 0 1.0000 + -0.9233 0 1.0000 + -0.8970 0 2.0000 + -0.8968 0 2.0000 + -0.8839 1.0000 2.0000 + -0.8153 1.0000 1.0000 + -0.8030 1.0000 2.0000 + -0.7987 1.0000 1.0000 + -0.7525 1.0000 1.0000 + -0.7055 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.10319 + ------------------------------------------- + +testing cutpoint: -0.629522 + + ---- view of lincomb & g_node & w_node ---- + + -1.1854 0 1.0000 + -1.0810 0 1.0000 + -1.0339 0 1.0000 + -1.0278 0 2.0000 + -0.9915 0 3.0000 + -0.9799 0 1.0000 + -0.9690 0 1.0000 + -0.9454 0 2.0000 + -0.9390 0 3.0000 + -0.9349 0 1.0000 + -0.9237 0 1.0000 + -0.9233 0 1.0000 + -0.8970 0 2.0000 + -0.8968 0 2.0000 + -0.8839 0 2.0000 + -0.8153 0 1.0000 + -0.8030 0 2.0000 + -0.7987 0 1.0000 + -0.7525 0 1.0000 + -0.7055 0 1.0000 + + +logrank stat for this cutpoint: 3.05802 + ------------------------------------------- + +testing cutpoint: -0.116922 + + ---- view of lincomb & g_node & w_node ---- + + -1.1854 0 1.0000 + -1.0810 0 1.0000 + -1.0339 0 1.0000 + -1.0278 0 2.0000 + -0.9915 0 3.0000 + -0.9799 0 1.0000 + -0.9690 0 1.0000 + -0.9454 0 2.0000 + -0.9390 0 3.0000 + -0.9349 0 1.0000 + -0.9237 0 1.0000 + -0.9233 0 1.0000 + -0.8970 0 2.0000 + -0.8968 0 2.0000 + -0.8839 0 2.0000 + -0.8153 0 1.0000 + -0.8030 0 2.0000 + -0.7987 0 1.0000 + -0.7525 0 1.0000 + -0.7055 0 1.0000 + + +logrank stat for this cutpoint: 2.96616 + ------------------------------------------- + +testing cutpoint: 0.422455 + + ---- view of lincomb & g_node & w_node ---- + + -1.1854 0 1.0000 + -1.0810 0 1.0000 + -1.0339 0 1.0000 + -1.0278 0 2.0000 + -0.9915 0 3.0000 + -0.9799 0 1.0000 + -0.9690 0 1.0000 + -0.9454 0 2.0000 + -0.9390 0 3.0000 + -0.9349 0 1.0000 + -0.9237 0 1.0000 + -0.9233 0 1.0000 + -0.8970 0 2.0000 + -0.8968 0 2.0000 + -0.8839 0 2.0000 + -0.8153 0 1.0000 + -0.8030 0 2.0000 + -0.7987 0 1.0000 + -0.7525 0 1.0000 + -0.7055 0 1.0000 + + +logrank stat for this cutpoint: 17.2113 + ------------------------------------------- + +testing cutpoint: 1.58133 + + ---- view of lincomb & g_node & w_node ---- + + -1.1854 0 1.0000 + -1.0810 0 1.0000 + -1.0339 0 1.0000 + -1.0278 0 2.0000 + -0.9915 0 3.0000 + -0.9799 0 1.0000 + -0.9690 0 1.0000 + -0.9454 0 2.0000 + -0.9390 0 3.0000 + -0.9349 0 1.0000 + -0.9237 0 1.0000 + -0.9233 0 1.0000 + -0.8970 0 2.0000 + -0.8968 0 2.0000 + -0.8839 0 2.0000 + -0.8153 0 1.0000 + -0.8030 0 2.0000 + -0.7987 0 1.0000 + -0.7525 0 1.0000 + -0.7055 0 1.0000 + + +logrank stat for this cutpoint: 14.329 + ------------------------------------------- + +node assignments: + 2 + 2 + 3 + 2 + 2 + 3 + 3 + 2 + 3 + 4 + 3 + 2 + 3 + 3 + 2 + 2 + 2 + 2 + 2 + 2 + 3 + 2 + 3 + 2 + 4 + 3 + 2 + 4 + 3 + 2 + 2 + 2 + 2 + 4 + 2 + 2 + 2 + 2 + 2 + 4 + 3 + 2 + 3 + 3 + 3 + 4 + 2 + 3 + 2 + 4 + 3 + 3 + 3 + 4 + 2 + 3 + 2 + 2 + 3 + 2 + 3 + 2 + 4 + 3 + 2 + 2 + 2 + 2 + 2 + 3 + 2 + 2 + 2 + 2 + 3 + 4 + 4 + 3 + 3 + 3 + 2 + 2 + 2 + 2 + 4 + 2 + 2 + 2 + 2 + 3 + 2 + 2 + 2 + 2 + 3 + 3 + 2 + 3 + 2 + 4 + 3 + 2 + 4 + 3 + 3 + 4 + 3 + 2 + 4 + 4 + 3 + 3 + 3 + 2 + +growing node 2 + + ---- view of x_node ---- + + 3.3800e+02 1.0000e+00 4.0000e+00 + 1.4725e+02 2.0000e+00 4.0000e+00 + 1.5500e+02 2.0000e+00 4.0000e+00 + 1.1935e+02 2.0000e+00 4.0000e+00 + 2.8055e+02 2.0000e+00 4.0000e+00 + 1.0600e+02 2.0000e+00 4.0000e+00 + 1.2710e+02 2.0000e+00 4.0000e+00 + 1.4725e+02 2.0000e+00 4.0000e+00 + 1.8060e+02 1.0000e+00 4.0000e+00 + 1.2126e+02 2.0000e+00 4.0000e+00 + 1.7050e+02 2.0000e+00 3.0000e+00 + 1.3400e+02 1.0000e+00 4.0000e+00 + 1.7515e+02 1.0000e+00 4.0000e+00 + 1.3795e+02 2.0000e+00 4.0000e+00 + 2.4645e+02 2.0000e+00 4.0000e+00 + 1.8910e+02 2.0000e+00 4.0000e+00 + 1.7825e+02 1.0000e+00 4.0000e+00 + 1.6740e+02 1.0000e+00 3.0000e+00 + 7.7500e+01 1.0000e+00 3.0000e+00 + 1.5810e+02 1.0000e+00 3.0000e+00 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3200e+02 0 + + +----- finding lower bound for cut-points ----- +current value: -2.02666 -- next: -1.8522 -- N events: 1 -- N risk: 1 +current value: -1.8522 -- next: -1.55129 -- N events: 1 -- N risk: 3 +current value: -1.55129 -- next: -1.45261 -- N events: 4 -- N risk: 6 + +lower cutpoint: -1.55129 + - n_events, left node: 4 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.48545 ---- next value: 1.38665 ---- N events: 2 ---- N risk: 2 +current value: 1.38665 ---- next value: 1.29354 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 1.29354 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.6234 + -0.5732 + 0.2477 + 0.3480 + 0.6829 + + +testing cutpoint: -0.623356 + + ---- view of lincomb & g_node & w_node ---- + + -2.0267 0 1.0000 + -1.8522 0 2.0000 + -1.5513 0 3.0000 + -1.4526 0 4.0000 + -1.3766 0 1.0000 + -1.0770 0 1.0000 + -0.9178 0 2.0000 + -0.9022 0 1.0000 + -0.8502 0 2.0000 + -0.8096 0 2.0000 + -0.7436 0 2.0000 + -0.7368 0 1.0000 + -0.6495 0 1.0000 + -0.6234 0 2.0000 + -0.5732 1.0000 2.0000 + -0.5710 1.0000 3.0000 + -0.5710 1.0000 1.0000 + -0.5448 1.0000 1.0000 + -0.4719 1.0000 2.0000 + -0.4542 1.0000 1.0000 + + +logrank stat for this cutpoint: 12.1265 + ------------------------------------------- + +testing cutpoint: -0.573235 + + ---- view of lincomb & g_node & w_node ---- + + -2.0267 0 1.0000 + -1.8522 0 2.0000 + -1.5513 0 3.0000 + -1.4526 0 4.0000 + -1.3766 0 1.0000 + -1.0770 0 1.0000 + -0.9178 0 2.0000 + -0.9022 0 1.0000 + -0.8502 0 2.0000 + -0.8096 0 2.0000 + -0.7436 0 2.0000 + -0.7368 0 1.0000 + -0.6495 0 1.0000 + -0.6234 0 2.0000 + -0.5732 0 2.0000 + -0.5710 1.0000 3.0000 + -0.5710 1.0000 1.0000 + -0.5448 1.0000 1.0000 + -0.4719 1.0000 2.0000 + -0.4542 1.0000 1.0000 + + +logrank stat for this cutpoint: 14.8045 + ------------------------------------------- + +testing cutpoint: 0.247746 + + ---- view of lincomb & g_node & w_node ---- + + -2.0267 0 1.0000 + -1.8522 0 2.0000 + -1.5513 0 3.0000 + -1.4526 0 4.0000 + -1.3766 0 1.0000 + -1.0770 0 1.0000 + -0.9178 0 2.0000 + -0.9022 0 1.0000 + -0.8502 0 2.0000 + -0.8096 0 2.0000 + -0.7436 0 2.0000 + -0.7368 0 1.0000 + -0.6495 0 1.0000 + -0.6234 0 2.0000 + -0.5732 0 2.0000 + -0.5710 0 3.0000 + -0.5710 0 1.0000 + -0.5448 0 1.0000 + -0.4719 0 2.0000 + -0.4542 0 1.0000 + + +logrank stat for this cutpoint: 38.8646 + ------------------------------------------- + +testing cutpoint: 0.348004 + + ---- view of lincomb & g_node & w_node ---- + + -2.0267 0 1.0000 + -1.8522 0 2.0000 + -1.5513 0 3.0000 + -1.4526 0 4.0000 + -1.3766 0 1.0000 + -1.0770 0 1.0000 + -0.9178 0 2.0000 + -0.9022 0 1.0000 + -0.8502 0 2.0000 + -0.8096 0 2.0000 + -0.7436 0 2.0000 + -0.7368 0 1.0000 + -0.6495 0 1.0000 + -0.6234 0 2.0000 + -0.5732 0 2.0000 + -0.5710 0 3.0000 + -0.5710 0 1.0000 + -0.5448 0 1.0000 + -0.4719 0 2.0000 + -0.4542 0 1.0000 + + +logrank stat for this cutpoint: 39.1016 + ------------------------------------------- + +testing cutpoint: 0.682901 + + ---- view of lincomb & g_node & w_node ---- + + -2.0267 0 1.0000 + -1.8522 0 2.0000 + -1.5513 0 3.0000 + -1.4526 0 4.0000 + -1.3766 0 1.0000 + -1.0770 0 1.0000 + -0.9178 0 2.0000 + -0.9022 0 1.0000 + -0.8502 0 2.0000 + -0.8096 0 2.0000 + -0.7436 0 2.0000 + -0.7368 0 1.0000 + -0.6495 0 1.0000 + -0.6234 0 2.0000 + -0.5732 0 2.0000 + -0.5710 0 3.0000 + -0.5710 0 1.0000 + -0.5448 0 1.0000 + -0.4719 0 2.0000 + -0.4542 0 1.0000 + + +logrank stat for this cutpoint: 28.6487 + ------------------------------------------- + +node assignments: + 6 + 5 + 3 + 3 + 5 + 6 + 3 + 5 + 3 + 3 + 3 + 3 + 5 + 5 + 6 + 3 + 6 + 5 + 4 + 3 + 5 + 5 + 6 + 4 + 3 + 5 + 4 + 3 + 3 + 4 + 5 + 5 + 5 + 6 + 6 + 5 + 5 + 5 + 3 + 5 + 3 + 6 + 6 + 4 + 6 + 6 + 6 + 5 + 5 + 6 + 6 + 5 + 6 + 6 + 5 + 6 + 6 + 6 + 6 + 5 + 5 + 4 + 6 + 6 + 6 + 6 + +growing node 3 + + ---- view of x_node ---- + + 2.4000e+00 1.0000e+00 1.0200e+02 + 8.0000e-01 1.0000e+00 5.2000e+01 + 4.0000e-01 1.0000e+00 2.4000e+01 + 1.3000e+00 1.0000e+00 6.7000e+01 + 6.0000e-01 1.0000e+00 3.1000e+01 + 5.0000e-01 1.0000e+00 2.2000e+01 + 7.0000e-01 1.0000e+00 4.3000e+01 + 1.1000e+00 1.0000e+00 7.3000e+01 + 1.1000e+00 2.0000e+00 4.5000e+01 + 8.0000e-01 1.0000e+00 6.2000e+01 + 2.2000e+00 1.0000e+00 7.7000e+01 + 2.0000e+00 2.0000e+00 7.0000e+01 + 1.6000e+00 1.0000e+00 6.9000e+01 + 1.3000e+00 1.0000e+00 7.5000e+01 + 5.0000e-01 1.0000e+00 3.8000e+01 + 1.3000e+00 1.0000e+00 9.7000e+01 + 5.0000e-01 1.0000e+00 4.0000e+01 + 2.2000e+00 2.0000e+00 7.5000e+01 + 2.1000e+00 1.0000e+00 5.2000e+01 + 5.0000e-01 1.0000e+00 5.2000e+01 + + + ---- view of y_node ---- + + 8.7700e+02 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.3000e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + 1.3490e+03 0 + 1.4080e+03 0 + 1.4120e+03 0 + 1.4180e+03 0 + 1.4330e+03 0 + 1.4550e+03 0 + 1.4570e+03 0 + 1.5580e+03 0 + 1.5920e+03 0 + 1.6140e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.505038 -- next: -0.504979 -- N events: 1 -- N risk: 1 +current value: -0.504979 -- next: -0.427762 -- N events: 1 -- N risk: 3 +current value: -0.427762 -- next: -0.427234 -- N events: 1 -- N risk: 6 + +lower cutpoint: -0.427762 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.132 ---- next value: 1.05681 ---- N events: 0 ---- N risk: 2 +current value: 1.05681 ---- next value: 0.984051 ---- N events: 0 ---- N risk: 5 +current value: 0.984051 ---- next value: 0.976593 ---- N events: 0 ---- N risk: 6 +current value: 0.976593 ---- next value: 0.899258 ---- N events: 0 ---- N risk: 7 +current value: 0.899258 ---- next value: 0.828061 ---- N events: 0 ---- N risk: 8 +current value: 0.828061 ---- next value: 0.821248 ---- N events: 0 ---- N risk: 9 +current value: 0.821248 ---- next value: 0.749875 ---- N events: 1 ---- N risk: 10 + +upper cutpoint: 0.749875 + - n_events, right node: 1 + - n_risk, right node: 10 + +Randomly sampled cutpoints: + -0.3496 + -0.1953 + -0.1939 + -0.1165 + 0.1978 + + +testing cutpoint: -0.349605 + + ---- view of lincomb & g_node & w_node ---- + + -0.5050 0 1.0000 + -0.5050 0 2.0000 + -0.4278 0 3.0000 + -0.4272 0 1.0000 + -0.4271 0 1.0000 + -0.4271 0 1.0000 + -0.4268 0 3.0000 + -0.3503 0 1.0000 + -0.3503 0 1.0000 + -0.3498 0 3.0000 + -0.3498 0 1.0000 + -0.3496 0 1.0000 + -0.3495 1.0000 2.0000 + -0.3494 1.0000 1.0000 + -0.3490 1.0000 1.0000 + -0.3488 1.0000 3.0000 + -0.3486 1.0000 1.0000 + -0.3412 1.0000 3.0000 + -0.2717 1.0000 1.0000 + -0.2712 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.5993 + ------------------------------------------- + +testing cutpoint: -0.195348 + + ---- view of lincomb & g_node & w_node ---- + + -0.5050 0 1.0000 + -0.5050 0 2.0000 + -0.4278 0 3.0000 + -0.4272 0 1.0000 + -0.4271 0 1.0000 + -0.4271 0 1.0000 + -0.4268 0 3.0000 + -0.3503 0 1.0000 + -0.3503 0 1.0000 + -0.3498 0 3.0000 + -0.3498 0 1.0000 + -0.3496 0 1.0000 + -0.3495 0 2.0000 + -0.3494 0 1.0000 + -0.3490 0 1.0000 + -0.3488 0 3.0000 + -0.3486 0 1.0000 + -0.3412 0 3.0000 + -0.2717 0 1.0000 + -0.2712 0 1.0000 + + +logrank stat for this cutpoint: 0.201508 + ------------------------------------------- + +testing cutpoint: -0.193879 + + ---- view of lincomb & g_node & w_node ---- + + -0.5050 0 1.0000 + -0.5050 0 2.0000 + -0.4278 0 3.0000 + -0.4272 0 1.0000 + -0.4271 0 1.0000 + -0.4271 0 1.0000 + -0.4268 0 3.0000 + -0.3503 0 1.0000 + -0.3503 0 1.0000 + -0.3498 0 3.0000 + -0.3498 0 1.0000 + -0.3496 0 1.0000 + -0.3495 0 2.0000 + -0.3494 0 1.0000 + -0.3490 0 1.0000 + -0.3488 0 3.0000 + -0.3486 0 1.0000 + -0.3412 0 3.0000 + -0.2717 0 1.0000 + -0.2712 0 1.0000 + + +logrank stat for this cutpoint: 0.393978 + ------------------------------------------- + +testing cutpoint: -0.116516 + + ---- view of lincomb & g_node & w_node ---- + + -0.5050 0 1.0000 + -0.5050 0 2.0000 + -0.4278 0 3.0000 + -0.4272 0 1.0000 + -0.4271 0 1.0000 + -0.4271 0 1.0000 + -0.4268 0 3.0000 + -0.3503 0 1.0000 + -0.3503 0 1.0000 + -0.3498 0 3.0000 + -0.3498 0 1.0000 + -0.3496 0 1.0000 + -0.3495 0 2.0000 + -0.3494 0 1.0000 + -0.3490 0 1.0000 + -0.3488 0 3.0000 + -0.3486 0 1.0000 + -0.3412 0 3.0000 + -0.2717 0 1.0000 + -0.2712 0 1.0000 + + +logrank stat for this cutpoint: 0.39709 + ------------------------------------------- + +testing cutpoint: 0.197845 + + ---- view of lincomb & g_node & w_node ---- + + -0.5050 0 1.0000 + -0.5050 0 2.0000 + -0.4278 0 3.0000 + -0.4272 0 1.0000 + -0.4271 0 1.0000 + -0.4271 0 1.0000 + -0.4268 0 3.0000 + -0.3503 0 1.0000 + -0.3503 0 1.0000 + -0.3498 0 3.0000 + -0.3498 0 1.0000 + -0.3496 0 1.0000 + -0.3495 0 2.0000 + -0.3494 0 1.0000 + -0.3490 0 1.0000 + -0.3488 0 3.0000 + -0.3486 0 1.0000 + -0.3412 0 3.0000 + -0.2717 0 1.0000 + -0.2712 0 1.0000 + + +logrank stat for this cutpoint: 6.0225 + ------------------------------------------- + +node assignments: + 8 + 5 + 5 + 5 + 6 + 5 + 7 + 5 + 5 + 5 + 6 + 4 + 4 + 6 + 6 + 5 + 7 + 6 + 5 + 6 + 4 + 5 + 5 + 5 + 8 + 5 + 7 + 5 + 5 + 5 + 6 + 7 + 7 + 6 + 7 + 7 + 6 + 5 + 8 + 7 + 4 + 5 + 6 + 6 + 7 + 5 + 5 + 4 + 5 + 5 + 8 + 4 + 4 + 6 + 6 + 5 + 7 + 6 + 8 + 8 + 6 + 7 + 7 + 7 + 5 + 4 + 6 + 6 + 8 + 6 + 8 + 6 + 8 + 6 + 6 + 6 + 6 + 6 + 7 + 8 + 5 + 5 + 5 + 6 + 5 + 6 + 4 + 6 + +growing node 4 + + ---- view of x_node ---- + + 3.8300 54.2560 0.6000 + 3.4300 55.9863 1.2000 + 3.6300 56.2765 3.4000 + 3.3500 58.9514 2.3000 + 3.9900 62.8611 1.1000 + 3.9400 65.7632 1.8000 + 3.4000 39.1978 1.3000 + 3.5000 62.9076 2.1000 + 3.5300 70.8364 2.0000 + 3.3500 68.4627 1.1000 + 3.4300 69.3470 0.9000 + 2.9700 64.5722 1.9000 + 2.9500 59.7618 1.6000 + 3.0600 42.6858 0.9000 + 3.6500 56.6297 0.9000 + 3.3100 46.7625 1.1000 + 4.0400 37.0568 0.5000 + 3.8000 52.1533 0.8000 + 3.2000 48.6188 1.2000 + 3.6000 62.8611 1.1000 + + + ---- view of y_node ---- + + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 6.7300e+02 1.0000e+00 + 9.9900e+02 1.0000e+00 + 1.0300e+03 0 + 1.3600e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.4870e+03 1.0000e+00 + 1.5760e+03 1.0000e+00 + 1.7700e+03 0 + 1.7860e+03 1.0000e+00 + 1.8100e+03 0 + 1.8820e+03 0 + 1.9320e+03 0 + 2.0500e+03 0 + 2.1060e+03 0 + 2.2210e+03 0 + 2.6240e+03 0 + 2.8470e+03 1.0000e+00 + 2.9900e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.20887 -- next: -0.707459 -- N events: 0 -- N risk: 1 +current value: -0.707459 -- next: -0.703651 -- N events: 0 -- N risk: 3 +current value: -0.703651 -- next: -0.689786 -- N events: 1 -- N risk: 4 +current value: -0.689786 -- next: -0.61901 -- N events: 3 -- N risk: 6 + +lower cutpoint: -0.689786 + - n_events, left node: 3 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.86741 ---- next value: 1.40459 ---- N events: 1 ---- N risk: 1 +current value: 1.40459 ---- next value: 0.924967 ---- N events: 2 ---- N risk: 2 +current value: 0.924967 ---- next value: 0.774289 ---- N events: 4 ---- N risk: 4 +current value: 0.774289 ---- next value: 0.592287 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.592287 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.6898 + -0.0400 + 0.1946 + 0.2884 + 0.4337 + + +testing cutpoint: -0.689786 + + ---- view of lincomb & g_node & w_node ---- + + -1.2089 0 1.0000 + -0.7075 0 2.0000 + -0.7037 0 1.0000 + -0.6898 0 2.0000 + -0.6190 1.0000 1.0000 + -0.4287 1.0000 1.0000 + -0.3909 1.0000 1.0000 + -0.2977 1.0000 1.0000 + -0.2650 1.0000 1.0000 + -0.2538 1.0000 1.0000 + -0.2194 1.0000 2.0000 + -0.1563 1.0000 2.0000 + -0.0973 1.0000 2.0000 + -0.0716 1.0000 1.0000 + -0.0400 1.0000 2.0000 + 0.0322 1.0000 1.0000 + 0.1606 1.0000 1.0000 + 0.1946 1.0000 1.0000 + 0.2884 1.0000 1.0000 + 0.4337 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.273045 + ------------------------------------------- + +testing cutpoint: -0.0400122 + + ---- view of lincomb & g_node & w_node ---- + + -1.2089 0 1.0000 + -0.7075 0 2.0000 + -0.7037 0 1.0000 + -0.6898 0 2.0000 + -0.6190 0 1.0000 + -0.4287 0 1.0000 + -0.3909 0 1.0000 + -0.2977 0 1.0000 + -0.2650 0 1.0000 + -0.2538 0 1.0000 + -0.2194 0 2.0000 + -0.1563 0 2.0000 + -0.0973 0 2.0000 + -0.0716 0 1.0000 + -0.0400 0 2.0000 + 0.0322 1.0000 1.0000 + 0.1606 1.0000 1.0000 + 0.1946 1.0000 1.0000 + 0.2884 1.0000 1.0000 + 0.4337 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.4732 + ------------------------------------------- + +testing cutpoint: 0.194649 + + ---- view of lincomb & g_node & w_node ---- + + -1.2089 0 1.0000 + -0.7075 0 2.0000 + -0.7037 0 1.0000 + -0.6898 0 2.0000 + -0.6190 0 1.0000 + -0.4287 0 1.0000 + -0.3909 0 1.0000 + -0.2977 0 1.0000 + -0.2650 0 1.0000 + -0.2538 0 1.0000 + -0.2194 0 2.0000 + -0.1563 0 2.0000 + -0.0973 0 2.0000 + -0.0716 0 1.0000 + -0.0400 0 2.0000 + 0.0322 0 1.0000 + 0.1606 0 1.0000 + 0.1946 0 1.0000 + 0.2884 1.0000 1.0000 + 0.4337 1.0000 1.0000 + + +logrank stat for this cutpoint: 8.18724 + ------------------------------------------- + +testing cutpoint: 0.288416 + + ---- view of lincomb & g_node & w_node ---- + + -1.2089 0 1.0000 + -0.7075 0 2.0000 + -0.7037 0 1.0000 + -0.6898 0 2.0000 + -0.6190 0 1.0000 + -0.4287 0 1.0000 + -0.3909 0 1.0000 + -0.2977 0 1.0000 + -0.2650 0 1.0000 + -0.2538 0 1.0000 + -0.2194 0 2.0000 + -0.1563 0 2.0000 + -0.0973 0 2.0000 + -0.0716 0 1.0000 + -0.0400 0 2.0000 + 0.0322 0 1.0000 + 0.1606 0 1.0000 + 0.1946 0 1.0000 + 0.2884 0 1.0000 + 0.4337 1.0000 1.0000 + + +logrank stat for this cutpoint: 16.7898 + ------------------------------------------- + +testing cutpoint: 0.433712 + + ---- view of lincomb & g_node & w_node ---- + + -1.2089 0 1.0000 + -0.7075 0 2.0000 + -0.7037 0 1.0000 + -0.6898 0 2.0000 + -0.6190 0 1.0000 + -0.4287 0 1.0000 + -0.3909 0 1.0000 + -0.2977 0 1.0000 + -0.2650 0 1.0000 + -0.2538 0 1.0000 + -0.2194 0 2.0000 + -0.1563 0 2.0000 + -0.0973 0 2.0000 + -0.0716 0 1.0000 + -0.0400 0 2.0000 + 0.0322 0 1.0000 + 0.1606 0 1.0000 + 0.1946 0 1.0000 + 0.2884 0 1.0000 + 0.4337 0 1.0000 + + +logrank stat for this cutpoint: 18.0358 + ------------------------------------------- + +node assignments: + 6 + 9 + 6 + 6 + 9 + 5 + 6 + 6 + 6 + 6 + 6 + 5 + 5 + 6 + 5 + 5 + 5 + 5 + 6 + 6 + 6 + 6 + 6 + 6 + 6 + 10 + +growing node 5 + + ---- view of x_node ---- + + 2.0000e+00 1.0000e+00 1.3200e+02 + 1.0000e+00 2.0000e+00 2.1000e+02 + 2.0000e+00 1.0000e+00 2.4000e+02 + 2.0000e+00 1.0000e+00 3.4400e+02 + 1.0000e+00 1.0000e+00 2.9700e+02 + 2.0000e+00 1.0000e+00 2.6800e+02 + 1.0000e+00 1.0000e+00 2.6400e+02 + 2.0000e+00 1.0000e+00 2.7700e+02 + 2.0000e+00 1.0000e+00 2.9800e+02 + 1.0000e+00 1.0000e+00 2.6900e+02 + 2.0000e+00 1.0000e+00 1.5100e+02 + 2.0000e+00 1.0000e+00 1.6500e+02 + 1.0000e+00 1.0000e+00 1.5600e+02 + 2.0000e+00 1.0000e+00 4.7100e+02 + 2.0000e+00 1.0000e+00 2.9800e+02 + 2.0000e+00 1.0000e+00 2.1600e+02 + 2.0000e+00 1.0000e+00 2.9600e+02 + 1.0000e+00 1.0000e+00 2.2700e+02 + 1.0000e+00 2.0000e+00 1.4900e+02 + 1.0000e+00 1.0000e+00 2.2800e+02 + + + ---- view of y_node ---- + + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3200e+02 0 + 7.3300e+02 1.0000e+00 + 7.3700e+02 0 + 7.8600e+02 1.0000e+00 + 7.9000e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 8.5900e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.7400e+02 1.0000e+00 + 1.0670e+03 0 + 1.0800e+03 1.0000e+00 + 1.0840e+03 0 + 1.1700e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.2350e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.526918 -- next: -0.502555 -- N events: 2 -- N risk: 2 +current value: -0.502555 -- next: -0.476282 -- N events: 2 -- N risk: 3 +current value: -0.476282 -- next: -0.421347 -- N events: 4 -- N risk: 5 + +lower cutpoint: -0.476282 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 4.25921 ---- next value: 4.23007 ---- N events: 1 ---- N risk: 1 +current value: 4.23007 ---- next value: -0.044993 ---- N events: 3 ---- N risk: 3 +current value: -0.044993 ---- next value: -0.0469038 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: -0.0469038 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.3669 + -0.3540 + -0.2069 + -0.1405 + -0.1338 + + +testing cutpoint: -0.36689 + + ---- view of lincomb & g_node & w_node ---- + + -0.5269 0 2.0000 + -0.5026 0 1.0000 + -0.4763 0 2.0000 + -0.4213 0 2.0000 + -0.4080 0 1.0000 + -0.4056 0 2.0000 + -0.3884 0 1.0000 + -0.3879 0 2.0000 + -0.3827 0 2.0000 + -0.3784 0 1.0000 + -0.3678 0 1.0000 + -0.3669 0 1.0000 + -0.3540 1.0000 1.0000 + -0.2069 1.0000 3.0000 + -0.1816 1.0000 2.0000 + -0.1563 1.0000 3.0000 + -0.1463 1.0000 1.0000 + -0.1405 1.0000 4.0000 + -0.1396 1.0000 2.0000 + -0.1338 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.11436 + ------------------------------------------- + +testing cutpoint: -0.353993 + + ---- view of lincomb & g_node & w_node ---- + + -0.5269 0 2.0000 + -0.5026 0 1.0000 + -0.4763 0 2.0000 + -0.4213 0 2.0000 + -0.4080 0 1.0000 + -0.4056 0 2.0000 + -0.3884 0 1.0000 + -0.3879 0 2.0000 + -0.3827 0 2.0000 + -0.3784 0 1.0000 + -0.3678 0 1.0000 + -0.3669 0 1.0000 + -0.3540 0 1.0000 + -0.2069 1.0000 3.0000 + -0.1816 1.0000 2.0000 + -0.1563 1.0000 3.0000 + -0.1463 1.0000 1.0000 + -0.1405 1.0000 4.0000 + -0.1396 1.0000 2.0000 + -0.1338 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.38037 + ------------------------------------------- + +testing cutpoint: -0.206931 + + ---- view of lincomb & g_node & w_node ---- + + -0.5269 0 2.0000 + -0.5026 0 1.0000 + -0.4763 0 2.0000 + -0.4213 0 2.0000 + -0.4080 0 1.0000 + -0.4056 0 2.0000 + -0.3884 0 1.0000 + -0.3879 0 2.0000 + -0.3827 0 2.0000 + -0.3784 0 1.0000 + -0.3678 0 1.0000 + -0.3669 0 1.0000 + -0.3540 0 1.0000 + -0.2069 0 3.0000 + -0.1816 1.0000 2.0000 + -0.1563 1.0000 3.0000 + -0.1463 1.0000 1.0000 + -0.1405 1.0000 4.0000 + -0.1396 1.0000 2.0000 + -0.1338 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.18608 + ------------------------------------------- + +testing cutpoint: -0.140532 + + ---- view of lincomb & g_node & w_node ---- + + -0.5269 0 2.0000 + -0.5026 0 1.0000 + -0.4763 0 2.0000 + -0.4213 0 2.0000 + -0.4080 0 1.0000 + -0.4056 0 2.0000 + -0.3884 0 1.0000 + -0.3879 0 2.0000 + -0.3827 0 2.0000 + -0.3784 0 1.0000 + -0.3678 0 1.0000 + -0.3669 0 1.0000 + -0.3540 0 1.0000 + -0.2069 0 3.0000 + -0.1816 0 2.0000 + -0.1563 0 3.0000 + -0.1463 0 1.0000 + -0.1405 0 4.0000 + -0.1396 1.0000 2.0000 + -0.1338 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.17469 + ------------------------------------------- + +testing cutpoint: -0.133844 + + ---- view of lincomb & g_node & w_node ---- + + -0.5269 0 2.0000 + -0.5026 0 1.0000 + -0.4763 0 2.0000 + -0.4213 0 2.0000 + -0.4080 0 1.0000 + -0.4056 0 2.0000 + -0.3884 0 1.0000 + -0.3879 0 2.0000 + -0.3827 0 2.0000 + -0.3784 0 1.0000 + -0.3678 0 1.0000 + -0.3669 0 1.0000 + -0.3540 0 1.0000 + -0.2069 0 3.0000 + -0.1816 0 2.0000 + -0.1563 0 3.0000 + -0.1463 0 1.0000 + -0.1405 0 4.0000 + -0.1396 0 2.0000 + -0.1338 0 2.0000 + + +logrank stat for this cutpoint: 1.6673 + ------------------------------------------- + +best split stat, 2.11436, was < split_min_stat, 3.84 +sprouting new leaf with node 5 + + ---- view of leaf_data ---- + + 3.2600e+02 9.6825e-01 3.1746e-02 + 3.3400e+02 9.3651e-01 6.4533e-02 + 5.9700e+02 9.2063e-01 8.1482e-02 + 6.1100e+02 9.0476e-01 9.8723e-02 + 7.3300e+02 8.8831e-01 1.1691e-01 + + +growing node 6 + + ---- view of x_node ---- + + 2.2900e+02 3.3800e+02 2.0000e+00 + 1.4300e+02 1.4725e+02 2.0000e+00 + 2.4300e+02 1.5500e+02 1.0000e+00 + 1.0200e+02 1.1935e+02 2.0000e+00 + 2.0000e+02 2.8055e+02 1.0000e+00 + 9.1000e+01 1.0600e+02 2.0000e+00 + 1.0100e+02 1.2710e+02 1.0000e+00 + 4.3200e+02 1.4725e+02 2.0000e+00 + 1.1800e+02 1.8060e+02 2.0000e+00 + 1.5800e+02 1.2126e+02 1.0000e+00 + 1.1800e+02 1.7515e+02 2.0000e+00 + 1.7200e+02 1.3795e+02 2.0000e+00 + 5.6000e+01 2.4645e+02 1.0000e+00 + 1.9500e+02 1.8910e+02 2.0000e+00 + 1.2200e+02 1.7825e+02 1.0000e+00 + 6.9000e+01 1.5965e+02 1.0000e+00 + 3.2200e+02 1.1470e+02 1.0000e+00 + 1.0400e+02 1.3640e+02 1.0000e+00 + 9.1000e+01 1.7670e+02 1.0000e+00 + 1.3900e+02 1.9840e+02 1.0000e+00 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.1000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.4800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 7.5000e+02 1.0000e+00 + 8.3700e+02 0 + 8.5000e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.71611 -- next: -1.63945 -- N events: 2 -- N risk: 2 +current value: -1.63945 -- next: -1.28065 -- N events: 2 -- N risk: 3 +current value: -1.28065 -- next: -1.22748 -- N events: 3 -- N risk: 4 +current value: -1.22748 -- next: -1.06892 -- N events: 4 -- N risk: 5 + +lower cutpoint: -1.22748 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.30958 ---- next value: 1.88967 ---- N events: 3 ---- N risk: 3 +current value: 1.88967 ---- next value: 1.86614 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 1.86614 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.0358 + -1.0342 + -0.4484 + 1.5792 + 1.6627 + + +testing cutpoint: -1.03579 + + ---- view of lincomb & g_node & w_node ---- + + -1.7161 0 2.0000 + -1.6394 0 1.0000 + -1.2806 0 1.0000 + -1.2275 0 1.0000 + -1.0689 0 4.0000 + -1.0599 0 1.0000 + -1.0358 0 1.0000 + -1.0342 1.0000 1.0000 + -0.8972 1.0000 2.0000 + -0.8886 1.0000 4.0000 + -0.8601 1.0000 2.0000 + -0.8535 1.0000 1.0000 + -0.8500 1.0000 2.0000 + -0.8314 1.0000 1.0000 + -0.7440 1.0000 1.0000 + -0.7153 1.0000 1.0000 + -0.6380 1.0000 2.0000 + -0.4748 1.0000 1.0000 + -0.4484 1.0000 2.0000 + 1.0111 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.493241 + ------------------------------------------- + +testing cutpoint: -1.03415 + + ---- view of lincomb & g_node & w_node ---- + + -1.7161 0 2.0000 + -1.6394 0 1.0000 + -1.2806 0 1.0000 + -1.2275 0 1.0000 + -1.0689 0 4.0000 + -1.0599 0 1.0000 + -1.0358 0 1.0000 + -1.0342 0 1.0000 + -0.8972 1.0000 2.0000 + -0.8886 1.0000 4.0000 + -0.8601 1.0000 2.0000 + -0.8535 1.0000 1.0000 + -0.8500 1.0000 2.0000 + -0.8314 1.0000 1.0000 + -0.7440 1.0000 1.0000 + -0.7153 1.0000 1.0000 + -0.6380 1.0000 2.0000 + -0.4748 1.0000 1.0000 + -0.4484 1.0000 2.0000 + 1.0111 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.38701 + ------------------------------------------- + +testing cutpoint: -0.448356 + + ---- view of lincomb & g_node & w_node ---- + + -1.7161 0 2.0000 + -1.6394 0 1.0000 + -1.2806 0 1.0000 + -1.2275 0 1.0000 + -1.0689 0 4.0000 + -1.0599 0 1.0000 + -1.0358 0 1.0000 + -1.0342 0 1.0000 + -0.8972 0 2.0000 + -0.8886 0 4.0000 + -0.8601 0 2.0000 + -0.8535 0 1.0000 + -0.8500 0 2.0000 + -0.8314 0 1.0000 + -0.7440 0 1.0000 + -0.7153 0 1.0000 + -0.6380 0 2.0000 + -0.4748 0 1.0000 + -0.4484 0 2.0000 + 1.0111 1.0000 2.0000 + + +logrank stat for this cutpoint: 30.1938 + ------------------------------------------- + +testing cutpoint: 1.57921 + + ---- view of lincomb & g_node & w_node ---- + + -1.7161 0 2.0000 + -1.6394 0 1.0000 + -1.2806 0 1.0000 + -1.2275 0 1.0000 + -1.0689 0 4.0000 + -1.0599 0 1.0000 + -1.0358 0 1.0000 + -1.0342 0 1.0000 + -0.8972 0 2.0000 + -0.8886 0 4.0000 + -0.8601 0 2.0000 + -0.8535 0 1.0000 + -0.8500 0 2.0000 + -0.8314 0 1.0000 + -0.7440 0 1.0000 + -0.7153 0 1.0000 + -0.6380 0 2.0000 + -0.4748 0 1.0000 + -0.4484 0 2.0000 + 1.0111 0 2.0000 + + +logrank stat for this cutpoint: 29.9689 + ------------------------------------------- + +testing cutpoint: 1.66265 + + ---- view of lincomb & g_node & w_node ---- + + -1.7161 0 2.0000 + -1.6394 0 1.0000 + -1.2806 0 1.0000 + -1.2275 0 1.0000 + -1.0689 0 4.0000 + -1.0599 0 1.0000 + -1.0358 0 1.0000 + -1.0342 0 1.0000 + -0.8972 0 2.0000 + -0.8886 0 4.0000 + -0.8601 0 2.0000 + -0.8535 0 1.0000 + -0.8500 0 2.0000 + -0.8314 0 1.0000 + -0.7440 0 1.0000 + -0.7153 0 1.0000 + -0.6380 0 2.0000 + -0.4748 0 1.0000 + -0.4484 0 2.0000 + 1.0111 0 2.0000 + + +logrank stat for this cutpoint: 14.8435 + ------------------------------------------- + +node assignments: + 5 + 9 + 11 + 11 + 11 + 5 + 12 + 5 + 11 + 11 + 5 + 9 + 5 + 11 + 5 + 10 + 11 + 5 + 12 + 12 + 5 + 12 + 12 + 12 + 12 + 5 + 12 + 12 + +growing node 7 + + ---- view of x_node ---- + + 1.2820e+03 2.0000e+00 3.4400e+02 + 7.9700e+02 2.0000e+00 2.8800e+02 + 1.0720e+03 2.0000e+00 2.2700e+02 + 6.6300e+02 3.0000e+00 2.4600e+02 + 6.5700e+02 2.0000e+00 2.6800e+02 + 2.8900e+02 3.0000e+00 2.4300e+02 + 1.4060e+03 4.0000e+00 2.4800e+02 + 1.1050e+03 4.0000e+00 2.9300e+02 + 9.1100e+02 2.0000e+00 2.8000e+02 + 6.7600e+02 2.0000e+00 2.4900e+02 + 6.1300e+02 3.0000e+00 2.7900e+02 + 8.2300e+02 3.0000e+00 2.4200e+02 + 4.6600e+02 3.0000e+00 1.5600e+02 + 2.7690e+03 4.0000e+00 3.0300e+02 + 9.7600e+02 2.0000e+00 3.2200e+02 + 1.2370e+03 3.0000e+00 3.7100e+02 + 7.9400e+02 3.0000e+00 3.0500e+02 + 3.6900e+02 3.0000e+00 3.2600e+02 + 8.2400e+02 3.0000e+00 2.0400e+02 + 1.0010e+03 3.0000e+00 2.6500e+02 + + + ---- view of y_node ---- + + 1.1490e+03 0 + 1.1530e+03 0 + 1.2160e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.3000e+03 0 + 1.3010e+03 0 + 1.3210e+03 0 + 1.4330e+03 0 + 1.4570e+03 0 + 1.6140e+03 0 + 1.7010e+03 0 + 1.7350e+03 0 + 1.7690e+03 0 + 1.7760e+03 0 + 1.7850e+03 0 + 1.7900e+03 0 + 1.8310e+03 0 + 1.8320e+03 0 + 1.9510e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.43088 -- next: -1.18041 -- N events: 0 -- N risk: 1 +current value: -1.18041 -- next: -1.08447 -- N events: 0 -- N risk: 2 +current value: -1.08447 -- next: -1.00695 -- N events: 0 -- N risk: 5 +current value: -1.00695 -- next: -0.976973 -- N events: 0 -- N risk: 6 +current value: -0.976973 -- next: -0.91607 -- N events: 0 -- N risk: 7 +current value: -0.91607 -- next: -0.895317 -- N events: 0 -- N risk: 10 +current value: -0.895317 -- next: -0.838226 -- N events: 0 -- N risk: 12 +current value: -0.838226 -- next: -0.763231 -- N events: 0 -- N risk: 14 +current value: -0.763231 -- next: -0.650428 -- N events: 0 -- N risk: 16 +current value: -0.650428 -- next: -0.642424 -- N events: 0 -- N risk: 17 +current value: -0.642424 -- next: -0.622204 -- N events: 0 -- N risk: 18 +current value: -0.622204 -- next: -0.606521 -- N events: 1 -- N risk: 19 + +lower cutpoint: -0.622204 + - n_events, left node: 1 + - n_risk, left node: 19 + +----- finding upper bound for cut-points ----- +current value: 3.56752 ---- next value: 1.72863 ---- N events: 2 ---- N risk: 2 +current value: 1.72863 ---- next value: 1.1201 ---- N events: 2 ---- N risk: 3 +current value: 1.1201 ---- next value: 1.09629 ---- N events: 2 ---- N risk: 4 +current value: 1.09629 ---- next value: 1.0357 ---- N events: 2 ---- N risk: 6 + +upper cutpoint: 1.0357 + - n_events, right node: 2 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.5231 + -0.3466 + -0.1877 + 0.7813 + 0.9653 + + +testing cutpoint: -0.523106 + + ---- view of lincomb & g_node & w_node ---- + + -1.4309 0 1.0000 + -1.1804 0 1.0000 + -1.0845 0 3.0000 + -1.0069 0 1.0000 + -0.9770 0 1.0000 + -0.9161 0 3.0000 + -0.8953 0 2.0000 + -0.8382 0 2.0000 + -0.7632 0 2.0000 + -0.6504 0 1.0000 + -0.6424 0 1.0000 + -0.6222 0 1.0000 + -0.6065 0 1.0000 + -0.5883 0 2.0000 + -0.5647 0 1.0000 + -0.5375 0 1.0000 + -0.5231 0 2.0000 + -0.5027 1.0000 3.0000 + -0.4705 1.0000 2.0000 + -0.4416 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.17933 + ------------------------------------------- + +testing cutpoint: -0.346631 + + ---- view of lincomb & g_node & w_node ---- + + -1.4309 0 1.0000 + -1.1804 0 1.0000 + -1.0845 0 3.0000 + -1.0069 0 1.0000 + -0.9770 0 1.0000 + -0.9161 0 3.0000 + -0.8953 0 2.0000 + -0.8382 0 2.0000 + -0.7632 0 2.0000 + -0.6504 0 1.0000 + -0.6424 0 1.0000 + -0.6222 0 1.0000 + -0.6065 0 1.0000 + -0.5883 0 2.0000 + -0.5647 0 1.0000 + -0.5375 0 1.0000 + -0.5231 0 2.0000 + -0.5027 0 3.0000 + -0.4705 0 2.0000 + -0.4416 0 1.0000 + + +logrank stat for this cutpoint: 1.5508 + ------------------------------------------- + +testing cutpoint: -0.187727 + + ---- view of lincomb & g_node & w_node ---- + + -1.4309 0 1.0000 + -1.1804 0 1.0000 + -1.0845 0 3.0000 + -1.0069 0 1.0000 + -0.9770 0 1.0000 + -0.9161 0 3.0000 + -0.8953 0 2.0000 + -0.8382 0 2.0000 + -0.7632 0 2.0000 + -0.6504 0 1.0000 + -0.6424 0 1.0000 + -0.6222 0 1.0000 + -0.6065 0 1.0000 + -0.5883 0 2.0000 + -0.5647 0 1.0000 + -0.5375 0 1.0000 + -0.5231 0 2.0000 + -0.5027 0 3.0000 + -0.4705 0 2.0000 + -0.4416 0 1.0000 + + +logrank stat for this cutpoint: 0.358379 + ------------------------------------------- + +testing cutpoint: 0.781285 + + ---- view of lincomb & g_node & w_node ---- + + -1.4309 0 1.0000 + -1.1804 0 1.0000 + -1.0845 0 3.0000 + -1.0069 0 1.0000 + -0.9770 0 1.0000 + -0.9161 0 3.0000 + -0.8953 0 2.0000 + -0.8382 0 2.0000 + -0.7632 0 2.0000 + -0.6504 0 1.0000 + -0.6424 0 1.0000 + -0.6222 0 1.0000 + -0.6065 0 1.0000 + -0.5883 0 2.0000 + -0.5647 0 1.0000 + -0.5375 0 1.0000 + -0.5231 0 2.0000 + -0.5027 0 3.0000 + -0.4705 0 2.0000 + -0.4416 0 1.0000 + + +logrank stat for this cutpoint: 1.04285 + ------------------------------------------- + +testing cutpoint: 0.96529 + + ---- view of lincomb & g_node & w_node ---- + + -1.4309 0 1.0000 + -1.1804 0 1.0000 + -1.0845 0 3.0000 + -1.0069 0 1.0000 + -0.9770 0 1.0000 + -0.9161 0 3.0000 + -0.8953 0 2.0000 + -0.8382 0 2.0000 + -0.7632 0 2.0000 + -0.6504 0 1.0000 + -0.6424 0 1.0000 + -0.6222 0 1.0000 + -0.6065 0 1.0000 + -0.5883 0 2.0000 + -0.5647 0 1.0000 + -0.5375 0 1.0000 + -0.5231 0 2.0000 + -0.5027 0 3.0000 + -0.4705 0 2.0000 + -0.4416 0 1.0000 + + +logrank stat for this cutpoint: 1.64458 + ------------------------------------------- + +best split stat, 1.64458, was < split_min_stat, 3.84 +sprouting new leaf with node 7 + + ---- view of leaf_data ---- + + 2.0550e+03 9.8551e-01 1.4493e-02 + 2.0900e+03 9.7101e-01 2.9199e-02 + 2.2970e+03 9.3505e-01 6.6236e-02 + 2.5830e+03 8.7130e-01 1.3442e-01 + 2.5980e+03 8.5005e-01 1.5881e-01 + + +growing node 8 + +sprouting new leaf with node 8 + + ---- view of leaf_data ---- + + 1.2120e+03 9.6296e-01 3.7037e-02 + 1.7410e+03 9.0947e-01 9.2593e-02 + 2.1050e+03 7.8820e-01 2.2593e-01 + 2.6890e+03 6.7560e-01 3.6878e-01 + 3.7620e+03 3.3780e-01 8.6878e-01 + + +growing node 9 + +sprouting new leaf with node 9 + + ---- view of leaf_data ---- + + 5.1500e+02 9.6154e-01 3.8462e-02 + 1.4340e+03 8.7793e-01 1.2542e-01 + 1.7860e+03 7.9013e-01 2.2542e-01 + 2.8470e+03 6.9137e-01 3.5042e-01 + 3.5840e+03 5.5309e-01 5.5042e-01 + + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 6.7300e+02 8.5714e-01 1.4286e-01 + 9.9900e+02 7.1429e-01 3.0952e-01 + 1.3600e+03 4.2857e-01 7.0952e-01 + 1.4870e+03 2.8571e-01 1.0429e+00 + 1.5760e+03 1.4286e-01 1.5429e+00 + + +growing node 11 + + ---- view of x_node ---- + + 4.0000e+00 3.9400e+02 2.0000e+00 + 4.0000e+00 1.7800e+02 2.0000e+00 + 4.0000e+00 2.6000e+02 2.0000e+00 + 4.0000e+00 2.6000e+02 2.0000e+00 + 4.0000e+00 3.2500e+02 2.0000e+00 + 4.0000e+00 1.7800e+02 2.0000e+00 + 4.0000e+00 2.0100e+02 2.0000e+00 + 4.0000e+00 3.1600e+02 2.0000e+00 + 4.0000e+00 2.4200e+02 2.0000e+00 + 4.0000e+00 2.4700e+02 2.0000e+00 + 4.0000e+00 4.6800e+02 2.0000e+00 + 4.0000e+00 3.7400e+02 2.0000e+00 + 4.0000e+00 5.1800e+02 2.0000e+00 + 3.0000e+00 4.2600e+02 2.0000e+00 + 4.0000e+00 1.9400e+02 2.0000e+00 + 4.0000e+00 3.3800e+02 1.0000e+00 + 4.0000e+00 4.3600e+02 2.0000e+00 + 3.0000e+00 3.5000e+02 1.0000e+00 + 4.0000e+00 5.5800e+02 2.0000e+00 + + + ---- view of y_node ---- + + 7.1000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 7.5000e+02 1.0000e+00 + 8.3700e+02 0 + 8.5000e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.3200e+03 0 + 1.4200e+03 0 + 1.6900e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.8270e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.33647 -- next: -1.22159 -- N events: 2 -- N risk: 2 +current value: -1.22159 -- next: -1.0879 -- N events: 3 -- N risk: 3 +current value: -1.0879 -- next: -0.831599 -- N events: 4 -- N risk: 4 +current value: -0.831599 -- next: -0.831599 -- N events: 4 -- N risk: 5 +current value: -0.831599 -- next: -0.777184 -- N events: 4 -- N risk: 6 + +lower cutpoint: -0.831599 + - n_events, left node: 4 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.02496 ---- next value: 1.02496 ---- N events: 2 ---- N risk: 2 +current value: 1.02496 ---- next value: 0.925535 ---- N events: 4 ---- N risk: 4 +current value: 0.925535 ---- next value: 0.882035 ---- N events: 4 ---- N risk: 6 + +upper cutpoint: 0.882035 + - n_events, right node: 4 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.3173 + -0.1930 + 0.1674 + 0.6272 + 0.8820 + + +testing cutpoint: -0.317325 + + ---- view of lincomb & g_node & w_node ---- + + -1.3365 0 2.0000 + -1.2216 0 1.0000 + -1.0879 0 1.0000 + -0.8316 0 1.0000 + -0.8316 0 1.0000 + -0.7772 0 2.0000 + -0.5783 0 4.0000 + -0.3173 0 1.0000 + -0.1930 1.0000 1.0000 + 0.1115 1.0000 2.0000 + 0.1674 1.0000 1.0000 + 0.5154 1.0000 4.0000 + 0.5154 1.0000 1.0000 + 0.5962 1.0000 1.0000 + 0.6272 1.0000 1.0000 + 0.8820 1.0000 1.0000 + 0.9255 1.0000 2.0000 + 1.0250 1.0000 2.0000 + 1.0250 1.0000 2.0000 + + +logrank stat for this cutpoint: 11.9051 + ------------------------------------------- + +testing cutpoint: -0.193039 + + ---- view of lincomb & g_node & w_node ---- + + -1.3365 0 2.0000 + -1.2216 0 1.0000 + -1.0879 0 1.0000 + -0.8316 0 1.0000 + -0.8316 0 1.0000 + -0.7772 0 2.0000 + -0.5783 0 4.0000 + -0.3173 0 1.0000 + -0.1930 0 1.0000 + 0.1115 1.0000 2.0000 + 0.1674 1.0000 1.0000 + 0.5154 1.0000 4.0000 + 0.5154 1.0000 1.0000 + 0.5962 1.0000 1.0000 + 0.6272 1.0000 1.0000 + 0.8820 1.0000 1.0000 + 0.9255 1.0000 2.0000 + 1.0250 1.0000 2.0000 + 1.0250 1.0000 2.0000 + + +logrank stat for this cutpoint: 12.0135 + ------------------------------------------- + +testing cutpoint: 0.16739 + + ---- view of lincomb & g_node & w_node ---- + + -1.3365 0 2.0000 + -1.2216 0 1.0000 + -1.0879 0 1.0000 + -0.8316 0 1.0000 + -0.8316 0 1.0000 + -0.7772 0 2.0000 + -0.5783 0 4.0000 + -0.3173 0 1.0000 + -0.1930 0 1.0000 + 0.1115 0 2.0000 + 0.1674 0 1.0000 + 0.5154 1.0000 4.0000 + 0.5154 1.0000 1.0000 + 0.5962 1.0000 1.0000 + 0.6272 1.0000 1.0000 + 0.8820 1.0000 1.0000 + 0.9255 1.0000 2.0000 + 1.0250 1.0000 2.0000 + 1.0250 1.0000 2.0000 + + +logrank stat for this cutpoint: 9.90501 + ------------------------------------------- + +testing cutpoint: 0.627249 + + ---- view of lincomb & g_node & w_node ---- + + -1.3365 0 2.0000 + -1.2216 0 1.0000 + -1.0879 0 1.0000 + -0.8316 0 1.0000 + -0.8316 0 1.0000 + -0.7772 0 2.0000 + -0.5783 0 4.0000 + -0.3173 0 1.0000 + -0.1930 0 1.0000 + 0.1115 0 2.0000 + 0.1674 0 1.0000 + 0.5154 0 4.0000 + 0.5154 0 1.0000 + 0.5962 0 1.0000 + 0.6272 0 1.0000 + 0.8820 1.0000 1.0000 + 0.9255 1.0000 2.0000 + 1.0250 1.0000 2.0000 + 1.0250 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.816267 + ------------------------------------------- + +testing cutpoint: 0.882035 + + ---- view of lincomb & g_node & w_node ---- + + -1.3365 0 2.0000 + -1.2216 0 1.0000 + -1.0879 0 1.0000 + -0.8316 0 1.0000 + -0.8316 0 1.0000 + -0.7772 0 2.0000 + -0.5783 0 4.0000 + -0.3173 0 1.0000 + -0.1930 0 1.0000 + 0.1115 0 2.0000 + 0.1674 0 1.0000 + 0.5154 0 4.0000 + 0.5154 0 1.0000 + 0.5962 0 1.0000 + 0.6272 0 1.0000 + 0.8820 0 1.0000 + 0.9255 1.0000 2.0000 + 1.0250 1.0000 2.0000 + 1.0250 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.420837 + ------------------------------------------- + +node assignments: + 14 + 12 + 12 + 9 + 12 + 5 + 9 + 12 + 5 + 14 + 12 + 13 + 12 + 14 + 12 + 14 + 14 + 12 + 12 + +growing node 12 + +sprouting new leaf with node 12 + + ---- view of leaf_data ---- + + 4.1000e+01 8.2353e-01 1.7647e-01 + 5.1000e+01 7.0588e-01 3.1933e-01 + 1.1000e+02 5.2941e-01 5.6933e-01 + 1.7900e+02 4.1176e-01 7.9155e-01 + 2.1600e+02 2.9412e-01 1.0773e+00 + + +growing node 13 + +sprouting new leaf with node 13 + + ---- view of leaf_data ---- + + 7.1000e+01 9.2857e-01 7.1429e-02 + 9.3000e+02 7.8571e-01 2.2527e-01 + 9.8000e+02 7.1429e-01 3.1618e-01 + 1.1650e+03 6.4286e-01 4.1618e-01 + 1.6900e+03 1.8367e-01 1.1305e+00 + + +growing node 14 + +sprouting new leaf with node 14 + + ---- view of leaf_data ---- + + 1.3100e+02 8.8235e-01 1.1765e-01 + 1.8600e+02 6.4706e-01 3.8431e-01 + 3.2100e+02 5.8824e-01 4.7522e-01 + 4.6000e+02 4.7059e-01 6.7522e-01 + 5.5200e+02 3.5294e-01 9.2522e-01 + + +Effective sample size: 276 +Effective number of events: 107 +Number of unique rows in x: 183 + +Max number of nodes for this tree: 213 +Max number of leaves for this tree: 107 + +growing node 0 + + ---- view of x_node ---- + + 1.0000e+00 6.2000e+01 2.2900e+02 + 2.0000e+00 3.0200e+02 1.4300e+02 + 2.0000e+00 8.0000e+01 1.6800e+02 + 2.0000e+00 1.1000e+02 1.0200e+02 + 2.0000e+00 2.8300e+02 2.0000e+02 + 2.0000e+00 1.0800e+02 7.5000e+01 + 2.0000e+00 1.9500e+02 9.1000e+01 + 1.0000e+00 2.1300e+02 4.9000e+01 + 1.0000e+00 4.4700e+02 7.2000e+01 + 1.0000e+00 1.0200e+02 1.1800e+02 + 2.0000e+00 2.1400e+02 1.9100e+02 + 2.0000e+00 1.2400e+02 1.5800e+02 + 2.0000e+00 1.3200e+02 9.1000e+01 + 1.0000e+00 2.1000e+02 1.5500e+02 + 1.0000e+00 1.4500e+02 7.0000e+01 + 2.0000e+00 4.3000e+02 5.6000e+01 + 1.0000e+00 1.1900e+02 1.2200e+02 + 1.0000e+00 2.4000e+02 1.3500e+02 + 1.0000e+00 3.4400e+02 9.1000e+01 + 2.0000e+00 1.7300e+02 5.5000e+01 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.7000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 1.9100e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.3054 -- next: -1.28589 -- N events: 0 -- N risk: 1 +current value: -1.28589 -- next: -1.18224 -- N events: 2 -- N risk: 3 +current value: -1.18224 -- next: -1.16359 -- N events: 2 -- N risk: 6 + +lower cutpoint: -1.18224 + - n_events, left node: 2 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 2.7799 ---- next value: 2.68124 ---- N events: 0 ---- N risk: 3 +current value: 2.68124 ---- next value: 2.4989 ---- N events: 1 ---- N risk: 4 +current value: 2.4989 ---- next value: 2.05076 ---- N events: 3 ---- N risk: 6 + +upper cutpoint: 2.05076 + - n_events, right node: 3 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.7775 + -0.7233 + -0.7125 + 0.3779 + 1.3721 + + +testing cutpoint: -0.777549 + + ---- view of lincomb & g_node & w_node ---- + + -1.3054 0 1.0000 + -1.2859 0 2.0000 + -1.1822 0 3.0000 + -1.1636 0 1.0000 + -1.1581 0 4.0000 + -1.1522 0 1.0000 + -1.1522 0 3.0000 + -1.1465 0 3.0000 + -1.0754 0 2.0000 + -1.0322 0 3.0000 + -1.0293 0 1.0000 + -1.0176 0 2.0000 + -1.0100 0 2.0000 + -1.0043 0 1.0000 + -0.9807 0 1.0000 + -0.9629 0 1.0000 + -0.9451 0 2.0000 + -0.9341 0 1.0000 + -0.9292 0 1.0000 + -0.9184 0 1.0000 + + +logrank stat for this cutpoint: 20.7772 + ------------------------------------------- + +testing cutpoint: -0.723282 + + ---- view of lincomb & g_node & w_node ---- + + -1.3054 0 1.0000 + -1.2859 0 2.0000 + -1.1822 0 3.0000 + -1.1636 0 1.0000 + -1.1581 0 4.0000 + -1.1522 0 1.0000 + -1.1522 0 3.0000 + -1.1465 0 3.0000 + -1.0754 0 2.0000 + -1.0322 0 3.0000 + -1.0293 0 1.0000 + -1.0176 0 2.0000 + -1.0100 0 2.0000 + -1.0043 0 1.0000 + -0.9807 0 1.0000 + -0.9629 0 1.0000 + -0.9451 0 2.0000 + -0.9341 0 1.0000 + -0.9292 0 1.0000 + -0.9184 0 1.0000 + + +logrank stat for this cutpoint: 25.2185 + ------------------------------------------- + +testing cutpoint: -0.712474 + + ---- view of lincomb & g_node & w_node ---- + + -1.3054 0 1.0000 + -1.2859 0 2.0000 + -1.1822 0 3.0000 + -1.1636 0 1.0000 + -1.1581 0 4.0000 + -1.1522 0 1.0000 + -1.1522 0 3.0000 + -1.1465 0 3.0000 + -1.0754 0 2.0000 + -1.0322 0 3.0000 + -1.0293 0 1.0000 + -1.0176 0 2.0000 + -1.0100 0 2.0000 + -1.0043 0 1.0000 + -0.9807 0 1.0000 + -0.9629 0 1.0000 + -0.9451 0 2.0000 + -0.9341 0 1.0000 + -0.9292 0 1.0000 + -0.9184 0 1.0000 + + +logrank stat for this cutpoint: 26.8629 + ------------------------------------------- + +testing cutpoint: 0.377922 + + ---- view of lincomb & g_node & w_node ---- + + -1.3054 0 1.0000 + -1.2859 0 2.0000 + -1.1822 0 3.0000 + -1.1636 0 1.0000 + -1.1581 0 4.0000 + -1.1522 0 1.0000 + -1.1522 0 3.0000 + -1.1465 0 3.0000 + -1.0754 0 2.0000 + -1.0322 0 3.0000 + -1.0293 0 1.0000 + -1.0176 0 2.0000 + -1.0100 0 2.0000 + -1.0043 0 1.0000 + -0.9807 0 1.0000 + -0.9629 0 1.0000 + -0.9451 0 2.0000 + -0.9341 0 1.0000 + -0.9292 0 1.0000 + -0.9184 0 1.0000 + + +logrank stat for this cutpoint: 59.3499 + ------------------------------------------- + +testing cutpoint: 1.37214 + + ---- view of lincomb & g_node & w_node ---- + + -1.3054 0 1.0000 + -1.2859 0 2.0000 + -1.1822 0 3.0000 + -1.1636 0 1.0000 + -1.1581 0 4.0000 + -1.1522 0 1.0000 + -1.1522 0 3.0000 + -1.1465 0 3.0000 + -1.0754 0 2.0000 + -1.0322 0 3.0000 + -1.0293 0 1.0000 + -1.0176 0 2.0000 + -1.0100 0 2.0000 + -1.0043 0 1.0000 + -0.9807 0 1.0000 + -0.9629 0 1.0000 + -0.9451 0 2.0000 + -0.9341 0 1.0000 + -0.9292 0 1.0000 + -0.9184 0 1.0000 + + +logrank stat for this cutpoint: 22.0118 + ------------------------------------------- + +node assignments: + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + +growing node 1 + + ---- view of x_node ---- + + 2.0000 4.0000 13.2000 + 1.0000 3.0000 10.7000 + 2.0000 4.0000 12.0000 + 2.0000 4.0000 11.0000 + 1.0000 4.0000 12.2000 + 2.0000 4.0000 11.9000 + 2.0000 4.0000 12.0000 + 2.0000 3.0000 12.4000 + 2.0000 3.0000 11.4000 + 2.0000 3.0000 10.0000 + 2.0000 3.0000 11.5000 + 2.0000 4.0000 10.5000 + 1.0000 4.0000 10.4000 + 1.0000 2.0000 10.5000 + 1.0000 3.0000 10.3000 + 2.0000 4.0000 11.2000 + 1.0000 4.0000 9.9000 + 2.0000 4.0000 10.0000 + 2.0000 4.0000 10.0000 + 2.0000 3.0000 10.0000 + + + ---- view of y_node ---- + + 1.9100e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3200e+02 0 + 7.3300e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 8.3900e+02 0 + 8.7700e+02 0 + 8.9000e+02 1.0000e+00 + 9.0100e+02 0 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -2.05349 -- next: -1.92036 -- N events: 0 -- N risk: 1 +current value: -1.92036 -- next: -1.79314 -- N events: 0 -- N risk: 3 +current value: -1.79314 -- next: -1.78722 -- N events: 0 -- N risk: 6 +current value: -1.78722 -- next: -1.72065 -- N events: 0 -- N risk: 8 +current value: -1.72065 -- next: -1.65409 -- N events: 0 -- N risk: 10 +current value: -1.65409 -- next: -1.59344 -- N events: 0 -- N risk: 11 +current value: -1.59344 -- next: -1.38782 -- N events: 0 -- N risk: 14 +current value: -1.38782 -- next: -1.32717 -- N events: 2 -- N risk: 16 + +lower cutpoint: -1.38782 + - n_events, left node: 2 + - n_risk, left node: 16 + +----- finding upper bound for cut-points ----- +current value: 2.94431 ---- next value: 2.93902 ---- N events: 2 ---- N risk: 2 +current value: 2.93902 ---- next value: 2.81117 ---- N events: 2 ---- N risk: 3 +current value: 2.81117 ---- next value: 2.14551 ---- N events: 3 ---- N risk: 4 +current value: 2.14551 ---- next value: 2.14551 ---- N events: 5 ---- N risk: 6 +current value: 2.14551 ---- next value: 2.12247 ---- N events: 6 ---- N risk: 7 + +upper cutpoint: 2.12247 + - n_events, right node: 6 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -1.3272 + -1.0609 + -0.5053 + -0.4618 + 0.2586 + + +testing cutpoint: -1.32717 + + ---- view of lincomb & g_node & w_node ---- + + -2.0535 0 1.0000 + -1.9204 0 2.0000 + -1.7931 0 3.0000 + -1.7872 0 2.0000 + -1.7207 0 2.0000 + -1.6541 0 1.0000 + -1.5934 0 3.0000 + -1.3878 0 2.0000 + -1.3272 0 2.0000 + -1.2665 1.0000 2.0000 + -1.1940 1.0000 1.0000 + -1.1940 1.0000 1.0000 + -1.1275 1.0000 1.0000 + -1.1275 1.0000 1.0000 + -1.1275 1.0000 1.0000 + -1.1275 1.0000 1.0000 + -1.1216 1.0000 1.0000 + -1.0609 1.0000 2.0000 + -1.0550 1.0000 2.0000 + -0.9943 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.31904 + ------------------------------------------- + +testing cutpoint: -1.0609 + + ---- view of lincomb & g_node & w_node ---- + + -2.0535 0 1.0000 + -1.9204 0 2.0000 + -1.7931 0 3.0000 + -1.7872 0 2.0000 + -1.7207 0 2.0000 + -1.6541 0 1.0000 + -1.5934 0 3.0000 + -1.3878 0 2.0000 + -1.3272 0 2.0000 + -1.2665 0 2.0000 + -1.1940 0 1.0000 + -1.1940 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1216 0 1.0000 + -1.0609 0 2.0000 + -1.0550 1.0000 2.0000 + -0.9943 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.01946 + ------------------------------------------- + +testing cutpoint: -0.505331 + + ---- view of lincomb & g_node & w_node ---- + + -2.0535 0 1.0000 + -1.9204 0 2.0000 + -1.7931 0 3.0000 + -1.7872 0 2.0000 + -1.7207 0 2.0000 + -1.6541 0 1.0000 + -1.5934 0 3.0000 + -1.3878 0 2.0000 + -1.3272 0 2.0000 + -1.2665 0 2.0000 + -1.1940 0 1.0000 + -1.1940 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1216 0 1.0000 + -1.0609 0 2.0000 + -1.0550 0 2.0000 + -0.9943 0 1.0000 + + +logrank stat for this cutpoint: 11.2411 + ------------------------------------------- + +testing cutpoint: -0.461803 + + ---- view of lincomb & g_node & w_node ---- + + -2.0535 0 1.0000 + -1.9204 0 2.0000 + -1.7931 0 3.0000 + -1.7872 0 2.0000 + -1.7207 0 2.0000 + -1.6541 0 1.0000 + -1.5934 0 3.0000 + -1.3878 0 2.0000 + -1.3272 0 2.0000 + -1.2665 0 2.0000 + -1.1940 0 1.0000 + -1.1940 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1216 0 1.0000 + -1.0609 0 2.0000 + -1.0550 0 2.0000 + -0.9943 0 1.0000 + + +logrank stat for this cutpoint: 17.2613 + ------------------------------------------- + +testing cutpoint: 0.2586 + + ---- view of lincomb & g_node & w_node ---- + + -2.0535 0 1.0000 + -1.9204 0 2.0000 + -1.7931 0 3.0000 + -1.7872 0 2.0000 + -1.7207 0 2.0000 + -1.6541 0 1.0000 + -1.5934 0 3.0000 + -1.3878 0 2.0000 + -1.3272 0 2.0000 + -1.2665 0 2.0000 + -1.1940 0 1.0000 + -1.1940 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1275 0 1.0000 + -1.1216 0 1.0000 + -1.0609 0 2.0000 + -1.0550 0 2.0000 + -0.9943 0 1.0000 + + +logrank stat for this cutpoint: 29.8827 + ------------------------------------------- + +node assignments: + 2 + 2 + 3 + 3 + 4 + 3 + 2 + 2 + 4 + 4 + 4 + 3 + 4 + 3 + 3 + 2 + 4 + 2 + 3 + 4 + 4 + 3 + 2 + 3 + 4 + 4 + 4 + 2 + 4 + 3 + 2 + 4 + 3 + 4 + 3 + 3 + 4 + 4 + 3 + 3 + 3 + 4 + 3 + 3 + 2 + 3 + 3 + 2 + 2 + 3 + 2 + 3 + 3 + 3 + 4 + 3 + 3 + 4 + 3 + 3 + 3 + 3 + 2 + 3 + 2 + 3 + 2 + 2 + 2 + 4 + 2 + 3 + 2 + 4 + 4 + 2 + 2 + 3 + 3 + 3 + 3 + 2 + 2 + 2 + 4 + 2 + 3 + 3 + 4 + 3 + 4 + 3 + 3 + 2 + 3 + 4 + 4 + 4 + 2 + 3 + 2 + 3 + 2 + 4 + 2 + 2 + 3 + 4 + 2 + 2 + 2 + 2 + 4 + 4 + 4 + 2 + 2 + 2 + 4 + 4 + 3 + 4 + 3 + 3 + 2 + 2 + 3 + 2 + 2 + 4 + 3 + 2 + +growing node 2 + + ---- view of x_node ---- + + 2.2900e+02 2.2000e+02 1.7900e+01 + 1.4300e+02 1.4000e+02 1.2600e+01 + 1.6800e+02 2.2100e+02 2.1600e+01 + 1.0200e+02 5.7000e+01 2.5000e+00 + 2.0000e+02 5.8800e+02 1.1400e+01 + 7.5000e+01 2.2500e+02 2.4000e+00 + 9.1000e+01 1.3800e+02 6.6000e+00 + 1.9100e+02 5.5800e+02 1.7400e+01 + 1.5800e+02 1.7200e+02 3.6000e+00 + 9.1000e+01 1.9900e+02 6.6000e+00 + 5.5000e+01 4.6400e+02 3.4000e+00 + 1.1200e+02 2.9000e+02 3.0000e+00 + 3.2200e+02 3.0800e+02 4.4000e+00 + 2.0500e+02 2.1900e+02 2.5500e+01 + 1.0000e+02 1.0300e+02 6.7000e+00 + 1.4900e+02 1.1100e+02 6.5000e+00 + 9.0000e+01 1.1500e+02 3.4000e+00 + 1.4400e+02 7.3000e+01 2.9000e+00 + 1.5100e+02 1.5500e+02 6.4000e+00 + 1.1300e+02 9.6000e+01 3.8000e+00 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 5.1000e+01 1.0000e+00 + 7.7000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 8.3700e+02 0 + 8.5300e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2350e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -2.17682 -- next: -1.7273 -- N events: 1 -- N risk: 1 +current value: -1.7273 -- next: -1.64982 -- N events: 1 -- N risk: 3 +current value: -1.64982 -- next: -1.62222 -- N events: 1 -- N risk: 4 +current value: -1.62222 -- next: -1.53952 -- N events: 2 -- N risk: 5 + +lower cutpoint: -1.62222 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 5.35396 ---- next value: 4.41167 ---- N events: 3 ---- N risk: 3 +current value: 4.41167 ---- next value: 4.09506 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 4.09506 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.3132 + -1.1339 + -0.8696 + -0.0301 + 0.3524 + + +testing cutpoint: -1.31322 + + ---- view of lincomb & g_node & w_node ---- + + -2.1768 0 1.0000 + -1.7273 0 2.0000 + -1.6498 0 1.0000 + -1.6222 0 1.0000 + -1.5395 0 1.0000 + -1.5183 0 1.0000 + -1.3847 0 1.0000 + -1.3617 0 1.0000 + -1.3285 0 2.0000 + -1.3132 0 2.0000 + -1.2794 1.0000 1.0000 + -1.2618 1.0000 1.0000 + -1.2477 1.0000 1.0000 + -1.1965 1.0000 1.0000 + -1.1655 1.0000 1.0000 + -1.1425 1.0000 4.0000 + -1.1339 1.0000 2.0000 + -1.1240 1.0000 1.0000 + -1.1183 1.0000 1.0000 + -0.9409 1.0000 3.0000 + + +logrank stat for this cutpoint: 16.8553 + ------------------------------------------- + +testing cutpoint: -1.13387 + + ---- view of lincomb & g_node & w_node ---- + + -2.1768 0 1.0000 + -1.7273 0 2.0000 + -1.6498 0 1.0000 + -1.6222 0 1.0000 + -1.5395 0 1.0000 + -1.5183 0 1.0000 + -1.3847 0 1.0000 + -1.3617 0 1.0000 + -1.3285 0 2.0000 + -1.3132 0 2.0000 + -1.2794 0 1.0000 + -1.2618 0 1.0000 + -1.2477 0 1.0000 + -1.1965 0 1.0000 + -1.1655 0 1.0000 + -1.1425 0 4.0000 + -1.1339 0 2.0000 + -1.1240 1.0000 1.0000 + -1.1183 1.0000 1.0000 + -0.9409 1.0000 3.0000 + + +logrank stat for this cutpoint: 15.3803 + ------------------------------------------- + +testing cutpoint: -0.869649 + + ---- view of lincomb & g_node & w_node ---- + + -2.1768 0 1.0000 + -1.7273 0 2.0000 + -1.6498 0 1.0000 + -1.6222 0 1.0000 + -1.5395 0 1.0000 + -1.5183 0 1.0000 + -1.3847 0 1.0000 + -1.3617 0 1.0000 + -1.3285 0 2.0000 + -1.3132 0 2.0000 + -1.2794 0 1.0000 + -1.2618 0 1.0000 + -1.2477 0 1.0000 + -1.1965 0 1.0000 + -1.1655 0 1.0000 + -1.1425 0 4.0000 + -1.1339 0 2.0000 + -1.1240 0 1.0000 + -1.1183 0 1.0000 + -0.9409 0 3.0000 + + +logrank stat for this cutpoint: 17.6717 + ------------------------------------------- + +testing cutpoint: -0.0301125 + + ---- view of lincomb & g_node & w_node ---- + + -2.1768 0 1.0000 + -1.7273 0 2.0000 + -1.6498 0 1.0000 + -1.6222 0 1.0000 + -1.5395 0 1.0000 + -1.5183 0 1.0000 + -1.3847 0 1.0000 + -1.3617 0 1.0000 + -1.3285 0 2.0000 + -1.3132 0 2.0000 + -1.2794 0 1.0000 + -1.2618 0 1.0000 + -1.2477 0 1.0000 + -1.1965 0 1.0000 + -1.1655 0 1.0000 + -1.1425 0 4.0000 + -1.1339 0 2.0000 + -1.1240 0 1.0000 + -1.1183 0 1.0000 + -0.9409 0 3.0000 + + +logrank stat for this cutpoint: 29.3691 + ------------------------------------------- + +testing cutpoint: 0.352362 + + ---- view of lincomb & g_node & w_node ---- + + -2.1768 0 1.0000 + -1.7273 0 2.0000 + -1.6498 0 1.0000 + -1.6222 0 1.0000 + -1.5395 0 1.0000 + -1.5183 0 1.0000 + -1.3847 0 1.0000 + -1.3617 0 1.0000 + -1.3285 0 2.0000 + -1.3132 0 2.0000 + -1.2794 0 1.0000 + -1.2618 0 1.0000 + -1.2477 0 1.0000 + -1.1965 0 1.0000 + -1.1655 0 1.0000 + -1.1425 0 4.0000 + -1.1339 0 2.0000 + -1.1240 0 1.0000 + -1.1183 0 1.0000 + -0.9409 0 3.0000 + + +logrank stat for this cutpoint: 33.4791 + ------------------------------------------- + +node assignments: + 5 + 4 + 3 + 4 + 5 + 5 + 6 + 3 + 5 + 3 + 3 + 4 + 3 + 5 + 5 + 4 + 5 + 4 + 4 + 6 + 4 + 3 + 3 + 3 + 5 + 6 + 5 + 4 + 3 + 3 + 4 + 3 + 4 + 4 + 4 + 6 + 5 + 5 + 5 + 4 + 3 + 4 + 4 + 6 + 6 + 6 + 3 + 6 + 4 + 6 + 4 + +growing node 3 + +Column 3 was sampled but unique values of column 3 are 1.0000 + + ---- view of x_node ---- + + 4.4000e+00 4.4700e+02 7.2000e+01 + 2.8300e+00 2.9700e+02 1.3900e+02 + 3.1900e+00 3.8200e+02 1.5700e+02 + 3.1600e+00 3.3500e+02 8.8000e+01 + 3.8300e+00 3.0600e+02 1.9400e+02 + 3.1800e+00 3.0400e+02 8.4000e+01 + 3.2600e+00 3.3500e+02 1.7100e+02 + 2.7500e+00 2.3100e+02 8.2000e+01 + 3.5600e+00 3.4400e+02 5.9000e+01 + 4.2200e+00 2.9500e+02 1.3700e+02 + 3.9300e+00 2.4600e+02 7.5000e+01 + 3.9500e+00 2.6800e+02 1.0400e+02 + 3.7600e+00 2.1300e+02 1.2700e+02 + 3.7700e+00 3.0900e+02 1.1400e+02 + 3.5000e+00 1.5100e+02 4.4000e+01 + 3.5700e+00 2.8300e+02 6.9000e+01 + 3.6900e+00 2.8400e+02 1.4000e+02 + 3.4400e+00 2.5100e+02 1.9500e+02 + 3.7000e+00 2.1500e+02 1.9300e+02 + 3.7700e+00 2.8000e+02 5.6000e+01 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 7.3200e+02 0 + 7.9700e+02 1.0000e+00 + 8.3900e+02 0 + 8.7700e+02 0 + 9.0100e+02 0 + 9.4300e+02 1.0000e+00 + 9.9400e+02 0 + 1.1490e+03 0 + 1.2120e+03 1.0000e+00 + 1.2300e+03 0 + 1.2710e+03 0 + 1.2930e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.3630e+03 0 + 1.4120e+03 0 + 1.4180e+03 0 + 1.4200e+03 0 + 1.4330e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -3.61753 -- next: -3.295 -- N events: 0 -- N risk: 1 +current value: -3.295 -- next: -2.27873 -- N events: 0 -- N risk: 3 +current value: -2.27873 -- next: -2.23777 -- N events: 0 -- N risk: 4 +current value: -2.23777 -- next: -2.0726 -- N events: 0 -- N risk: 5 +current value: -2.0726 -- next: -2.05123 -- N events: 0 -- N risk: 6 +current value: -2.05123 -- next: -1.90513 -- N events: 0 -- N risk: 7 +current value: -1.90513 -- next: -1.88282 -- N events: 0 -- N risk: 8 +current value: -1.88282 -- next: -1.7877 -- N events: 0 -- N risk: 9 +current value: -1.7877 -- next: -1.66592 -- N events: 0 -- N risk: 10 +current value: -1.66592 -- next: -1.64109 -- N events: 0 -- N risk: 11 +current value: -1.64109 -- next: -1.62923 -- N events: 0 -- N risk: 12 +current value: -1.62923 -- next: -1.42471 -- N events: 0 -- N risk: 13 +current value: -1.42471 -- next: -1.35935 -- N events: 0 -- N risk: 14 +current value: -1.35935 -- next: -1.23358 -- N events: 0 -- N risk: 16 +current value: -1.23358 -- next: -1.15726 -- N events: 1 -- N risk: 17 + +lower cutpoint: -1.23358 + - n_events, left node: 1 + - n_risk, left node: 17 + +----- finding upper bound for cut-points ----- +current value: 2.67088 ---- next value: 2.61205 ---- N events: 4 ---- N risk: 4 +current value: 2.61205 ---- next value: 2.43428 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 2.43428 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.3530 + -0.1067 + 0.4855 + 0.6612 + 2.2339 + + +testing cutpoint: -0.352956 + + ---- view of lincomb & g_node & w_node ---- + + -3.6175 0 1.0000 + -3.2950 0 2.0000 + -2.2787 0 1.0000 + -2.2378 0 1.0000 + -2.0726 0 1.0000 + -2.0512 0 1.0000 + -1.9051 0 1.0000 + -1.8828 0 1.0000 + -1.7877 0 1.0000 + -1.6659 0 1.0000 + -1.6411 0 1.0000 + -1.6292 0 1.0000 + -1.4247 0 1.0000 + -1.3594 0 2.0000 + -1.2336 0 1.0000 + -1.1573 0 2.0000 + -1.1544 0 2.0000 + -1.1230 0 1.0000 + -1.1082 0 1.0000 + -1.0447 0 3.0000 + + +logrank stat for this cutpoint: 2.94445 + ------------------------------------------- + +testing cutpoint: -0.106664 + + ---- view of lincomb & g_node & w_node ---- + + -3.6175 0 1.0000 + -3.2950 0 2.0000 + -2.2787 0 1.0000 + -2.2378 0 1.0000 + -2.0726 0 1.0000 + -2.0512 0 1.0000 + -1.9051 0 1.0000 + -1.8828 0 1.0000 + -1.7877 0 1.0000 + -1.6659 0 1.0000 + -1.6411 0 1.0000 + -1.6292 0 1.0000 + -1.4247 0 1.0000 + -1.3594 0 2.0000 + -1.2336 0 1.0000 + -1.1573 0 2.0000 + -1.1544 0 2.0000 + -1.1230 0 1.0000 + -1.1082 0 1.0000 + -1.0447 0 3.0000 + + +logrank stat for this cutpoint: 6.05923 + ------------------------------------------- + +testing cutpoint: 0.485459 + + ---- view of lincomb & g_node & w_node ---- + + -3.6175 0 1.0000 + -3.2950 0 2.0000 + -2.2787 0 1.0000 + -2.2378 0 1.0000 + -2.0726 0 1.0000 + -2.0512 0 1.0000 + -1.9051 0 1.0000 + -1.8828 0 1.0000 + -1.7877 0 1.0000 + -1.6659 0 1.0000 + -1.6411 0 1.0000 + -1.6292 0 1.0000 + -1.4247 0 1.0000 + -1.3594 0 2.0000 + -1.2336 0 1.0000 + -1.1573 0 2.0000 + -1.1544 0 2.0000 + -1.1230 0 1.0000 + -1.1082 0 1.0000 + -1.0447 0 3.0000 + + +logrank stat for this cutpoint: 6.80737 + ------------------------------------------- + +testing cutpoint: 0.661245 + + ---- view of lincomb & g_node & w_node ---- + + -3.6175 0 1.0000 + -3.2950 0 2.0000 + -2.2787 0 1.0000 + -2.2378 0 1.0000 + -2.0726 0 1.0000 + -2.0512 0 1.0000 + -1.9051 0 1.0000 + -1.8828 0 1.0000 + -1.7877 0 1.0000 + -1.6659 0 1.0000 + -1.6411 0 1.0000 + -1.6292 0 1.0000 + -1.4247 0 1.0000 + -1.3594 0 2.0000 + -1.2336 0 1.0000 + -1.1573 0 2.0000 + -1.1544 0 2.0000 + -1.1230 0 1.0000 + -1.1082 0 1.0000 + -1.0447 0 3.0000 + + +logrank stat for this cutpoint: 9.29821 + ------------------------------------------- + +testing cutpoint: 2.23392 + + ---- view of lincomb & g_node & w_node ---- + + -3.6175 0 1.0000 + -3.2950 0 2.0000 + -2.2787 0 1.0000 + -2.2378 0 1.0000 + -2.0726 0 1.0000 + -2.0512 0 1.0000 + -1.9051 0 1.0000 + -1.8828 0 1.0000 + -1.7877 0 1.0000 + -1.6659 0 1.0000 + -1.6411 0 1.0000 + -1.6292 0 1.0000 + -1.4247 0 1.0000 + -1.3594 0 2.0000 + -1.2336 0 1.0000 + -1.1573 0 2.0000 + -1.1544 0 2.0000 + -1.1230 0 1.0000 + -1.1082 0 1.0000 + -1.0447 0 3.0000 + + +logrank stat for this cutpoint: 52.9267 + ------------------------------------------- + +node assignments: + 4 + 4 + 5 + 6 + 4 + 5 + 5 + 7 + 5 + 4 + 5 + 7 + 7 + 4 + 5 + 5 + 4 + 5 + 4 + 4 + 5 + 4 + 4 + 8 + 7 + 7 + 4 + 7 + 7 + 6 + 6 + 5 + 4 + 7 + 6 + 7 + 5 + 7 + 7 + 4 + 5 + 6 + 7 + 7 + 4 + 5 + 6 + 5 + 6 + 4 + 7 + 7 + 4 + 4 + 6 + 6 + 7 + 4 + 7 + 4 + 4 + 4 + 7 + 7 + 4 + 7 + 5 + 4 + 7 + 7 + 7 + 4 + 5 + 5 + 7 + 4 + 4 + 7 + 5 + 4 + 6 + 7 + 4 + 6 + 5 + 6 + +growing node 4 + + ---- view of x_node ---- + + 2.0000 67.9069 3.0800 + 1.0000 61.7276 3.0100 + 1.0000 61.2430 2.4300 + 1.0000 76.7091 3.1300 + 2.0000 45.6071 3.4700 + 2.0000 51.4689 3.0000 + 2.0000 46.2642 3.3800 + 2.0000 71.8932 3.2600 + 2.0000 35.7919 3.4300 + 2.0000 52.1834 3.1500 + 2.0000 67.4114 3.7200 + 1.0000 61.2950 3.2000 + 2.0000 67.4880 2.8100 + 1.0000 53.3060 3.4500 + 2.0000 46.3819 3.2000 + 1.0000 69.9411 3.0100 + 1.0000 55.3949 2.7500 + 2.0000 45.2101 3.5700 + 2.0000 52.7255 3.3700 + 1.0000 60.5366 3.0700 + + + ---- view of y_node ---- + + 1.9100e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 1.0770e+03 1.0000e+00 + 1.0840e+03 0 + 1.1520e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.2950e+03 0 + 1.3000e+03 0 + 1.3020e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.91551 -- next: -1.72489 -- N events: 0 -- N risk: 1 +current value: -1.72489 -- next: -1.28016 -- N events: 0 -- N risk: 4 +current value: -1.28016 -- next: -1.0872 -- N events: 0 -- N risk: 6 +current value: -1.0872 -- next: -1.02117 -- N events: 0 -- N risk: 7 +current value: -1.02117 -- next: -0.99208 -- N events: 1 -- N risk: 8 + +lower cutpoint: -1.02117 + - n_events, left node: 1 + - n_risk, left node: 8 + +----- finding upper bound for cut-points ----- +current value: 1.98723 ---- next value: 1.89788 ---- N events: 1 ---- N risk: 1 +current value: 1.89788 ---- next value: 1.75834 ---- N events: 2 ---- N risk: 2 +current value: 1.75834 ---- next value: 1.59103 ---- N events: 3 ---- N risk: 3 +current value: 1.59103 ---- next value: 1.55125 ---- N events: 4 ---- N risk: 4 +current value: 1.55125 ---- next value: 1.4777 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 1.4777 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.9367 + -0.1698 + 0.2186 + 0.7206 + 1.1096 + + +testing cutpoint: -0.936736 + + ---- view of lincomb & g_node & w_node ---- + + -1.9155 0 1.0000 + -1.7249 0 3.0000 + -1.2802 0 2.0000 + -1.0872 0 1.0000 + -1.0212 0 1.0000 + -0.9921 0 1.0000 + -0.9367 0 3.0000 + -0.6885 1.0000 2.0000 + -0.6510 1.0000 1.0000 + -0.6066 1.0000 3.0000 + -0.6006 1.0000 3.0000 + -0.5753 1.0000 3.0000 + -0.5512 1.0000 2.0000 + -0.4998 1.0000 2.0000 + -0.4709 1.0000 1.0000 + -0.4112 1.0000 1.0000 + -0.3880 1.0000 1.0000 + -0.3121 1.0000 1.0000 + -0.1698 1.0000 3.0000 + -0.1668 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.71924 + ------------------------------------------- + +testing cutpoint: -0.169755 + + ---- view of lincomb & g_node & w_node ---- + + -1.9155 0 1.0000 + -1.7249 0 3.0000 + -1.2802 0 2.0000 + -1.0872 0 1.0000 + -1.0212 0 1.0000 + -0.9921 0 1.0000 + -0.9367 0 3.0000 + -0.6885 0 2.0000 + -0.6510 0 1.0000 + -0.6066 0 3.0000 + -0.6006 0 3.0000 + -0.5753 0 3.0000 + -0.5512 0 2.0000 + -0.4998 0 2.0000 + -0.4709 0 1.0000 + -0.4112 0 1.0000 + -0.3880 0 1.0000 + -0.3121 0 1.0000 + -0.1698 0 3.0000 + -0.1668 1.0000 1.0000 + + +logrank stat for this cutpoint: 7.80151 + ------------------------------------------- + +testing cutpoint: 0.21857 + + ---- view of lincomb & g_node & w_node ---- + + -1.9155 0 1.0000 + -1.7249 0 3.0000 + -1.2802 0 2.0000 + -1.0872 0 1.0000 + -1.0212 0 1.0000 + -0.9921 0 1.0000 + -0.9367 0 3.0000 + -0.6885 0 2.0000 + -0.6510 0 1.0000 + -0.6066 0 3.0000 + -0.6006 0 3.0000 + -0.5753 0 3.0000 + -0.5512 0 2.0000 + -0.4998 0 2.0000 + -0.4709 0 1.0000 + -0.4112 0 1.0000 + -0.3880 0 1.0000 + -0.3121 0 1.0000 + -0.1698 0 3.0000 + -0.1668 0 1.0000 + + +logrank stat for this cutpoint: 14.8738 + ------------------------------------------- + +testing cutpoint: 0.720559 + + ---- view of lincomb & g_node & w_node ---- + + -1.9155 0 1.0000 + -1.7249 0 3.0000 + -1.2802 0 2.0000 + -1.0872 0 1.0000 + -1.0212 0 1.0000 + -0.9921 0 1.0000 + -0.9367 0 3.0000 + -0.6885 0 2.0000 + -0.6510 0 1.0000 + -0.6066 0 3.0000 + -0.6006 0 3.0000 + -0.5753 0 3.0000 + -0.5512 0 2.0000 + -0.4998 0 2.0000 + -0.4709 0 1.0000 + -0.4112 0 1.0000 + -0.3880 0 1.0000 + -0.3121 0 1.0000 + -0.1698 0 3.0000 + -0.1668 0 1.0000 + + +logrank stat for this cutpoint: 9.96186 + ------------------------------------------- + +testing cutpoint: 1.10959 + + ---- view of lincomb & g_node & w_node ---- + + -1.9155 0 1.0000 + -1.7249 0 3.0000 + -1.2802 0 2.0000 + -1.0872 0 1.0000 + -1.0212 0 1.0000 + -0.9921 0 1.0000 + -0.9367 0 3.0000 + -0.6885 0 2.0000 + -0.6510 0 1.0000 + -0.6066 0 3.0000 + -0.6006 0 3.0000 + -0.5753 0 3.0000 + -0.5512 0 2.0000 + -0.4998 0 2.0000 + -0.4709 0 1.0000 + -0.4112 0 1.0000 + -0.3880 0 1.0000 + -0.3121 0 1.0000 + -0.1698 0 3.0000 + -0.1668 0 1.0000 + + +logrank stat for this cutpoint: 25.4082 + ------------------------------------------- + +node assignments: + 9 + 7 + 7 + 7 + 8 + 9 + 5 + 9 + 9 + 9 + 5 + 5 + 7 + 6 + 7 + 5 + 7 + 5 + 10 + 10 + 9 + 10 + 10 + 7 + 6 + 10 + 6 + 7 + 9 + 7 + 6 + 9 + 5 + 5 + 6 + 5 + 7 + 6 + 9 + 10 + 6 + 9 + 9 + 5 + 6 + 6 + +growing node 5 + + ---- view of x_node ---- + + 1.1100e+01 4.8964e+01 1.2730e+03 + 1.4100e+01 6.9377e+01 1.0560e+03 + 1.2100e+01 7.0908e+01 6.2000e+02 + 1.1000e+01 4.1385e+01 7.2770e+03 + 9.8000e+00 4.1374e+01 1.1190e+03 + 1.1100e+01 5.1233e+01 9.7900e+02 + 1.1000e+01 4.9656e+01 2.3740e+03 + 1.0700e+01 5.8335e+01 2.2500e+03 + 1.0600e+01 4.3066e+01 5.1840e+03 + 1.0100e+01 5.8648e+01 1.7680e+03 + 1.0600e+01 6.3630e+01 2.7160e+03 + 1.0600e+01 6.0660e+01 1.1900e+03 + 1.1400e+01 3.4875e+01 1.4060e+03 + 1.1000e+01 6.5763e+01 1.0165e+04 + 9.8000e+00 3.8853e+01 1.2570e+03 + 9.9000e+00 5.2025e+01 3.2280e+03 + 1.1200e+01 4.4140e+01 1.9110e+03 + 1.0200e+01 2.6278e+01 1.1280e+03 + 1.0900e+01 5.2758e+01 2.6560e+03 + 9.6000e+00 4.4830e+01 1.2680e+03 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 8.3700e+02 0 + 9.8000e+02 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2350e+03 1.0000e+00 + 1.2500e+03 0 + 1.3010e+03 0 + 1.3600e+03 1.0000e+00 + 1.4080e+03 0 + 1.4440e+03 1.0000e+00 + 1.5420e+03 0 + 1.5680e+03 0 + 1.6570e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.659067 -- next: -0.628677 -- N events: 0 -- N risk: 1 +current value: -0.628677 -- next: -0.618055 -- N events: 1 -- N risk: 2 +current value: -0.618055 -- next: -0.588458 -- N events: 1 -- N risk: 3 +current value: -0.588458 -- next: -0.582167 -- N events: 1 -- N risk: 4 +current value: -0.582167 -- next: -0.522815 -- N events: 1 -- N risk: 7 + +lower cutpoint: -0.582167 + - n_events, left node: 1 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 1.49369 ---- next value: 0.974872 ---- N events: 1 ---- N risk: 1 +current value: 0.974872 ---- next value: 0.595599 ---- N events: 2 ---- N risk: 2 +current value: 0.595599 ---- next value: 0.51753 ---- N events: 4 ---- N risk: 4 +current value: 0.51753 ---- next value: 0.469815 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 0.469815 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.5822 + 0.0550 + 0.1269 + 0.2904 + 0.4698 + + +testing cutpoint: -0.582167 + + ---- view of lincomb & g_node & w_node ---- + + -0.6591 0 1.0000 + -0.6287 0 1.0000 + -0.6181 0 1.0000 + -0.5885 0 1.0000 + -0.5822 0 3.0000 + -0.5228 1.0000 1.0000 + -0.4726 1.0000 2.0000 + -0.3936 1.0000 2.0000 + -0.3068 1.0000 3.0000 + -0.2594 1.0000 3.0000 + -0.2590 1.0000 1.0000 + -0.2550 1.0000 1.0000 + -0.1294 1.0000 4.0000 + -0.0863 1.0000 4.0000 + -0.0827 1.0000 1.0000 + -0.0807 1.0000 2.0000 + 0.0445 1.0000 1.0000 + 0.0447 1.0000 2.0000 + 0.0550 1.0000 2.0000 + 0.0853 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.842606 + ------------------------------------------- + +testing cutpoint: 0.0549749 + + ---- view of lincomb & g_node & w_node ---- + + -0.6591 0 1.0000 + -0.6287 0 1.0000 + -0.6181 0 1.0000 + -0.5885 0 1.0000 + -0.5822 0 3.0000 + -0.5228 0 1.0000 + -0.4726 0 2.0000 + -0.3936 0 2.0000 + -0.3068 0 3.0000 + -0.2594 0 3.0000 + -0.2590 0 1.0000 + -0.2550 0 1.0000 + -0.1294 0 4.0000 + -0.0863 0 4.0000 + -0.0827 0 1.0000 + -0.0807 0 2.0000 + 0.0445 0 1.0000 + 0.0447 0 2.0000 + 0.0550 0 2.0000 + 0.0853 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.189391 + ------------------------------------------- + +testing cutpoint: 0.126946 + + ---- view of lincomb & g_node & w_node ---- + + -0.6591 0 1.0000 + -0.6287 0 1.0000 + -0.6181 0 1.0000 + -0.5885 0 1.0000 + -0.5822 0 3.0000 + -0.5228 0 1.0000 + -0.4726 0 2.0000 + -0.3936 0 2.0000 + -0.3068 0 3.0000 + -0.2594 0 3.0000 + -0.2590 0 1.0000 + -0.2550 0 1.0000 + -0.1294 0 4.0000 + -0.0863 0 4.0000 + -0.0827 0 1.0000 + -0.0807 0 2.0000 + 0.0445 0 1.0000 + 0.0447 0 2.0000 + 0.0550 0 2.0000 + 0.0853 0 1.0000 + + +logrank stat for this cutpoint: 0.649553 + ------------------------------------------- + +testing cutpoint: 0.290363 + + ---- view of lincomb & g_node & w_node ---- + + -0.6591 0 1.0000 + -0.6287 0 1.0000 + -0.6181 0 1.0000 + -0.5885 0 1.0000 + -0.5822 0 3.0000 + -0.5228 0 1.0000 + -0.4726 0 2.0000 + -0.3936 0 2.0000 + -0.3068 0 3.0000 + -0.2594 0 3.0000 + -0.2590 0 1.0000 + -0.2550 0 1.0000 + -0.1294 0 4.0000 + -0.0863 0 4.0000 + -0.0827 0 1.0000 + -0.0807 0 2.0000 + 0.0445 0 1.0000 + 0.0447 0 2.0000 + 0.0550 0 2.0000 + 0.0853 0 1.0000 + + +logrank stat for this cutpoint: 0.102333 + ------------------------------------------- + +testing cutpoint: 0.469815 + + ---- view of lincomb & g_node & w_node ---- + + -0.6591 0 1.0000 + -0.6287 0 1.0000 + -0.6181 0 1.0000 + -0.5885 0 1.0000 + -0.5822 0 3.0000 + -0.5228 0 1.0000 + -0.4726 0 2.0000 + -0.3936 0 2.0000 + -0.3068 0 3.0000 + -0.2594 0 3.0000 + -0.2590 0 1.0000 + -0.2550 0 1.0000 + -0.1294 0 4.0000 + -0.0863 0 4.0000 + -0.0827 0 1.0000 + -0.0807 0 2.0000 + 0.0445 0 1.0000 + 0.0447 0 2.0000 + 0.0550 0 2.0000 + 0.0853 0 1.0000 + + +logrank stat for this cutpoint: 42.7438 + ------------------------------------------- + +node assignments: + 9 + 6 + 7 + 10 + 6 + 9 + 7 + 7 + 9 + 9 + 9 + 6 + 11 + 9 + 9 + 12 + 10 + 12 + 6 + 6 + 6 + 12 + 9 + 10 + 8 + 10 + 7 + 11 + 7 + 7 + 6 + 9 + 7 + 11 + 11 + 6 + 10 + 6 + +growing node 6 + +sprouting new leaf with node 6 + + ---- view of leaf_data ---- + + 4.1000e+01 9.4444e-01 5.5556e-02 + 5.1000e+01 8.8889e-01 1.1438e-01 + 7.7000e+01 8.3333e-01 1.7688e-01 + 1.3100e+02 7.2222e-01 3.1021e-01 + 2.6400e+02 5.5556e-01 5.4098e-01 + + +growing node 7 + + ---- view of x_node ---- + + 1.0000e+00 1.5810e+02 1.0000e+01 + 1.0000e+00 1.6120e+02 1.0400e+01 + 1.0000e+00 1.1700e+02 1.0500e+01 + 1.0000e+00 1.2700e+02 1.0300e+01 + 1.0000e+00 2.0500e+02 9.9000e+00 + 2.0000e+00 1.9840e+02 1.0000e+01 + 1.0000e+00 7.0000e+01 1.0800e+01 + 1.0000e+00 1.3000e+02 1.0500e+01 + 1.0000e+00 1.4260e+02 1.0100e+01 + 1.0000e+00 4.5000e+01 1.0800e+01 + 1.0000e+00 5.2000e+01 1.0600e+01 + 1.0000e+00 1.5000e+02 1.0800e+01 + 1.0000e+00 9.2000e+01 9.5000e+00 + 1.0000e+00 1.8800e+02 1.0100e+01 + 1.0000e+00 9.3000e+01 9.8000e+00 + 1.0000e+00 1.4200e+02 9.6000e+00 + 1.0000e+00 8.5000e+01 9.5000e+00 + 1.0000e+00 1.8500e+02 9.9000e+00 + 1.0000e+00 5.7000e+01 9.8000e+00 + 2.0000e+00 8.4000e+01 9.8000e+00 + + + ---- view of y_node ---- + + 7.3200e+02 0 + 7.9700e+02 1.0000e+00 + 8.3900e+02 0 + 8.7700e+02 0 + 9.0100e+02 0 + 9.4300e+02 1.0000e+00 + 9.9400e+02 0 + 1.1490e+03 0 + 1.2120e+03 1.0000e+00 + 1.2300e+03 0 + 1.2710e+03 0 + 1.2930e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.3630e+03 0 + 1.4120e+03 0 + 1.4180e+03 0 + 1.4200e+03 0 + 1.4330e+03 0 + 1.4340e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.10282 -- next: -1.09954 -- N events: 0 -- N risk: 1 +current value: -1.09954 -- next: -1.05499 -- N events: 0 -- N risk: 2 +current value: -1.05499 -- next: -1.03336 -- N events: 0 -- N risk: 3 +current value: -1.03336 -- next: -1.02556 -- N events: 1 -- N risk: 4 +current value: -1.02556 -- next: -1.02394 -- N events: 1 -- N risk: 6 + +lower cutpoint: -1.02556 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 22.4159 ---- next value: 21.2925 ---- N events: 1 ---- N risk: 1 +current value: 21.2925 ---- next value: 3.04188 ---- N events: 1 ---- N risk: 2 +current value: 3.04188 ---- next value: 1.74394 ---- N events: 1 ---- N risk: 3 +current value: 1.74394 ---- next value: 0.739669 ---- N events: 2 ---- N risk: 4 +current value: 0.739669 ---- next value: 0.524701 ---- N events: 2 ---- N risk: 8 + +upper cutpoint: 0.524701 + - n_events, right node: 2 + - n_risk, right node: 8 + +Randomly sampled cutpoints: + -1.0239 + -0.5851 + -0.2628 + -0.2467 + 0.3266 + + +testing cutpoint: -1.02394 + + ---- view of lincomb & g_node & w_node ---- + + -1.1028 0 1.0000 + -1.0995 0 1.0000 + -1.0550 0 1.0000 + -1.0334 0 1.0000 + -1.0256 0 2.0000 + -1.0239 0 1.0000 + -1.0085 1.0000 1.0000 + -0.9901 1.0000 1.0000 + -0.9843 1.0000 1.0000 + -0.9835 1.0000 1.0000 + -0.9778 1.0000 1.0000 + -0.9692 1.0000 1.0000 + -0.9362 1.0000 2.0000 + -0.9263 1.0000 2.0000 + -0.9010 1.0000 2.0000 + -0.8990 1.0000 1.0000 + -0.8746 1.0000 1.0000 + -0.8552 1.0000 1.0000 + -0.8328 1.0000 2.0000 + -0.8328 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0606695 + ------------------------------------------- + +testing cutpoint: -0.585129 + + ---- view of lincomb & g_node & w_node ---- + + -1.1028 0 1.0000 + -1.0995 0 1.0000 + -1.0550 0 1.0000 + -1.0334 0 1.0000 + -1.0256 0 2.0000 + -1.0239 0 1.0000 + -1.0085 0 1.0000 + -0.9901 0 1.0000 + -0.9843 0 1.0000 + -0.9835 0 1.0000 + -0.9778 0 1.0000 + -0.9692 0 1.0000 + -0.9362 0 2.0000 + -0.9263 0 2.0000 + -0.9010 0 2.0000 + -0.8990 0 1.0000 + -0.8746 0 1.0000 + -0.8552 0 1.0000 + -0.8328 0 2.0000 + -0.8328 0 1.0000 + + +logrank stat for this cutpoint: 7.37858 + ------------------------------------------- + +testing cutpoint: -0.262766 + + ---- view of lincomb & g_node & w_node ---- + + -1.1028 0 1.0000 + -1.0995 0 1.0000 + -1.0550 0 1.0000 + -1.0334 0 1.0000 + -1.0256 0 2.0000 + -1.0239 0 1.0000 + -1.0085 0 1.0000 + -0.9901 0 1.0000 + -0.9843 0 1.0000 + -0.9835 0 1.0000 + -0.9778 0 1.0000 + -0.9692 0 1.0000 + -0.9362 0 2.0000 + -0.9263 0 2.0000 + -0.9010 0 2.0000 + -0.8990 0 1.0000 + -0.8746 0 1.0000 + -0.8552 0 1.0000 + -0.8328 0 2.0000 + -0.8328 0 1.0000 + + +logrank stat for this cutpoint: 4.59977 + ------------------------------------------- + +testing cutpoint: -0.246715 + + ---- view of lincomb & g_node & w_node ---- + + -1.1028 0 1.0000 + -1.0995 0 1.0000 + -1.0550 0 1.0000 + -1.0334 0 1.0000 + -1.0256 0 2.0000 + -1.0239 0 1.0000 + -1.0085 0 1.0000 + -0.9901 0 1.0000 + -0.9843 0 1.0000 + -0.9835 0 1.0000 + -0.9778 0 1.0000 + -0.9692 0 1.0000 + -0.9362 0 2.0000 + -0.9263 0 2.0000 + -0.9010 0 2.0000 + -0.8990 0 1.0000 + -0.8746 0 1.0000 + -0.8552 0 1.0000 + -0.8328 0 2.0000 + -0.8328 0 1.0000 + + +logrank stat for this cutpoint: 4.76414 + ------------------------------------------- + +testing cutpoint: 0.326639 + + ---- view of lincomb & g_node & w_node ---- + + -1.1028 0 1.0000 + -1.0995 0 1.0000 + -1.0550 0 1.0000 + -1.0334 0 1.0000 + -1.0256 0 2.0000 + -1.0239 0 1.0000 + -1.0085 0 1.0000 + -0.9901 0 1.0000 + -0.9843 0 1.0000 + -0.9835 0 1.0000 + -0.9778 0 1.0000 + -0.9692 0 1.0000 + -0.9362 0 2.0000 + -0.9263 0 2.0000 + -0.9010 0 2.0000 + -0.8990 0 1.0000 + -0.8746 0 1.0000 + -0.8552 0 1.0000 + -0.8328 0 2.0000 + -0.8328 0 1.0000 + + +logrank stat for this cutpoint: 4.53993 + ------------------------------------------- + +node assignments: + 9 + 11 + 13 + 11 + 6 + 6 + 9 + 11 + 9 + 13 + 9 + 9 + 10 + 14 + 12 + 11 + 11 + 12 + 14 + 14 + 13 + 14 + 14 + 9 + 13 + 9 + 9 + 9 + 14 + 14 + 9 + 9 + 13 + 14 + 11 + 10 + 6 + 14 + 11 + 9 + 9 + 9 + 6 + 14 + 11 + 14 + 14 + 14 + 9 + 6 + 14 + 9 + 13 + 14 + 11 + 14 + 10 + 9 + 11 + 11 + 11 + 8 + 9 + 12 + 14 + 6 + 6 + 10 + 6 + 11 + 6 + 9 + 10 + 11 + 14 + 10 + 11 + 6 + 13 + 6 + 9 + 6 + 12 + +growing node 8 + +sprouting new leaf with node 8 + + ---- view of leaf_data ---- + + 1.9800e+02 7.1429e-01 2.8571e-01 + 2.4660e+03 5.7143e-01 4.8571e-01 + 2.6890e+03 0 1.4857e+00 + + +growing node 9 + + ---- view of x_node ---- + + 3.0000e+00 1.0200e+02 1.0000e+00 + 2.0000e+00 4.3000e+02 2.0000e+00 + 1.0000e+00 1.1900e+02 1.0000e+00 + 1.0000e+00 2.4000e+02 1.0000e+00 + 1.0000e+00 2.6800e+02 1.0000e+00 + 1.0000e+00 2.2400e+02 1.0000e+00 + 1.0000e+00 3.6000e+02 1.0000e+00 + 1.0000e+00 1.5600e+02 1.0000e+00 + 1.0000e+00 2.1200e+02 1.0000e+00 + 1.0000e+00 2.9600e+02 1.0000e+00 + 2.0000e+00 1.4900e+02 1.0000e+00 + 1.0000e+00 2.9500e+02 1.0000e+00 + 1.0000e+00 2.4300e+02 1.0000e+00 + 1.0000e+00 2.9900e+02 1.0000e+00 + 1.0000e+00 2.9300e+02 1.0000e+00 + 1.0000e+00 2.9100e+02 1.0000e+00 + 1.0000e+00 3.2200e+02 1.0000e+00 + 1.0000e+00 1.8500e+02 1.0000e+00 + 1.0000e+00 2.5500e+02 1.0000e+00 + 1.0000e+00 2.4800e+02 1.0000e+00 + + + ---- view of y_node ---- + + 2.2300e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 1.0770e+03 1.0000e+00 + 1.0840e+03 0 + 1.1910e+03 1.0000e+00 + 1.2950e+03 0 + 1.3000e+03 0 + 1.3020e+03 0 + 1.3210e+03 0 + 1.3290e+03 0 + 1.3560e+03 1.0000e+00 + 1.4350e+03 0 + 1.4550e+03 0 + 1.6560e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.87597 -- next: -1.33448 -- N events: 1 -- N risk: 1 +current value: -1.33448 -- next: -1.17497 -- N events: 1 -- N risk: 2 +current value: -1.17497 -- next: -1.08379 -- N events: 1 -- N risk: 5 + +lower cutpoint: -1.17497 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 14.2315 ---- next value: 0.849681 ---- N events: 2 ---- N risk: 2 +current value: 0.849681 ---- next value: 0.294075 ---- N events: 4 ---- N risk: 4 +current value: 0.294075 ---- next value: 0.124532 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.124532 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.8632 + -0.7780 + -0.7579 + -0.5222 + -0.1813 + + +testing cutpoint: -0.863185 + + ---- view of lincomb & g_node & w_node ---- + + -1.8760 0 1.0000 + -1.3345 0 1.0000 + -1.1750 0 3.0000 + -1.0838 0 1.0000 + -1.0036 0 3.0000 + -0.8933 0 1.0000 + -0.8632 0 1.0000 + -0.7980 1.0000 3.0000 + -0.7780 1.0000 1.0000 + -0.7629 1.0000 1.0000 + -0.7579 1.0000 2.0000 + -0.7479 1.0000 1.0000 + -0.7378 1.0000 1.0000 + -0.7128 1.0000 1.0000 + -0.6225 1.0000 1.0000 + -0.6075 1.0000 2.0000 + -0.5573 1.0000 2.0000 + -0.5222 1.0000 2.0000 + -0.4972 1.0000 3.0000 + -0.4821 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.33529 + ------------------------------------------- + +testing cutpoint: -0.777951 + + ---- view of lincomb & g_node & w_node ---- + + -1.8760 0 1.0000 + -1.3345 0 1.0000 + -1.1750 0 3.0000 + -1.0838 0 1.0000 + -1.0036 0 3.0000 + -0.8933 0 1.0000 + -0.8632 0 1.0000 + -0.7980 0 3.0000 + -0.7780 0 1.0000 + -0.7629 1.0000 1.0000 + -0.7579 1.0000 2.0000 + -0.7479 1.0000 1.0000 + -0.7378 1.0000 1.0000 + -0.7128 1.0000 1.0000 + -0.6225 1.0000 1.0000 + -0.6075 1.0000 2.0000 + -0.5573 1.0000 2.0000 + -0.5222 1.0000 2.0000 + -0.4972 1.0000 3.0000 + -0.4821 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.03316 + ------------------------------------------- + +testing cutpoint: -0.757896 + + ---- view of lincomb & g_node & w_node ---- + + -1.8760 0 1.0000 + -1.3345 0 1.0000 + -1.1750 0 3.0000 + -1.0838 0 1.0000 + -1.0036 0 3.0000 + -0.8933 0 1.0000 + -0.8632 0 1.0000 + -0.7980 0 3.0000 + -0.7780 0 1.0000 + -0.7629 0 1.0000 + -0.7579 0 2.0000 + -0.7479 1.0000 1.0000 + -0.7378 1.0000 1.0000 + -0.7128 1.0000 1.0000 + -0.6225 1.0000 1.0000 + -0.6075 1.0000 2.0000 + -0.5573 1.0000 2.0000 + -0.5222 1.0000 2.0000 + -0.4972 1.0000 3.0000 + -0.4821 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.06718 + ------------------------------------------- + +testing cutpoint: -0.522247 + + ---- view of lincomb & g_node & w_node ---- + + -1.8760 0 1.0000 + -1.3345 0 1.0000 + -1.1750 0 3.0000 + -1.0838 0 1.0000 + -1.0036 0 3.0000 + -0.8933 0 1.0000 + -0.8632 0 1.0000 + -0.7980 0 3.0000 + -0.7780 0 1.0000 + -0.7629 0 1.0000 + -0.7579 0 2.0000 + -0.7479 0 1.0000 + -0.7378 0 1.0000 + -0.7128 0 1.0000 + -0.6225 0 1.0000 + -0.6075 0 2.0000 + -0.5573 0 2.0000 + -0.5222 0 2.0000 + -0.4972 1.0000 3.0000 + -0.4821 1.0000 1.0000 + + +logrank stat for this cutpoint: 8.44817 + ------------------------------------------- + +testing cutpoint: -0.181309 + + ---- view of lincomb & g_node & w_node ---- + + -1.8760 0 1.0000 + -1.3345 0 1.0000 + -1.1750 0 3.0000 + -1.0838 0 1.0000 + -1.0036 0 3.0000 + -0.8933 0 1.0000 + -0.8632 0 1.0000 + -0.7980 0 3.0000 + -0.7780 0 1.0000 + -0.7629 0 1.0000 + -0.7579 0 2.0000 + -0.7479 0 1.0000 + -0.7378 0 1.0000 + -0.7128 0 1.0000 + -0.6225 0 1.0000 + -0.6075 0 2.0000 + -0.5573 0 2.0000 + -0.5222 0 2.0000 + -0.4972 0 3.0000 + -0.4821 0 1.0000 + + +logrank stat for this cutpoint: 3.73551 + ------------------------------------------- + +node assignments: + 6 + 16 + 15 + 12 + 14 + 16 + 11 + 16 + 10 + 16 + 12 + 10 + 16 + 15 + 6 + 11 + 10 + 6 + 6 + 11 + 14 + 15 + 12 + 8 + 6 + 16 + 16 + 14 + 10 + 10 + 14 + 11 + 14 + 14 + 13 + 6 + 6 + 6 + 6 + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 1.9100e+02 7.5000e-01 2.5000e-01 + 3.3400e+02 6.2500e-01 4.1667e-01 + 3.8800e+02 5.0000e-01 6.1667e-01 + 6.1100e+02 3.7500e-01 8.6667e-01 + 9.3000e+02 2.5000e-01 1.2000e+00 + + +growing node 11 + + ---- view of x_node ---- + + 3.0000 3.6700 2.5000 + 1.0000 3.6200 4.4000 + 1.0000 3.7400 6.7000 + 1.0000 3.1100 6.5000 + 1.0000 1.9600 3.4000 + 1.0000 3.6100 2.9000 + 1.0000 3.4600 6.4000 + 1.0000 3.2200 3.8000 + 1.0000 3.2500 1.0000 + 2.0000 3.5700 1.1000 + 1.0000 3.3600 2.0000 + 1.0000 3.6800 5.2000 + 1.0000 3.1200 3.4000 + 1.0000 3.7400 1.0000 + 1.0000 3.2100 5.0000 + 1.0000 3.2200 3.9000 + 1.0000 3.8500 0.7000 + 1.0000 3.3500 1.1000 + 1.0000 3.4300 0.9000 + 1.0000 3.7900 1.5000 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 8.3700e+02 0 + 9.8000e+02 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2350e+03 1.0000e+00 + 1.2500e+03 0 + 1.3010e+03 0 + 1.4080e+03 0 + 1.4440e+03 1.0000e+00 + 1.5420e+03 0 + 1.5680e+03 0 + 1.6570e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7350e+03 0 + 1.7700e+03 0 + 1.7860e+03 1.0000e+00 + 1.9080e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.73785 -- next: -1.73253 -- N events: 2 -- N risk: 2 +current value: -1.73253 -- next: -1.49003 -- N events: 2 -- N risk: 3 +current value: -1.49003 -- next: -1.27946 -- N events: 2 -- N risk: 4 +current value: -1.27946 -- next: -1.16256 -- N events: 3 -- N risk: 5 + +lower cutpoint: -1.27946 + - n_events, left node: 3 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 3.54228 ---- next value: 2.27383 ---- N events: 1 ---- N risk: 1 +current value: 2.27383 ---- next value: 1.33826 ---- N events: 2 ---- N risk: 2 +current value: 1.33826 ---- next value: 1.16775 ---- N events: 4 ---- N risk: 4 +current value: 1.16775 ---- next value: 0.909247 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 0.909247 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -1.1626 + -0.8347 + 0.0672 + 0.0846 + 0.8997 + + +testing cutpoint: -1.16256 + + ---- view of lincomb & g_node & w_node ---- + + -1.7379 0 2.0000 + -1.7325 0 1.0000 + -1.4900 0 1.0000 + -1.2795 0 1.0000 + -1.1626 0 1.0000 + -1.1255 1.0000 2.0000 + -1.0934 1.0000 1.0000 + -0.8815 1.0000 1.0000 + -0.8347 1.0000 1.0000 + -0.4165 1.0000 2.0000 + -0.3148 1.0000 1.0000 + -0.2837 1.0000 1.0000 + -0.2584 1.0000 4.0000 + -0.1665 1.0000 1.0000 + -0.1419 1.0000 1.0000 + -0.1346 1.0000 3.0000 + -0.1053 1.0000 3.0000 + -0.0701 1.0000 2.0000 + -0.0478 1.0000 4.0000 + 0.0609 1.0000 2.0000 + + +logrank stat for this cutpoint: 12.0369 + ------------------------------------------- + +testing cutpoint: -0.834697 + + ---- view of lincomb & g_node & w_node ---- + + -1.7379 0 2.0000 + -1.7325 0 1.0000 + -1.4900 0 1.0000 + -1.2795 0 1.0000 + -1.1626 0 1.0000 + -1.1255 0 2.0000 + -1.0934 0 1.0000 + -0.8815 0 1.0000 + -0.8347 0 1.0000 + -0.4165 1.0000 2.0000 + -0.3148 1.0000 1.0000 + -0.2837 1.0000 1.0000 + -0.2584 1.0000 4.0000 + -0.1665 1.0000 1.0000 + -0.1419 1.0000 1.0000 + -0.1346 1.0000 3.0000 + -0.1053 1.0000 3.0000 + -0.0701 1.0000 2.0000 + -0.0478 1.0000 4.0000 + 0.0609 1.0000 2.0000 + + +logrank stat for this cutpoint: 18.1663 + ------------------------------------------- + +testing cutpoint: 0.0671826 + + ---- view of lincomb & g_node & w_node ---- + + -1.7379 0 2.0000 + -1.7325 0 1.0000 + -1.4900 0 1.0000 + -1.2795 0 1.0000 + -1.1626 0 1.0000 + -1.1255 0 2.0000 + -1.0934 0 1.0000 + -0.8815 0 1.0000 + -0.8347 0 1.0000 + -0.4165 0 2.0000 + -0.3148 0 1.0000 + -0.2837 0 1.0000 + -0.2584 0 4.0000 + -0.1665 0 1.0000 + -0.1419 0 1.0000 + -0.1346 0 3.0000 + -0.1053 0 3.0000 + -0.0701 0 2.0000 + -0.0478 0 4.0000 + 0.0609 0 2.0000 + + +logrank stat for this cutpoint: 5.79778 + ------------------------------------------- + +testing cutpoint: 0.084642 + + ---- view of lincomb & g_node & w_node ---- + + -1.7379 0 2.0000 + -1.7325 0 1.0000 + -1.4900 0 1.0000 + -1.2795 0 1.0000 + -1.1626 0 1.0000 + -1.1255 0 2.0000 + -1.0934 0 1.0000 + -0.8815 0 1.0000 + -0.8347 0 1.0000 + -0.4165 0 2.0000 + -0.3148 0 1.0000 + -0.2837 0 1.0000 + -0.2584 0 4.0000 + -0.1665 0 1.0000 + -0.1419 0 1.0000 + -0.1346 0 3.0000 + -0.1053 0 3.0000 + -0.0701 0 2.0000 + -0.0478 0 4.0000 + 0.0609 0 2.0000 + + +logrank stat for this cutpoint: 8.00056 + ------------------------------------------- + +testing cutpoint: 0.899661 + + ---- view of lincomb & g_node & w_node ---- + + -1.7379 0 2.0000 + -1.7325 0 1.0000 + -1.4900 0 1.0000 + -1.2795 0 1.0000 + -1.1626 0 1.0000 + -1.1255 0 2.0000 + -1.0934 0 1.0000 + -0.8815 0 1.0000 + -0.8347 0 1.0000 + -0.4165 0 2.0000 + -0.3148 0 1.0000 + -0.2837 0 1.0000 + -0.2584 0 4.0000 + -0.1665 0 1.0000 + -0.1419 0 1.0000 + -0.1346 0 3.0000 + -0.1053 0 3.0000 + -0.0701 0 2.0000 + -0.0478 0 4.0000 + 0.0609 0 2.0000 + + +logrank stat for this cutpoint: 11.2456 + ------------------------------------------- + +node assignments: + 16 + 14 + 6 + 10 + 14 + 16 + 15 + 6 + 10 + 14 + 16 + 12 + 15 + 16 + 10 + 12 + 6 + 6 + 6 + 6 + 16 + 14 + 6 + 8 + 14 + 12 + 10 + 16 + 6 + 10 + 18 + 18 + 14 + 6 + +growing node 12 + +sprouting new leaf with node 12 + + ---- view of leaf_data ---- + + 1.4000e+02 8.3333e-01 1.6667e-01 + 1.7900e+02 5.0000e-01 5.6667e-01 + 3.2100e+02 1.6667e-01 1.2333e+00 + 1.3600e+03 0 2.2333e+00 + + +growing node 13 + +sprouting new leaf with node 13 + + ---- view of leaf_data ---- + + 2.5830e+03 9.6774e-01 3.2258e-02 + + +growing node 14 + + ---- view of x_node ---- + + 41.2211 2.0000 2.8300 + 56.7721 1.0000 3.1900 + 37.9986 1.0000 3.1600 + 35.3511 1.0000 3.8300 + 40.9008 1.0000 3.1800 + 52.2875 2.0000 3.2600 + 30.5736 1.0000 3.5600 + 35.4908 1.0000 4.2200 + 38.0917 1.0000 3.7600 + 38.3162 1.0000 3.7700 + 45.0842 1.0000 3.5000 + 65.9849 1.0000 3.5700 + 46.1547 1.0000 3.6900 + 32.5038 1.0000 3.7000 + 35.0883 1.0000 3.5600 + 50.4723 2.0000 3.5000 + 40.7173 1.0000 3.4300 + 59.9699 2.0000 2.9700 + 51.4880 1.0000 3.4400 + 34.3792 1.0000 3.3500 + + + ---- view of y_node ---- + + 7.3200e+02 0 + 7.9700e+02 1.0000e+00 + 8.3900e+02 0 + 8.7700e+02 0 + 9.0100e+02 0 + 9.4300e+02 1.0000e+00 + 1.1490e+03 0 + 1.2120e+03 1.0000e+00 + 1.2930e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.3630e+03 0 + 1.4120e+03 0 + 1.4200e+03 0 + 1.4340e+03 0 + 1.5690e+03 0 + 1.5920e+03 0 + 1.6150e+03 0 + 1.7020e+03 0 + 1.7760e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.71956 -- next: -1.71295 -- N events: 0 -- N risk: 2 +current value: -1.71295 -- next: -1.70747 -- N events: 0 -- N risk: 3 +current value: -1.70747 -- next: -1.55364 -- N events: 0 -- N risk: 6 +current value: -1.55364 -- next: -1.48469 -- N events: 0 -- N risk: 7 +current value: -1.48469 -- next: -1.47191 -- N events: 0 -- N risk: 8 +current value: -1.47191 -- next: -1.46636 -- N events: 0 -- N risk: 9 +current value: -1.46636 -- next: -1.38681 -- N events: 0 -- N risk: 10 +current value: -1.38681 -- next: -1.25802 -- N events: 0 -- N risk: 11 +current value: -1.25802 -- next: -1.25469 -- N events: 0 -- N risk: 12 +current value: -1.25469 -- next: -0.939663 -- N events: 0 -- N risk: 13 +current value: -0.939663 -- next: -0.909333 -- N events: 0 -- N risk: 15 +current value: -0.909333 -- next: -0.729214 -- N events: 0 -- N risk: 19 +current value: -0.729214 -- next: -0.720262 -- N events: 0 -- N risk: 21 +current value: -0.720262 -- next: -0.674424 -- N events: 0 -- N risk: 22 +current value: -0.674424 -- next: -0.586701 -- N events: 0 -- N risk: 24 +current value: -0.586701 -- next: -0.545735 -- N events: 0 -- N risk: 26 +current value: -0.545735 -- next: -0.374621 -- N events: 0 -- N risk: 27 +current value: -0.374621 -- next: -0.331788 -- N events: 0 -- N risk: 28 +current value: -0.331788 -- next: -0.316989 -- N events: 0 -- N risk: 29 +current value: -0.316989 -- next: -0.294995 -- N events: 0 -- N risk: 31 +current value: -0.294995 -- next: -0.271504 -- N events: 0 -- N risk: 32 +current value: -0.271504 -- next: -0.211358 -- N events: 0 -- N risk: 33 +current value: -0.211358 -- next: -0.201812 -- N events: 0 -- N risk: 35 +current value: -0.201812 -- next: -0.051107 -- N events: 0 -- N risk: 37 +current value: -0.051107 -- next: 0.0107282 -- N events: 0 -- N risk: 38 +current value: 0.0107282 -- next: 0.0856603 -- N events: 1 -- N risk: 39 + +lower cutpoint: 0.0107282 + - n_events, left node: 1 + - n_risk, left node: 39 + +----- finding upper bound for cut-points ----- +current value: 2.29026 ---- next value: 2.2616 ---- N events: 0 ---- N risk: 1 +current value: 2.2616 ---- next value: 2.21129 ---- N events: 2 ---- N risk: 3 +current value: 2.21129 ---- next value: 2.13273 ---- N events: 3 ---- N risk: 4 +current value: 2.13273 ---- next value: 1.87327 ---- N events: 3 ---- N risk: 6 + +upper cutpoint: 1.87327 + - n_events, right node: 3 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + 0.1379 + 0.2118 + 0.5409 + 0.6922 + 1.8364 + + +testing cutpoint: 0.137933 + + ---- view of lincomb & g_node & w_node ---- + + -1.7196 0 2.0000 + -1.7130 0 1.0000 + -1.7075 0 3.0000 + -1.5536 0 1.0000 + -1.4847 0 1.0000 + -1.4719 0 1.0000 + -1.4664 0 1.0000 + -1.3868 0 1.0000 + -1.2580 0 1.0000 + -1.2547 0 1.0000 + -0.9397 0 2.0000 + -0.9093 0 4.0000 + -0.7292 0 2.0000 + -0.7203 0 1.0000 + -0.6744 0 2.0000 + -0.5867 0 2.0000 + -0.5457 0 1.0000 + -0.3746 0 1.0000 + -0.3318 0 1.0000 + -0.3170 0 2.0000 + + +logrank stat for this cutpoint: 14.57 + ------------------------------------------- + +testing cutpoint: 0.211808 + + ---- view of lincomb & g_node & w_node ---- + + -1.7196 0 2.0000 + -1.7130 0 1.0000 + -1.7075 0 3.0000 + -1.5536 0 1.0000 + -1.4847 0 1.0000 + -1.4719 0 1.0000 + -1.4664 0 1.0000 + -1.3868 0 1.0000 + -1.2580 0 1.0000 + -1.2547 0 1.0000 + -0.9397 0 2.0000 + -0.9093 0 4.0000 + -0.7292 0 2.0000 + -0.7203 0 1.0000 + -0.6744 0 2.0000 + -0.5867 0 2.0000 + -0.5457 0 1.0000 + -0.3746 0 1.0000 + -0.3318 0 1.0000 + -0.3170 0 2.0000 + + +logrank stat for this cutpoint: 10.608 + ------------------------------------------- + +testing cutpoint: 0.540911 + + ---- view of lincomb & g_node & w_node ---- + + -1.7196 0 2.0000 + -1.7130 0 1.0000 + -1.7075 0 3.0000 + -1.5536 0 1.0000 + -1.4847 0 1.0000 + -1.4719 0 1.0000 + -1.4664 0 1.0000 + -1.3868 0 1.0000 + -1.2580 0 1.0000 + -1.2547 0 1.0000 + -0.9397 0 2.0000 + -0.9093 0 4.0000 + -0.7292 0 2.0000 + -0.7203 0 1.0000 + -0.6744 0 2.0000 + -0.5867 0 2.0000 + -0.5457 0 1.0000 + -0.3746 0 1.0000 + -0.3318 0 1.0000 + -0.3170 0 2.0000 + + +logrank stat for this cutpoint: 4.62801 + ------------------------------------------- + +testing cutpoint: 0.692179 + + ---- view of lincomb & g_node & w_node ---- + + -1.7196 0 2.0000 + -1.7130 0 1.0000 + -1.7075 0 3.0000 + -1.5536 0 1.0000 + -1.4847 0 1.0000 + -1.4719 0 1.0000 + -1.4664 0 1.0000 + -1.3868 0 1.0000 + -1.2580 0 1.0000 + -1.2547 0 1.0000 + -0.9397 0 2.0000 + -0.9093 0 4.0000 + -0.7292 0 2.0000 + -0.7203 0 1.0000 + -0.6744 0 2.0000 + -0.5867 0 2.0000 + -0.5457 0 1.0000 + -0.3746 0 1.0000 + -0.3318 0 1.0000 + -0.3170 0 2.0000 + + +logrank stat for this cutpoint: 8.04058 + ------------------------------------------- + +testing cutpoint: 1.83638 + + ---- view of lincomb & g_node & w_node ---- + + -1.7196 0 2.0000 + -1.7130 0 1.0000 + -1.7075 0 3.0000 + -1.5536 0 1.0000 + -1.4847 0 1.0000 + -1.4719 0 1.0000 + -1.4664 0 1.0000 + -1.3868 0 1.0000 + -1.2580 0 1.0000 + -1.2547 0 1.0000 + -0.9397 0 2.0000 + -0.9093 0 4.0000 + -0.7292 0 2.0000 + -0.7203 0 1.0000 + -0.6744 0 2.0000 + -0.5867 0 2.0000 + -0.5457 0 1.0000 + -0.3746 0 1.0000 + -0.3318 0 1.0000 + -0.3170 0 2.0000 + + +logrank stat for this cutpoint: 3.84018 + ------------------------------------------- + +node assignments: + 6 + 6 + 12 + 18 + 18 + 19 + 6 + 6 + 10 + 10 + 16 + 18 + 18 + 15 + 18 + 8 + 16 + 6 + 18 + 10 + 6 + 15 + 18 + 15 + 16 + 10 + 6 + 19 + 10 + 6 + 16 + 20 + 19 + 16 + 18 + 13 + 16 + 10 + 19 + 13 + 12 + 16 + 12 + 16 + 6 + 20 + 19 + 19 + +growing node 15 + +sprouting new leaf with node 15 + + ---- view of leaf_data ---- + + 7.3300e+02 9.6429e-01 3.5714e-02 + 8.9000e+02 9.2857e-01 7.2751e-02 + 1.3560e+03 8.8214e-01 1.2275e-01 + 2.2560e+03 7.9393e-01 2.2275e-01 + + +growing node 16 + + ---- view of x_node ---- + + 2.0000e+00 1.5000e+02 3.0000e+00 + 2.0000e+00 1.1000e+02 2.0000e+00 + 2.0000e+00 1.4500e+02 1.0000e+00 + 2.0000e+00 2.2700e+02 1.0000e+00 + 2.0000e+00 1.5900e+02 1.0000e+00 + 2.0000e+00 5.8000e+01 1.0000e+00 + 2.0000e+00 8.0000e+01 1.0000e+00 + 2.0000e+00 1.6000e+01 2.0000e+00 + 2.0000e+00 7.3000e+01 1.0000e+00 + 2.0000e+00 6.3000e+01 1.0000e+00 + 2.0000e+00 2.0000e+02 1.0000e+00 + 2.0000e+00 7.5000e+01 1.0000e+00 + 2.0000e+00 5.0000e+01 1.0000e+00 + 2.0000e+00 1.0500e+02 1.0000e+00 + 2.0000e+00 1.5900e+02 1.0000e+00 + 2.0000e+00 4.3000e+01 1.0000e+00 + 2.0000e+00 2.5000e+01 1.0000e+00 + 1.0000e+00 8.2000e+01 1.0000e+00 + 2.0000e+00 2.3100e+02 2.0000e+00 + 2.0000e+00 1.0500e+02 1.0000e+00 + + + ---- view of y_node ---- + + 2.2300e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 1.0770e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.3000e+03 0 + 1.4350e+03 0 + 1.6820e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7410e+03 1.0000e+00 + 1.8820e+03 0 + 2.1060e+03 0 + 2.5980e+03 1.0000e+00 + 3.0690e+03 0 + 3.1700e+03 1.0000e+00 + 3.2820e+03 1.0000e+00 + 4.1910e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.806467 -- next: -0.638501 -- N events: 0 -- N risk: 3 +current value: -0.638501 -- next: -0.573181 -- N events: 1 -- N risk: 4 +current value: -0.573181 -- next: -0.49853 -- N events: 3 -- N risk: 6 + +lower cutpoint: -0.573181 + - n_events, left node: 3 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.63494 ---- next value: 1.39824 ---- N events: 1 ---- N risk: 1 +current value: 1.39824 ---- next value: 1.07848 ---- N events: 3 ---- N risk: 3 +current value: 1.07848 ---- next value: 0.826531 ---- N events: 4 ---- N risk: 4 +current value: 0.826531 ---- next value: 0.505843 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.505843 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.4985 + -0.3713 + -0.0600 + 0.3133 + 0.5058 + + +testing cutpoint: -0.49853 + + ---- view of lincomb & g_node & w_node ---- + + -0.8065 0 3.0000 + -0.6385 0 1.0000 + -0.5732 0 2.0000 + -0.4985 0 1.0000 + -0.4519 1.0000 1.0000 + -0.3713 1.0000 1.0000 + -0.3586 1.0000 3.0000 + -0.3399 1.0000 1.0000 + -0.2932 1.0000 3.0000 + -0.1567 1.0000 3.0000 + -0.0600 1.0000 1.0000 + -0.0600 1.0000 3.0000 + -0.0182 1.0000 1.0000 + 0.3133 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.5058 1.0000 2.0000 + 0.8265 1.0000 1.0000 + 1.0785 1.0000 1.0000 + 1.3982 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.121159 + ------------------------------------------- + +testing cutpoint: -0.37131 + + ---- view of lincomb & g_node & w_node ---- + + -0.8065 0 3.0000 + -0.6385 0 1.0000 + -0.5732 0 2.0000 + -0.4985 0 1.0000 + -0.4519 0 1.0000 + -0.3713 0 1.0000 + -0.3586 1.0000 3.0000 + -0.3399 1.0000 1.0000 + -0.2932 1.0000 3.0000 + -0.1567 1.0000 3.0000 + -0.0600 1.0000 1.0000 + -0.0600 1.0000 3.0000 + -0.0182 1.0000 1.0000 + 0.3133 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.5058 1.0000 2.0000 + 0.8265 1.0000 1.0000 + 1.0785 1.0000 1.0000 + 1.3982 1.0000 2.0000 + + +logrank stat for this cutpoint: 0.0602573 + ------------------------------------------- + +testing cutpoint: -0.0599534 + + ---- view of lincomb & g_node & w_node ---- + + -0.8065 0 3.0000 + -0.6385 0 1.0000 + -0.5732 0 2.0000 + -0.4985 0 1.0000 + -0.4519 0 1.0000 + -0.3713 0 1.0000 + -0.3586 0 3.0000 + -0.3399 0 1.0000 + -0.2932 0 3.0000 + -0.1567 0 3.0000 + -0.0600 0 1.0000 + -0.0600 0 3.0000 + -0.0182 1.0000 1.0000 + 0.3133 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.5058 1.0000 2.0000 + 0.8265 1.0000 1.0000 + 1.0785 1.0000 1.0000 + 1.3982 1.0000 2.0000 + + +logrank stat for this cutpoint: 11.2319 + ------------------------------------------- + +testing cutpoint: 0.313303 + + ---- view of lincomb & g_node & w_node ---- + + -0.8065 0 3.0000 + -0.6385 0 1.0000 + -0.5732 0 2.0000 + -0.4985 0 1.0000 + -0.4519 0 1.0000 + -0.3713 0 1.0000 + -0.3586 0 3.0000 + -0.3399 0 1.0000 + -0.2932 0 3.0000 + -0.1567 0 3.0000 + -0.0600 0 1.0000 + -0.0600 0 3.0000 + -0.0182 0 1.0000 + 0.3133 0 1.0000 + 0.4439 1.0000 1.0000 + 0.4439 1.0000 1.0000 + 0.5058 1.0000 2.0000 + 0.8265 1.0000 1.0000 + 1.0785 1.0000 1.0000 + 1.3982 1.0000 2.0000 + + +logrank stat for this cutpoint: 10.0847 + ------------------------------------------- + +testing cutpoint: 0.505843 + + ---- view of lincomb & g_node & w_node ---- + + -0.8065 0 3.0000 + -0.6385 0 1.0000 + -0.5732 0 2.0000 + -0.4985 0 1.0000 + -0.4519 0 1.0000 + -0.3713 0 1.0000 + -0.3586 0 3.0000 + -0.3399 0 1.0000 + -0.2932 0 3.0000 + -0.1567 0 3.0000 + -0.0600 0 1.0000 + -0.0600 0 3.0000 + -0.0182 0 1.0000 + 0.3133 0 1.0000 + 0.4439 0 1.0000 + 0.4439 0 1.0000 + 0.5058 0 2.0000 + 0.8265 1.0000 1.0000 + 1.0785 1.0000 1.0000 + 1.3982 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.77617 + ------------------------------------------- + +node assignments: + 22 + 22 + 6 + 12 + 22 + 10 + 8 + 12 + 12 + 19 + 6 + 10 + 22 + 6 + 6 + 10 + 6 + 6 + 18 + 6 + 10 + +growing node 17 + +sprouting new leaf with node 17 + + ---- view of leaf_data ---- + + 3.5740e+03 8.0000e-01 2.0000e-01 + 3.7620e+03 4.0000e-01 7.0000e-01 + 4.0790e+03 2.0000e-01 1.2000e+00 + + +growing node 18 + + ---- view of x_node ---- + + 2.0000e+00 4.0000e+00 1.8800e+02 + 2.0000e+00 4.0000e+00 3.1600e+02 + 2.0000e+00 4.0000e+00 3.7400e+02 + 2.0000e+00 4.0000e+00 9.5000e+02 + 2.0000e+00 4.0000e+00 5.1800e+02 + 2.0000e+00 3.0000e+00 4.2600e+02 + 1.0000e+00 4.0000e+00 3.7300e+02 + 1.0000e+00 2.0000e+00 4.2600e+02 + 2.0000e+00 4.0000e+00 3.7200e+02 + 2.0000e+00 4.0000e+00 4.3200e+02 + 2.0000e+00 3.0000e+00 3.1000e+02 + 2.0000e+00 3.0000e+00 1.1280e+03 + 2.0000e+00 3.0000e+00 3.5600e+02 + 2.0000e+00 3.0000e+00 1.6000e+03 + 1.0000e+00 3.0000e+00 3.5000e+02 + 2.0000e+00 4.0000e+00 2.4600e+02 + 2.0000e+00 3.0000e+00 4.0400e+02 + 2.0000e+00 4.0000e+00 2.4400e+02 + 2.0000e+00 3.0000e+00 4.8600e+02 + 2.0000e+00 3.0000e+00 3.2900e+02 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 8.3700e+02 0 + 9.8000e+02 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2350e+03 1.0000e+00 + 1.2500e+03 0 + 1.3010e+03 0 + 1.4080e+03 0 + 1.4440e+03 1.0000e+00 + 1.5420e+03 0 + 1.6570e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7700e+03 0 + 1.7860e+03 1.0000e+00 + 1.9250e+03 1.0000e+00 + 2.1050e+03 1.0000e+00 + 2.2240e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.864366 -- next: -0.779302 -- N events: 2 -- N risk: 2 +current value: -0.779302 -- next: -0.739008 -- N events: 2 -- N risk: 3 +current value: -0.739008 -- next: -0.734531 -- N events: 3 -- N risk: 4 +current value: -0.734531 -- next: -0.730054 -- N events: 3 -- N risk: 7 + +lower cutpoint: -0.734531 + - n_events, left node: 3 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- +current value: 2.32996 ---- next value: 1.49076 ---- N events: 3 ---- N risk: 3 +current value: 1.49076 ---- next value: 1.30511 ---- N events: 4 ---- N risk: 4 +current value: 1.30511 ---- next value: 1.28713 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 1.28713 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.5152 + -0.3182 + -0.2981 + -0.1256 + 0.8414 + + +testing cutpoint: -0.515227 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 2.0000 + -0.7793 0 1.0000 + -0.7390 0 1.0000 + -0.7345 0 3.0000 + -0.7301 0 2.0000 + -0.5824 0 1.0000 + -0.5778 0 3.0000 + -0.5578 0 1.0000 + -0.5152 0 1.0000 + -0.4548 1.0000 1.0000 + -0.4525 1.0000 2.0000 + -0.4480 1.0000 2.0000 + -0.4279 1.0000 4.0000 + -0.3473 1.0000 1.0000 + -0.3182 1.0000 1.0000 + -0.2981 1.0000 1.0000 + -0.2823 1.0000 2.0000 + -0.1638 1.0000 4.0000 + -0.1256 1.0000 1.0000 + 0.8414 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.52264 + ------------------------------------------- + +testing cutpoint: -0.318162 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 2.0000 + -0.7793 0 1.0000 + -0.7390 0 1.0000 + -0.7345 0 3.0000 + -0.7301 0 2.0000 + -0.5824 0 1.0000 + -0.5778 0 3.0000 + -0.5578 0 1.0000 + -0.5152 0 1.0000 + -0.4548 0 1.0000 + -0.4525 0 2.0000 + -0.4480 0 2.0000 + -0.4279 0 4.0000 + -0.3473 0 1.0000 + -0.3182 0 1.0000 + -0.2981 1.0000 1.0000 + -0.2823 1.0000 2.0000 + -0.1638 1.0000 4.0000 + -0.1256 1.0000 1.0000 + 0.8414 1.0000 2.0000 + + +logrank stat for this cutpoint: 10.4906 + ------------------------------------------- + +testing cutpoint: -0.298089 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 2.0000 + -0.7793 0 1.0000 + -0.7390 0 1.0000 + -0.7345 0 3.0000 + -0.7301 0 2.0000 + -0.5824 0 1.0000 + -0.5778 0 3.0000 + -0.5578 0 1.0000 + -0.5152 0 1.0000 + -0.4548 0 1.0000 + -0.4525 0 2.0000 + -0.4480 0 2.0000 + -0.4279 0 4.0000 + -0.3473 0 1.0000 + -0.3182 0 1.0000 + -0.2981 0 1.0000 + -0.2823 1.0000 2.0000 + -0.1638 1.0000 4.0000 + -0.1256 1.0000 1.0000 + 0.8414 1.0000 2.0000 + + +logrank stat for this cutpoint: 11.0256 + ------------------------------------------- + +testing cutpoint: -0.125648 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 2.0000 + -0.7793 0 1.0000 + -0.7390 0 1.0000 + -0.7345 0 3.0000 + -0.7301 0 2.0000 + -0.5824 0 1.0000 + -0.5778 0 3.0000 + -0.5578 0 1.0000 + -0.5152 0 1.0000 + -0.4548 0 1.0000 + -0.4525 0 2.0000 + -0.4480 0 2.0000 + -0.4279 0 4.0000 + -0.3473 0 1.0000 + -0.3182 0 1.0000 + -0.2981 0 1.0000 + -0.2823 0 2.0000 + -0.1638 0 4.0000 + -0.1256 0 1.0000 + 0.8414 1.0000 2.0000 + + +logrank stat for this cutpoint: 17.6112 + ------------------------------------------- + +testing cutpoint: 0.841401 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 2.0000 + -0.7793 0 1.0000 + -0.7390 0 1.0000 + -0.7345 0 3.0000 + -0.7301 0 2.0000 + -0.5824 0 1.0000 + -0.5778 0 3.0000 + -0.5578 0 1.0000 + -0.5152 0 1.0000 + -0.4548 0 1.0000 + -0.4525 0 2.0000 + -0.4480 0 2.0000 + -0.4279 0 4.0000 + -0.3473 0 1.0000 + -0.3182 0 1.0000 + -0.2981 0 1.0000 + -0.2823 0 2.0000 + -0.1638 0 4.0000 + -0.1256 0 1.0000 + 0.8414 0 2.0000 + + +logrank stat for this cutpoint: 10.2822 + ------------------------------------------- + +node assignments: + 6 + 19 + 22 + 22 + 6 + 20 + 6 + 6 + 6 + 6 + 8 + 6 + 22 + 22 + 22 + 12 + 15 + 10 + 6 + 23 + 12 + 10 + 12 + 10 + 10 + +growing node 19 + +sprouting new leaf with node 19 + + ---- view of leaf_data ---- + + 1.2120e+03 9.7059e-01 2.9412e-02 + + +growing node 20 + + ---- view of x_node ---- + + 2.0000e+00 4.0000e+00 1.6120e+02 + 2.0000e+00 3.0000e+00 1.9840e+02 + 1.0000e+00 3.0000e+00 9.3000e+01 + 2.0000e+00 3.0000e+00 1.1100e+02 + 2.0000e+00 3.0000e+00 1.2500e+02 + 1.0000e+00 1.0000e+00 9.9000e+01 + 1.0000e+00 3.0000e+00 1.9685e+02 + 1.0000e+00 2.0000e+00 1.0230e+02 + 1.0000e+00 1.0000e+00 2.0640e+02 + 1.0000e+00 2.0000e+00 1.2555e+02 + 2.0000e+00 3.0000e+00 9.7650e+01 + 2.0000e+00 2.0000e+00 4.5725e+02 + 2.0000e+00 3.0000e+00 3.2860e+02 + 2.0000e+00 4.0000e+00 1.2865e+02 + 1.0000e+00 2.0000e+00 1.5500e+02 + 1.0000e+00 2.0000e+00 1.2555e+02 + 1.0000e+00 3.0000e+00 1.2771e+02 + 2.0000e+00 2.0000e+00 2.0640e+02 + 2.0000e+00 2.0000e+00 9.9330e+01 + 1.0000e+00 2.0000e+00 1.7050e+02 + + + ---- view of y_node ---- + + 7.9700e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.3630e+03 0 + 1.5690e+03 0 + 1.6150e+03 0 + 1.7020e+03 0 + 1.8100e+03 0 + 2.3650e+03 0 + 2.3860e+03 1.0000e+00 + 2.4490e+03 0 + 2.4560e+03 0 + 2.7210e+03 0 + 2.7690e+03 1.0000e+00 + 2.7960e+03 1.0000e+00 + 2.9900e+03 0 + 3.0500e+03 0 + 3.5840e+03 1.0000e+00 + 3.8390e+03 1.0000e+00 + 3.8530e+03 1.0000e+00 + 3.9330e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.88372 -- next: -1.0474 -- N events: 0 -- N risk: 1 +current value: -1.0474 -- next: -0.958984 -- N events: 2 -- N risk: 3 +current value: -0.958984 -- next: -0.777937 -- N events: 2 -- N risk: 4 +current value: -0.777937 -- next: -0.777937 -- N events: 2 -- N risk: 7 +current value: -0.777937 -- next: -0.65036 -- N events: 2 -- N risk: 8 + +lower cutpoint: -0.777937 + - n_events, left node: 2 + - n_risk, left node: 8 + +----- finding upper bound for cut-points ----- +current value: 2.13674 ---- next value: 2.03399 ---- N events: 0 ---- N risk: 1 +current value: 2.03399 ---- next value: 1.62949 ---- N events: 1 ---- N risk: 2 +current value: 1.62949 ---- next value: 1.37603 ---- N events: 2 ---- N risk: 3 +current value: 1.37603 ---- next value: 1.02013 ---- N events: 3 ---- N risk: 4 +current value: 1.02013 ---- next value: 0.676309 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 0.676309 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.5486 + -0.4279 + -0.1324 + 0.1834 + 0.3396 + + +testing cutpoint: -0.548612 + + ---- view of lincomb & g_node & w_node ---- + + -1.8837 0 1.0000 + -1.0474 0 2.0000 + -0.9590 0 1.0000 + -0.7779 0 3.0000 + -0.7779 0 1.0000 + -0.6504 0 2.0000 + -0.5486 0 1.0000 + -0.4279 1.0000 1.0000 + -0.1324 1.0000 2.0000 + 0.1379 1.0000 2.0000 + 0.1834 1.0000 1.0000 + 0.2356 1.0000 2.0000 + 0.3396 1.0000 1.0000 + 0.4486 1.0000 1.0000 + 0.6763 1.0000 1.0000 + 1.0201 1.0000 1.0000 + 1.3760 1.0000 1.0000 + 1.6295 1.0000 1.0000 + 2.0340 1.0000 1.0000 + 2.1367 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.60792 + ------------------------------------------- + +testing cutpoint: -0.427914 + + ---- view of lincomb & g_node & w_node ---- + + -1.8837 0 1.0000 + -1.0474 0 2.0000 + -0.9590 0 1.0000 + -0.7779 0 3.0000 + -0.7779 0 1.0000 + -0.6504 0 2.0000 + -0.5486 0 1.0000 + -0.4279 0 1.0000 + -0.1324 1.0000 2.0000 + 0.1379 1.0000 2.0000 + 0.1834 1.0000 1.0000 + 0.2356 1.0000 2.0000 + 0.3396 1.0000 1.0000 + 0.4486 1.0000 1.0000 + 0.6763 1.0000 1.0000 + 1.0201 1.0000 1.0000 + 1.3760 1.0000 1.0000 + 1.6295 1.0000 1.0000 + 2.0340 1.0000 1.0000 + 2.1367 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.89673 + ------------------------------------------- + +testing cutpoint: -0.132366 + + ---- view of lincomb & g_node & w_node ---- + + -1.8837 0 1.0000 + -1.0474 0 2.0000 + -0.9590 0 1.0000 + -0.7779 0 3.0000 + -0.7779 0 1.0000 + -0.6504 0 2.0000 + -0.5486 0 1.0000 + -0.4279 0 1.0000 + -0.1324 0 2.0000 + 0.1379 1.0000 2.0000 + 0.1834 1.0000 1.0000 + 0.2356 1.0000 2.0000 + 0.3396 1.0000 1.0000 + 0.4486 1.0000 1.0000 + 0.6763 1.0000 1.0000 + 1.0201 1.0000 1.0000 + 1.3760 1.0000 1.0000 + 1.6295 1.0000 1.0000 + 2.0340 1.0000 1.0000 + 2.1367 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.31899 + ------------------------------------------- + +testing cutpoint: 0.183389 + + ---- view of lincomb & g_node & w_node ---- + + -1.8837 0 1.0000 + -1.0474 0 2.0000 + -0.9590 0 1.0000 + -0.7779 0 3.0000 + -0.7779 0 1.0000 + -0.6504 0 2.0000 + -0.5486 0 1.0000 + -0.4279 0 1.0000 + -0.1324 0 2.0000 + 0.1379 0 2.0000 + 0.1834 0 1.0000 + 0.2356 1.0000 2.0000 + 0.3396 1.0000 1.0000 + 0.4486 1.0000 1.0000 + 0.6763 1.0000 1.0000 + 1.0201 1.0000 1.0000 + 1.3760 1.0000 1.0000 + 1.6295 1.0000 1.0000 + 2.0340 1.0000 1.0000 + 2.1367 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.32971 + ------------------------------------------- + +testing cutpoint: 0.33955 + + ---- view of lincomb & g_node & w_node ---- + + -1.8837 0 1.0000 + -1.0474 0 2.0000 + -0.9590 0 1.0000 + -0.7779 0 3.0000 + -0.7779 0 1.0000 + -0.6504 0 2.0000 + -0.5486 0 1.0000 + -0.4279 0 1.0000 + -0.1324 0 2.0000 + 0.1379 0 2.0000 + 0.1834 0 1.0000 + 0.2356 0 2.0000 + 0.3396 0 1.0000 + 0.4486 1.0000 1.0000 + 0.6763 1.0000 1.0000 + 1.0201 1.0000 1.0000 + 1.3760 1.0000 1.0000 + 1.6295 1.0000 1.0000 + 2.0340 1.0000 1.0000 + 2.1367 1.0000 1.0000 + + +logrank stat for this cutpoint: 9.22859 + ------------------------------------------- + +node assignments: + 12 + 8 + 10 + 22 + 22 + 10 + 10 + 6 + 6 + 22 + 22 + 6 + 23 + 6 + 12 + 6 + 10 + 6 + 6 + 12 + +growing node 21 + +Column 5 was sampled but unique values of column 5 are 1.0000 + + ---- view of x_node ---- + + 1.0000e+00 3.2000e+00 1.3100e+02 + 1.0000e+00 3.4500e+00 1.4200e+02 + 2.0000e+00 2.7500e+00 1.7900e+02 + 1.0000e+00 3.3700e+00 9.3000e+01 + 1.0000e+00 3.7700e+00 3.3000e+01 + 1.0000e+00 3.0200e+00 1.0400e+02 + 1.0000e+00 3.6500e+00 9.8000e+01 + 1.0000e+00 2.9500e+00 1.0800e+02 + 1.0000e+00 3.3600e+00 7.3000e+01 + 1.0000e+00 3.9000e+00 1.0700e+02 + 1.0000e+00 3.7000e+00 1.7100e+02 + 1.0000e+00 3.5600e+00 1.2300e+02 + + + ---- view of y_node ---- + + 9.0400e+02 1.0000e+00 + 1.0770e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.3000e+03 0 + 1.4350e+03 0 + 1.6900e+03 1.0000e+00 + 1.7410e+03 1.0000e+00 + 1.8820e+03 0 + 2.5980e+03 1.0000e+00 + 3.0690e+03 0 + 4.1910e+03 1.0000e+00 + 4.2320e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.56213 -- next: -0.61478 -- N events: 0 -- N risk: 1 +current value: -0.61478 -- next: -0.597599 -- N events: 0 -- N risk: 4 +current value: -0.597599 -- next: -0.509375 -- N events: 1 -- N risk: 5 + +lower cutpoint: -0.597599 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 3.27519 ---- next value: 0.49888 ---- N events: 1 ---- N risk: 1 +current value: 0.49888 ---- next value: 0.391636 ---- N events: 2 ---- N risk: 2 +current value: 0.391636 ---- next value: 0.315146 ---- N events: 3 ---- N risk: 3 +current value: 0.315146 ---- next value: 0.294644 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 0.294644 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.5976 + -0.3179 + -0.0632 + 0.1709 + 0.2946 + + +testing cutpoint: -0.597599 + + ---- view of lincomb & g_node & w_node ---- + + -1.5621 0 1.0000 + -0.6148 0 3.0000 + -0.5976 0 1.0000 + -0.5094 1.0000 2.0000 + -0.3179 1.0000 3.0000 + -0.0632 1.0000 3.0000 + 0.1709 1.0000 1.0000 + 0.2946 1.0000 3.0000 + 0.3151 1.0000 3.0000 + 0.3916 1.0000 1.0000 + 0.4989 1.0000 1.0000 + 3.2752 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.45041 + ------------------------------------------- + +testing cutpoint: -0.31788 + + ---- view of lincomb & g_node & w_node ---- + + -1.5621 0 1.0000 + -0.6148 0 3.0000 + -0.5976 0 1.0000 + -0.5094 0 2.0000 + -0.3179 0 3.0000 + -0.0632 1.0000 3.0000 + 0.1709 1.0000 1.0000 + 0.2946 1.0000 3.0000 + 0.3151 1.0000 3.0000 + 0.3916 1.0000 1.0000 + 0.4989 1.0000 1.0000 + 3.2752 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.653223 + ------------------------------------------- + +testing cutpoint: -0.0631645 + + ---- view of lincomb & g_node & w_node ---- + + -1.5621 0 1.0000 + -0.6148 0 3.0000 + -0.5976 0 1.0000 + -0.5094 0 2.0000 + -0.3179 0 3.0000 + -0.0632 0 3.0000 + 0.1709 1.0000 1.0000 + 0.2946 1.0000 3.0000 + 0.3151 1.0000 3.0000 + 0.3916 1.0000 1.0000 + 0.4989 1.0000 1.0000 + 3.2752 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.63548 + ------------------------------------------- + +testing cutpoint: 0.170871 + + ---- view of lincomb & g_node & w_node ---- + + -1.5621 0 1.0000 + -0.6148 0 3.0000 + -0.5976 0 1.0000 + -0.5094 0 2.0000 + -0.3179 0 3.0000 + -0.0632 0 3.0000 + 0.1709 0 1.0000 + 0.2946 1.0000 3.0000 + 0.3151 1.0000 3.0000 + 0.3916 1.0000 1.0000 + 0.4989 1.0000 1.0000 + 3.2752 1.0000 1.0000 + + +logrank stat for this cutpoint: 4.54564 + ------------------------------------------- + +testing cutpoint: 0.294644 + + ---- view of lincomb & g_node & w_node ---- + + -1.5621 0 1.0000 + -0.6148 0 3.0000 + -0.5976 0 1.0000 + -0.5094 0 2.0000 + -0.3179 0 3.0000 + -0.0632 0 3.0000 + 0.1709 0 1.0000 + 0.2946 0 3.0000 + 0.3151 1.0000 3.0000 + 0.3916 1.0000 1.0000 + 0.4989 1.0000 1.0000 + 3.2752 1.0000 1.0000 + + +logrank stat for this cutpoint: 15.0653 + ------------------------------------------- + +node assignments: + 6 + 22 + 8 + 12 + 23 + 12 + 12 + 10 + 6 + 6 + 6 + 6 + +growing node 22 + +sprouting new leaf with node 22 + + ---- view of leaf_data ---- + + 2.2300e+02 8.1818e-01 1.8182e-01 + 4.6000e+02 6.3636e-01 4.0404e-01 + 5.5200e+02 5.4545e-01 5.4690e-01 + 5.9700e+02 4.5455e-01 7.1356e-01 + 7.6900e+02 3.6364e-01 9.1356e-01 + + +growing node 23 + + ---- view of x_node ---- + + 2.0000e+00 1.0200e+02 1.2730e+03 + 1.0000e+00 3.2200e+02 1.1190e+03 + 1.0000e+00 1.0000e+02 9.7900e+02 + 1.0000e+00 9.0000e+01 2.2500e+03 + 1.0000e+00 1.4400e+02 5.1840e+03 + 1.0000e+00 5.5000e+01 1.1900e+03 + 1.0000e+00 7.7000e+01 1.4060e+03 + 1.0000e+00 1.1800e+02 1.2570e+03 + 1.0000e+00 1.3000e+02 1.9110e+03 + 1.0000e+00 9.0000e+01 9.2400e+02 + 1.0000e+00 2.2400e+02 1.8660e+03 + 1.0000e+00 9.2000e+01 6.1218e+03 + 1.0000e+00 1.0900e+02 1.0520e+03 + 1.0000e+00 1.2400e+02 7.6228e+03 + 1.0000e+00 6.2000e+01 8.1000e+02 + 1.0000e+00 3.1800e+02 1.2180e+03 + 1.0000e+00 1.0600e+02 5.5400e+02 + 1.0000e+00 8.7000e+01 1.2340e+03 + 1.0000e+00 5.0000e+01 1.0290e+03 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 8.3700e+02 0 + 9.8000e+02 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.2500e+03 0 + 1.3010e+03 0 + 1.4080e+03 0 + 1.5420e+03 0 + 1.7700e+03 0 + 1.7860e+03 1.0000e+00 + 1.9250e+03 1.0000e+00 + 2.1050e+03 1.0000e+00 + 2.2240e+03 1.0000e+00 + 2.3630e+03 0 + 2.5400e+03 1.0000e+00 + 2.5560e+03 0 + 3.2440e+03 1.0000e+00 + 3.4280e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.44861 -- next: -1.44035 -- N events: 0 -- N risk: 1 +current value: -1.44035 -- next: -1.38531 -- N events: 1 -- N risk: 2 +current value: -1.38531 -- next: -1.35206 -- N events: 1 -- N risk: 4 +current value: -1.35206 -- next: -1.32297 -- N events: 1 -- N risk: 6 + +lower cutpoint: -1.35206 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 16 ---- next value: 0.350592 ---- N events: 2 ---- N risk: 2 +current value: 0.350592 ---- next value: -0.110791 ---- N events: 3 ---- N risk: 3 +current value: -0.110791 ---- next value: -0.143974 ---- N events: 4 ---- N risk: 4 +current value: -0.143974 ---- next value: -0.446976 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: -0.446976 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.3230 + -1.2748 + -1.1466 + -1.0155 + -0.4558 + + +testing cutpoint: -1.32297 + + ---- view of lincomb & g_node & w_node ---- + + -1.4486 0 1.0000 + -1.4404 0 1.0000 + -1.3853 0 2.0000 + -1.3521 0 2.0000 + -1.3230 0 3.0000 + -1.2748 1.0000 2.0000 + -1.2617 1.0000 4.0000 + -1.2573 1.0000 1.0000 + -1.2260 1.0000 4.0000 + -1.1466 1.0000 1.0000 + -1.0155 1.0000 1.0000 + -0.9524 1.0000 1.0000 + -0.6298 1.0000 1.0000 + -0.4558 1.0000 3.0000 + -0.4470 1.0000 2.0000 + -0.1440 1.0000 1.0000 + -0.1108 1.0000 1.0000 + 0.3506 1.0000 1.0000 + 16.0000 1.0000 2.0000 + + +logrank stat for this cutpoint: 8.53215 + ------------------------------------------- + +testing cutpoint: -1.27479 + + ---- view of lincomb & g_node & w_node ---- + + -1.4486 0 1.0000 + -1.4404 0 1.0000 + -1.3853 0 2.0000 + -1.3521 0 2.0000 + -1.3230 0 3.0000 + -1.2748 0 2.0000 + -1.2617 1.0000 4.0000 + -1.2573 1.0000 1.0000 + -1.2260 1.0000 4.0000 + -1.1466 1.0000 1.0000 + -1.0155 1.0000 1.0000 + -0.9524 1.0000 1.0000 + -0.6298 1.0000 1.0000 + -0.4558 1.0000 3.0000 + -0.4470 1.0000 2.0000 + -0.1440 1.0000 1.0000 + -0.1108 1.0000 1.0000 + 0.3506 1.0000 1.0000 + 16.0000 1.0000 2.0000 + + +logrank stat for this cutpoint: 3.40279 + ------------------------------------------- + +testing cutpoint: -1.14656 + + ---- view of lincomb & g_node & w_node ---- + + -1.4486 0 1.0000 + -1.4404 0 1.0000 + -1.3853 0 2.0000 + -1.3521 0 2.0000 + -1.3230 0 3.0000 + -1.2748 0 2.0000 + -1.2617 0 4.0000 + -1.2573 0 1.0000 + -1.2260 0 4.0000 + -1.1466 0 1.0000 + -1.0155 1.0000 1.0000 + -0.9524 1.0000 1.0000 + -0.6298 1.0000 1.0000 + -0.4558 1.0000 3.0000 + -0.4470 1.0000 2.0000 + -0.1440 1.0000 1.0000 + -0.1108 1.0000 1.0000 + 0.3506 1.0000 1.0000 + 16.0000 1.0000 2.0000 + + +logrank stat for this cutpoint: 7.6367 + ------------------------------------------- + +testing cutpoint: -1.01554 + + ---- view of lincomb & g_node & w_node ---- + + -1.4486 0 1.0000 + -1.4404 0 1.0000 + -1.3853 0 2.0000 + -1.3521 0 2.0000 + -1.3230 0 3.0000 + -1.2748 0 2.0000 + -1.2617 0 4.0000 + -1.2573 0 1.0000 + -1.2260 0 4.0000 + -1.1466 0 1.0000 + -1.0155 0 1.0000 + -0.9524 1.0000 1.0000 + -0.6298 1.0000 1.0000 + -0.4558 1.0000 3.0000 + -0.4470 1.0000 2.0000 + -0.1440 1.0000 1.0000 + -0.1108 1.0000 1.0000 + 0.3506 1.0000 1.0000 + 16.0000 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.10529 + ------------------------------------------- + +testing cutpoint: -0.455756 + + ---- view of lincomb & g_node & w_node ---- + + -1.4486 0 1.0000 + -1.4404 0 1.0000 + -1.3853 0 2.0000 + -1.3521 0 2.0000 + -1.3230 0 3.0000 + -1.2748 0 2.0000 + -1.2617 0 4.0000 + -1.2573 0 1.0000 + -1.2260 0 4.0000 + -1.1466 0 1.0000 + -1.0155 0 1.0000 + -0.9524 0 1.0000 + -0.6298 0 1.0000 + -0.4558 0 3.0000 + -0.4470 1.0000 2.0000 + -0.1440 1.0000 1.0000 + -0.1108 1.0000 1.0000 + 0.3506 1.0000 1.0000 + 16.0000 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.41651 + ------------------------------------------- + +node assignments: + 10 + 10 + 12 + 22 + 22 + 6 + 22 + 12 + 6 + 10 + 30 + 8 + 6 + 6 + 22 + 6 + 12 + 10 + 6 + +growing node 24 + +sprouting new leaf with node 24 + + ---- view of leaf_data ---- + + 1.0830e+03 8.1818e-01 1.8182e-01 + 1.2350e+03 7.1591e-01 3.0682e-01 + 1.4440e+03 4.0909e-01 7.3539e-01 + 1.6570e+03 1.0227e-01 1.4854e+00 + 1.6900e+03 0 2.4854e+00 + + +growing node 25 + +sprouting new leaf with node 25 + + ---- view of leaf_data ---- + + 2.3860e+03 8.6667e-01 1.3333e-01 + 3.5840e+03 5.7778e-01 4.6667e-01 + 3.8390e+03 4.3333e-01 7.1667e-01 + 3.8530e+03 1.4444e-01 1.3833e+00 + + +growing node 26 + +sprouting new leaf with node 26 + + ---- view of leaf_data ---- + + 7.9700e+02 8.5714e-01 1.4286e-01 + 9.4300e+02 7.1429e-01 3.0952e-01 + 2.7690e+03 3.5714e-01 8.0952e-01 + 2.7960e+03 0 1.8095e+00 + + +growing node 27 + +sprouting new leaf with node 27 + + ---- view of leaf_data ---- + + 1.6900e+03 9.2308e-01 7.6923e-02 + 1.7410e+03 7.6923e-01 2.4359e-01 + 2.5980e+03 6.5934e-01 3.8645e-01 + + +growing node 28 + +sprouting new leaf with node 28 + + ---- view of leaf_data ---- + + 9.0400e+02 8.3333e-01 1.6667e-01 + 1.0770e+03 3.3333e-01 7.6667e-01 + 1.1910e+03 1.6667e-01 1.2667e+00 + 4.1910e+03 0 2.2667e+00 + + +growing node 29 + +sprouting new leaf with node 29 + + ---- view of leaf_data ---- + + 3.4280e+03 0 1.0000e+00 + + +growing node 30 + +Column 4 was sampled but unique values of column 4 are 2.0000 + + ---- view of x_node ---- + + 5.7000e+01 2.0000e+00 3.6700e+00 + 3.0800e+02 1.0000e+00 3.6200e+00 + 1.0300e+02 1.0000e+00 3.7400e+00 + 1.1500e+02 1.0000e+00 1.9600e+00 + 7.3000e+01 1.0000e+00 3.6100e+00 + 4.5000e+01 1.0000e+00 3.5700e+00 + 7.0000e+01 1.0000e+00 3.3600e+00 + 1.8800e+02 1.0000e+00 3.1200e+00 + 3.4000e+01 1.0000e+00 3.4300e+00 + 6.4000e+01 1.0000e+00 2.5400e+00 + 7.4000e+01 1.0000e+00 3.5400e+00 + 4.9000e+01 1.0000e+00 3.5000e+00 + 3.4000e+01 1.0000e+00 3.6500e+00 + 1.0200e+02 1.0000e+00 3.5300e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 8.3700e+02 0 + 9.8000e+02 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.4080e+03 0 + 1.5420e+03 0 + 1.7860e+03 1.0000e+00 + 1.9250e+03 1.0000e+00 + 2.1050e+03 1.0000e+00 + 2.2240e+03 1.0000e+00 + 2.5400e+03 1.0000e+00 + 3.2440e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -2.29461 -- next: -1.50136 -- N events: 0 -- N risk: 3 +current value: -1.50136 -- next: -1.1259 -- N events: 2 -- N risk: 5 + +lower cutpoint: -1.50136 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 11.5 ---- next value: 1.58071 ---- N events: 2 ---- N risk: 2 +current value: 1.58071 ---- next value: 0.807297 ---- N events: 3 ---- N risk: 3 +current value: 0.807297 ---- next value: -0.616078 ---- N events: 4 ---- N risk: 4 +current value: -0.616078 ---- next value: -0.669047 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: -0.669047 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.5014 + -1.1259 + -1.1249 + -1.0043 + -0.8131 + + +testing cutpoint: -1.50136 + + ---- view of lincomb & g_node & w_node ---- + + -2.2946 0 3.0000 + -1.5014 0 2.0000 + -1.1259 1.0000 4.0000 + -1.1249 1.0000 1.0000 + -1.0063 1.0000 4.0000 + -1.0043 1.0000 2.0000 + -0.9170 1.0000 1.0000 + -0.8240 1.0000 1.0000 + -0.8131 1.0000 1.0000 + -0.6690 1.0000 1.0000 + -0.6161 1.0000 1.0000 + 0.8073 1.0000 1.0000 + 1.5807 1.0000 1.0000 + 11.5000 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.10735 + ------------------------------------------- + +testing cutpoint: -1.1259 + + ---- view of lincomb & g_node & w_node ---- + + -2.2946 0 3.0000 + -1.5014 0 2.0000 + -1.1259 0 4.0000 + -1.1249 1.0000 1.0000 + -1.0063 1.0000 4.0000 + -1.0043 1.0000 2.0000 + -0.9170 1.0000 1.0000 + -0.8240 1.0000 1.0000 + -0.8131 1.0000 1.0000 + -0.6690 1.0000 1.0000 + -0.6161 1.0000 1.0000 + 0.8073 1.0000 1.0000 + 1.5807 1.0000 1.0000 + 11.5000 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.655 + ------------------------------------------- + +testing cutpoint: -1.12489 + + ---- view of lincomb & g_node & w_node ---- + + -2.2946 0 3.0000 + -1.5014 0 2.0000 + -1.1259 0 4.0000 + -1.1249 0 1.0000 + -1.0063 1.0000 4.0000 + -1.0043 1.0000 2.0000 + -0.9170 1.0000 1.0000 + -0.8240 1.0000 1.0000 + -0.8131 1.0000 1.0000 + -0.6690 1.0000 1.0000 + -0.6161 1.0000 1.0000 + 0.8073 1.0000 1.0000 + 1.5807 1.0000 1.0000 + 11.5000 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.14328 + ------------------------------------------- + +testing cutpoint: -1.00428 + + ---- view of lincomb & g_node & w_node ---- + + -2.2946 0 3.0000 + -1.5014 0 2.0000 + -1.1259 0 4.0000 + -1.1249 0 1.0000 + -1.0063 0 4.0000 + -1.0043 0 2.0000 + -0.9170 1.0000 1.0000 + -0.8240 1.0000 1.0000 + -0.8131 1.0000 1.0000 + -0.6690 1.0000 1.0000 + -0.6161 1.0000 1.0000 + 0.8073 1.0000 1.0000 + 1.5807 1.0000 1.0000 + 11.5000 1.0000 2.0000 + + +logrank stat for this cutpoint: 6.06862 + ------------------------------------------- + +testing cutpoint: -0.813132 + + ---- view of lincomb & g_node & w_node ---- + + -2.2946 0 3.0000 + -1.5014 0 2.0000 + -1.1259 0 4.0000 + -1.1249 0 1.0000 + -1.0063 0 4.0000 + -1.0043 0 2.0000 + -0.9170 0 1.0000 + -0.8240 0 1.0000 + -0.8131 0 1.0000 + -0.6690 1.0000 1.0000 + -0.6161 1.0000 1.0000 + 0.8073 1.0000 1.0000 + 1.5807 1.0000 1.0000 + 11.5000 1.0000 2.0000 + + +logrank stat for this cutpoint: 12.9824 + ------------------------------------------- + +node assignments: + 6 + 6 + 10 + 6 + 6 + 6 + 12 + 10 + 12 + 12 + 8 + 22 + 32 + 6 + +growing node 31 + +sprouting new leaf with node 31 + + ---- view of leaf_data ---- + + 9.8000e+02 8.7500e-01 1.2500e-01 + 2.1050e+03 5.5682e-01 4.8864e-01 + 2.2240e+03 4.7727e-01 6.3149e-01 + 2.5400e+03 3.1818e-01 9.6483e-01 + 3.2440e+03 0 1.9648e+00 + + +growing node 32 + +sprouting new leaf with node 32 + + ---- view of leaf_data ---- + + 1.1000e+02 6.6667e-01 3.3333e-01 + 1.1650e+03 5.0000e-01 5.8333e-01 + 1.7860e+03 2.5000e-01 1.0833e+00 + 1.9250e+03 0 2.0833e+00 + + +Effective sample size: 276 +Effective number of events: 119 +Number of unique rows in x: 174 + +Max number of nodes for this tree: 237 +Max number of leaves for this tree: 119 + +growing node 0 + + ---- view of x_node ---- + + 3.6974e+03 1.7500e+02 1.2000e+01 + 1.2730e+03 1.8800e+02 1.1100e+01 + 9.6100e+02 1.7800e+02 1.2400e+01 + 6.2000e+02 2.2200e+02 1.2100e+01 + 1.8600e+03 3.4500e+02 1.0700e+01 + 3.7400e+03 1.0920e+03 1.5200e+01 + 6.9312e+03 3.3400e+02 1.2000e+01 + 6.0648e+03 3.9500e+02 1.1700e+01 + 5.9100e+02 2.3600e+02 1.3600e+01 + 7.2770e+03 2.6000e+02 1.1000e+01 + 1.8190e+03 2.4400e+02 1.2100e+01 + 1.8330e+03 4.4800e+02 1.1000e+01 + 1.6260e+03 2.0600e+02 1.2200e+01 + 2.4600e+03 3.2500e+02 1.1900e+01 + 9.4400e+02 6.3600e+02 9.5000e+00 + 1.1420e+03 2.7500e+02 1.1300e+01 + 1.9750e+03 2.2200e+02 1.3000e+01 + 7.4600e+02 1.7800e+02 1.2000e+01 + 2.3100e+03 3.7200e+02 1.2400e+01 + 3.1960e+03 4.2000e+02 1.1400e+01 + + + ---- view of y_node ---- + + 7.7000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.1435 -- next: -1.11656 -- N events: 0 -- N risk: 1 +current value: -1.11656 -- next: -1.09059 -- N events: 0 -- N risk: 2 +current value: -1.09059 -- next: -1.08222 -- N events: 0 -- N risk: 4 +current value: -1.08222 -- next: -1.07074 -- N events: 0 -- N risk: 5 +current value: -1.07074 -- next: -1.03376 -- N events: 0 -- N risk: 6 +current value: -1.03376 -- next: -1.00891 -- N events: 0 -- N risk: 7 +current value: -1.00891 -- next: -0.990904 -- N events: 0 -- N risk: 8 +current value: -0.990904 -- next: -0.968808 -- N events: 0 -- N risk: 10 +current value: -0.968808 -- next: -0.966499 -- N events: 0 -- N risk: 13 +current value: -0.966499 -- next: -0.962723 -- N events: 0 -- N risk: 14 +current value: -0.962723 -- next: -0.90763 -- N events: 0 -- N risk: 15 +current value: -0.90763 -- next: -0.899905 -- N events: 0 -- N risk: 17 +current value: -0.899905 -- next: -0.894962 -- N events: 0 -- N risk: 18 +current value: -0.894962 -- next: -0.885182 -- N events: 1 -- N risk: 19 + +lower cutpoint: -0.894962 + - n_events, left node: 1 + - n_risk, left node: 19 + +----- finding upper bound for cut-points ----- +current value: 4.21455 ---- next value: 3.73802 ---- N events: 1 ---- N risk: 1 +current value: 3.73802 ---- next value: 2.2995 ---- N events: 1 ---- N risk: 2 +current value: 2.2995 ---- next value: 2.15834 ---- N events: 3 ---- N risk: 4 +current value: 2.15834 ---- next value: 1.8489 ---- N events: 6 ---- N risk: 7 + +upper cutpoint: 1.8489 + - n_events, right node: 6 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -0.2043 + 0.2623 + 0.2975 + 0.6551 + 0.7145 + + +testing cutpoint: -0.204261 + + ---- view of lincomb & g_node & w_node ---- + + -1.1435 0 1.0000 + -1.1166 0 1.0000 + -1.0906 0 2.0000 + -1.0822 0 1.0000 + -1.0707 0 1.0000 + -1.0338 0 1.0000 + -1.0089 0 1.0000 + -0.9909 0 2.0000 + -0.9688 0 3.0000 + -0.9665 0 1.0000 + -0.9627 0 1.0000 + -0.9076 0 2.0000 + -0.8999 0 1.0000 + -0.8950 0 1.0000 + -0.8852 0 1.0000 + -0.8617 0 1.0000 + -0.8517 0 1.0000 + -0.8516 0 1.0000 + -0.8413 0 2.0000 + -0.8408 0 1.0000 + + +logrank stat for this cutpoint: 46.0432 + ------------------------------------------- + +testing cutpoint: 0.262282 + + ---- view of lincomb & g_node & w_node ---- + + -1.1435 0 1.0000 + -1.1166 0 1.0000 + -1.0906 0 2.0000 + -1.0822 0 1.0000 + -1.0707 0 1.0000 + -1.0338 0 1.0000 + -1.0089 0 1.0000 + -0.9909 0 2.0000 + -0.9688 0 3.0000 + -0.9665 0 1.0000 + -0.9627 0 1.0000 + -0.9076 0 2.0000 + -0.8999 0 1.0000 + -0.8950 0 1.0000 + -0.8852 0 1.0000 + -0.8617 0 1.0000 + -0.8517 0 1.0000 + -0.8516 0 1.0000 + -0.8413 0 2.0000 + -0.8408 0 1.0000 + + +logrank stat for this cutpoint: 82.5068 + ------------------------------------------- + +testing cutpoint: 0.297522 + + ---- view of lincomb & g_node & w_node ---- + + -1.1435 0 1.0000 + -1.1166 0 1.0000 + -1.0906 0 2.0000 + -1.0822 0 1.0000 + -1.0707 0 1.0000 + -1.0338 0 1.0000 + -1.0089 0 1.0000 + -0.9909 0 2.0000 + -0.9688 0 3.0000 + -0.9665 0 1.0000 + -0.9627 0 1.0000 + -0.9076 0 2.0000 + -0.8999 0 1.0000 + -0.8950 0 1.0000 + -0.8852 0 1.0000 + -0.8617 0 1.0000 + -0.8517 0 1.0000 + -0.8516 0 1.0000 + -0.8413 0 2.0000 + -0.8408 0 1.0000 + + +logrank stat for this cutpoint: 79.358 + ------------------------------------------- + +testing cutpoint: 0.655103 + + ---- view of lincomb & g_node & w_node ---- + + -1.1435 0 1.0000 + -1.1166 0 1.0000 + -1.0906 0 2.0000 + -1.0822 0 1.0000 + -1.0707 0 1.0000 + -1.0338 0 1.0000 + -1.0089 0 1.0000 + -0.9909 0 2.0000 + -0.9688 0 3.0000 + -0.9665 0 1.0000 + -0.9627 0 1.0000 + -0.9076 0 2.0000 + -0.8999 0 1.0000 + -0.8950 0 1.0000 + -0.8852 0 1.0000 + -0.8617 0 1.0000 + -0.8517 0 1.0000 + -0.8516 0 1.0000 + -0.8413 0 2.0000 + -0.8408 0 1.0000 + + +logrank stat for this cutpoint: 58.1529 + ------------------------------------------- + +testing cutpoint: 0.714497 + + ---- view of lincomb & g_node & w_node ---- + + -1.1435 0 1.0000 + -1.1166 0 1.0000 + -1.0906 0 2.0000 + -1.0822 0 1.0000 + -1.0707 0 1.0000 + -1.0338 0 1.0000 + -1.0089 0 1.0000 + -0.9909 0 2.0000 + -0.9688 0 3.0000 + -0.9665 0 1.0000 + -0.9627 0 1.0000 + -0.9076 0 2.0000 + -0.8999 0 1.0000 + -0.8950 0 1.0000 + -0.8852 0 1.0000 + -0.8617 0 1.0000 + -0.8517 0 1.0000 + -0.8516 0 1.0000 + -0.8413 0 2.0000 + -0.8408 0 1.0000 + + +logrank stat for this cutpoint: 42.7762 + ------------------------------------------- + +node assignments: + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + +growing node 1 + + ---- view of x_node ---- + + 1.0200e+02 2.0000e+00 2.0000e+00 + 7.2000e+01 1.0000e+00 2.0000e+00 + 1.1400e+02 1.0000e+00 2.0000e+00 + 9.1000e+01 1.0000e+00 1.0000e+00 + 9.9000e+01 1.0000e+00 2.0000e+00 + 1.2800e+02 1.0000e+00 2.0000e+00 + 2.4200e+02 1.0000e+00 1.0000e+00 + 3.2200e+02 1.0000e+00 2.0000e+00 + 8.8000e+01 1.0000e+00 2.0000e+00 + 9.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7100e+02 1.0000e+00 2.0000e+00 + 1.0000e+02 1.0000e+00 2.0000e+00 + 8.2000e+01 1.0000e+00 2.0000e+00 + 6.3000e+01 1.0000e+00 1.0000e+00 + 1.1300e+02 1.0000e+00 2.0000e+00 + 2.4200e+02 1.0000e+00 2.0000e+00 + 1.4200e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 2.0000e+00 2.0000e+00 + 6.4000e+01 1.0000e+00 2.0000e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 6.9400e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 8.3900e+02 0 + 8.9000e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 9.9400e+02 0 + 9.9900e+02 1.0000e+00 + 1.0300e+03 0 + 1.0670e+03 0 + 1.0770e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.2160e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -0.611112 -- next: -0.582137 -- N events: 0 -- N risk: 1 +current value: -0.582137 -- next: -0.568764 -- N events: 0 -- N risk: 2 +current value: -0.568764 -- next: -0.568764 -- N events: 0 -- N risk: 4 +current value: -0.568764 -- next: -0.566535 -- N events: 0 -- N risk: 5 +current value: -0.566535 -- next: -0.562077 -- N events: 4 -- N risk: 9 + +lower cutpoint: -0.566535 + - n_events, left node: 4 + - n_risk, left node: 9 + +----- finding upper bound for cut-points ----- +current value: 13.8767 ---- next value: 13.7051 ---- N events: 1 ---- N risk: 1 +current value: 13.7051 ---- next value: 1.66224 ---- N events: 2 ---- N risk: 2 +current value: 1.66224 ---- next value: 1.60875 ---- N events: 3 ---- N risk: 3 +current value: 1.60875 ---- next value: 1.59092 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 1.59092 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.4774 + -0.4596 + -0.4506 + -0.3793 + -0.3659 + + +testing cutpoint: -0.477382 + + ---- view of lincomb & g_node & w_node ---- + + -0.6111 0 1.0000 + -0.5821 0 1.0000 + -0.5688 0 2.0000 + -0.5688 0 1.0000 + -0.5665 0 4.0000 + -0.5621 0 1.0000 + -0.5621 0 4.0000 + -0.5598 0 2.0000 + -0.5598 0 1.0000 + -0.5576 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 3.0000 + -0.5420 0 1.0000 + -0.5420 0 1.0000 + -0.5376 0 2.0000 + -0.5353 0 1.0000 + -0.5331 0 1.0000 + -0.5331 0 1.0000 + -0.5309 0 1.0000 + + +logrank stat for this cutpoint: 7.65157 + ------------------------------------------- + +testing cutpoint: -0.459551 + + ---- view of lincomb & g_node & w_node ---- + + -0.6111 0 1.0000 + -0.5821 0 1.0000 + -0.5688 0 2.0000 + -0.5688 0 1.0000 + -0.5665 0 4.0000 + -0.5621 0 1.0000 + -0.5621 0 4.0000 + -0.5598 0 2.0000 + -0.5598 0 1.0000 + -0.5576 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 3.0000 + -0.5420 0 1.0000 + -0.5420 0 1.0000 + -0.5376 0 2.0000 + -0.5353 0 1.0000 + -0.5331 0 1.0000 + -0.5331 0 1.0000 + -0.5309 0 1.0000 + + +logrank stat for this cutpoint: 6.08527 + ------------------------------------------- + +testing cutpoint: -0.450636 + + ---- view of lincomb & g_node & w_node ---- + + -0.6111 0 1.0000 + -0.5821 0 1.0000 + -0.5688 0 2.0000 + -0.5688 0 1.0000 + -0.5665 0 4.0000 + -0.5621 0 1.0000 + -0.5621 0 4.0000 + -0.5598 0 2.0000 + -0.5598 0 1.0000 + -0.5576 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 3.0000 + -0.5420 0 1.0000 + -0.5420 0 1.0000 + -0.5376 0 2.0000 + -0.5353 0 1.0000 + -0.5331 0 1.0000 + -0.5331 0 1.0000 + -0.5309 0 1.0000 + + +logrank stat for this cutpoint: 7.18604 + ------------------------------------------- + +testing cutpoint: -0.379313 + + ---- view of lincomb & g_node & w_node ---- + + -0.6111 0 1.0000 + -0.5821 0 1.0000 + -0.5688 0 2.0000 + -0.5688 0 1.0000 + -0.5665 0 4.0000 + -0.5621 0 1.0000 + -0.5621 0 4.0000 + -0.5598 0 2.0000 + -0.5598 0 1.0000 + -0.5576 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 3.0000 + -0.5420 0 1.0000 + -0.5420 0 1.0000 + -0.5376 0 2.0000 + -0.5353 0 1.0000 + -0.5331 0 1.0000 + -0.5331 0 1.0000 + -0.5309 0 1.0000 + + +logrank stat for this cutpoint: 5.75962 + ------------------------------------------- + +testing cutpoint: -0.36594 + + ---- view of lincomb & g_node & w_node ---- + + -0.6111 0 1.0000 + -0.5821 0 1.0000 + -0.5688 0 2.0000 + -0.5688 0 1.0000 + -0.5665 0 4.0000 + -0.5621 0 1.0000 + -0.5621 0 4.0000 + -0.5598 0 2.0000 + -0.5598 0 1.0000 + -0.5576 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 1.0000 + -0.5554 0 3.0000 + -0.5420 0 1.0000 + -0.5420 0 1.0000 + -0.5376 0 2.0000 + -0.5353 0 1.0000 + -0.5331 0 1.0000 + -0.5331 0 1.0000 + -0.5309 0 1.0000 + + +logrank stat for this cutpoint: 5.47046 + ------------------------------------------- + +node assignments: + 4 + 3 + 4 + 3 + 4 + 3 + 2 + 4 + 2 + 4 + 2 + 3 + 4 + 2 + 2 + 3 + 4 + 4 + 3 + 3 + 2 + 4 + 3 + 4 + 2 + 4 + 2 + 4 + 4 + 2 + 2 + 4 + 4 + 4 + 3 + 4 + 2 + 3 + 2 + 4 + 2 + 3 + 2 + 3 + 2 + 4 + 4 + 3 + 3 + 2 + 2 + 4 + 2 + 2 + 2 + 4 + 4 + 2 + 3 + 3 + 4 + 4 + 2 + 4 + 4 + 4 + 4 + 3 + 4 + 4 + 2 + 2 + 3 + 4 + 2 + 3 + 3 + 4 + 4 + 2 + 3 + 3 + 4 + 3 + 2 + 4 + 4 + 4 + 4 + 4 + 2 + 4 + 2 + 2 + 3 + 4 + 3 + 2 + 2 + 3 + 4 + 3 + 4 + 2 + 2 + 4 + 3 + 4 + 2 + 2 + 2 + 4 + 3 + 3 + 2 + 2 + 2 + 2 + +growing node 2 + + ---- view of x_node ---- + + 2.0000e+00 8.0000e+01 2.0000e+00 + 1.0000e+00 2.8300e+02 2.0000e+00 + 2.0000e+00 1.9500e+02 2.0000e+00 + 2.0000e+00 3.9900e+02 2.0000e+00 + 2.0000e+00 1.0200e+02 1.0000e+00 + 2.0000e+00 2.1400e+02 2.0000e+00 + 1.0000e+00 7.1000e+01 2.0000e+00 + 1.0000e+00 1.2400e+02 2.0000e+00 + 1.0000e+00 1.3200e+02 2.0000e+00 + 2.0000e+00 2.1000e+02 1.0000e+00 + 2.0000e+00 1.4500e+02 1.0000e+00 + 1.0000e+00 4.3000e+02 2.0000e+00 + 2.0000e+00 1.4400e+02 2.0000e+00 + 1.0000e+00 1.1900e+02 1.0000e+00 + 1.0000e+00 2.4000e+02 1.0000e+00 + 1.0000e+00 3.4400e+02 1.0000e+00 + 1.0000e+00 1.7300e+02 2.0000e+00 + 1.0000e+00 2.9700e+02 1.0000e+00 + 1.0000e+00 2.6800e+02 1.0000e+00 + 1.0000e+00 2.0000e+02 2.0000e+00 + + + ---- view of y_node ---- + + 7.7000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.7900e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.3300e+02 1.0000e+00 + 7.8800e+02 0 + + +----- finding lower bound for cut-points ----- +current value: -1.3825 -- next: -1.19832 -- N events: 2 -- N risk: 2 +current value: -1.19832 -- next: -1.15809 -- N events: 3 -- N risk: 3 +current value: -1.15809 -- next: -1.15386 -- N events: 4 -- N risk: 4 +current value: -1.15386 -- next: -1.05224 -- N events: 4 -- N risk: 5 + +lower cutpoint: -1.15386 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.55954 ---- next value: 2.42405 ---- N events: 1 ---- N risk: 1 +current value: 2.42405 ---- next value: 2.31608 ---- N events: 3 ---- N risk: 3 +current value: 2.31608 ---- next value: 2.27586 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 2.27586 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.1539 + -0.7326 + -0.1667 + 0.1276 + 2.1615 + + +testing cutpoint: -1.15386 + + ---- view of lincomb & g_node & w_node ---- + + -1.3825 0 2.0000 + -1.1983 0 1.0000 + -1.1581 0 1.0000 + -1.1539 0 1.0000 + -1.0522 1.0000 1.0000 + -1.0141 1.0000 1.0000 + -0.9993 1.0000 1.0000 + -0.9676 1.0000 1.0000 + -0.9549 1.0000 1.0000 + -0.9485 1.0000 1.0000 + -0.9189 1.0000 3.0000 + -0.9146 1.0000 1.0000 + -0.9104 1.0000 1.0000 + -0.9019 1.0000 2.0000 + -0.8532 1.0000 1.0000 + -0.8532 1.0000 2.0000 + -0.7940 1.0000 1.0000 + -0.7432 1.0000 2.0000 + -0.7326 1.0000 1.0000 + -0.7093 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.03495 + ------------------------------------------- + +testing cutpoint: -0.732566 + + ---- view of lincomb & g_node & w_node ---- + + -1.3825 0 2.0000 + -1.1983 0 1.0000 + -1.1581 0 1.0000 + -1.1539 0 1.0000 + -1.0522 0 1.0000 + -1.0141 0 1.0000 + -0.9993 0 1.0000 + -0.9676 0 1.0000 + -0.9549 0 1.0000 + -0.9485 0 1.0000 + -0.9189 0 3.0000 + -0.9146 0 1.0000 + -0.9104 0 1.0000 + -0.9019 0 2.0000 + -0.8532 0 1.0000 + -0.8532 0 2.0000 + -0.7940 0 1.0000 + -0.7432 0 2.0000 + -0.7326 0 1.0000 + -0.7093 1.0000 1.0000 + + +logrank stat for this cutpoint: 12.1298 + ------------------------------------------- + +testing cutpoint: -0.166664 + + ---- view of lincomb & g_node & w_node ---- + + -1.3825 0 2.0000 + -1.1983 0 1.0000 + -1.1581 0 1.0000 + -1.1539 0 1.0000 + -1.0522 0 1.0000 + -1.0141 0 1.0000 + -0.9993 0 1.0000 + -0.9676 0 1.0000 + -0.9549 0 1.0000 + -0.9485 0 1.0000 + -0.9189 0 3.0000 + -0.9146 0 1.0000 + -0.9104 0 1.0000 + -0.9019 0 2.0000 + -0.8532 0 1.0000 + -0.8532 0 2.0000 + -0.7940 0 1.0000 + -0.7432 0 2.0000 + -0.7326 0 1.0000 + -0.7093 0 1.0000 + + +logrank stat for this cutpoint: 13.363 + ------------------------------------------- + +testing cutpoint: 0.127605 + + ---- view of lincomb & g_node & w_node ---- + + -1.3825 0 2.0000 + -1.1983 0 1.0000 + -1.1581 0 1.0000 + -1.1539 0 1.0000 + -1.0522 0 1.0000 + -1.0141 0 1.0000 + -0.9993 0 1.0000 + -0.9676 0 1.0000 + -0.9549 0 1.0000 + -0.9485 0 1.0000 + -0.9189 0 3.0000 + -0.9146 0 1.0000 + -0.9104 0 1.0000 + -0.9019 0 2.0000 + -0.8532 0 1.0000 + -0.8532 0 2.0000 + -0.7940 0 1.0000 + -0.7432 0 2.0000 + -0.7326 0 1.0000 + -0.7093 0 1.0000 + + +logrank stat for this cutpoint: 45.2918 + ------------------------------------------- + +testing cutpoint: 2.16154 + + ---- view of lincomb & g_node & w_node ---- + + -1.3825 0 2.0000 + -1.1983 0 1.0000 + -1.1581 0 1.0000 + -1.1539 0 1.0000 + -1.0522 0 1.0000 + -1.0141 0 1.0000 + -0.9993 0 1.0000 + -0.9676 0 1.0000 + -0.9549 0 1.0000 + -0.9485 0 1.0000 + -0.9189 0 3.0000 + -0.9146 0 1.0000 + -0.9104 0 1.0000 + -0.9019 0 2.0000 + -0.8532 0 1.0000 + -0.8532 0 2.0000 + -0.7940 0 1.0000 + -0.7432 0 2.0000 + -0.7326 0 1.0000 + -0.7093 0 1.0000 + + +logrank stat for this cutpoint: 37.1502 + ------------------------------------------- + +node assignments: + 4 + 4 + 3 + 5 + 4 + 4 + 6 + 4 + 3 + 5 + 3 + 5 + 4 + 5 + 3 + 5 + 4 + 5 + 5 + 3 + 4 + 5 + 5 + 4 + 4 + 5 + 6 + 4 + 3 + 5 + 4 + 5 + 4 + 4 + 4 + 4 + 4 + 5 + 4 + 6 + 4 + 4 + 6 + 6 + 5 + 6 + 5 + 6 + 6 + 3 + 6 + 5 + 6 + 5 + 6 + 6 + +growing node 3 + +Column 2 was sampled but unique values of column 2 are 2.0000 + + ---- view of x_node ---- + + 4.4000 1.0000 1.0000 + 3.1600 1.0000 1.0000 + 2.7500 1.0000 1.0000 + 3.4500 2.0000 1.0000 + 3.9300 1.0000 1.0000 + 3.2500 2.0000 1.0000 + 3.3700 2.0000 1.0000 + 3.5700 1.0000 1.0000 + 3.4800 1.0000 1.0000 + 3.7700 1.0000 1.0000 + 3.7700 2.0000 1.0000 + 3.5300 2.0000 1.0000 + 2.9300 1.0000 1.0000 + 3.3600 2.0000 1.0000 + 3.3500 2.0000 1.0000 + 3.2000 1.0000 1.0000 + 2.5400 2.0000 2.0000 + 3.3500 1.0000 1.0000 + 4.0800 1.0000 1.0000 + 4.1700 1.0000 1.0000 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 8.3900e+02 0 + 9.9400e+02 0 + 1.2160e+03 0 + 1.2300e+03 0 + 1.2500e+03 0 + 1.3000e+03 0 + 1.3630e+03 0 + 1.4010e+03 0 + 1.4330e+03 0 + 1.4350e+03 0 + 1.5040e+03 0 + 1.5250e+03 0 + 1.7690e+03 0 + 1.7700e+03 0 + 1.7830e+03 0 + 1.9250e+03 1.0000e+00 + 1.9670e+03 0 + 2.0550e+03 1.0000e+00 + 2.1570e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -1.27754 -- next: -1.11051 -- N events: 1 -- N risk: 1 +current value: -1.11051 -- next: -1.10292 -- N events: 1 -- N risk: 2 +current value: -1.10292 -- next: -1.07255 -- N events: 1 -- N risk: 4 +current value: -1.07255 -- next: -1.04978 -- N events: 1 -- N risk: 5 + +lower cutpoint: -1.07255 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 24.4786 ---- next value: 0.554227 ---- N events: 1 ---- N risk: 1 +current value: 0.554227 ---- next value: 0.516266 ---- N events: 1 ---- N risk: 2 +current value: 0.516266 ---- next value: 0.478305 ---- N events: 1 ---- N risk: 6 + +upper cutpoint: 0.478305 + - n_events, right node: 1 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -1.0726 + -1.0422 + -0.7005 + -0.6778 + -0.6702 + + +testing cutpoint: -1.07255 + + ---- view of lincomb & g_node & w_node ---- + + -1.2775 0 1.0000 + -1.1105 0 1.0000 + -1.1029 0 2.0000 + -1.0726 0 1.0000 + -1.0498 1.0000 2.0000 + -1.0422 1.0000 1.0000 + -1.0346 1.0000 1.0000 + -1.0270 1.0000 1.0000 + -0.9511 1.0000 1.0000 + -0.9207 1.0000 2.0000 + -0.8220 1.0000 1.0000 + -0.8068 1.0000 1.0000 + -0.7992 1.0000 2.0000 + -0.7461 1.0000 1.0000 + -0.7157 1.0000 1.0000 + -0.7005 1.0000 4.0000 + -0.6778 1.0000 1.0000 + -0.6778 1.0000 2.0000 + -0.6702 1.0000 1.0000 + -0.6474 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.174358 + ------------------------------------------- + +testing cutpoint: -1.04218 + + ---- view of lincomb & g_node & w_node ---- + + -1.2775 0 1.0000 + -1.1105 0 1.0000 + -1.1029 0 2.0000 + -1.0726 0 1.0000 + -1.0498 0 2.0000 + -1.0422 0 1.0000 + -1.0346 1.0000 1.0000 + -1.0270 1.0000 1.0000 + -0.9511 1.0000 1.0000 + -0.9207 1.0000 2.0000 + -0.8220 1.0000 1.0000 + -0.8068 1.0000 1.0000 + -0.7992 1.0000 2.0000 + -0.7461 1.0000 1.0000 + -0.7157 1.0000 1.0000 + -0.7005 1.0000 4.0000 + -0.6778 1.0000 1.0000 + -0.6778 1.0000 2.0000 + -0.6702 1.0000 1.0000 + -0.6474 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.641141 + ------------------------------------------- + +testing cutpoint: -0.700535 + + ---- view of lincomb & g_node & w_node ---- + + -1.2775 0 1.0000 + -1.1105 0 1.0000 + -1.1029 0 2.0000 + -1.0726 0 1.0000 + -1.0498 0 2.0000 + -1.0422 0 1.0000 + -1.0346 0 1.0000 + -1.0270 0 1.0000 + -0.9511 0 1.0000 + -0.9207 0 2.0000 + -0.8220 0 1.0000 + -0.8068 0 1.0000 + -0.7992 0 2.0000 + -0.7461 0 1.0000 + -0.7157 0 1.0000 + -0.7005 0 4.0000 + -0.6778 1.0000 1.0000 + -0.6778 1.0000 2.0000 + -0.6702 1.0000 1.0000 + -0.6474 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0319407 + ------------------------------------------- + +testing cutpoint: -0.677758 + + ---- view of lincomb & g_node & w_node ---- + + -1.2775 0 1.0000 + -1.1105 0 1.0000 + -1.1029 0 2.0000 + -1.0726 0 1.0000 + -1.0498 0 2.0000 + -1.0422 0 1.0000 + -1.0346 0 1.0000 + -1.0270 0 1.0000 + -0.9511 0 1.0000 + -0.9207 0 2.0000 + -0.8220 0 1.0000 + -0.8068 0 1.0000 + -0.7992 0 2.0000 + -0.7461 0 1.0000 + -0.7157 0 1.0000 + -0.7005 0 4.0000 + -0.6778 0 1.0000 + -0.6778 0 2.0000 + -0.6702 1.0000 1.0000 + -0.6474 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0184077 + ------------------------------------------- + +testing cutpoint: -0.670166 + + ---- view of lincomb & g_node & w_node ---- + + -1.2775 0 1.0000 + -1.1105 0 1.0000 + -1.1029 0 2.0000 + -1.0726 0 1.0000 + -1.0498 0 2.0000 + -1.0422 0 1.0000 + -1.0346 0 1.0000 + -1.0270 0 1.0000 + -0.9511 0 1.0000 + -0.9207 0 2.0000 + -0.8220 0 1.0000 + -0.8068 0 1.0000 + -0.7992 0 2.0000 + -0.7461 0 1.0000 + -0.7157 0 1.0000 + -0.7005 0 4.0000 + -0.6778 0 1.0000 + -0.6778 0 2.0000 + -0.6702 0 1.0000 + -0.6474 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.17501 + ------------------------------------------- + +best split stat, 0.641141, was < split_min_stat, 3.84 +sprouting new leaf with node 3 + + ---- view of leaf_data ---- + + 1.9800e+02 9.8507e-01 1.4925e-02 + 1.9250e+03 9.6105e-01 3.9316e-02 + 2.0550e+03 9.3641e-01 6.4957e-02 + 2.2880e+03 9.0620e-01 9.7215e-02 + 2.4190e+03 8.7135e-01 1.3568e-01 + + +growing node 4 + + ---- view of x_node ---- + + 1.0200e+02 1.1935e+02 2.0000e+00 + 1.1400e+02 9.7650e+01 2.0000e+00 + 9.1000e+01 7.5000e+01 1.0000e+00 + 9.9000e+01 1.3020e+02 2.0000e+00 + 1.2800e+02 1.1780e+02 1.0000e+00 + 2.4200e+02 8.6000e+01 1.0000e+00 + 3.2200e+02 1.1470e+02 2.0000e+00 + 9.1000e+01 1.7670e+02 1.0000e+00 + 1.3100e+02 1.5345e+02 1.0000e+00 + 1.7100e+02 1.9840e+02 1.0000e+00 + 1.0000e+02 1.2865e+02 2.0000e+00 + 6.3000e+01 1.7980e+02 1.0000e+00 + 1.1300e+02 9.1000e+01 1.0000e+00 + 2.4200e+02 1.1700e+02 1.0000e+00 + 1.4200e+02 1.3330e+02 1.0000e+00 + 1.7900e+02 8.2000e+01 1.0000e+00 + 1.1300e+02 2.1080e+02 2.0000e+00 + 1.0400e+02 5.2000e+01 1.0000e+00 + 1.2700e+02 1.5000e+02 1.0000e+00 + 2.1800e+02 1.4570e+02 1.0000e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 5.3300e+02 0 + 6.9400e+02 1.0000e+00 + 7.6900e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 8.9000e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 9.9900e+02 1.0000e+00 + 1.0300e+03 0 + 1.0670e+03 0 + 1.0770e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.2350e+03 1.0000e+00 + 1.2710e+03 0 + 1.2930e+03 0 + 1.2970e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.4879 -- next: -1.37919 -- N events: 0 -- N risk: 1 +current value: -1.37919 -- next: -1.21799 -- N events: 0 -- N risk: 2 +current value: -1.21799 -- next: -1.2001 -- N events: 1 -- N risk: 3 +current value: -1.2001 -- next: -1.11645 -- N events: 2 -- N risk: 4 +current value: -1.11645 -- next: -1.11071 -- N events: 2 -- N risk: 6 + +lower cutpoint: -1.11645 + - n_events, left node: 2 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 2.37619 ---- next value: 2.34193 ---- N events: 2 ---- N risk: 2 +current value: 2.34193 ---- next value: 2.27584 ---- N events: 4 ---- N risk: 4 +current value: 2.27584 ---- next value: 1.29422 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 1.29422 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.4263 + 0.1462 + 0.3785 + 0.7433 + 1.2942 + + +testing cutpoint: -0.426288 + + ---- view of lincomb & g_node & w_node ---- + + -1.4879 0 1.0000 + -1.3792 0 1.0000 + -1.2180 0 1.0000 + -1.2001 0 1.0000 + -1.1165 0 2.0000 + -1.1107 0 1.0000 + -0.9503 0 5.0000 + -0.8880 0 1.0000 + -0.8863 0 1.0000 + -0.8255 0 2.0000 + -0.8185 0 3.0000 + -0.8127 0 1.0000 + -0.8076 0 1.0000 + -0.7730 0 1.0000 + -0.7506 0 1.0000 + -0.7415 0 1.0000 + -0.7111 0 2.0000 + -0.5875 0 4.0000 + -0.5675 0 1.0000 + -0.5128 0 1.0000 + + +logrank stat for this cutpoint: 6.83914 + ------------------------------------------- + +testing cutpoint: 0.146212 + + ---- view of lincomb & g_node & w_node ---- + + -1.4879 0 1.0000 + -1.3792 0 1.0000 + -1.2180 0 1.0000 + -1.2001 0 1.0000 + -1.1165 0 2.0000 + -1.1107 0 1.0000 + -0.9503 0 5.0000 + -0.8880 0 1.0000 + -0.8863 0 1.0000 + -0.8255 0 2.0000 + -0.8185 0 3.0000 + -0.8127 0 1.0000 + -0.8076 0 1.0000 + -0.7730 0 1.0000 + -0.7506 0 1.0000 + -0.7415 0 1.0000 + -0.7111 0 2.0000 + -0.5875 0 4.0000 + -0.5675 0 1.0000 + -0.5128 0 1.0000 + + +logrank stat for this cutpoint: 7.13281 + ------------------------------------------- + +testing cutpoint: 0.378511 + + ---- view of lincomb & g_node & w_node ---- + + -1.4879 0 1.0000 + -1.3792 0 1.0000 + -1.2180 0 1.0000 + -1.2001 0 1.0000 + -1.1165 0 2.0000 + -1.1107 0 1.0000 + -0.9503 0 5.0000 + -0.8880 0 1.0000 + -0.8863 0 1.0000 + -0.8255 0 2.0000 + -0.8185 0 3.0000 + -0.8127 0 1.0000 + -0.8076 0 1.0000 + -0.7730 0 1.0000 + -0.7506 0 1.0000 + -0.7415 0 1.0000 + -0.7111 0 2.0000 + -0.5875 0 4.0000 + -0.5675 0 1.0000 + -0.5128 0 1.0000 + + +logrank stat for this cutpoint: 19.5715 + ------------------------------------------- + +testing cutpoint: 0.743345 + + ---- view of lincomb & g_node & w_node ---- + + -1.4879 0 1.0000 + -1.3792 0 1.0000 + -1.2180 0 1.0000 + -1.2001 0 1.0000 + -1.1165 0 2.0000 + -1.1107 0 1.0000 + -0.9503 0 5.0000 + -0.8880 0 1.0000 + -0.8863 0 1.0000 + -0.8255 0 2.0000 + -0.8185 0 3.0000 + -0.8127 0 1.0000 + -0.8076 0 1.0000 + -0.7730 0 1.0000 + -0.7506 0 1.0000 + -0.7415 0 1.0000 + -0.7111 0 2.0000 + -0.5875 0 4.0000 + -0.5675 0 1.0000 + -0.5128 0 1.0000 + + +logrank stat for this cutpoint: 58.1308 + ------------------------------------------- + +testing cutpoint: 1.29422 + + ---- view of lincomb & g_node & w_node ---- + + -1.4879 0 1.0000 + -1.3792 0 1.0000 + -1.2180 0 1.0000 + -1.2001 0 1.0000 + -1.1165 0 2.0000 + -1.1107 0 1.0000 + -0.9503 0 5.0000 + -0.8880 0 1.0000 + -0.8863 0 1.0000 + -0.8255 0 2.0000 + -0.8185 0 3.0000 + -0.8127 0 1.0000 + -0.8076 0 1.0000 + -0.7730 0 1.0000 + -0.7506 0 1.0000 + -0.7415 0 1.0000 + -0.7111 0 2.0000 + -0.5875 0 4.0000 + -0.5675 0 1.0000 + -0.5128 0 1.0000 + + +logrank stat for this cutpoint: 6.0287 + ------------------------------------------- + +node assignments: + 5 + 7 + 6 + 8 + 7 + 5 + 5 + 3 + 7 + 5 + 3 + 5 + 5 + 5 + 7 + 7 + 8 + 8 + 6 + 5 + 5 + 7 + 5 + 5 + 7 + 8 + 7 + 3 + 6 + 5 + 5 + 3 + 5 + 6 + 6 + 5 + 3 + 3 + 5 + 7 + 8 + 8 + 3 + 7 + 3 + 3 + 5 + 3 + 7 + 5 + 6 + 3 + 7 + 3 + 3 + 7 + 5 + 5 + 7 + 6 + 7 + 8 + 7 + 6 + 6 + 6 + 6 + 6 + 6 + 7 + 7 + +growing node 5 + + ---- view of x_node ---- + + 9.6100e+02 2.0000e+00 1.1400e+01 + 2.4600e+03 2.0000e+00 5.0000e+00 + 7.4600e+02 1.0000e+00 2.3000e+00 + 2.3100e+03 1.0000e+00 4.5000e+00 + 3.1960e+03 1.0000e+00 2.0000e+00 + 1.3760e+03 2.0000e+00 3.4000e+00 + 3.6810e+03 1.0000e+00 6.1000e+00 + 2.8700e+03 1.0000e+00 1.4000e+01 + 2.1150e+03 2.0000e+00 6.4000e+00 + 2.4680e+03 1.0000e+00 2.5500e+01 + 5.3960e+03 2.0000e+00 2.2500e+01 + 5.1600e+02 1.0000e+00 1.4000e+00 + 1.2040e+03 1.0000e+00 5.9000e+00 + 2.3740e+03 2.0000e+00 6.5000e+00 + 5.1840e+03 2.0000e+00 2.9000e+00 + 1.4060e+03 2.0000e+00 1.1000e+00 + 3.1500e+03 1.0000e+00 6.6000e+00 + 1.0700e+03 1.0000e+00 8.6000e+00 + 1.9190e+03 1.0000e+00 5.1000e+00 + 3.2280e+03 2.0000e+00 5.2000e+00 + + + ---- view of y_node ---- + + 1.3100e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.3300e+02 1.0000e+00 + 7.8800e+02 0 + 8.5300e+02 1.0000e+00 + 8.5900e+02 1.0000e+00 + 1.0120e+03 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.3020e+03 0 + 1.3290e+03 0 + 1.3560e+03 1.0000e+00 + 1.4440e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.01086 -- next: -0.984864 -- N events: 1 -- N risk: 1 +current value: -0.984864 -- next: -0.800968 -- N events: 2 -- N risk: 2 +current value: -0.800968 -- next: -0.799776 -- N events: 2 -- N risk: 3 +current value: -0.799776 -- next: -0.755734 -- N events: 2 -- N risk: 4 +current value: -0.755734 -- next: -0.745969 -- N events: 2 -- N risk: 5 + +lower cutpoint: -0.755734 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.66493 ---- next value: 2.59746 ---- N events: 1 ---- N risk: 1 +current value: 2.59746 ---- next value: 1.56096 ---- N events: 3 ---- N risk: 3 +current value: 1.56096 ---- next value: 1.14434 ---- N events: 4 ---- N risk: 4 +current value: 1.14434 ---- next value: 1.0327 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 1.0327 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.5197 + -0.4582 + -0.1808 + -0.1617 + 0.4098 + + +testing cutpoint: -0.519739 + + ---- view of lincomb & g_node & w_node ---- + + -1.0109 0 1.0000 + -0.9849 0 1.0000 + -0.8010 0 1.0000 + -0.7998 0 1.0000 + -0.7557 0 1.0000 + -0.7460 0 1.0000 + -0.7147 0 1.0000 + -0.6906 0 1.0000 + -0.6848 0 3.0000 + -0.6681 0 1.0000 + -0.6145 0 1.0000 + -0.5637 0 4.0000 + -0.5197 0 1.0000 + -0.4582 1.0000 1.0000 + -0.4442 1.0000 1.0000 + -0.4253 1.0000 1.0000 + -0.4118 1.0000 1.0000 + -0.3582 1.0000 2.0000 + -0.3197 1.0000 2.0000 + -0.2930 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.49936 + ------------------------------------------- + +testing cutpoint: -0.458205 + + ---- view of lincomb & g_node & w_node ---- + + -1.0109 0 1.0000 + -0.9849 0 1.0000 + -0.8010 0 1.0000 + -0.7998 0 1.0000 + -0.7557 0 1.0000 + -0.7460 0 1.0000 + -0.7147 0 1.0000 + -0.6906 0 1.0000 + -0.6848 0 3.0000 + -0.6681 0 1.0000 + -0.6145 0 1.0000 + -0.5637 0 4.0000 + -0.5197 0 1.0000 + -0.4582 0 1.0000 + -0.4442 1.0000 1.0000 + -0.4253 1.0000 1.0000 + -0.4118 1.0000 1.0000 + -0.3582 1.0000 2.0000 + -0.3197 1.0000 2.0000 + -0.2930 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.74995 + ------------------------------------------- + +testing cutpoint: -0.180789 + + ---- view of lincomb & g_node & w_node ---- + + -1.0109 0 1.0000 + -0.9849 0 1.0000 + -0.8010 0 1.0000 + -0.7998 0 1.0000 + -0.7557 0 1.0000 + -0.7460 0 1.0000 + -0.7147 0 1.0000 + -0.6906 0 1.0000 + -0.6848 0 3.0000 + -0.6681 0 1.0000 + -0.6145 0 1.0000 + -0.5637 0 4.0000 + -0.5197 0 1.0000 + -0.4582 0 1.0000 + -0.4442 0 1.0000 + -0.4253 0 1.0000 + -0.4118 0 1.0000 + -0.3582 0 2.0000 + -0.3197 0 2.0000 + -0.2930 0 1.0000 + + +logrank stat for this cutpoint: 8.52166 + ------------------------------------------- + +testing cutpoint: -0.161678 + + ---- view of lincomb & g_node & w_node ---- + + -1.0109 0 1.0000 + -0.9849 0 1.0000 + -0.8010 0 1.0000 + -0.7998 0 1.0000 + -0.7557 0 1.0000 + -0.7460 0 1.0000 + -0.7147 0 1.0000 + -0.6906 0 1.0000 + -0.6848 0 3.0000 + -0.6681 0 1.0000 + -0.6145 0 1.0000 + -0.5637 0 4.0000 + -0.5197 0 1.0000 + -0.4582 0 1.0000 + -0.4442 0 1.0000 + -0.4253 0 1.0000 + -0.4118 0 1.0000 + -0.3582 0 2.0000 + -0.3197 0 2.0000 + -0.2930 0 1.0000 + + +logrank stat for this cutpoint: 11.8701 + ------------------------------------------- + +testing cutpoint: 0.409834 + + ---- view of lincomb & g_node & w_node ---- + + -1.0109 0 1.0000 + -0.9849 0 1.0000 + -0.8010 0 1.0000 + -0.7998 0 1.0000 + -0.7557 0 1.0000 + -0.7460 0 1.0000 + -0.7147 0 1.0000 + -0.6906 0 1.0000 + -0.6848 0 3.0000 + -0.6681 0 1.0000 + -0.6145 0 1.0000 + -0.5637 0 4.0000 + -0.5197 0 1.0000 + -0.4582 0 1.0000 + -0.4442 0 1.0000 + -0.4253 0 1.0000 + -0.4118 0 1.0000 + -0.3582 0 2.0000 + -0.3197 0 2.0000 + -0.2930 0 1.0000 + + +logrank stat for this cutpoint: 14.9227 + ------------------------------------------- + +node assignments: + 8 + 8 + 7 + 9 + 7 + 10 + 7 + 10 + 6 + 3 + 9 + 10 + 7 + 7 + 7 + 3 + 7 + 9 + 7 + 6 + 3 + 9 + 9 + 9 + 8 + 8 + 7 + 6 + 6 + 6 + 6 + 8 + 8 + 9 + 9 + 6 + 9 + 6 + 6 + 10 + 6 + 6 + +growing node 6 + + ---- view of x_node ---- + + 4.0000e+00 8.0000e+01 2.0000e+00 + 4.0000e+00 1.9500e+02 1.0000e+00 + 4.0000e+00 3.9900e+02 2.0000e+00 + 4.0000e+00 1.0200e+02 1.0000e+00 + 4.0000e+00 2.1400e+02 2.0000e+00 + 4.0000e+00 7.1000e+01 2.0000e+00 + 4.0000e+00 1.2400e+02 2.0000e+00 + 3.0000e+00 1.3200e+02 2.0000e+00 + 4.0000e+00 2.1000e+02 1.0000e+00 + 4.0000e+00 1.4500e+02 1.0000e+00 + 4.0000e+00 1.4400e+02 2.0000e+00 + 4.0000e+00 2.6800e+02 1.0000e+00 + 4.0000e+00 1.2200e+02 2.0000e+00 + 4.0000e+00 3.2900e+02 2.0000e+00 + + + ---- view of y_node ---- + + 7.7000e+01 1.0000e+00 + 1.7900e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.2300e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.0400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.3200e+03 0 + 3.0900e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.13388 -- next: -0.82911 -- N events: 1 -- N risk: 1 +current value: -0.82911 -- next: -0.328415 -- N events: 2 -- N risk: 2 +current value: -0.328415 -- next: -0.291233 -- N events: 4 -- N risk: 4 +current value: -0.291233 -- next: -0.0387092 -- N events: 6 -- N risk: 6 + +lower cutpoint: -0.291233 + - n_events, left node: 6 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 0.431508 ---- next value: 0.294187 ---- N events: 2 ---- N risk: 2 +current value: 0.294187 ---- next value: 0.255002 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: 0.255002 + - n_events, right node: 6 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.2912 + -0.0387 + 0.0721 + 0.2443 + 0.2550 + + +testing cutpoint: -0.291233 + + ---- view of lincomb & g_node & w_node ---- + + -1.1339 0 1.0000 + -0.8291 0 1.0000 + -0.3284 0 2.0000 + -0.2912 0 2.0000 + -0.0387 1.0000 2.0000 + -0.0236 1.0000 2.0000 + 0.0266 1.0000 2.0000 + 0.0634 1.0000 1.0000 + 0.0721 1.0000 1.0000 + 0.1774 1.0000 2.0000 + 0.2443 1.0000 2.0000 + 0.2550 1.0000 1.0000 + 0.2942 1.0000 4.0000 + 0.4315 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.3705 + ------------------------------------------- + +testing cutpoint: -0.0387092 + + ---- view of lincomb & g_node & w_node ---- + + -1.1339 0 1.0000 + -0.8291 0 1.0000 + -0.3284 0 2.0000 + -0.2912 0 2.0000 + -0.0387 0 2.0000 + -0.0236 1.0000 2.0000 + 0.0266 1.0000 2.0000 + 0.0634 1.0000 1.0000 + 0.0721 1.0000 1.0000 + 0.1774 1.0000 2.0000 + 0.2443 1.0000 2.0000 + 0.2550 1.0000 1.0000 + 0.2942 1.0000 4.0000 + 0.4315 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.2543 + ------------------------------------------- + +testing cutpoint: 0.0721398 + + ---- view of lincomb & g_node & w_node ---- + + -1.1339 0 1.0000 + -0.8291 0 1.0000 + -0.3284 0 2.0000 + -0.2912 0 2.0000 + -0.0387 0 2.0000 + -0.0236 0 2.0000 + 0.0266 0 2.0000 + 0.0634 0 1.0000 + 0.0721 0 1.0000 + 0.1774 1.0000 2.0000 + 0.2443 1.0000 2.0000 + 0.2550 1.0000 1.0000 + 0.2942 1.0000 4.0000 + 0.4315 1.0000 2.0000 + + +logrank stat for this cutpoint: 3.52629 + ------------------------------------------- + +testing cutpoint: 0.244292 + + ---- view of lincomb & g_node & w_node ---- + + -1.1339 0 1.0000 + -0.8291 0 1.0000 + -0.3284 0 2.0000 + -0.2912 0 2.0000 + -0.0387 0 2.0000 + -0.0236 0 2.0000 + 0.0266 0 2.0000 + 0.0634 0 1.0000 + 0.0721 0 1.0000 + 0.1774 0 2.0000 + 0.2443 0 2.0000 + 0.2550 1.0000 1.0000 + 0.2942 1.0000 4.0000 + 0.4315 1.0000 2.0000 + + +logrank stat for this cutpoint: 7.87687 + ------------------------------------------- + +testing cutpoint: 0.255002 + + ---- view of lincomb & g_node & w_node ---- + + -1.1339 0 1.0000 + -0.8291 0 1.0000 + -0.3284 0 2.0000 + -0.2912 0 2.0000 + -0.0387 0 2.0000 + -0.0236 0 2.0000 + 0.0266 0 2.0000 + 0.0634 0 1.0000 + 0.0721 0 1.0000 + 0.1774 0 2.0000 + 0.2443 0 2.0000 + 0.2550 0 1.0000 + 0.2942 1.0000 4.0000 + 0.4315 1.0000 2.0000 + + +logrank stat for this cutpoint: 4.60264 + ------------------------------------------- + +node assignments: + 10 + 9 + 3 + 11 + 12 + 11 + 8 + 12 + 11 + 11 + 11 + 12 + 11 + 11 + +growing node 7 + + ---- view of x_node ---- + + 7.5000e+01 4.0000e+00 9.1000e+01 + 1.1780e+02 4.0000e+00 1.2800e+02 + 8.6000e+01 2.0000e+00 2.4200e+02 + 1.1470e+02 4.0000e+00 3.2200e+02 + 1.5345e+02 4.0000e+00 1.3100e+02 + 1.9840e+02 3.0000e+00 1.7100e+02 + 9.1000e+01 4.0000e+00 1.1300e+02 + 1.1700e+02 2.0000e+00 2.4200e+02 + 1.3330e+02 4.0000e+00 1.4200e+02 + 8.2000e+01 4.0000e+00 1.7900e+02 + 5.2000e+01 2.0000e+00 1.0400e+02 + 1.5000e+02 3.0000e+00 1.2700e+02 + 1.4570e+02 3.0000e+00 2.1800e+02 + 9.2000e+01 4.0000e+00 1.1400e+02 + 1.4200e+02 3.0000e+00 1.4000e+02 + 8.3000e+01 2.0000e+00 1.2000e+02 + 1.5035e+02 3.0000e+00 1.8800e+02 + 1.3020e+02 3.0000e+00 1.4000e+02 + 8.7000e+01 3.0000e+00 1.1600e+02 + 7.1000e+01 3.0000e+00 1.1700e+02 + + + ---- view of y_node ---- + + 5.3300e+02 0 + 7.6900e+02 1.0000e+00 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 9.0400e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.0300e+03 0 + 1.0670e+03 0 + 1.0770e+03 1.0000e+00 + 1.1910e+03 1.0000e+00 + 1.2710e+03 0 + 1.2930e+03 0 + 1.2970e+03 1.0000e+00 + 1.3490e+03 0 + 1.4120e+03 0 + 1.4570e+03 0 + 1.4870e+03 1.0000e+00 + 1.5360e+03 1.0000e+00 + 1.5580e+03 0 + 1.5680e+03 0 + + +----- finding lower bound for cut-points ----- +current value: -2.39152 -- next: -2.33992 -- N events: 0 -- N risk: 2 +current value: -2.33992 -- next: -1.66032 -- N events: 0 -- N risk: 4 +current value: -1.66032 -- next: -1.63017 -- N events: 0 -- N risk: 6 +current value: -1.63017 -- next: -1.44632 -- N events: 0 -- N risk: 7 +current value: -1.44632 -- next: -1.37009 -- N events: 0 -- N risk: 8 +current value: -1.37009 -- next: -1.34908 -- N events: 0 -- N risk: 9 +current value: -1.34908 -- next: -1.30979 -- N events: 0 -- N risk: 10 +current value: -1.30979 -- next: -1.19299 -- N events: 0 -- N risk: 12 +current value: -1.19299 -- next: -1.11223 -- N events: 1 -- N risk: 13 + +lower cutpoint: -1.19299 + - n_events, left node: 1 + - n_risk, left node: 13 + +----- finding upper bound for cut-points ----- +current value: 2.03314 ---- next value: 1.93758 ---- N events: 1 ---- N risk: 1 +current value: 1.93758 ---- next value: 1.82794 ---- N events: 2 ---- N risk: 2 +current value: 1.82794 ---- next value: 1.79833 ---- N events: 2 ---- N risk: 4 +current value: 1.79833 ---- next value: 1.74941 ---- N events: 3 ---- N risk: 5 + +upper cutpoint: 1.74941 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -1.1122 + -0.6730 + -0.2349 + -0.1736 + 0.6985 + + +testing cutpoint: -1.11223 + + ---- view of lincomb & g_node & w_node ---- + + -2.3915 0 2.0000 + -2.3399 0 2.0000 + -1.6603 0 2.0000 + -1.6302 0 1.0000 + -1.4463 0 1.0000 + -1.3701 0 1.0000 + -1.3491 0 1.0000 + -1.3098 0 2.0000 + -1.1930 0 1.0000 + -1.1122 0 2.0000 + -1.0381 1.0000 1.0000 + -0.9458 1.0000 1.0000 + -0.9282 1.0000 1.0000 + -0.8920 1.0000 1.0000 + -0.8846 1.0000 1.0000 + -0.8824 1.0000 1.0000 + -0.7846 1.0000 1.0000 + -0.7289 1.0000 1.0000 + -0.6988 1.0000 2.0000 + -0.6730 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.5068 + ------------------------------------------- + +testing cutpoint: -0.672969 + + ---- view of lincomb & g_node & w_node ---- + + -2.3915 0 2.0000 + -2.3399 0 2.0000 + -1.6603 0 2.0000 + -1.6302 0 1.0000 + -1.4463 0 1.0000 + -1.3701 0 1.0000 + -1.3491 0 1.0000 + -1.3098 0 2.0000 + -1.1930 0 1.0000 + -1.1122 0 2.0000 + -1.0381 0 1.0000 + -0.9458 0 1.0000 + -0.9282 0 1.0000 + -0.8920 0 1.0000 + -0.8846 0 1.0000 + -0.8824 0 1.0000 + -0.7846 0 1.0000 + -0.7289 0 1.0000 + -0.6988 0 2.0000 + -0.6730 0 1.0000 + + +logrank stat for this cutpoint: 3.88765 + ------------------------------------------- + +testing cutpoint: -0.234862 + + ---- view of lincomb & g_node & w_node ---- + + -2.3915 0 2.0000 + -2.3399 0 2.0000 + -1.6603 0 2.0000 + -1.6302 0 1.0000 + -1.4463 0 1.0000 + -1.3701 0 1.0000 + -1.3491 0 1.0000 + -1.3098 0 2.0000 + -1.1930 0 1.0000 + -1.1122 0 2.0000 + -1.0381 0 1.0000 + -0.9458 0 1.0000 + -0.9282 0 1.0000 + -0.8920 0 1.0000 + -0.8846 0 1.0000 + -0.8824 0 1.0000 + -0.7846 0 1.0000 + -0.7289 0 1.0000 + -0.6988 0 2.0000 + -0.6730 0 1.0000 + + +logrank stat for this cutpoint: 9.49079 + ------------------------------------------- + +testing cutpoint: -0.173562 + + ---- view of lincomb & g_node & w_node ---- + + -2.3915 0 2.0000 + -2.3399 0 2.0000 + -1.6603 0 2.0000 + -1.6302 0 1.0000 + -1.4463 0 1.0000 + -1.3701 0 1.0000 + -1.3491 0 1.0000 + -1.3098 0 2.0000 + -1.1930 0 1.0000 + -1.1122 0 2.0000 + -1.0381 0 1.0000 + -0.9458 0 1.0000 + -0.9282 0 1.0000 + -0.8920 0 1.0000 + -0.8846 0 1.0000 + -0.8824 0 1.0000 + -0.7846 0 1.0000 + -0.7289 0 1.0000 + -0.6988 0 2.0000 + -0.6730 0 1.0000 + + +logrank stat for this cutpoint: 12.2095 + ------------------------------------------- + +testing cutpoint: 0.698541 + + ---- view of lincomb & g_node & w_node ---- + + -2.3915 0 2.0000 + -2.3399 0 2.0000 + -1.6603 0 2.0000 + -1.6302 0 1.0000 + -1.4463 0 1.0000 + -1.3701 0 1.0000 + -1.3491 0 1.0000 + -1.3098 0 2.0000 + -1.1930 0 1.0000 + -1.1122 0 2.0000 + -1.0381 0 1.0000 + -0.9458 0 1.0000 + -0.9282 0 1.0000 + -0.8920 0 1.0000 + -0.8846 0 1.0000 + -0.8824 0 1.0000 + -0.7846 0 1.0000 + -0.7289 0 1.0000 + -0.6988 0 2.0000 + -0.6730 0 1.0000 + + +logrank stat for this cutpoint: 35.9367 + ------------------------------------------- + +node assignments: + 10 + 11 + 14 + 13 + 9 + 13 + 9 + 9 + 11 + 9 + 10 + 3 + 9 + 14 + 10 + 14 + 13 + 10 + 13 + 8 + 9 + 8 + 9 + 13 + 11 + 3 + 3 + 3 + 13 + 10 + 3 + 12 + 9 + 9 + 9 + 12 + 3 + 9 + 14 + 3 + 11 + 8 + 9 + 8 + 14 + 11 + 14 + 11 + 8 + 11 + 11 + 9 + 12 + 8 + 13 + 14 + 8 + 3 + 11 + 11 + 9 + +growing node 8 + + ---- view of x_node ---- + + 4.0000 2.5000 3.0000 + 3.0000 0.6000 1.0000 + 4.0000 0.8000 1.0000 + 4.0000 7.2000 1.0000 + 4.0000 6.7000 1.0000 + 2.0000 2.3000 1.0000 + 2.0000 3.8000 1.0000 + 3.0000 3.9000 1.0000 + 3.0000 1.9000 1.0000 + 3.0000 1.1000 1.0000 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 5.1500e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 8.9000e+02 1.0000e+00 + 9.8000e+02 1.0000e+00 + 9.9900e+02 1.0000e+00 + 1.2350e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.8100e+03 0 + 2.7690e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.26281 -- next: -1.24839 -- N events: 3 -- N risk: 3 +current value: -1.24839 -- next: -1.19662 -- N events: 8 -- N risk: 8 + +lower cutpoint: -1.24839 + - n_events, left node: 8 + - n_risk, left node: 8 + +----- finding upper bound for cut-points ----- +current value: 19 ---- next value: -0.17841 ---- N events: 1 ---- N risk: 1 +current value: -0.17841 ---- next value: -0.244605 ---- N events: 2 ---- N risk: 2 +current value: -0.244605 ---- next value: -0.825929 ---- N events: 4 ---- N risk: 4 +current value: -0.825929 ---- next value: -1.0257 ---- N events: 6 ---- N risk: 6 + +upper cutpoint: -1.0257 + - n_events, right node: 6 + - n_risk, right node: 6 + +testing cutpoint: -1.24839 + + ---- view of lincomb & g_node & w_node ---- + + -1.2628 0 3.0000 + -1.2484 0 5.0000 + -1.1966 1.0000 2.0000 + -1.0907 1.0000 2.0000 + -1.0498 1.0000 1.0000 + -1.0257 1.0000 1.0000 + -0.8259 1.0000 2.0000 + -0.2446 1.0000 2.0000 + -0.1784 1.0000 1.0000 + 19.0000 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.3164 + ------------------------------------------- + +testing cutpoint: -1.19662 + + ---- view of lincomb & g_node & w_node ---- + + -1.2628 0 3.0000 + -1.2484 0 5.0000 + -1.1966 0 2.0000 + -1.0907 1.0000 2.0000 + -1.0498 1.0000 1.0000 + -1.0257 1.0000 1.0000 + -0.8259 1.0000 2.0000 + -0.2446 1.0000 2.0000 + -0.1784 1.0000 1.0000 + 19.0000 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.00682081 + ------------------------------------------- + +testing cutpoint: -1.09071 + + ---- view of lincomb & g_node & w_node ---- + + -1.2628 0 3.0000 + -1.2484 0 5.0000 + -1.1966 0 2.0000 + -1.0907 0 2.0000 + -1.0498 1.0000 1.0000 + -1.0257 1.0000 1.0000 + -0.8259 1.0000 2.0000 + -0.2446 1.0000 2.0000 + -0.1784 1.0000 1.0000 + 19.0000 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.27401 + ------------------------------------------- + +testing cutpoint: -1.0498 + + ---- view of lincomb & g_node & w_node ---- + + -1.2628 0 3.0000 + -1.2484 0 5.0000 + -1.1966 0 2.0000 + -1.0907 0 2.0000 + -1.0498 0 1.0000 + -1.0257 1.0000 1.0000 + -0.8259 1.0000 2.0000 + -0.2446 1.0000 2.0000 + -0.1784 1.0000 1.0000 + 19.0000 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.63571 + ------------------------------------------- + +testing cutpoint: -1.0257 + + ---- view of lincomb & g_node & w_node ---- + + -1.2628 0 3.0000 + -1.2484 0 5.0000 + -1.1966 0 2.0000 + -1.0907 0 2.0000 + -1.0498 0 1.0000 + -1.0257 0 1.0000 + -0.8259 1.0000 2.0000 + -0.2446 1.0000 2.0000 + -0.1784 1.0000 1.0000 + 19.0000 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.43119 + ------------------------------------------- + +best split stat, 3.3164, was < split_min_stat, 3.84 +sprouting new leaf with node 8 + + ---- view of leaf_data ---- + + 1.1000e+02 9.5000e-01 5.0000e-02 + 5.1500e+02 8.0000e-01 2.0789e-01 + 6.9400e+02 7.5000e-01 2.7039e-01 + 8.9000e+02 7.0000e-01 3.3706e-01 + 9.8000e+02 6.0000e-01 4.7992e-01 + + +growing node 9 + +Column 3 was sampled but unique values of column 3 are 1.0000 + + ---- view of x_node ---- + + 2.0000e+00 2.4645e+02 2.0000e+00 + 1.0000e+00 1.7825e+02 2.0000e+00 + 1.0000e+00 1.6740e+02 2.0000e+00 + 1.0000e+00 7.7500e+01 2.0000e+00 + 2.0000e+00 1.2090e+02 1.0000e+00 + 1.0000e+00 1.5810e+02 1.0000e+00 + 2.0000e+00 1.3600e+02 2.0000e+00 + 1.0000e+00 9.6100e+01 1.0000e+00 + 1.0000e+00 2.0305e+02 2.0000e+00 + 2.0000e+00 2.8800e+02 2.0000e+00 + 2.0000e+00 1.9000e+02 2.0000e+00 + 1.0000e+00 1.9300e+02 1.0000e+00 + 1.0000e+00 1.2700e+02 2.0000e+00 + 1.0000e+00 1.2245e+02 2.0000e+00 + 2.0000e+00 1.6585e+02 2.0000e+00 + 2.0000e+00 6.9750e+01 1.0000e+00 + 2.0000e+00 8.2150e+01 1.0000e+00 + 1.0000e+00 1.1005e+02 1.0000e+00 + 1.0000e+00 9.4550e+01 2.0000e+00 + 2.0000e+00 1.2642e+02 1.0000e+00 + + + ---- view of y_node ---- + + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.8800e+02 0 + 1.0120e+03 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.3020e+03 0 + 1.3290e+03 0 + 1.3560e+03 1.0000e+00 + 1.4440e+03 1.0000e+00 + 1.5760e+03 1.0000e+00 + 1.6570e+03 1.0000e+00 + 1.7410e+03 1.0000e+00 + 2.1060e+03 0 + 2.2240e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.702165 -- next: -0.641812 -- N events: 0 -- N risk: 1 +current value: -0.641812 -- next: -0.636583 -- N events: 0 -- N risk: 2 +current value: -0.636583 -- next: -0.607325 -- N events: 1 -- N risk: 3 +current value: -0.607325 -- next: -0.568853 -- N events: 2 -- N risk: 4 +current value: -0.568853 -- next: -0.512484 -- N events: 2 -- N risk: 5 + +lower cutpoint: -0.568853 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 1.15825 ---- next value: 0.927128 ---- N events: 0 ---- N risk: 1 +current value: 0.927128 ---- next value: 0.651227 ---- N events: 2 ---- N risk: 3 +current value: 0.651227 ---- next value: 0.613124 ---- N events: 3 ---- N risk: 4 +current value: 0.613124 ---- next value: 0.47879 ---- N events: 3 ---- N risk: 6 + +upper cutpoint: 0.47879 + - n_events, right node: 3 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + -0.5125 + -0.2551 + -0.1073 + 0.3324 + 0.4788 + + +testing cutpoint: -0.512484 + + ---- view of lincomb & g_node & w_node ---- + + -0.7022 0 1.0000 + -0.6418 0 1.0000 + -0.6366 0 1.0000 + -0.6073 0 1.0000 + -0.5689 0 1.0000 + -0.5125 0 1.0000 + -0.4309 1.0000 3.0000 + -0.4263 1.0000 1.0000 + -0.3659 1.0000 1.0000 + -0.3573 1.0000 1.0000 + -0.3533 1.0000 1.0000 + -0.3320 1.0000 2.0000 + -0.3188 1.0000 1.0000 + -0.3102 1.0000 1.0000 + -0.2551 1.0000 1.0000 + -0.2048 1.0000 2.0000 + -0.1205 1.0000 1.0000 + -0.1073 1.0000 1.0000 + -0.0860 1.0000 1.0000 + -0.0469 1.0000 4.0000 + + +logrank stat for this cutpoint: 5.15002 + ------------------------------------------- + +testing cutpoint: -0.255072 + + ---- view of lincomb & g_node & w_node ---- + + -0.7022 0 1.0000 + -0.6418 0 1.0000 + -0.6366 0 1.0000 + -0.6073 0 1.0000 + -0.5689 0 1.0000 + -0.5125 0 1.0000 + -0.4309 0 3.0000 + -0.4263 0 1.0000 + -0.3659 0 1.0000 + -0.3573 0 1.0000 + -0.3533 0 1.0000 + -0.3320 0 2.0000 + -0.3188 0 1.0000 + -0.3102 0 1.0000 + -0.2551 0 1.0000 + -0.2048 1.0000 2.0000 + -0.1205 1.0000 1.0000 + -0.1073 1.0000 1.0000 + -0.0860 1.0000 1.0000 + -0.0469 1.0000 4.0000 + + +logrank stat for this cutpoint: 6.07408 + ------------------------------------------- + +testing cutpoint: -0.107255 + + ---- view of lincomb & g_node & w_node ---- + + -0.7022 0 1.0000 + -0.6418 0 1.0000 + -0.6366 0 1.0000 + -0.6073 0 1.0000 + -0.5689 0 1.0000 + -0.5125 0 1.0000 + -0.4309 0 3.0000 + -0.4263 0 1.0000 + -0.3659 0 1.0000 + -0.3573 0 1.0000 + -0.3533 0 1.0000 + -0.3320 0 2.0000 + -0.3188 0 1.0000 + -0.3102 0 1.0000 + -0.2551 0 1.0000 + -0.2048 0 2.0000 + -0.1205 0 1.0000 + -0.1073 0 1.0000 + -0.0860 1.0000 1.0000 + -0.0469 1.0000 4.0000 + + +logrank stat for this cutpoint: 4.22853 + ------------------------------------------- + +testing cutpoint: 0.332419 + + ---- view of lincomb & g_node & w_node ---- + + -0.7022 0 1.0000 + -0.6418 0 1.0000 + -0.6366 0 1.0000 + -0.6073 0 1.0000 + -0.5689 0 1.0000 + -0.5125 0 1.0000 + -0.4309 0 3.0000 + -0.4263 0 1.0000 + -0.3659 0 1.0000 + -0.3573 0 1.0000 + -0.3533 0 1.0000 + -0.3320 0 2.0000 + -0.3188 0 1.0000 + -0.3102 0 1.0000 + -0.2551 0 1.0000 + -0.2048 0 2.0000 + -0.1205 0 1.0000 + -0.1073 0 1.0000 + -0.0860 0 1.0000 + -0.0469 0 4.0000 + + +logrank stat for this cutpoint: 1.73915 + ------------------------------------------- + +testing cutpoint: 0.47879 + + ---- view of lincomb & g_node & w_node ---- + + -0.7022 0 1.0000 + -0.6418 0 1.0000 + -0.6366 0 1.0000 + -0.6073 0 1.0000 + -0.5689 0 1.0000 + -0.5125 0 1.0000 + -0.4309 0 3.0000 + -0.4263 0 1.0000 + -0.3659 0 1.0000 + -0.3573 0 1.0000 + -0.3533 0 1.0000 + -0.3320 0 2.0000 + -0.3188 0 1.0000 + -0.3102 0 1.0000 + -0.2551 0 1.0000 + -0.2048 0 2.0000 + -0.1205 0 1.0000 + -0.1073 0 1.0000 + -0.0860 0 1.0000 + -0.0469 0 4.0000 + + +logrank stat for this cutpoint: 0.218549 + ------------------------------------------- + +node assignments: + 3 + 13 + 16 + 11 + 14 + 16 + 11 + 14 + 8 + 16 + 16 + 11 + 10 + 10 + 10 + 16 + 14 + 10 + 11 + 8 + 8 + 13 + 11 + 12 + 11 + 14 + 16 + 8 + 3 + 12 + 15 + 8 + 11 + 3 + 12 + 11 + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 1.3100e+02 8.0000e-01 2.0000e-01 + 7.3300e+02 6.0000e-01 4.5000e-01 + 8.5300e+02 5.0000e-01 6.1667e-01 + 8.5900e+02 3.0000e-01 1.0167e+00 + 1.0830e+03 1.0000e-01 1.6833e+00 + + +growing node 11 + +sprouting new leaf with node 11 + + ---- view of leaf_data ---- + + 1.7900e+02 8.8889e-01 1.1111e-01 + 2.1600e+02 8.3333e-01 1.7361e-01 + 2.6400e+02 7.2222e-01 3.0694e-01 + 3.2100e+02 6.6667e-01 3.8387e-01 + 3.2600e+02 5.5556e-01 5.5053e-01 + + +growing node 12 + +sprouting new leaf with node 12 + + ---- view of leaf_data ---- + + 7.7000e+01 8.5714e-01 1.4286e-01 + 2.2300e+02 5.7143e-01 4.7619e-01 + 3.0400e+02 0 1.4762e+00 + + +growing node 13 + +sprouting new leaf with node 13 + + ---- view of leaf_data ---- + + 7.9900e+02 9.8649e-01 1.3514e-02 + 1.1910e+03 9.7259e-01 2.7598e-02 + 1.5360e+03 9.5763e-01 4.2983e-02 + 1.6820e+03 9.2080e-01 8.1444e-02 + 1.7860e+03 9.0121e-01 1.0272e-01 + + +growing node 14 + +Column 3 was sampled but unique values of column 3 are 1.0000 + + ---- view of x_node ---- + + 1.0500e+01 2.7400e+02 1.5330e+03 + 9.8000e+00 3.1600e+02 1.1190e+03 + 1.0000e+01 3.9600e+02 1.4400e+03 + 1.0000e+01 5.5600e+02 3.8960e+03 + 1.1300e+01 1.9600e+02 2.4960e+03 + 1.0800e+01 3.4200e+02 1.6530e+03 + 1.0500e+01 4.2600e+02 2.4240e+03 + 1.1000e+01 3.7300e+02 1.0090e+03 + 1.0200e+01 3.9200e+02 1.3950e+03 + 1.0600e+01 4.3600e+02 2.1760e+03 + 1.0000e+01 3.1600e+02 1.1620e+03 + 1.0100e+01 3.3100e+02 5.7700e+02 + 1.0000e+01 2.9000e+02 2.1200e+03 + 9.9000e+00 4.5800e+02 1.5880e+03 + 1.0400e+01 4.0000e+02 1.6890e+03 + 1.1000e+01 4.2700e+02 1.9090e+03 + + + ---- view of y_node ---- + + 7.6900e+02 1.0000e+00 + 8.3700e+02 0 + 9.0400e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.0770e+03 1.0000e+00 + 1.2930e+03 0 + 1.2970e+03 1.0000e+00 + 1.4870e+03 1.0000e+00 + 1.5920e+03 0 + 1.6900e+03 1.0000e+00 + 2.4680e+03 0 + 2.7960e+03 1.0000e+00 + 3.0590e+03 0 + 3.3360e+03 0 + 3.5810e+03 0 + 4.1910e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -1.05465 -- next: -0.831449 -- N events: 0 -- N risk: 1 +current value: -0.831449 -- next: -0.698635 -- N events: 1 -- N risk: 2 +current value: -0.698635 -- next: -0.601171 -- N events: 2 -- N risk: 3 +current value: -0.601171 -- next: -0.542179 -- N events: 2 -- N risk: 5 + +lower cutpoint: -0.601171 + - n_events, left node: 2 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- +current value: 2.33862 ---- next value: 0.522989 ---- N events: 1 ---- N risk: 1 +current value: 0.522989 ---- next value: 0.438272 ---- N events: 4 ---- N risk: 4 +current value: 0.438272 ---- next value: 0.431745 ---- N events: 4 ---- N risk: 5 + +upper cutpoint: 0.431745 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.5422 + -0.2186 + 0.2257 + 0.2641 + 0.4317 + + +testing cutpoint: -0.542179 + + ---- view of lincomb & g_node & w_node ---- + + -1.0547 0 1.0000 + -0.8314 0 1.0000 + -0.6986 0 1.0000 + -0.6012 0 2.0000 + -0.5422 0 2.0000 + -0.4067 1.0000 1.0000 + -0.2186 1.0000 1.0000 + -0.0441 1.0000 3.0000 + 0.0653 1.0000 1.0000 + 0.0707 1.0000 1.0000 + 0.2257 1.0000 2.0000 + 0.2641 1.0000 1.0000 + 0.4317 1.0000 1.0000 + 0.4383 1.0000 1.0000 + 0.5230 1.0000 3.0000 + 2.3386 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.48799 + ------------------------------------------- + +testing cutpoint: -0.218621 + + ---- view of lincomb & g_node & w_node ---- + + -1.0547 0 1.0000 + -0.8314 0 1.0000 + -0.6986 0 1.0000 + -0.6012 0 2.0000 + -0.5422 0 2.0000 + -0.4067 0 1.0000 + -0.2186 0 1.0000 + -0.0441 1.0000 3.0000 + 0.0653 1.0000 1.0000 + 0.0707 1.0000 1.0000 + 0.2257 1.0000 2.0000 + 0.2641 1.0000 1.0000 + 0.4317 1.0000 1.0000 + 0.4383 1.0000 1.0000 + 0.5230 1.0000 3.0000 + 2.3386 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.02892 + ------------------------------------------- + +testing cutpoint: 0.225748 + + ---- view of lincomb & g_node & w_node ---- + + -1.0547 0 1.0000 + -0.8314 0 1.0000 + -0.6986 0 1.0000 + -0.6012 0 2.0000 + -0.5422 0 2.0000 + -0.4067 0 1.0000 + -0.2186 0 1.0000 + -0.0441 0 3.0000 + 0.0653 0 1.0000 + 0.0707 0 1.0000 + 0.2257 0 2.0000 + 0.2641 1.0000 1.0000 + 0.4317 1.0000 1.0000 + 0.4383 1.0000 1.0000 + 0.5230 1.0000 3.0000 + 2.3386 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.387311 + ------------------------------------------- + +testing cutpoint: 0.264133 + + ---- view of lincomb & g_node & w_node ---- + + -1.0547 0 1.0000 + -0.8314 0 1.0000 + -0.6986 0 1.0000 + -0.6012 0 2.0000 + -0.5422 0 2.0000 + -0.4067 0 1.0000 + -0.2186 0 1.0000 + -0.0441 0 3.0000 + 0.0653 0 1.0000 + 0.0707 0 1.0000 + 0.2257 0 2.0000 + 0.2641 0 1.0000 + 0.4317 1.0000 1.0000 + 0.4383 1.0000 1.0000 + 0.5230 1.0000 3.0000 + 2.3386 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.44822 + ------------------------------------------- + +testing cutpoint: 0.431745 + + ---- view of lincomb & g_node & w_node ---- + + -1.0547 0 1.0000 + -0.8314 0 1.0000 + -0.6986 0 1.0000 + -0.6012 0 2.0000 + -0.5422 0 2.0000 + -0.4067 0 1.0000 + -0.2186 0 1.0000 + -0.0441 0 3.0000 + 0.0653 0 1.0000 + 0.0707 0 1.0000 + 0.2257 0 2.0000 + 0.2641 0 1.0000 + 0.4317 0 1.0000 + 0.4383 1.0000 1.0000 + 0.5230 1.0000 3.0000 + 2.3386 1.0000 1.0000 + + +logrank stat for this cutpoint: 11.553 + ------------------------------------------- + +node assignments: + 16 + 11 + 10 + 8 + 12 + 11 + 8 + 11 + 11 + 11 + 12 + 13 + 11 + 11 + 12 + 3 + +growing node 15 + +sprouting new leaf with node 15 + + ---- view of leaf_data ---- + + 6.1100e+02 9.4444e-01 5.5556e-02 + 1.0120e+03 7.7778e-01 2.3203e-01 + 1.3560e+03 7.1296e-01 3.1536e-01 + 1.7410e+03 6.4815e-01 4.0627e-01 + 2.8470e+03 5.6713e-01 5.3127e-01 + + +growing node 16 + + ---- view of x_node ---- + + 2.0000e+00 3.2500e+02 1.1000e+02 + 1.0000e+00 1.7800e+02 1.4500e+02 + 1.0000e+00 3.7200e+02 2.2700e+02 + 2.0000e+00 2.7100e+02 4.6400e+02 + 1.0000e+00 1.7120e+03 8.9000e+01 + 2.0000e+00 5.7600e+02 1.8600e+02 + 1.0000e+00 1.2760e+03 1.4100e+02 + 2.0000e+00 4.2600e+02 7.3000e+01 + 2.0000e+00 4.3200e+02 4.5000e+01 + 1.0000e+00 1.0000e+03 8.8000e+01 + 2.0000e+00 1.1280e+03 5.3000e+01 + 2.0000e+00 2.2500e+02 5.1000e+01 + 2.0000e+00 1.6000e+03 7.5000e+01 + 2.0000e+00 3.2900e+02 4.9000e+01 + 1.0000e+00 4.8200e+02 1.6100e+02 + 1.0000e+00 3.4700e+02 7.6000e+01 + 1.0000e+00 6.1400e+02 1.5800e+02 + 1.0000e+00 6.6000e+02 9.4000e+01 + 2.0000e+00 2.6700e+02 8.9000e+01 + 2.0000e+00 2.5900e+02 4.6000e+01 + + + ---- view of y_node ---- + + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.8800e+02 0 + 1.0800e+03 1.0000e+00 + 1.2160e+03 0 + 1.3010e+03 0 + 1.3020e+03 0 + 1.4440e+03 1.0000e+00 + 1.5760e+03 1.0000e+00 + 1.6570e+03 1.0000e+00 + 2.2240e+03 1.0000e+00 + 2.2560e+03 1.0000e+00 + 2.3300e+03 0 + 2.3860e+03 1.0000e+00 + 2.6890e+03 1.0000e+00 + 3.4450e+03 1.0000e+00 + 3.7620e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.86439 -- next: -0.574959 -- N events: 0 -- N risk: 1 +current value: -0.574959 -- next: -0.559851 -- N events: 1 -- N risk: 2 +current value: -0.559851 -- next: -0.535404 -- N events: 2 -- N risk: 3 +current value: -0.535404 -- next: -0.520978 -- N events: 3 -- N risk: 4 +current value: -0.520978 -- next: -0.517561 -- N events: 3 -- N risk: 6 + +lower cutpoint: -0.520978 + - n_events, left node: 3 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 3.79481 ---- next value: 1.00515 ---- N events: 1 ---- N risk: 1 +current value: 1.00515 ---- next value: 0.72186 ---- N events: 1 ---- N risk: 3 +current value: 0.72186 ---- next value: 0.227275 ---- N events: 2 ---- N risk: 4 +current value: 0.227275 ---- next value: 0.160378 ---- N events: 5 ---- N risk: 7 + +upper cutpoint: 0.160378 + - n_events, right node: 5 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + -0.4865 + -0.1782 + -0.1229 + 0.0736 + 0.1180 + + +testing cutpoint: -0.486536 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 1.0000 + -0.5750 0 1.0000 + -0.5599 0 1.0000 + -0.5354 0 1.0000 + -0.5210 0 2.0000 + -0.5176 0 1.0000 + -0.4959 0 3.0000 + -0.4865 0 1.0000 + -0.2308 1.0000 1.0000 + -0.2203 1.0000 1.0000 + -0.2067 1.0000 4.0000 + -0.1782 1.0000 3.0000 + -0.1229 1.0000 1.0000 + 0.0736 1.0000 2.0000 + 0.0914 1.0000 1.0000 + 0.1180 1.0000 2.0000 + 0.1604 1.0000 2.0000 + 0.2273 1.0000 3.0000 + 0.7219 1.0000 1.0000 + 1.0052 1.0000 2.0000 + + +logrank stat for this cutpoint: 10.0629 + ------------------------------------------- + +testing cutpoint: -0.178247 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 1.0000 + -0.5750 0 1.0000 + -0.5599 0 1.0000 + -0.5354 0 1.0000 + -0.5210 0 2.0000 + -0.5176 0 1.0000 + -0.4959 0 3.0000 + -0.4865 0 1.0000 + -0.2308 0 1.0000 + -0.2203 0 1.0000 + -0.2067 0 4.0000 + -0.1782 0 3.0000 + -0.1229 1.0000 1.0000 + 0.0736 1.0000 2.0000 + 0.0914 1.0000 1.0000 + 0.1180 1.0000 2.0000 + 0.1604 1.0000 2.0000 + 0.2273 1.0000 3.0000 + 0.7219 1.0000 1.0000 + 1.0052 1.0000 2.0000 + + +logrank stat for this cutpoint: 1.66488 + ------------------------------------------- + +testing cutpoint: -0.122917 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 1.0000 + -0.5750 0 1.0000 + -0.5599 0 1.0000 + -0.5354 0 1.0000 + -0.5210 0 2.0000 + -0.5176 0 1.0000 + -0.4959 0 3.0000 + -0.4865 0 1.0000 + -0.2308 0 1.0000 + -0.2203 0 1.0000 + -0.2067 0 4.0000 + -0.1782 0 3.0000 + -0.1229 0 1.0000 + 0.0736 1.0000 2.0000 + 0.0914 1.0000 1.0000 + 0.1180 1.0000 2.0000 + 0.1604 1.0000 2.0000 + 0.2273 1.0000 3.0000 + 0.7219 1.0000 1.0000 + 1.0052 1.0000 2.0000 + + +logrank stat for this cutpoint: 3.40933 + ------------------------------------------- + +testing cutpoint: 0.0735647 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 1.0000 + -0.5750 0 1.0000 + -0.5599 0 1.0000 + -0.5354 0 1.0000 + -0.5210 0 2.0000 + -0.5176 0 1.0000 + -0.4959 0 3.0000 + -0.4865 0 1.0000 + -0.2308 0 1.0000 + -0.2203 0 1.0000 + -0.2067 0 4.0000 + -0.1782 0 3.0000 + -0.1229 0 1.0000 + 0.0736 0 2.0000 + 0.0914 1.0000 1.0000 + 0.1180 1.0000 2.0000 + 0.1604 1.0000 2.0000 + 0.2273 1.0000 3.0000 + 0.7219 1.0000 1.0000 + 1.0052 1.0000 2.0000 + + +logrank stat for this cutpoint: 5.03994 + ------------------------------------------- + +testing cutpoint: 0.117991 + + ---- view of lincomb & g_node & w_node ---- + + -0.8644 0 1.0000 + -0.5750 0 1.0000 + -0.5599 0 1.0000 + -0.5354 0 1.0000 + -0.5210 0 2.0000 + -0.5176 0 1.0000 + -0.4959 0 3.0000 + -0.4865 0 1.0000 + -0.2308 0 1.0000 + -0.2203 0 1.0000 + -0.2067 0 4.0000 + -0.1782 0 3.0000 + -0.1229 0 1.0000 + 0.0736 0 2.0000 + 0.0914 0 1.0000 + 0.1180 0 2.0000 + 0.1604 1.0000 2.0000 + 0.2273 1.0000 3.0000 + 0.7219 1.0000 1.0000 + 1.0052 1.0000 2.0000 + + +logrank stat for this cutpoint: 2.82046 + ------------------------------------------- + +node assignments: + 13 + 15 + 20 + 11 + 12 + 20 + 11 + 20 + 11 + 3 + 8 + 11 + 20 + 8 + 11 + 12 + 12 + 11 + 10 + 11 + 11 + +growing node 17 + +sprouting new leaf with node 17 + + ---- view of leaf_data ---- + + 9.0400e+02 9.3750e-01 6.2500e-02 + 9.4300e+02 8.7500e-01 1.2917e-01 + 1.2970e+03 7.5000e-01 2.7202e-01 + 1.4870e+03 5.6250e-01 5.2202e-01 + 1.6900e+03 4.8214e-01 6.6488e-01 + + +growing node 18 + +sprouting new leaf with node 18 + + ---- view of leaf_data ---- + + 7.6900e+02 4.0000e-01 6.0000e-01 + 1.0770e+03 2.0000e-01 1.1000e+00 + + +growing node 19 + +sprouting new leaf with node 19 + + ---- view of leaf_data ---- + + 1.5760e+03 8.3333e-01 1.6667e-01 + 2.2240e+03 6.6667e-01 3.6667e-01 + 2.6890e+03 4.4444e-01 7.0000e-01 + 3.7620e+03 2.2222e-01 1.2000e+00 + 3.8390e+03 0 2.2000e+00 + + +growing node 20 + + ---- view of x_node ---- + + 1.1000e+02 2.4645e+02 3.2500e+02 + 1.4500e+02 1.7825e+02 1.7800e+02 + 2.2700e+02 1.6740e+02 3.7200e+02 + 4.6400e+02 1.2090e+02 2.7100e+02 + 8.9000e+01 1.5810e+02 1.7120e+03 + 1.8600e+02 1.3600e+02 5.7600e+02 + 1.4100e+02 2.0305e+02 1.2760e+03 + 7.3000e+01 2.8800e+02 4.2600e+02 + 5.3000e+01 1.6585e+02 1.1280e+03 + 7.5000e+01 8.2150e+01 1.6000e+03 + 1.6100e+02 1.3674e+02 4.8200e+02 + 1.5800e+02 2.0640e+02 6.1400e+02 + 8.9000e+01 1.9685e+02 2.6700e+02 + + + ---- view of y_node ---- + + 4.6000e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.7300e+02 1.0000e+00 + 7.3200e+02 0 + 7.8800e+02 0 + 1.0800e+03 1.0000e+00 + 1.2160e+03 0 + 1.4440e+03 1.0000e+00 + 1.6570e+03 1.0000e+00 + 2.2560e+03 1.0000e+00 + 2.3860e+03 1.0000e+00 + 3.4450e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- +current value: -0.503301 -- next: -0.314249 -- N events: 3 -- N risk: 3 +current value: -0.314249 -- next: -0.204435 -- N events: 6 -- N risk: 6 + +lower cutpoint: -0.314249 + - n_events, left node: 6 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- +current value: 1.22552 ---- next value: 0.340417 ---- N events: 1 ---- N risk: 1 +current value: 0.340417 ---- next value: 0.330231 ---- N events: 2 ---- N risk: 2 +current value: 0.330231 ---- next value: 0.262044 ---- N events: 4 ---- N risk: 4 +current value: 0.262044 ---- next value: 0.209042 ---- N events: 5 ---- N risk: 5 + +upper cutpoint: 0.209042 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + -0.2044 + -0.1010 + -0.0324 + 0.1563 + 0.2090 + + +testing cutpoint: -0.204435 + + ---- view of lincomb & g_node & w_node ---- + + -0.5033 0 3.0000 + -0.3142 0 3.0000 + -0.2044 0 1.0000 + -0.1010 1.0000 2.0000 + -0.0493 1.0000 4.0000 + -0.0324 1.0000 1.0000 + 0.0393 1.0000 2.0000 + 0.1563 1.0000 2.0000 + 0.2090 1.0000 1.0000 + 0.2620 1.0000 1.0000 + 0.3302 1.0000 2.0000 + 0.3404 1.0000 1.0000 + 1.2255 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.82649 + ------------------------------------------- + +testing cutpoint: -0.100987 + + ---- view of lincomb & g_node & w_node ---- + + -0.5033 0 3.0000 + -0.3142 0 3.0000 + -0.2044 0 1.0000 + -0.1010 0 2.0000 + -0.0493 1.0000 4.0000 + -0.0324 1.0000 1.0000 + 0.0393 1.0000 2.0000 + 0.1563 1.0000 2.0000 + 0.2090 1.0000 1.0000 + 0.2620 1.0000 1.0000 + 0.3302 1.0000 2.0000 + 0.3404 1.0000 1.0000 + 1.2255 1.0000 1.0000 + + +logrank stat for this cutpoint: 5.31104 + ------------------------------------------- + +testing cutpoint: -0.0324224 + + ---- view of lincomb & g_node & w_node ---- + + -0.5033 0 3.0000 + -0.3142 0 3.0000 + -0.2044 0 1.0000 + -0.1010 0 2.0000 + -0.0493 0 4.0000 + -0.0324 0 1.0000 + 0.0393 1.0000 2.0000 + 0.1563 1.0000 2.0000 + 0.2090 1.0000 1.0000 + 0.2620 1.0000 1.0000 + 0.3302 1.0000 2.0000 + 0.3404 1.0000 1.0000 + 1.2255 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.73911 + ------------------------------------------- + +testing cutpoint: 0.156318 + + ---- view of lincomb & g_node & w_node ---- + + -0.5033 0 3.0000 + -0.3142 0 3.0000 + -0.2044 0 1.0000 + -0.1010 0 2.0000 + -0.0493 0 4.0000 + -0.0324 0 1.0000 + 0.0393 0 2.0000 + 0.1563 0 2.0000 + 0.2090 1.0000 1.0000 + 0.2620 1.0000 1.0000 + 0.3302 1.0000 2.0000 + 0.3404 1.0000 1.0000 + 1.2255 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.0680763 + ------------------------------------------- + +testing cutpoint: 0.209042 + + ---- view of lincomb & g_node & w_node ---- + + -0.5033 0 3.0000 + -0.3142 0 3.0000 + -0.2044 0 1.0000 + -0.1010 0 2.0000 + -0.0493 0 4.0000 + -0.0324 0 1.0000 + 0.0393 0 2.0000 + 0.1563 0 2.0000 + 0.2090 0 1.0000 + 0.2620 1.0000 1.0000 + 0.3302 1.0000 2.0000 + 0.3404 1.0000 1.0000 + 1.2255 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.365696 + ------------------------------------------- + +node assignments: + 11 + 12 + 11 + 11 + 8 + 3 + 11 + 12 + 11 + 11 + 12 + 10 + 11 + +growing node 21 + +sprouting new leaf with node 21 + + ---- view of leaf_data ---- + + 1.4440e+03 6.6667e-01 3.3333e-01 + 1.6570e+03 3.3333e-01 8.3333e-01 + 2.2560e+03 1.1111e-01 1.5000e+00 + 3.4450e+03 0 2.5000e+00 + + +growing node 22 + +sprouting new leaf with node 22 + + ---- view of leaf_data ---- + + 4.6000e+02 8.6667e-01 1.3333e-01 + 5.5200e+02 6.0000e-01 4.4103e-01 + 5.9700e+02 5.3333e-01 5.5214e-01 + 6.7300e+02 4.6667e-01 6.7714e-01 + 1.0800e+03 2.3333e-01 1.1771e+00 + + diff --git a/src/Coxph.cpp b/src/Coxph.cpp index f9869fb6..90b7552c 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -171,6 +171,7 @@ std::vector coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, + arma::vec& XB, bool do_scale, int ties_method, double epsilon, @@ -187,7 +188,6 @@ vec beta_current, beta_new, - XB, Risk, u, a, @@ -254,7 +254,6 @@ beta_new.zeros(n_vars); // these are filled with initial values later - XB.set_size(x_node.n_rows); Risk.set_size(x_node.n_rows); u.set_size(n_vars); a.set_size(n_vars); @@ -419,6 +418,10 @@ cholesky_solve(vmat, u); beta_new = beta_current + u; + // for fast cph, returned XB needs to be computed + if(iter_max <= 1) XB = x_node * beta_new; + + // for standard cph, iterate until convergence if(iter_max > 1 && stat_best < R_PosInf){ for(iter = 1; iter < iter_max; iter++){ diff --git a/src/Coxph.h b/src/Coxph.h index fc70c275..7d1153fb 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -61,6 +61,7 @@ std::vector coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, + arma::vec& XB, bool do_scale, int ties_method, double epsilon, diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index aa063737..1b8822e9 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,6 +11,22 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif +// coxph_fit_exported +List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); +RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x_node(x_nodeSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); + Rcpp::traits::input_parameter< int >::type method(methodSEXP); + Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); + Rcpp::traits::input_parameter< arma::uword >::type cph_iter_max(cph_iter_maxSEXP); + rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); + return rcpp_result_gen; +END_RCPP +} // node_find_cps_exported List node_find_cps_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, double leaf_min_events, double leaf_min_obs); RcppExport SEXP _aorsf_node_find_cps_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { @@ -96,6 +112,7 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { + {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, diff --git a/src/Tree.cpp b/src/Tree.cpp index 3579f1f3..c8b9a5bb 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -239,10 +239,10 @@ if(VERBOSITY > 2){ - Rcout << "current value: "<< lincomb(*it) << " ---- "; - Rcout << "next value: "<< lincomb(*(it+1)) << " ---- "; - Rcout << "N events: " << n_events << " ---- "; - Rcout << "N risk: " << n_risk << std::endl; + Rcout << "current value: "<< lincomb(*it) << " -- "; + Rcout << "next: "<< lincomb(*(it+1)) << " -- "; + Rcout << "N events: " << n_events << " -- "; + Rcout << "N risk: " << n_risk << std::endl; } // If we want to make the current value of lincomb a cut-point, we need @@ -446,26 +446,22 @@ double Tree::node_split(arma::uvec& cuts_all){ // sample a subset of cutpoints. - - uword n_cuts = split_max_cuts; uvec cuts_sampled; - // don't sample k points if k > no. of valid options. - if(split_max_cuts > cuts_all.size()){ + if(split_max_cuts >= cuts_all.size()){ - n_cuts = cuts_all.size(); // no need for random sample if there are fewer valid cut-points // than the number of cut-points we planned to sample. cuts_sampled = cuts_all; - } else { + } else { // split_max_cuts < cuts_all.size() - cuts_sampled.set_size(n_cuts); + cuts_sampled.set_size(split_max_cuts); std::uniform_int_distribution unif_dist(0, cuts_all.size() - 1); // sample without replacement - for (uword i = 0; i < cuts_all.size(); ++i) { + for (uword i = 0; i < split_max_cuts; ++i) { uword draw = unif_dist(random_number_generator); @@ -482,6 +478,8 @@ } + + // important that cut-points are ordered from low to high cuts_sampled = sort(cuts_sampled); @@ -616,7 +614,7 @@ } - leaf_data.set_size(i, 3); + leaf_data.resize(i, 3); // reset for kaplan meier loop person = 0; i = 0; @@ -788,13 +786,16 @@ print_mat(y_node, "y_node", 20, 20); } + lincomb.zeros(x_node.n_rows); + std::vector cph = coxph_fit(x_node, y_node, w_node, - lincomb_scale, // do_scale - lincomb_ties_method, // ties_method - lincomb_eps, // epsilon - lincomb_iter_max); // iter_max + lincomb, + lincomb_scale, + lincomb_ties_method, + lincomb_eps, + lincomb_iter_max); vec beta_est = cph[0]; vec beta_var = cph[1]; @@ -819,9 +820,7 @@ } - - // beta will be all 0 if something went wrong - lincomb = x_node * beta_est; + // pull linear combination data (XB) from Cox model lincomb_sort = sort_index(lincomb); cuts_all = find_cutpoints(); diff --git a/src/globals.h b/src/globals.h index dc6a2121..2b8d3517 100644 --- a/src/globals.h +++ b/src/globals.h @@ -74,7 +74,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 3; + const int VERBOSITY = 0; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 2729e856..f2ac8d8f 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -39,28 +39,33 @@ // } - // // [[Rcpp::export]] - // List coxph_fit_exported(arma::mat& x_node, - // arma::mat& y_node, - // arma::vec& w_node, - // int method, - // double cph_eps, - // arma::uword cph_iter_max){ - // - // arma::uvec cols_node=regspace(0, x_node.n_cols-1); - // - // List out = coxph_fit(x_node, - // y_node, - // w_node, - // cols_node, - // true, - // method, - // cph_eps, - // cph_iter_max); - // - // return(out); - // - // } + // [[Rcpp::export]] + List coxph_fit_exported(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + int method, + double cph_eps, + arma::uword cph_iter_max){ + + arma::uvec cols_node=regspace(0, x_node.n_cols-1); + arma::vec lincomb(x_node.n_rows, arma::fill::zeros); + + std::vector out = coxph_fit(x_node, + y_node, + w_node, + lincomb, + true, + method, + cph_eps, + cph_iter_max); + + List result; + result.push_back(out[0], "beta"); + result.push_back(out[1], "var"); + + return(result); + + } // [[Rcpp::export]] List node_find_cps_exported(arma::mat& y_node, From b579af14a89a968b684a75495204b657d36e148f Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 24 Aug 2023 20:59:24 -0400 Subject: [PATCH 042/103] drop the debug log --- orsf_output.txt | 18074 ---------------------------------------------- 1 file changed, 18074 deletions(-) delete mode 100644 orsf_output.txt diff --git a/orsf_output.txt b/orsf_output.txt deleted file mode 100644 index fc563130..00000000 --- a/orsf_output.txt +++ /dev/null @@ -1,18074 +0,0 @@ ------------- input data dimensions ------------ -N obs total: 276 -N columns total: 17 ------------------------------------------------ - -Effective sample size: 276 -Effective number of events: 111 -Number of unique rows in x: 176 - -Max number of nodes for this tree: 221 -Max number of leaves for this tree: 111 - -growing node 0 - - ---- view of x_node ---- - - 1.0000e+00 2.2000e+02 7.0500e+02 - 2.0000e+00 2.2100e+02 3.6974e+03 - 2.0000e+00 5.7000e+01 1.2730e+03 - 2.0000e+00 5.8800e+02 9.6100e+02 - 2.0000e+00 2.2500e+02 1.0560e+03 - 2.0000e+00 9.1000e+01 8.1500e+02 - 1.0000e+00 7.5000e+01 1.8600e+03 - 2.0000e+00 2.3300e+02 3.7400e+03 - 2.0000e+00 5.5800e+02 6.0648e+03 - 2.0000e+00 1.7200e+02 7.2770e+03 - 2.0000e+00 1.9900e+02 1.8190e+03 - 1.0000e+00 1.2300e+02 1.8330e+03 - 1.0000e+00 3.6000e+01 1.6260e+03 - 2.0000e+00 1.5600e+02 1.7180e+03 - 2.0000e+00 1.1000e+02 2.4600e+03 - 1.0000e+00 1.0000e+02 1.1420e+03 - 2.0000e+00 2.0900e+02 1.9750e+03 - 1.0000e+00 1.4500e+02 7.4600e+02 - 1.0000e+00 2.2700e+02 2.3100e+03 - 1.0000e+00 6.2000e+01 3.1960e+03 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 7.7000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.3300e+02 0 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.59756 -- next: -1.58577 -- N events: 0 -- N risk: 1 -current value: -1.58577 -- next: -1.53527 -- N events: 3 -- N risk: 4 -current value: -1.53527 -- next: -1.53522 -- N events: 4 -- N risk: 5 - -lower cutpoint: -1.53527 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 7.73062 ---- next value: 7.63707 ---- N events: 3 ---- N risk: 3 -current value: 7.63707 ---- next value: 5.07487 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 5.07487 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.5545 - -0.4360 - 1.7280 - 3.1856 - 4.5244 - - -testing cutpoint: -0.554471 - - ---- view of lincomb & g_node & w_node ---- - - -1.5976 0 1.0000 - -1.5858 0 3.0000 - -1.5353 0 1.0000 - -1.5352 0 1.0000 - -1.5091 0 1.0000 - -1.4746 0 3.0000 - -1.4675 0 1.0000 - -1.4408 0 3.0000 - -1.4312 0 2.0000 - -1.4002 0 1.0000 - -1.3992 0 1.0000 - -1.3932 0 1.0000 - -1.3583 0 2.0000 - -1.3466 0 1.0000 - -1.2999 0 1.0000 - -1.2835 0 1.0000 - -1.2730 0 2.0000 - -1.2596 0 2.0000 - -1.2455 0 1.0000 - -1.2326 0 1.0000 - - -logrank stat for this cutpoint: 40.6294 - ------------------------------------------- - -testing cutpoint: -0.436006 - - ---- view of lincomb & g_node & w_node ---- - - -1.5976 0 1.0000 - -1.5858 0 3.0000 - -1.5353 0 1.0000 - -1.5352 0 1.0000 - -1.5091 0 1.0000 - -1.4746 0 3.0000 - -1.4675 0 1.0000 - -1.4408 0 3.0000 - -1.4312 0 2.0000 - -1.4002 0 1.0000 - -1.3992 0 1.0000 - -1.3932 0 1.0000 - -1.3583 0 2.0000 - -1.3466 0 1.0000 - -1.2999 0 1.0000 - -1.2835 0 1.0000 - -1.2730 0 2.0000 - -1.2596 0 2.0000 - -1.2455 0 1.0000 - -1.2326 0 1.0000 - - -logrank stat for this cutpoint: 40.4868 - ------------------------------------------- - -testing cutpoint: 1.72796 - - ---- view of lincomb & g_node & w_node ---- - - -1.5976 0 1.0000 - -1.5858 0 3.0000 - -1.5353 0 1.0000 - -1.5352 0 1.0000 - -1.5091 0 1.0000 - -1.4746 0 3.0000 - -1.4675 0 1.0000 - -1.4408 0 3.0000 - -1.4312 0 2.0000 - -1.4002 0 1.0000 - -1.3992 0 1.0000 - -1.3932 0 1.0000 - -1.3583 0 2.0000 - -1.3466 0 1.0000 - -1.2999 0 1.0000 - -1.2835 0 1.0000 - -1.2730 0 2.0000 - -1.2596 0 2.0000 - -1.2455 0 1.0000 - -1.2326 0 1.0000 - - -logrank stat for this cutpoint: 155.335 - ------------------------------------------- - -testing cutpoint: 3.18565 - - ---- view of lincomb & g_node & w_node ---- - - -1.5976 0 1.0000 - -1.5858 0 3.0000 - -1.5353 0 1.0000 - -1.5352 0 1.0000 - -1.5091 0 1.0000 - -1.4746 0 3.0000 - -1.4675 0 1.0000 - -1.4408 0 3.0000 - -1.4312 0 2.0000 - -1.4002 0 1.0000 - -1.3992 0 1.0000 - -1.3932 0 1.0000 - -1.3583 0 2.0000 - -1.3466 0 1.0000 - -1.2999 0 1.0000 - -1.2835 0 1.0000 - -1.2730 0 2.0000 - -1.2596 0 2.0000 - -1.2455 0 1.0000 - -1.2326 0 1.0000 - - -logrank stat for this cutpoint: 8.87422 - ------------------------------------------- - -testing cutpoint: 4.52439 - - ---- view of lincomb & g_node & w_node ---- - - -1.5976 0 1.0000 - -1.5858 0 3.0000 - -1.5353 0 1.0000 - -1.5352 0 1.0000 - -1.5091 0 1.0000 - -1.4746 0 3.0000 - -1.4675 0 1.0000 - -1.4408 0 3.0000 - -1.4312 0 2.0000 - -1.4002 0 1.0000 - -1.3992 0 1.0000 - -1.3932 0 1.0000 - -1.3583 0 2.0000 - -1.3466 0 1.0000 - -1.2999 0 1.0000 - -1.2835 0 1.0000 - -1.2730 0 2.0000 - -1.2596 0 2.0000 - -1.2455 0 1.0000 - -1.2326 0 1.0000 - - -logrank stat for this cutpoint: 17.5604 - ------------------------------------------- - -node assignments: - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - -growing node 1 - - ---- view of x_node ---- - - 3.0000e+00 2.0000e+00 2.2900e+02 - 3.0000e+00 2.0000e+00 1.0200e+02 - 1.0000e+00 1.0000e+00 1.0100e+02 - 1.0000e+00 1.0000e+00 7.2000e+01 - 3.0000e+00 2.0000e+00 1.5500e+02 - 3.0000e+00 2.0000e+00 7.0000e+01 - 3.0000e+00 2.0000e+00 1.7200e+02 - 2.0000e+00 1.0000e+00 5.6000e+01 - 1.0000e+00 1.0000e+00 9.1000e+01 - 1.0000e+00 1.0000e+00 1.2200e+02 - 2.0000e+00 1.0000e+00 9.1000e+01 - 1.0000e+00 1.0000e+00 9.1000e+01 - 1.0000e+00 1.0000e+00 1.0300e+02 - 1.0000e+00 1.0000e+00 1.4900e+02 - 1.0000e+00 1.0000e+00 2.1000e+02 - 2.0000e+00 1.0000e+00 2.4200e+02 - 1.0000e+00 1.0000e+00 2.0500e+02 - 1.0000e+00 1.0000e+00 1.3100e+02 - 1.0000e+00 1.0000e+00 1.3900e+02 - 1.0000e+00 1.0000e+00 1.0000e+02 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.3300e+02 0 - 5.5200e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3700e+02 0 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.3900e+02 0 - - ------ finding lower bound for cut-points ----- -current value: -1.85704 -- next: -1.77944 -- N events: 0 -- N risk: 1 -current value: -1.77944 -- next: -1.77944 -- N events: 0 -- N risk: 2 -current value: -1.77944 -- next: -1.72301 -- N events: 0 -- N risk: 3 -current value: -1.72301 -- next: -1.72301 -- N events: 0 -- N risk: 5 -current value: -1.72301 -- next: -1.70185 -- N events: 0 -- N risk: 6 -current value: -1.70185 -- next: -1.70185 -- N events: 0 -- N risk: 10 -current value: -1.70185 -- next: -1.69479 -- N events: 0 -- N risk: 13 -current value: -1.69479 -- next: -1.69479 -- N events: 0 -- N risk: 14 -current value: -1.69479 -- next: -1.69479 -- N events: 0 -- N risk: 16 -current value: -1.69479 -- next: -1.68068 -- N events: 0 -- N risk: 17 -current value: -1.68068 -- next: -1.68068 -- N events: 1 -- N risk: 18 -current value: -1.68068 -- next: -1.68068 -- N events: 1 -- N risk: 20 -current value: -1.68068 -- next: -1.67363 -- N events: 1 -- N risk: 21 - -lower cutpoint: -1.68068 - - n_events, left node: 1 - - n_risk, left node: 21 - ------ finding upper bound for cut-points ----- -current value: 47.7165 ---- next value: 47.3144 ---- N events: 1 ---- N risk: 1 -current value: 47.3144 ---- next value: 47.1945 ---- N events: 2 ---- N risk: 2 -current value: 47.1945 ---- next value: 46.8206 ---- N events: 3 ---- N risk: 3 -current value: 46.8206 ---- next value: 46.5949 ---- N events: 4 ---- N risk: 4 -current value: 46.5949 ---- next value: 1.32785 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 1.32785 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -1.5678 - -1.5325 - -0.6437 - -0.5839 - -0.5449 - - -testing cutpoint: -1.56781 - - ---- view of lincomb & g_node & w_node ---- - - -1.8570 0 1.0000 - -1.7794 0 1.0000 - -1.7794 0 1.0000 - -1.7230 0 2.0000 - -1.7230 0 1.0000 - -1.7018 0 4.0000 - -1.7018 0 3.0000 - -1.6948 0 1.0000 - -1.6948 0 2.0000 - -1.6948 0 1.0000 - -1.6807 0 1.0000 - -1.6807 0 2.0000 - -1.6807 0 1.0000 - -1.6736 0 2.0000 - -1.6525 0 3.0000 - -1.6242 0 2.0000 - -1.6172 0 1.0000 - -1.6101 0 3.0000 - -1.6101 0 1.0000 - -1.6101 0 1.0000 - - -logrank stat for this cutpoint: 9.36007 - ------------------------------------------- - -testing cutpoint: -1.53254 - - ---- view of lincomb & g_node & w_node ---- - - -1.8570 0 1.0000 - -1.7794 0 1.0000 - -1.7794 0 1.0000 - -1.7230 0 2.0000 - -1.7230 0 1.0000 - -1.7018 0 4.0000 - -1.7018 0 3.0000 - -1.6948 0 1.0000 - -1.6948 0 2.0000 - -1.6948 0 1.0000 - -1.6807 0 1.0000 - -1.6807 0 2.0000 - -1.6807 0 1.0000 - -1.6736 0 2.0000 - -1.6525 0 3.0000 - -1.6242 0 2.0000 - -1.6172 0 1.0000 - -1.6101 0 3.0000 - -1.6101 0 1.0000 - -1.6101 0 1.0000 - - -logrank stat for this cutpoint: 7.97427 - ------------------------------------------- - -testing cutpoint: -0.643678 - - ---- view of lincomb & g_node & w_node ---- - - -1.8570 0 1.0000 - -1.7794 0 1.0000 - -1.7794 0 1.0000 - -1.7230 0 2.0000 - -1.7230 0 1.0000 - -1.7018 0 4.0000 - -1.7018 0 3.0000 - -1.6948 0 1.0000 - -1.6948 0 2.0000 - -1.6948 0 1.0000 - -1.6807 0 1.0000 - -1.6807 0 2.0000 - -1.6807 0 1.0000 - -1.6736 0 2.0000 - -1.6525 0 3.0000 - -1.6242 0 2.0000 - -1.6172 0 1.0000 - -1.6101 0 3.0000 - -1.6101 0 1.0000 - -1.6101 0 1.0000 - - -logrank stat for this cutpoint: 26.531 - ------------------------------------------- - -testing cutpoint: -0.583909 - - ---- view of lincomb & g_node & w_node ---- - - -1.8570 0 1.0000 - -1.7794 0 1.0000 - -1.7794 0 1.0000 - -1.7230 0 2.0000 - -1.7230 0 1.0000 - -1.7018 0 4.0000 - -1.7018 0 3.0000 - -1.6948 0 1.0000 - -1.6948 0 2.0000 - -1.6948 0 1.0000 - -1.6807 0 1.0000 - -1.6807 0 2.0000 - -1.6807 0 1.0000 - -1.6736 0 2.0000 - -1.6525 0 3.0000 - -1.6242 0 2.0000 - -1.6172 0 1.0000 - -1.6101 0 3.0000 - -1.6101 0 1.0000 - -1.6101 0 1.0000 - - -logrank stat for this cutpoint: 36.9854 - ------------------------------------------- - -testing cutpoint: -0.544915 - - ---- view of lincomb & g_node & w_node ---- - - -1.8570 0 1.0000 - -1.7794 0 1.0000 - -1.7794 0 1.0000 - -1.7230 0 2.0000 - -1.7230 0 1.0000 - -1.7018 0 4.0000 - -1.7018 0 3.0000 - -1.6948 0 1.0000 - -1.6948 0 2.0000 - -1.6948 0 1.0000 - -1.6807 0 1.0000 - -1.6807 0 2.0000 - -1.6807 0 1.0000 - -1.6736 0 2.0000 - -1.6525 0 3.0000 - -1.6242 0 2.0000 - -1.6172 0 1.0000 - -1.6101 0 3.0000 - -1.6101 0 1.0000 - -1.6101 0 1.0000 - - -logrank stat for this cutpoint: 36.163 - ------------------------------------------- - -node assignments: - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 2 - 2 - 3 - 3 - 3 - 3 - 3 - 4 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 2 - 2 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 4 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 4 - 3 - 3 - 3 - 2 - 3 - 3 - 2 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 4 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 4 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 2 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 2 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 2 - 3 - 4 - -growing node 2 - - ---- view of x_node ---- - - 3.6974e+03 2.0000e+00 5.4439e+01 - 9.6100e+02 2.0000e+00 5.3930e+01 - 1.0560e+03 1.0000e+00 6.9377e+01 - 3.7400e+03 2.0000e+00 5.2693e+01 - 6.0648e+03 2.0000e+00 5.5967e+01 - 7.2770e+03 2.0000e+00 4.1385e+01 - 1.8190e+03 2.0000e+00 4.9826e+01 - 1.9750e+03 2.0000e+00 4.4947e+01 - 2.3100e+03 2.0000e+00 4.6264e+01 - 1.7940e+03 2.0000e+00 4.6790e+01 - 2.8700e+03 2.0000e+00 3.5792e+01 - 1.6640e+03 2.0000e+00 6.1804e+01 - 2.1840e+03 1.0000e+00 5.6772e+01 - 1.1190e+03 2.0000e+00 4.1374e+01 - 2.4240e+03 2.0000e+00 5.1250e+01 - 2.0650e+03 2.0000e+00 4.4227e+01 - 3.8360e+03 2.0000e+00 3.0864e+01 - 5.4872e+03 2.0000e+00 3.9198e+01 - 9.8300e+02 2.0000e+00 7.8439e+01 - 7.6600e+02 1.0000e+00 3.5151e+01 - - - ---- view of y_node ---- - - 7.7000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 8.3700e+02 0 - 1.2970e+03 1.0000e+00 - 1.4130e+03 1.0000e+00 - 1.4270e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.7650e+03 0 - 2.0330e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.955205 -- next: -0.593793 -- N events: 0 -- N risk: 2 -current value: -0.593793 -- next: -0.419104 -- N events: 0 -- N risk: 3 -current value: -0.419104 -- next: -0.38141 -- N events: 1 -- N risk: 4 -current value: -0.38141 -- next: -0.313098 -- N events: 3 -- N risk: 6 - -lower cutpoint: -0.38141 - - n_events, left node: 3 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 0.863482 ---- next value: 0.644185 ---- N events: 2 ---- N risk: 2 -current value: 0.644185 ---- next value: 0.555569 ---- N events: 4 ---- N risk: 4 -current value: 0.555569 ---- next value: 0.339184 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 0.339184 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.3814 - -0.3131 - -0.3083 - -0.1848 - 0.2923 - - -testing cutpoint: -0.38141 - - ---- view of lincomb & g_node & w_node ---- - - -0.9552 0 2.0000 - -0.5938 0 1.0000 - -0.4191 0 1.0000 - -0.3814 0 2.0000 - -0.3131 1.0000 1.0000 - -0.3083 1.0000 1.0000 - -0.2862 1.0000 1.0000 - -0.2269 1.0000 3.0000 - -0.1992 1.0000 1.0000 - -0.1848 1.0000 2.0000 - -0.0180 1.0000 1.0000 - 0.0162 1.0000 2.0000 - 0.1643 1.0000 1.0000 - 0.1896 1.0000 3.0000 - 0.2150 1.0000 1.0000 - 0.2923 1.0000 1.0000 - 0.3392 1.0000 3.0000 - 0.5556 1.0000 1.0000 - 0.6442 1.0000 2.0000 - 0.8635 1.0000 2.0000 - - -logrank stat for this cutpoint: 8.4874 - ------------------------------------------- - -testing cutpoint: -0.313098 - - ---- view of lincomb & g_node & w_node ---- - - -0.9552 0 2.0000 - -0.5938 0 1.0000 - -0.4191 0 1.0000 - -0.3814 0 2.0000 - -0.3131 0 1.0000 - -0.3083 1.0000 1.0000 - -0.2862 1.0000 1.0000 - -0.2269 1.0000 3.0000 - -0.1992 1.0000 1.0000 - -0.1848 1.0000 2.0000 - -0.0180 1.0000 1.0000 - 0.0162 1.0000 2.0000 - 0.1643 1.0000 1.0000 - 0.1896 1.0000 3.0000 - 0.2150 1.0000 1.0000 - 0.2923 1.0000 1.0000 - 0.3392 1.0000 3.0000 - 0.5556 1.0000 1.0000 - 0.6442 1.0000 2.0000 - 0.8635 1.0000 2.0000 - - -logrank stat for this cutpoint: 9.26812 - ------------------------------------------- - -testing cutpoint: -0.308327 - - ---- view of lincomb & g_node & w_node ---- - - -0.9552 0 2.0000 - -0.5938 0 1.0000 - -0.4191 0 1.0000 - -0.3814 0 2.0000 - -0.3131 0 1.0000 - -0.3083 0 1.0000 - -0.2862 1.0000 1.0000 - -0.2269 1.0000 3.0000 - -0.1992 1.0000 1.0000 - -0.1848 1.0000 2.0000 - -0.0180 1.0000 1.0000 - 0.0162 1.0000 2.0000 - 0.1643 1.0000 1.0000 - 0.1896 1.0000 3.0000 - 0.2150 1.0000 1.0000 - 0.2923 1.0000 1.0000 - 0.3392 1.0000 3.0000 - 0.5556 1.0000 1.0000 - 0.6442 1.0000 2.0000 - 0.8635 1.0000 2.0000 - - -logrank stat for this cutpoint: 8.25082 - ------------------------------------------- - -testing cutpoint: -0.184792 - - ---- view of lincomb & g_node & w_node ---- - - -0.9552 0 2.0000 - -0.5938 0 1.0000 - -0.4191 0 1.0000 - -0.3814 0 2.0000 - -0.3131 0 1.0000 - -0.3083 0 1.0000 - -0.2862 0 1.0000 - -0.2269 0 3.0000 - -0.1992 0 1.0000 - -0.1848 0 2.0000 - -0.0180 1.0000 1.0000 - 0.0162 1.0000 2.0000 - 0.1643 1.0000 1.0000 - 0.1896 1.0000 3.0000 - 0.2150 1.0000 1.0000 - 0.2923 1.0000 1.0000 - 0.3392 1.0000 3.0000 - 0.5556 1.0000 1.0000 - 0.6442 1.0000 2.0000 - 0.8635 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.01565 - ------------------------------------------- - -testing cutpoint: 0.292292 - - ---- view of lincomb & g_node & w_node ---- - - -0.9552 0 2.0000 - -0.5938 0 1.0000 - -0.4191 0 1.0000 - -0.3814 0 2.0000 - -0.3131 0 1.0000 - -0.3083 0 1.0000 - -0.2862 0 1.0000 - -0.2269 0 3.0000 - -0.1992 0 1.0000 - -0.1848 0 2.0000 - -0.0180 0 1.0000 - 0.0162 0 2.0000 - 0.1643 0 1.0000 - 0.1896 0 3.0000 - 0.2150 0 1.0000 - 0.2923 0 1.0000 - 0.3392 1.0000 3.0000 - 0.5556 1.0000 1.0000 - 0.6442 1.0000 2.0000 - 0.8635 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.16019 - ------------------------------------------- - -node assignments: - 3 - 4 - 6 - 6 - 3 - 6 - 6 - 6 - 6 - 3 - 3 - 4 - 4 - 4 - 3 - 6 - 4 - 6 - 3 - 6 - -growing node 3 - - ---- view of x_node ---- - - 1.0000e+00 1.2000e+01 1.0100e+02 - 1.0000e+00 1.0700e+01 7.2000e+01 - 2.0000e+00 1.1900e+01 5.6000e+01 - 1.0000e+00 1.1300e+01 9.1000e+01 - 1.0000e+00 1.2000e+01 1.2200e+02 - 2.0000e+00 1.1400e+01 9.1000e+01 - 1.0000e+00 1.0000e+01 9.1000e+01 - 1.0000e+00 1.1000e+01 1.0300e+02 - 1.0000e+00 1.0800e+01 1.4900e+02 - 1.0000e+00 1.0800e+01 2.1000e+02 - 1.0000e+00 1.1500e+01 2.0500e+02 - 1.0000e+00 1.0000e+01 1.3100e+02 - 1.0000e+00 1.0000e+01 1.3900e+02 - 1.0000e+00 1.0200e+01 1.0000e+02 - 1.0000e+00 1.0800e+01 8.2000e+01 - 2.0000e+00 1.2000e+01 5.5000e+01 - 1.0000e+00 9.6000e+00 1.1300e+02 - 1.0000e+00 1.0700e+01 1.5700e+02 - 1.0000e+00 1.1000e+01 1.4900e+02 - 1.0000e+00 1.0000e+01 1.4600e+02 - - - ---- view of y_node ---- - - 1.8600e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.3300e+02 0 - 5.5200e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3700e+02 0 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.3900e+02 0 - 9.9400e+02 0 - 1.0120e+03 1.0000e+00 - 1.0300e+03 0 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.0840e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.70177 -- next: -1.27412 -- N events: 0 -- N risk: 1 -current value: -1.27412 -- next: -1.23375 -- N events: 0 -- N risk: 3 -current value: -1.23375 -- next: -1.10714 -- N events: 0 -- N risk: 7 -current value: -1.10714 -- next: -1.07774 -- N events: 0 -- N risk: 8 -current value: -1.07774 -- next: -0.988876 -- N events: 0 -- N risk: 9 -current value: -0.988876 -- next: -0.916466 -- N events: 0 -- N risk: 10 -current value: -0.916466 -- next: -0.911199 -- N events: 0 -- N risk: 11 -current value: -0.911199 -- next: -0.876093 -- N events: 0 -- N risk: 12 -current value: -0.876093 -- next: -0.79798 -- N events: 3 -- N risk: 15 - -lower cutpoint: -0.876093 - - n_events, left node: 3 - - n_risk, left node: 15 - ------ finding upper bound for cut-points ----- -current value: 2.09574 ---- next value: 1.75893 ---- N events: 1 ---- N risk: 1 -current value: 1.75893 ---- next value: 1.37909 ---- N events: 2 ---- N risk: 2 -current value: 1.37909 ---- next value: 1.30429 ---- N events: 2 ---- N risk: 3 -current value: 1.30429 ---- next value: 1.24 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 1.24 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.6720 - -0.2521 - 0.0270 - 0.2239 - 0.2991 - - -testing cutpoint: -0.67203 - - ---- view of lincomb & g_node & w_node ---- - - -1.7018 0 1.0000 - -1.2741 0 2.0000 - -1.2337 0 4.0000 - -1.1071 0 1.0000 - -1.0777 0 1.0000 - -0.9889 0 1.0000 - -0.9165 0 1.0000 - -0.9112 0 1.0000 - -0.8761 0 3.0000 - -0.7980 0 3.0000 - -0.7657 0 1.0000 - -0.7552 0 2.0000 - -0.7541 0 4.0000 - -0.7069 0 1.0000 - -0.6744 0 1.0000 - -0.6720 0 1.0000 - -0.6665 1.0000 1.0000 - -0.6611 1.0000 1.0000 - -0.6128 1.0000 2.0000 - -0.6102 1.0000 3.0000 - - -logrank stat for this cutpoint: 0.491217 - ------------------------------------------- - -testing cutpoint: -0.252061 - - ---- view of lincomb & g_node & w_node ---- - - -1.7018 0 1.0000 - -1.2741 0 2.0000 - -1.2337 0 4.0000 - -1.1071 0 1.0000 - -1.0777 0 1.0000 - -0.9889 0 1.0000 - -0.9165 0 1.0000 - -0.9112 0 1.0000 - -0.8761 0 3.0000 - -0.7980 0 3.0000 - -0.7657 0 1.0000 - -0.7552 0 2.0000 - -0.7541 0 4.0000 - -0.7069 0 1.0000 - -0.6744 0 1.0000 - -0.6720 0 1.0000 - -0.6665 0 1.0000 - -0.6611 0 1.0000 - -0.6128 0 2.0000 - -0.6102 0 3.0000 - - -logrank stat for this cutpoint: 1.15624 - ------------------------------------------- - -testing cutpoint: 0.0270451 - - ---- view of lincomb & g_node & w_node ---- - - -1.7018 0 1.0000 - -1.2741 0 2.0000 - -1.2337 0 4.0000 - -1.1071 0 1.0000 - -1.0777 0 1.0000 - -0.9889 0 1.0000 - -0.9165 0 1.0000 - -0.9112 0 1.0000 - -0.8761 0 3.0000 - -0.7980 0 3.0000 - -0.7657 0 1.0000 - -0.7552 0 2.0000 - -0.7541 0 4.0000 - -0.7069 0 1.0000 - -0.6744 0 1.0000 - -0.6720 0 1.0000 - -0.6665 0 1.0000 - -0.6611 0 1.0000 - -0.6128 0 2.0000 - -0.6102 0 3.0000 - - -logrank stat for this cutpoint: 8.86848 - ------------------------------------------- - -testing cutpoint: 0.223862 - - ---- view of lincomb & g_node & w_node ---- - - -1.7018 0 1.0000 - -1.2741 0 2.0000 - -1.2337 0 4.0000 - -1.1071 0 1.0000 - -1.0777 0 1.0000 - -0.9889 0 1.0000 - -0.9165 0 1.0000 - -0.9112 0 1.0000 - -0.8761 0 3.0000 - -0.7980 0 3.0000 - -0.7657 0 1.0000 - -0.7552 0 2.0000 - -0.7541 0 4.0000 - -0.7069 0 1.0000 - -0.6744 0 1.0000 - -0.6720 0 1.0000 - -0.6665 0 1.0000 - -0.6611 0 1.0000 - -0.6128 0 2.0000 - -0.6102 0 3.0000 - - -logrank stat for this cutpoint: 16.0897 - ------------------------------------------- - -testing cutpoint: 0.299124 - - ---- view of lincomb & g_node & w_node ---- - - -1.7018 0 1.0000 - -1.2741 0 2.0000 - -1.2337 0 4.0000 - -1.1071 0 1.0000 - -1.0777 0 1.0000 - -0.9889 0 1.0000 - -0.9165 0 1.0000 - -0.9112 0 1.0000 - -0.8761 0 3.0000 - -0.7980 0 3.0000 - -0.7657 0 1.0000 - -0.7552 0 2.0000 - -0.7541 0 4.0000 - -0.7069 0 1.0000 - -0.6744 0 1.0000 - -0.6720 0 1.0000 - -0.6665 0 1.0000 - -0.6611 0 1.0000 - -0.6128 0 2.0000 - -0.6102 0 3.0000 - - -logrank stat for this cutpoint: 13.633 - ------------------------------------------- - -node assignments: - 7 - 7 - 7 - 8 - 8 - 7 - 8 - 7 - 7 - 8 - 7 - 7 - 7 - 7 - 4 - 7 - 6 - 7 - 7 - 6 - 7 - 7 - 7 - 7 - 7 - 4 - 6 - 7 - 4 - 7 - 4 - 8 - 4 - 7 - 8 - 4 - 7 - 5 - 6 - 4 - 7 - 7 - 7 - 7 - 7 - 4 - 8 - 8 - 7 - 7 - 4 - 7 - 7 - 8 - 6 - 7 - 8 - 7 - 7 - 5 - 7 - 7 - 6 - 4 - 5 - 8 - 7 - 6 - 6 - 7 - 7 - 5 - 4 - 7 - 7 - 7 - 7 - 8 - 8 - 5 - 7 - 7 - 8 - 8 - 8 - 7 - 8 - 4 - 8 - 7 - 7 - 7 - 8 - 8 - 7 - 8 - 7 - 7 - 6 - 8 - 8 - 8 - 6 - 4 - 7 - 8 - 7 - 7 - 7 - 8 - 7 - 7 - 7 - 7 - 8 - 7 - 7 - 6 - 8 - 7 - 4 - 7 - 8 - 6 - 7 - 7 - 7 - 4 - 7 - 7 - 7 - 6 - 8 - 6 - 7 - 6 - 7 - -growing node 4 - - ---- view of x_node ---- - - 3.0000e+00 1.0000e+00 3.3800e+02 - 3.0000e+00 2.0000e+00 1.1935e+02 - 3.0000e+00 2.0000e+00 1.3400e+02 - 3.0000e+00 1.0000e+00 8.6800e+01 - 3.0000e+00 2.0000e+00 1.3795e+02 - 2.0000e+00 2.0000e+00 8.6000e+01 - 2.0000e+00 2.0000e+00 1.9840e+02 - 2.0000e+00 2.0000e+00 2.1545e+02 - 3.0000e+00 2.0000e+00 1.6300e+02 - 1.0000e+00 1.0000e+00 7.9980e+01 - 1.0000e+00 1.0000e+00 7.0000e+01 - 1.0000e+00 1.0000e+00 2.7280e+02 - 1.0000e+00 2.0000e+00 7.9050e+01 - 1.0000e+00 2.0000e+00 5.2700e+01 - 1.0000e+00 2.0000e+00 9.5460e+01 - 2.0000e+00 1.0000e+00 1.0695e+02 - 3.0000e+00 2.0000e+00 1.1935e+02 - 1.0000e+00 1.0000e+00 1.1780e+02 - 1.0000e+00 2.0000e+00 2.2188e+02 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.1700e+03 1.0000e+00 - 1.3200e+03 0 - 1.3600e+03 1.0000e+00 - 1.6140e+03 0 - 1.6900e+03 1.0000e+00 - 1.7860e+03 1.0000e+00 - 1.7900e+03 0 - 1.8470e+03 1.0000e+00 - 3.3360e+03 0 - 3.4280e+03 1.0000e+00 - 3.5740e+03 1.0000e+00 - 4.0790e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.23739 -- next: -1.14712 -- N events: 0 -- N risk: 1 -current value: -1.14712 -- next: -1.0909 -- N events: 2 -- N risk: 3 -current value: -1.0909 -- next: -0.928327 -- N events: 3 -- N risk: 4 -current value: -0.928327 -- next: -0.894138 -- N events: 3 -- N risk: 6 - -lower cutpoint: -0.928327 - - n_events, left node: 3 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.90516 ---- next value: 1.05585 ---- N events: 1 ---- N risk: 1 -current value: 1.05585 ---- next value: 1.04461 ---- N events: 1 ---- N risk: 2 -current value: 1.04461 ---- next value: 0.970037 ---- N events: 3 ---- N risk: 4 -current value: 0.970037 ---- next value: 0.956505 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 0.956505 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.7646 - -0.1656 - 0.2194 - 0.2778 - 0.9565 - - -testing cutpoint: -0.764574 - - ---- view of lincomb & g_node & w_node ---- - - -1.2374 0 1.0000 - -1.1471 0 2.0000 - -1.0909 0 1.0000 - -0.9283 0 2.0000 - -0.8941 0 1.0000 - -0.7646 0 1.0000 - -0.6578 1.0000 1.0000 - -0.2336 1.0000 3.0000 - -0.1656 1.0000 1.0000 - 0.1559 1.0000 1.0000 - 0.2194 1.0000 2.0000 - 0.2778 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9565 1.0000 1.0000 - 0.9700 1.0000 1.0000 - 1.0446 1.0000 2.0000 - 1.0559 1.0000 1.0000 - 1.9052 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.64509 - ------------------------------------------- - -testing cutpoint: -0.165622 - - ---- view of lincomb & g_node & w_node ---- - - -1.2374 0 1.0000 - -1.1471 0 2.0000 - -1.0909 0 1.0000 - -0.9283 0 2.0000 - -0.8941 0 1.0000 - -0.7646 0 1.0000 - -0.6578 0 1.0000 - -0.2336 0 3.0000 - -0.1656 0 1.0000 - 0.1559 1.0000 1.0000 - 0.2194 1.0000 2.0000 - 0.2778 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9565 1.0000 1.0000 - 0.9700 1.0000 1.0000 - 1.0446 1.0000 2.0000 - 1.0559 1.0000 1.0000 - 1.9052 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.26925 - ------------------------------------------- - -testing cutpoint: 0.219437 - - ---- view of lincomb & g_node & w_node ---- - - -1.2374 0 1.0000 - -1.1471 0 2.0000 - -1.0909 0 1.0000 - -0.9283 0 2.0000 - -0.8941 0 1.0000 - -0.7646 0 1.0000 - -0.6578 0 1.0000 - -0.2336 0 3.0000 - -0.1656 0 1.0000 - 0.1559 0 1.0000 - 0.2194 0 2.0000 - 0.2778 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9565 1.0000 1.0000 - 0.9700 1.0000 1.0000 - 1.0446 1.0000 2.0000 - 1.0559 1.0000 1.0000 - 1.9052 1.0000 1.0000 - - -logrank stat for this cutpoint: 7.66785 - ------------------------------------------- - -testing cutpoint: 0.277847 - - ---- view of lincomb & g_node & w_node ---- - - -1.2374 0 1.0000 - -1.1471 0 2.0000 - -1.0909 0 1.0000 - -0.9283 0 2.0000 - -0.8941 0 1.0000 - -0.7646 0 1.0000 - -0.6578 0 1.0000 - -0.2336 0 3.0000 - -0.1656 0 1.0000 - 0.1559 0 1.0000 - 0.2194 0 2.0000 - 0.2778 0 1.0000 - 0.9063 1.0000 1.0000 - 0.9063 1.0000 1.0000 - 0.9565 1.0000 1.0000 - 0.9700 1.0000 1.0000 - 1.0446 1.0000 2.0000 - 1.0559 1.0000 1.0000 - 1.9052 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.75099 - ------------------------------------------- - -testing cutpoint: 0.956505 - - ---- view of lincomb & g_node & w_node ---- - - -1.2374 0 1.0000 - -1.1471 0 2.0000 - -1.0909 0 1.0000 - -0.9283 0 2.0000 - -0.8941 0 1.0000 - -0.7646 0 1.0000 - -0.6578 0 1.0000 - -0.2336 0 3.0000 - -0.1656 0 1.0000 - 0.1559 0 1.0000 - 0.2194 0 2.0000 - 0.2778 0 1.0000 - 0.9063 0 1.0000 - 0.9063 0 1.0000 - 0.9565 0 1.0000 - 0.9700 1.0000 1.0000 - 1.0446 1.0000 2.0000 - 1.0559 1.0000 1.0000 - 1.9052 1.0000 1.0000 - - -logrank stat for this cutpoint: 7.49696 - ------------------------------------------- - -node assignments: - 10 - 10 - 7 - 6 - 6 - 8 - 6 - 10 - 8 - 8 - 7 - 6 - 6 - 6 - 10 - 6 - 6 - 6 - 10 - -growing node 5 - -sprouting new leaf with node 5 - - ---- view of leaf_data ---- - - 7.3300e+02 8.5714e-01 1.4286e-01 - 1.4130e+03 6.8571e-01 3.4286e-01 - 1.4270e+03 3.4286e-01 8.4286e-01 - - -growing node 6 - - ---- view of x_node ---- - - 2.0000e+00 8.0000e+01 4.0000e+00 - 2.0000e+00 2.8300e+02 4.0000e+00 - 2.0000e+00 1.0800e+02 3.0000e+00 - 2.0000e+00 3.9900e+02 4.0000e+00 - 2.0000e+00 2.1400e+02 4.0000e+00 - 2.0000e+00 1.2400e+02 4.0000e+00 - 2.0000e+00 1.3200e+02 3.0000e+00 - 2.0000e+00 1.4400e+02 4.0000e+00 - 1.0000e+00 2.4000e+02 3.0000e+00 - 2.0000e+00 3.1900e+02 4.0000e+00 - 2.0000e+00 1.4000e+02 4.0000e+00 - 1.0000e+00 3.8200e+02 4.0000e+00 - 1.0000e+00 2.5200e+02 3.0000e+00 - 2.0000e+00 2.5400e+02 4.0000e+00 - 2.0000e+00 9.7000e+01 4.0000e+00 - - - ---- view of y_node ---- - - 7.7000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 1.2970e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.7650e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.780735 -- next: -0.473536 -- N events: 2 -- N risk: 2 -current value: -0.473536 -- next: -0.456068 -- N events: 3 -- N risk: 3 -current value: -0.456068 -- next: -0.144167 -- N events: 4 -- N risk: 4 -current value: -0.144167 -- next: -0.119422 -- N events: 7 -- N risk: 7 - -lower cutpoint: -0.144167 - - n_events, left node: 7 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 0.445423 ---- next value: 0.410488 ---- N events: 2 ---- N risk: 2 -current value: 0.410488 ---- next value: 0.320177 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.320177 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.1442 - -0.1194 - -0.0568 - 0.1091 - 0.1513 - - -testing cutpoint: -0.144167 - - ---- view of lincomb & g_node & w_node ---- - - -0.7807 0 2.0000 - -0.4735 0 1.0000 - -0.4561 0 1.0000 - -0.1442 0 3.0000 - -0.1194 1.0000 1.0000 - -0.0801 1.0000 2.0000 - -0.0568 1.0000 1.0000 - -0.0510 1.0000 1.0000 - 0.0509 1.0000 2.0000 - 0.1091 1.0000 1.0000 - 0.1513 1.0000 3.0000 - 0.2037 1.0000 1.0000 - 0.3202 1.0000 1.0000 - 0.4105 1.0000 3.0000 - 0.4454 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.0696515 - ------------------------------------------- - -testing cutpoint: -0.119422 - - ---- view of lincomb & g_node & w_node ---- - - -0.7807 0 2.0000 - -0.4735 0 1.0000 - -0.4561 0 1.0000 - -0.1442 0 3.0000 - -0.1194 0 1.0000 - -0.0801 1.0000 2.0000 - -0.0568 1.0000 1.0000 - -0.0510 1.0000 1.0000 - 0.0509 1.0000 2.0000 - 0.1091 1.0000 1.0000 - 0.1513 1.0000 3.0000 - 0.2037 1.0000 1.0000 - 0.3202 1.0000 1.0000 - 0.4105 1.0000 3.0000 - 0.4454 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.25178 - ------------------------------------------- - -testing cutpoint: -0.0568298 - - ---- view of lincomb & g_node & w_node ---- - - -0.7807 0 2.0000 - -0.4735 0 1.0000 - -0.4561 0 1.0000 - -0.1442 0 3.0000 - -0.1194 0 1.0000 - -0.0801 0 2.0000 - -0.0568 0 1.0000 - -0.0510 1.0000 1.0000 - 0.0509 1.0000 2.0000 - 0.1091 1.0000 1.0000 - 0.1513 1.0000 3.0000 - 0.2037 1.0000 1.0000 - 0.3202 1.0000 1.0000 - 0.4105 1.0000 3.0000 - 0.4454 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.16359 - ------------------------------------------- - -testing cutpoint: 0.109111 - - ---- view of lincomb & g_node & w_node ---- - - -0.7807 0 2.0000 - -0.4735 0 1.0000 - -0.4561 0 1.0000 - -0.1442 0 3.0000 - -0.1194 0 1.0000 - -0.0801 0 2.0000 - -0.0568 0 1.0000 - -0.0510 0 1.0000 - 0.0509 0 2.0000 - 0.1091 0 1.0000 - 0.1513 1.0000 3.0000 - 0.2037 1.0000 1.0000 - 0.3202 1.0000 1.0000 - 0.4105 1.0000 3.0000 - 0.4454 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.34551 - ------------------------------------------- - -testing cutpoint: 0.151325 - - ---- view of lincomb & g_node & w_node ---- - - -0.7807 0 2.0000 - -0.4735 0 1.0000 - -0.4561 0 1.0000 - -0.1442 0 3.0000 - -0.1194 0 1.0000 - -0.0801 0 2.0000 - -0.0568 0 1.0000 - -0.0510 0 1.0000 - 0.0509 0 2.0000 - 0.1091 0 1.0000 - 0.1513 0 3.0000 - 0.2037 1.0000 1.0000 - 0.3202 1.0000 1.0000 - 0.4105 1.0000 3.0000 - 0.4454 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.30649 - ------------------------------------------- - -node assignments: - 10 - 11 - 10 - 10 - 7 - 8 - 12 - 12 - 12 - 10 - 11 - 11 - 12 - 10 - 7 - -growing node 7 - - ---- view of x_node ---- - - 3.4500e+02 7.5000e+01 3.0000e+00 - 3.2500e+02 1.1000e+02 4.0000e+00 - 4.2000e+02 6.2000e+01 3.0000e+00 - 2.2700e+02 1.2100e+02 3.0000e+00 - 3.9600e+02 5.8000e+01 4.0000e+00 - 4.6800e+02 1.3900e+02 4.0000e+00 - 4.3400e+02 3.9000e+01 2.0000e+00 - 2.6000e+02 4.1000e+01 2.0000e+00 - 4.1200e+02 1.0300e+02 4.0000e+00 - 3.4800e+02 1.2100e+02 4.0000e+00 - 2.7300e+02 5.2000e+01 2.0000e+00 - 2.4600e+02 2.4000e+01 2.0000e+00 - 5.1800e+02 1.1500e+02 4.0000e+00 - 4.0800e+02 6.7000e+01 3.0000e+00 - 2.1900e+02 2.2000e+01 3.0000e+00 - 3.7300e+02 1.5500e+02 4.0000e+00 - 3.3500e+02 4.3000e+01 2.0000e+00 - 3.9300e+02 5.0000e+01 4.0000e+00 - 5.7200e+02 7.7000e+01 4.0000e+00 - 3.7400e+02 1.4300e+02 2.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3700e+02 0 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.3900e+02 0 - 9.9400e+02 0 - 1.0300e+03 0 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.1650e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2300e+03 0 - 1.2340e+03 0 - 1.2710e+03 0 - 1.2950e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -2.75173 -- next: -2.32271 -- N events: 0 -- N risk: 1 -current value: -2.32271 -- next: -2.06012 -- N events: 0 -- N risk: 3 -current value: -2.06012 -- next: -1.92567 -- N events: 1 -- N risk: 4 -current value: -1.92567 -- next: -1.7402 -- N events: 1 -- N risk: 5 - -lower cutpoint: -1.92567 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 4.65531 ---- next value: 2.38172 ---- N events: 1 ---- N risk: 1 -current value: 2.38172 ---- next value: 2.32736 ---- N events: 1 ---- N risk: 2 -current value: 2.32736 ---- next value: 2.20229 ---- N events: 2 ---- N risk: 3 -current value: 2.20229 ---- next value: 1.76686 ---- N events: 3 ---- N risk: 4 -current value: 1.76686 ---- next value: 1.64203 ---- N events: 3 ---- N risk: 6 - -upper cutpoint: 1.64203 - - n_events, right node: 3 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.2290 - 0.3018 - 0.6666 - 0.9422 - 1.0865 - - -testing cutpoint: -0.229001 - - ---- view of lincomb & g_node & w_node ---- - - -2.7517 0 1.0000 - -2.3227 0 2.0000 - -2.0601 0 1.0000 - -1.9257 0 1.0000 - -1.7402 0 1.0000 - -1.4944 0 1.0000 - -1.4372 0 1.0000 - -1.3666 0 2.0000 - -1.3139 0 1.0000 - -1.1931 0 2.0000 - -1.1204 0 1.0000 - -1.0993 0 2.0000 - -1.0537 0 1.0000 - -1.0236 0 2.0000 - -0.9727 0 2.0000 - -0.9102 0 2.0000 - -0.8128 0 1.0000 - -0.8028 0 1.0000 - -0.7868 0 1.0000 - -0.7413 0 3.0000 - - -logrank stat for this cutpoint: 8.95259 - ------------------------------------------- - -testing cutpoint: 0.301798 - - ---- view of lincomb & g_node & w_node ---- - - -2.7517 0 1.0000 - -2.3227 0 2.0000 - -2.0601 0 1.0000 - -1.9257 0 1.0000 - -1.7402 0 1.0000 - -1.4944 0 1.0000 - -1.4372 0 1.0000 - -1.3666 0 2.0000 - -1.3139 0 1.0000 - -1.1931 0 2.0000 - -1.1204 0 1.0000 - -1.0993 0 2.0000 - -1.0537 0 1.0000 - -1.0236 0 2.0000 - -0.9727 0 2.0000 - -0.9102 0 2.0000 - -0.8128 0 1.0000 - -0.8028 0 1.0000 - -0.7868 0 1.0000 - -0.7413 0 3.0000 - - -logrank stat for this cutpoint: 27.8785 - ------------------------------------------- - -testing cutpoint: 0.66657 - - ---- view of lincomb & g_node & w_node ---- - - -2.7517 0 1.0000 - -2.3227 0 2.0000 - -2.0601 0 1.0000 - -1.9257 0 1.0000 - -1.7402 0 1.0000 - -1.4944 0 1.0000 - -1.4372 0 1.0000 - -1.3666 0 2.0000 - -1.3139 0 1.0000 - -1.1931 0 2.0000 - -1.1204 0 1.0000 - -1.0993 0 2.0000 - -1.0537 0 1.0000 - -1.0236 0 2.0000 - -0.9727 0 2.0000 - -0.9102 0 2.0000 - -0.8128 0 1.0000 - -0.8028 0 1.0000 - -0.7868 0 1.0000 - -0.7413 0 3.0000 - - -logrank stat for this cutpoint: 6.40745 - ------------------------------------------- - -testing cutpoint: 0.942172 - - ---- view of lincomb & g_node & w_node ---- - - -2.7517 0 1.0000 - -2.3227 0 2.0000 - -2.0601 0 1.0000 - -1.9257 0 1.0000 - -1.7402 0 1.0000 - -1.4944 0 1.0000 - -1.4372 0 1.0000 - -1.3666 0 2.0000 - -1.3139 0 1.0000 - -1.1931 0 2.0000 - -1.1204 0 1.0000 - -1.0993 0 2.0000 - -1.0537 0 1.0000 - -1.0236 0 2.0000 - -0.9727 0 2.0000 - -0.9102 0 2.0000 - -0.8128 0 1.0000 - -0.8028 0 1.0000 - -0.7868 0 1.0000 - -0.7413 0 3.0000 - - -logrank stat for this cutpoint: 17.512 - ------------------------------------------- - -testing cutpoint: 1.08647 - - ---- view of lincomb & g_node & w_node ---- - - -2.7517 0 1.0000 - -2.3227 0 2.0000 - -2.0601 0 1.0000 - -1.9257 0 1.0000 - -1.7402 0 1.0000 - -1.4944 0 1.0000 - -1.4372 0 1.0000 - -1.3666 0 2.0000 - -1.3139 0 1.0000 - -1.1931 0 2.0000 - -1.1204 0 1.0000 - -1.0993 0 2.0000 - -1.0537 0 1.0000 - -1.0236 0 2.0000 - -0.9727 0 2.0000 - -0.9102 0 2.0000 - -0.8128 0 1.0000 - -0.8028 0 1.0000 - -0.7868 0 1.0000 - -0.7413 0 3.0000 - - -logrank stat for this cutpoint: 22.3859 - ------------------------------------------- - -node assignments: - 13 - 14 - 14 - 13 - 12 - 13 - 8 - 14 - 10 - 8 - 12 - 13 - 9 - 14 - 12 - 13 - 14 - 14 - 13 - 14 - 14 - 11 - 10 - 13 - 8 - 9 - 13 - 14 - 10 - 14 - 9 - 8 - 8 - 14 - 5 - 14 - 13 - 8 - 14 - 8 - 14 - 8 - 9 - 14 - 11 - 12 - 8 - 5 - 13 - 11 - 13 - 14 - 8 - 13 - 14 - 13 - 5 - 8 - 13 - 14 - 8 - 10 - 13 - 14 - 11 - 13 - 14 - 13 - 8 - 8 - 10 - 14 - 10 - 11 - 9 - 8 - 5 - 9 - 8 - 8 - 9 - 11 - 8 - 11 - 8 - 12 - 11 - 11 - 8 - 8 - 10 - 11 - 8 - -growing node 8 - -Column 3 was sampled but unique values of column 3 are 1.0000 - - ---- view of x_node ---- - - 9.1000e+01 1.2000e+01 4.0000e+00 - 1.0000e+02 1.1300e+01 4.0000e+00 - 1.4500e+02 1.2000e+01 4.0000e+00 - 8.6000e+01 1.1000e+01 4.0000e+00 - 1.8600e+02 1.0800e+01 2.0000e+00 - 6.5000e+01 1.0800e+01 4.0000e+00 - 2.1900e+02 1.1500e+01 2.0000e+00 - 2.1000e+02 1.2000e+01 4.0000e+00 - 1.4100e+02 1.0700e+01 3.0000e+00 - 1.1100e+02 1.1000e+01 4.0000e+00 - 7.3000e+01 1.0600e+01 3.0000e+00 - 9.0000e+01 1.0800e+01 3.0000e+00 - 8.8000e+01 1.0900e+01 4.0000e+00 - 1.4000e+02 1.3000e+01 4.0000e+00 - 5.2000e+01 1.1000e+01 3.0000e+00 - 1.8800e+02 1.1200e+01 3.0000e+00 - 5.1000e+01 1.2700e+01 3.0000e+00 - 3.6000e+01 1.0600e+01 2.0000e+00 - 7.5000e+01 1.0900e+01 3.0000e+00 - 2.0000e+02 1.0300e+01 4.0000e+00 - - - ---- view of y_node ---- - - 1.8600e+02 1.0000e+00 - 5.3300e+02 0 - 5.5200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 1.0120e+03 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.2160e+03 0 - 1.2930e+03 0 - 1.3020e+03 0 - 1.3560e+03 1.0000e+00 - 1.4870e+03 1.0000e+00 - 1.5420e+03 0 - 1.5760e+03 1.0000e+00 - 1.6140e+03 0 - 1.6570e+03 1.0000e+00 - 1.6820e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.13215 -- next: -1.01164 -- N events: 0 -- N risk: 2 -current value: -1.01164 -- next: -0.976375 -- N events: 0 -- N risk: 3 -current value: -0.976375 -- next: -0.951759 -- N events: 0 -- N risk: 4 -current value: -0.951759 -- next: -0.861664 -- N events: 0 -- N risk: 5 -current value: -0.861664 -- next: -0.793215 -- N events: 0 -- N risk: 8 -current value: -0.793215 -- next: -0.760888 -- N events: 0 -- N risk: 10 -current value: -0.760888 -- next: -0.755951 -- N events: 0 -- N risk: 12 -current value: -0.755951 -- next: -0.689985 -- N events: 1 -- N risk: 13 - -lower cutpoint: -0.755951 - - n_events, left node: 1 - - n_risk, left node: 13 - ------ finding upper bound for cut-points ----- -current value: 1.99815 ---- next value: 1.76209 ---- N events: 1 ---- N risk: 1 -current value: 1.76209 ---- next value: 1.72604 ---- N events: 2 ---- N risk: 2 -current value: 1.72604 ---- next value: 1.59518 ---- N events: 3 ---- N risk: 3 -current value: 1.59518 ---- next value: 1.40124 ---- N events: 7 ---- N risk: 7 - -upper cutpoint: 1.40124 - - n_events, right node: 7 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -0.2378 - -0.1650 - 0.3077 - 0.3281 - 1.4012 - - -testing cutpoint: -0.237778 - - ---- view of lincomb & g_node & w_node ---- - - -1.1321 0 2.0000 - -1.0116 0 1.0000 - -0.9764 0 1.0000 - -0.9518 0 1.0000 - -0.8617 0 3.0000 - -0.7932 0 2.0000 - -0.7609 0 2.0000 - -0.7560 0 1.0000 - -0.6900 0 3.0000 - -0.6210 0 2.0000 - -0.5614 0 2.0000 - -0.5560 0 2.0000 - -0.4946 0 1.0000 - -0.3315 0 3.0000 - -0.3244 0 2.0000 - -0.3229 0 2.0000 - -0.3146 0 1.0000 - -0.2642 0 2.0000 - -0.2568 0 2.0000 - -0.2500 0 1.0000 - - -logrank stat for this cutpoint: 6.26058 - ------------------------------------------- - -testing cutpoint: -0.164953 - - ---- view of lincomb & g_node & w_node ---- - - -1.1321 0 2.0000 - -1.0116 0 1.0000 - -0.9764 0 1.0000 - -0.9518 0 1.0000 - -0.8617 0 3.0000 - -0.7932 0 2.0000 - -0.7609 0 2.0000 - -0.7560 0 1.0000 - -0.6900 0 3.0000 - -0.6210 0 2.0000 - -0.5614 0 2.0000 - -0.5560 0 2.0000 - -0.4946 0 1.0000 - -0.3315 0 3.0000 - -0.3244 0 2.0000 - -0.3229 0 2.0000 - -0.3146 0 1.0000 - -0.2642 0 2.0000 - -0.2568 0 2.0000 - -0.2500 0 1.0000 - - -logrank stat for this cutpoint: 10.5928 - ------------------------------------------- - -testing cutpoint: 0.307735 - - ---- view of lincomb & g_node & w_node ---- - - -1.1321 0 2.0000 - -1.0116 0 1.0000 - -0.9764 0 1.0000 - -0.9518 0 1.0000 - -0.8617 0 3.0000 - -0.7932 0 2.0000 - -0.7609 0 2.0000 - -0.7560 0 1.0000 - -0.6900 0 3.0000 - -0.6210 0 2.0000 - -0.5614 0 2.0000 - -0.5560 0 2.0000 - -0.4946 0 1.0000 - -0.3315 0 3.0000 - -0.3244 0 2.0000 - -0.3229 0 2.0000 - -0.3146 0 1.0000 - -0.2642 0 2.0000 - -0.2568 0 2.0000 - -0.2500 0 1.0000 - - -logrank stat for this cutpoint: 18.6758 - ------------------------------------------- - -testing cutpoint: 0.328143 - - ---- view of lincomb & g_node & w_node ---- - - -1.1321 0 2.0000 - -1.0116 0 1.0000 - -0.9764 0 1.0000 - -0.9518 0 1.0000 - -0.8617 0 3.0000 - -0.7932 0 2.0000 - -0.7609 0 2.0000 - -0.7560 0 1.0000 - -0.6900 0 3.0000 - -0.6210 0 2.0000 - -0.5614 0 2.0000 - -0.5560 0 2.0000 - -0.4946 0 1.0000 - -0.3315 0 3.0000 - -0.3244 0 2.0000 - -0.3229 0 2.0000 - -0.3146 0 1.0000 - -0.2642 0 2.0000 - -0.2568 0 2.0000 - -0.2500 0 1.0000 - - -logrank stat for this cutpoint: 18.8947 - ------------------------------------------- - -testing cutpoint: 1.40124 - - ---- view of lincomb & g_node & w_node ---- - - -1.1321 0 2.0000 - -1.0116 0 1.0000 - -0.9764 0 1.0000 - -0.9518 0 1.0000 - -0.8617 0 3.0000 - -0.7932 0 2.0000 - -0.7609 0 2.0000 - -0.7560 0 1.0000 - -0.6900 0 3.0000 - -0.6210 0 2.0000 - -0.5614 0 2.0000 - -0.5560 0 2.0000 - -0.4946 0 1.0000 - -0.3315 0 3.0000 - -0.3244 0 2.0000 - -0.3229 0 2.0000 - -0.3146 0 1.0000 - -0.2642 0 2.0000 - -0.2568 0 2.0000 - -0.2500 0 1.0000 - - -logrank stat for this cutpoint: 9.29754 - ------------------------------------------- - -node assignments: - 16 - 16 - 9 - 16 - 15 - 16 - 13 - 13 - 12 - 11 - 14 - 16 - 16 - 14 - 12 - 5 - 11 - 11 - 13 - 11 - 15 - 13 - 13 - 5 - 10 - 12 - 10 - 14 - 14 - 14 - 14 - 10 - 11 - 11 - 11 - 10 - 12 - 10 - 15 - 15 - 14 - 14 - 9 - 12 - -growing node 9 - -sprouting new leaf with node 9 - - ---- view of leaf_data ---- - - 7.9900e+02 9.3750e-01 6.2500e-02 - 9.4300e+02 8.1250e-01 1.9583e-01 - 1.3600e+03 7.5000e-01 2.7276e-01 - 1.6900e+03 5.2500e-01 5.7276e-01 - 1.7860e+03 3.7500e-01 8.5847e-01 - - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 4.1000e+01 8.8889e-01 1.1111e-01 - 1.1000e+02 7.7778e-01 2.3611e-01 - 3.3400e+02 6.6667e-01 3.7897e-01 - 3.8800e+02 4.4444e-01 7.1230e-01 - 4.0000e+02 3.3333e-01 9.6230e-01 - - -growing node 11 - -sprouting new leaf with node 11 - - ---- view of leaf_data ---- - - 7.7000e+01 8.0000e-01 2.0000e-01 - 2.6400e+02 6.6667e-01 3.6667e-01 - 3.2100e+02 5.3333e-01 5.6667e-01 - 5.4900e+02 4.6667e-01 6.9167e-01 - 5.9700e+02 4.0000e-01 8.3452e-01 - - -growing node 12 - -sprouting new leaf with node 12 - - ---- view of leaf_data ---- - - 1.3100e+02 7.0000e-01 3.0000e-01 - 1.4000e+02 4.0000e-01 7.2857e-01 - 2.1600e+02 3.0000e-01 9.7857e-01 - 3.2600e+02 1.0000e-01 1.6452e+00 - 6.9400e+02 0 2.6452e+00 - - -growing node 13 - -sprouting new leaf with node 13 - - ---- view of leaf_data ---- - - 2.0550e+03 9.4643e-01 5.3571e-02 - 2.0900e+03 9.2857e-01 7.2439e-02 - 2.4190e+03 9.0126e-01 1.0185e-01 - 2.5830e+03 8.6788e-01 1.3889e-01 - 3.8390e+03 7.7145e-01 2.5000e-01 - - -growing node 14 - - ---- view of x_node ---- - - 1.0000 3.0000 10.7000 - 2.0000 4.0000 11.9000 - 2.0000 3.0000 11.4000 - 1.0000 4.0000 10.0000 - 1.0000 4.0000 10.0000 - 1.0000 4.0000 9.6000 - 1.0000 4.0000 10.0000 - 1.0000 4.0000 10.7000 - 1.0000 3.0000 10.1000 - 1.0000 4.0000 10.1000 - 1.0000 4.0000 10.5000 - 1.0000 4.0000 9.5000 - 1.0000 4.0000 10.1000 - 1.0000 3.0000 9.9000 - 1.0000 4.0000 9.5000 - 1.0000 3.0000 10.9000 - 1.0000 3.0000 10.1000 - 1.0000 3.0000 9.7000 - 1.0000 4.0000 10.9000 - 1.0000 4.0000 10.0000 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 1.0300e+03 0 - 1.0840e+03 0 - 1.1650e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2340e+03 0 - 1.2950e+03 0 - 1.3490e+03 0 - 1.4350e+03 0 - 1.4440e+03 1.0000e+00 - 1.4550e+03 0 - 1.5040e+03 0 - 1.5360e+03 1.0000e+00 - 1.5690e+03 0 - 1.7690e+03 0 - 1.7700e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.34347 -- next: -1.34347 -- N events: 0 -- N risk: 1 -current value: -1.34347 -- next: -1.29185 -- N events: 0 -- N risk: 2 -current value: -1.29185 -- next: -1.25137 -- N events: 0 -- N risk: 4 -current value: -1.25137 -- next: -1.19975 -- N events: 0 -- N risk: 7 -current value: -1.19975 -- next: -1.10765 -- N events: 0 -- N risk: 9 -current value: -1.10765 -- next: -1.10765 -- N events: 0 -- N risk: 12 -current value: -1.10765 -- next: -0.975069 -- N events: 1 -- N risk: 13 - -lower cutpoint: -1.10765 - - n_events, left node: 1 - - n_risk, left node: 13 - ------ finding upper bound for cut-points ----- -current value: 20.5564 ---- next value: 19.9633 ---- N events: 1 ---- N risk: 1 -current value: 19.9633 ---- next value: 0.498545 ---- N events: 2 ---- N risk: 2 -current value: 0.498545 ---- next value: -0.0540606 ---- N events: 2 ---- N risk: 3 -current value: -0.0540606 ---- next value: -0.0945364 ---- N events: 2 ---- N risk: 5 - -upper cutpoint: -0.0945364 - - n_events, right node: 2 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.1076 - -0.8830 - -0.7281 - -0.3304 - -0.1866 - - -testing cutpoint: -1.10765 - - ---- view of lincomb & g_node & w_node ---- - - -1.3435 0 1.0000 - -1.3435 0 1.0000 - -1.2918 0 2.0000 - -1.2514 0 3.0000 - -1.1997 0 2.0000 - -1.1076 0 3.0000 - -1.1076 0 1.0000 - -0.9751 1.0000 2.0000 - -0.9639 1.0000 2.0000 - -0.9234 1.0000 1.0000 - -0.9234 1.0000 2.0000 - -0.9234 1.0000 2.0000 - -0.8830 1.0000 1.0000 - -0.8830 1.0000 2.0000 - -0.8830 1.0000 1.0000 - -0.8830 1.0000 1.0000 - -0.8830 1.0000 2.0000 - -0.7909 1.0000 1.0000 - -0.7909 1.0000 3.0000 - -0.7909 1.0000 2.0000 - - -logrank stat for this cutpoint: 3.16921 - ------------------------------------------- - -testing cutpoint: -0.882968 - - ---- view of lincomb & g_node & w_node ---- - - -1.3435 0 1.0000 - -1.3435 0 1.0000 - -1.2918 0 2.0000 - -1.2514 0 3.0000 - -1.1997 0 2.0000 - -1.1076 0 3.0000 - -1.1076 0 1.0000 - -0.9751 0 2.0000 - -0.9639 0 2.0000 - -0.9234 0 1.0000 - -0.9234 0 2.0000 - -0.9234 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.7909 1.0000 1.0000 - -0.7909 1.0000 3.0000 - -0.7909 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.06258 - ------------------------------------------- - -testing cutpoint: -0.728093 - - ---- view of lincomb & g_node & w_node ---- - - -1.3435 0 1.0000 - -1.3435 0 1.0000 - -1.2918 0 2.0000 - -1.2514 0 3.0000 - -1.1997 0 2.0000 - -1.1076 0 3.0000 - -1.1076 0 1.0000 - -0.9751 0 2.0000 - -0.9639 0 2.0000 - -0.9234 0 1.0000 - -0.9234 0 2.0000 - -0.9234 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.7909 0 1.0000 - -0.7909 0 3.0000 - -0.7909 0 2.0000 - - -logrank stat for this cutpoint: 4.03228 - ------------------------------------------- - -testing cutpoint: -0.330363 - - ---- view of lincomb & g_node & w_node ---- - - -1.3435 0 1.0000 - -1.3435 0 1.0000 - -1.2918 0 2.0000 - -1.2514 0 3.0000 - -1.1997 0 2.0000 - -1.1076 0 3.0000 - -1.1076 0 1.0000 - -0.9751 0 2.0000 - -0.9639 0 2.0000 - -0.9234 0 1.0000 - -0.9234 0 2.0000 - -0.9234 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.7909 0 1.0000 - -0.7909 0 3.0000 - -0.7909 0 2.0000 - - -logrank stat for this cutpoint: 1.23608 - ------------------------------------------- - -testing cutpoint: -0.186637 - - ---- view of lincomb & g_node & w_node ---- - - -1.3435 0 1.0000 - -1.3435 0 1.0000 - -1.2918 0 2.0000 - -1.2514 0 3.0000 - -1.1997 0 2.0000 - -1.1076 0 3.0000 - -1.1076 0 1.0000 - -0.9751 0 2.0000 - -0.9639 0 2.0000 - -0.9234 0 1.0000 - -0.9234 0 2.0000 - -0.9234 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.8830 0 1.0000 - -0.8830 0 1.0000 - -0.8830 0 2.0000 - -0.7909 0 1.0000 - -0.7909 0 3.0000 - -0.7909 0 2.0000 - - -logrank stat for this cutpoint: 0.43425 - ------------------------------------------- - -node assignments: - 18 - 10 - 16 - 15 - 16 - 12 - 10 - 11 - 17 - 11 - 5 - 11 - 12 - 16 - 12 - 18 - 18 - 10 - 5 - 11 - 15 - 15 - 12 - 10 - 11 - 9 - 12 - 15 - 17 - 11 - 13 - 10 - 11 - -growing node 15 - - ---- view of x_node ---- - - 1.0100e+02 3.1900e+00 2.6000e+02 - 9.1000e+01 3.4300e+00 2.7500e+02 - 1.0300e+02 3.6000e+00 3.3200e+02 - 2.1000e+02 3.3100e+00 6.0800e+02 - 1.4400e+02 3.6100e+00 4.2600e+02 - 1.2700e+02 3.7600e+00 3.4200e+02 - 1.3300e+02 3.0700e+00 1.0000e+03 - 1.8800e+02 3.5000e+00 3.7300e+02 - 6.2000e+01 3.5300e+00 2.2500e+02 - 1.4600e+02 4.2300e+00 2.8000e+02 - 1.7400e+02 3.2100e+00 1.6000e+03 - 9.8000e+01 3.6500e+00 4.0800e+02 - 1.7700e+02 3.3500e+00 5.7800e+02 - 2.1300e+02 4.0900e+00 3.2200e+02 - 1.0900e+02 3.5400e+00 4.8600e+02 - 9.8000e+01 3.4800e+00 1.8700e+02 - 6.2000e+01 3.3600e+00 2.2600e+02 - 8.3000e+01 4.0600e+00 2.9600e+02 - 1.1800e+02 3.3700e+00 4.5000e+02 - 1.5500e+02 4.2200e+00 6.6000e+02 - - - ---- view of y_node ---- - - 1.8600e+02 1.0000e+00 - 5.3300e+02 0 - 7.8600e+02 1.0000e+00 - 7.9000e+02 1.0000e+00 - 1.2160e+03 0 - 1.2930e+03 0 - 1.3020e+03 0 - 1.4870e+03 1.0000e+00 - 1.5760e+03 1.0000e+00 - 1.6140e+03 0 - 1.6570e+03 1.0000e+00 - 1.7410e+03 1.0000e+00 - 1.7760e+03 0 - 1.8320e+03 0 - 2.1050e+03 1.0000e+00 - 2.3320e+03 0 - 2.3630e+03 0 - 2.4520e+03 0 - 2.4750e+03 0 - 2.6890e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.27239 -- next: -1.10472 -- N events: 0 -- N risk: 2 -current value: -1.10472 -- next: -1.03921 -- N events: 0 -- N risk: 3 -current value: -1.03921 -- next: -0.764163 -- N events: 0 -- N risk: 5 -current value: -0.764163 -- next: -0.652607 -- N events: 0 -- N risk: 7 -current value: -0.652607 -- next: -0.636941 -- N events: 3 -- N risk: 10 - -lower cutpoint: -0.652607 - - n_events, left node: 3 - - n_risk, left node: 10 - ------ finding upper bound for cut-points ----- -current value: 5.39049 ---- next value: 3.19471 ---- N events: 1 ---- N risk: 1 -current value: 3.19471 ---- next value: 0.781602 ---- N events: 1 ---- N risk: 2 -current value: 0.781602 ---- next value: 0.713065 ---- N events: 1 ---- N risk: 4 -current value: 0.713065 ---- next value: 0.692374 ---- N events: 3 ---- N risk: 6 - -upper cutpoint: 0.692374 - - n_events, right node: 3 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.4783 - -0.3292 - -0.2667 - -0.2465 - 0.0083 - - -testing cutpoint: -0.478319 - - ---- view of lincomb & g_node & w_node ---- - - -1.2724 0 2.0000 - -1.1047 0 1.0000 - -1.0392 0 2.0000 - -0.7642 0 2.0000 - -0.6526 0 3.0000 - -0.6369 0 2.0000 - -0.5222 0 1.0000 - -0.4783 0 2.0000 - -0.4280 1.0000 2.0000 - -0.4088 1.0000 1.0000 - -0.3940 1.0000 1.0000 - -0.3339 1.0000 1.0000 - -0.3292 1.0000 2.0000 - -0.2667 1.0000 2.0000 - -0.2465 1.0000 1.0000 - -0.2361 1.0000 1.0000 - -0.1556 1.0000 1.0000 - -0.1458 1.0000 1.0000 - -0.1008 1.0000 1.0000 - -0.0509 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.08018 - ------------------------------------------- - -testing cutpoint: -0.329238 - - ---- view of lincomb & g_node & w_node ---- - - -1.2724 0 2.0000 - -1.1047 0 1.0000 - -1.0392 0 2.0000 - -0.7642 0 2.0000 - -0.6526 0 3.0000 - -0.6369 0 2.0000 - -0.5222 0 1.0000 - -0.4783 0 2.0000 - -0.4280 0 2.0000 - -0.4088 0 1.0000 - -0.3940 0 1.0000 - -0.3339 0 1.0000 - -0.3292 0 2.0000 - -0.2667 1.0000 2.0000 - -0.2465 1.0000 1.0000 - -0.2361 1.0000 1.0000 - -0.1556 1.0000 1.0000 - -0.1458 1.0000 1.0000 - -0.1008 1.0000 1.0000 - -0.0509 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.88497 - ------------------------------------------- - -testing cutpoint: -0.266698 - - ---- view of lincomb & g_node & w_node ---- - - -1.2724 0 2.0000 - -1.1047 0 1.0000 - -1.0392 0 2.0000 - -0.7642 0 2.0000 - -0.6526 0 3.0000 - -0.6369 0 2.0000 - -0.5222 0 1.0000 - -0.4783 0 2.0000 - -0.4280 0 2.0000 - -0.4088 0 1.0000 - -0.3940 0 1.0000 - -0.3339 0 1.0000 - -0.3292 0 2.0000 - -0.2667 0 2.0000 - -0.2465 1.0000 1.0000 - -0.2361 1.0000 1.0000 - -0.1556 1.0000 1.0000 - -0.1458 1.0000 1.0000 - -0.1008 1.0000 1.0000 - -0.0509 1.0000 1.0000 - - -logrank stat for this cutpoint: 7.33381 - ------------------------------------------- - -testing cutpoint: -0.246499 - - ---- view of lincomb & g_node & w_node ---- - - -1.2724 0 2.0000 - -1.1047 0 1.0000 - -1.0392 0 2.0000 - -0.7642 0 2.0000 - -0.6526 0 3.0000 - -0.6369 0 2.0000 - -0.5222 0 1.0000 - -0.4783 0 2.0000 - -0.4280 0 2.0000 - -0.4088 0 1.0000 - -0.3940 0 1.0000 - -0.3339 0 1.0000 - -0.3292 0 2.0000 - -0.2667 0 2.0000 - -0.2465 0 1.0000 - -0.2361 1.0000 1.0000 - -0.1556 1.0000 1.0000 - -0.1458 1.0000 1.0000 - -0.1008 1.0000 1.0000 - -0.0509 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.54989 - ------------------------------------------- - -testing cutpoint: 0.00833389 - - ---- view of lincomb & g_node & w_node ---- - - -1.2724 0 2.0000 - -1.1047 0 1.0000 - -1.0392 0 2.0000 - -0.7642 0 2.0000 - -0.6526 0 3.0000 - -0.6369 0 2.0000 - -0.5222 0 1.0000 - -0.4783 0 2.0000 - -0.4280 0 2.0000 - -0.4088 0 1.0000 - -0.3940 0 1.0000 - -0.3339 0 1.0000 - -0.3292 0 2.0000 - -0.2667 0 2.0000 - -0.2465 0 1.0000 - -0.2361 0 1.0000 - -0.1556 0 1.0000 - -0.1458 0 1.0000 - -0.1008 0 1.0000 - -0.0509 0 1.0000 - - -logrank stat for this cutpoint: 10.8641 - ------------------------------------------- - -node assignments: - 10 - 11 - 19 - 12 - 5 - 11 - 16 - 19 - 16 - 16 - 13 - 5 - 12 - 20 - 20 - 17 - 17 - 9 - 11 - 11 - 11 - 10 - 11 - 10 - 12 - 10 - 18 - 11 - 18 - 12 - 10 - 18 - 12 - -growing node 16 - -sprouting new leaf with node 16 - - ---- view of leaf_data ---- - - 5.5200e+02 9.3750e-01 6.2500e-02 - 8.5300e+02 8.6538e-01 1.3942e-01 - 1.0120e+03 7.9327e-01 2.2276e-01 - 1.0800e+03 6.4904e-01 4.0457e-01 - 1.0830e+03 5.7692e-01 5.1569e-01 - - -growing node 17 - -sprouting new leaf with node 17 - - ---- view of leaf_data ---- - - 9.0400e+02 9.6552e-01 3.4483e-02 - 9.3000e+02 9.3103e-01 7.0197e-02 - 1.2120e+03 8.5007e-01 1.5715e-01 - 1.4440e+03 8.0757e-01 2.0715e-01 - 1.5360e+03 7.6271e-01 2.6271e-01 - - -growing node 18 - - ---- view of x_node ---- - - 1.0700e+01 1.0000e+00 3.4500e+02 - 1.1900e+01 2.0000e+00 3.2500e+02 - 1.1400e+01 2.0000e+00 4.2000e+02 - 1.0700e+01 2.0000e+00 5.1800e+02 - 1.0100e+01 1.0000e+00 3.7300e+02 - 1.0500e+01 1.0000e+00 3.9300e+02 - 1.0100e+01 2.0000e+00 3.8700e+02 - 1.0900e+01 2.0000e+00 2.7900e+02 - 1.0900e+01 2.0000e+00 2.9900e+02 - 1.1500e+01 2.0000e+00 3.0200e+02 - 1.0600e+01 2.0000e+00 2.8200e+02 - 1.0600e+01 1.0000e+00 6.1400e+02 - 1.0300e+01 2.0000e+00 2.4800e+02 - 1.0600e+01 2.0000e+00 2.5700e+02 - 1.0100e+01 1.0000e+00 3.3100e+02 - 1.1000e+01 1.0000e+00 2.3100e+02 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2340e+03 0 - 1.2950e+03 0 - 1.4350e+03 0 - 1.5040e+03 0 - 1.7690e+03 0 - 1.9790e+03 0 - 2.2970e+03 1.0000e+00 - 2.3860e+03 1.0000e+00 - 2.5560e+03 0 - 2.5980e+03 1.0000e+00 - 2.7960e+03 1.0000e+00 - 3.5840e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.84018 -- next: -1.47462 -- N events: 3 -- N risk: 3 -current value: -1.47462 -- next: -1.41711 -- N events: 3 -- N risk: 5 - -lower cutpoint: -1.47462 - - n_events, left node: 3 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.39467 ---- next value: 2.28639 ---- N events: 1 ---- N risk: 1 -current value: 2.28639 ---- next value: 2.24163 ---- N events: 2 ---- N risk: 2 -current value: 2.24163 ---- next value: 1.51135 ---- N events: 3 ---- N risk: 3 -current value: 1.51135 ---- next value: 1.34155 ---- N events: 3 ---- N risk: 4 -current value: 1.34155 ---- next value: 0.622945 ---- N events: 5 ---- N risk: 6 - -upper cutpoint: 0.622945 - - n_events, right node: 5 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.8560 - -0.6832 - -0.1738 - 0.0438 - 0.6229 - - -testing cutpoint: -0.856032 - - ---- view of lincomb & g_node & w_node ---- - - -1.8402 0 3.0000 - -1.4746 0 2.0000 - -1.4171 0 1.0000 - -0.8560 0 1.0000 - -0.7257 1.0000 1.0000 - -0.6832 1.0000 2.0000 - -0.1738 1.0000 2.0000 - 0.0438 1.0000 3.0000 - 0.2392 1.0000 1.0000 - 0.4489 1.0000 1.0000 - 0.6229 1.0000 2.0000 - 1.3416 1.0000 2.0000 - 1.5113 1.0000 1.0000 - 2.2416 1.0000 1.0000 - 2.2864 1.0000 1.0000 - 2.3947 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.64645 - ------------------------------------------- - -testing cutpoint: -0.683236 - - ---- view of lincomb & g_node & w_node ---- - - -1.8402 0 3.0000 - -1.4746 0 2.0000 - -1.4171 0 1.0000 - -0.8560 0 1.0000 - -0.7257 0 1.0000 - -0.6832 0 2.0000 - -0.1738 1.0000 2.0000 - 0.0438 1.0000 3.0000 - 0.2392 1.0000 1.0000 - 0.4489 1.0000 1.0000 - 0.6229 1.0000 2.0000 - 1.3416 1.0000 2.0000 - 1.5113 1.0000 1.0000 - 2.2416 1.0000 1.0000 - 2.2864 1.0000 1.0000 - 2.3947 1.0000 1.0000 - - -logrank stat for this cutpoint: 8.56305 - ------------------------------------------- - -testing cutpoint: -0.173757 - - ---- view of lincomb & g_node & w_node ---- - - -1.8402 0 3.0000 - -1.4746 0 2.0000 - -1.4171 0 1.0000 - -0.8560 0 1.0000 - -0.7257 0 1.0000 - -0.6832 0 2.0000 - -0.1738 0 2.0000 - 0.0438 1.0000 3.0000 - 0.2392 1.0000 1.0000 - 0.4489 1.0000 1.0000 - 0.6229 1.0000 2.0000 - 1.3416 1.0000 2.0000 - 1.5113 1.0000 1.0000 - 2.2416 1.0000 1.0000 - 2.2864 1.0000 1.0000 - 2.3947 1.0000 1.0000 - - -logrank stat for this cutpoint: 10.1591 - ------------------------------------------- - -testing cutpoint: 0.0438364 - - ---- view of lincomb & g_node & w_node ---- - - -1.8402 0 3.0000 - -1.4746 0 2.0000 - -1.4171 0 1.0000 - -0.8560 0 1.0000 - -0.7257 0 1.0000 - -0.6832 0 2.0000 - -0.1738 0 2.0000 - 0.0438 0 3.0000 - 0.2392 1.0000 1.0000 - 0.4489 1.0000 1.0000 - 0.6229 1.0000 2.0000 - 1.3416 1.0000 2.0000 - 1.5113 1.0000 1.0000 - 2.2416 1.0000 1.0000 - 2.2864 1.0000 1.0000 - 2.3947 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.2167 - ------------------------------------------- - -testing cutpoint: 0.622945 - - ---- view of lincomb & g_node & w_node ---- - - -1.8402 0 3.0000 - -1.4746 0 2.0000 - -1.4171 0 1.0000 - -0.8560 0 1.0000 - -0.7257 0 1.0000 - -0.6832 0 2.0000 - -0.1738 0 2.0000 - 0.0438 0 3.0000 - 0.2392 0 1.0000 - 0.4489 0 1.0000 - 0.6229 0 2.0000 - 1.3416 1.0000 2.0000 - 1.5113 1.0000 1.0000 - 2.2416 1.0000 1.0000 - 2.2864 1.0000 1.0000 - 2.3947 1.0000 1.0000 - - -logrank stat for this cutpoint: 8.12951 - ------------------------------------------- - -node assignments: - 22 - 12 - 19 - 10 - 20 - 10 - 10 - 12 - 21 - 12 - 11 - 10 - 11 - 12 - 11 - 10 - -growing node 19 - - ---- view of x_node ---- - - 9.1000e+01 1.0000e+00 1.1420e+03 - 1.0300e+02 2.0000e+00 1.4920e+03 - 1.2700e+02 2.0000e+00 1.6530e+03 - 1.8800e+02 2.0000e+00 1.0090e+03 - 6.2000e+01 2.0000e+00 9.3300e+02 - 1.4600e+02 2.0000e+00 3.7700e+02 - 2.1300e+02 2.0000e+00 8.2400e+02 - 9.8000e+01 2.0000e+00 6.5400e+02 - 8.3000e+01 2.0000e+00 1.0320e+03 - 2.0600e+02 2.0000e+00 1.8680e+03 - 1.0600e+02 2.0000e+00 8.5800e+02 - 1.2100e+02 2.0000e+00 8.3600e+02 - 8.4000e+01 2.0000e+00 2.0450e+03 - 1.5600e+02 2.0000e+00 1.5840e+03 - 8.3000e+01 1.0000e+00 8.4300e+02 - 9.0000e+01 2.0000e+00 7.5400e+02 - 1.3000e+02 2.0000e+00 1.1810e+03 - 1.6600e+02 2.0000e+00 1.6890e+03 - 7.9000e+01 2.0000e+00 1.1040e+03 - 1.4300e+02 2.0000e+00 4.3320e+03 - - - ---- view of y_node ---- - - 5.3300e+02 0 - 7.8600e+02 1.0000e+00 - 1.2930e+03 0 - 1.4870e+03 1.0000e+00 - 1.5760e+03 1.0000e+00 - 1.6140e+03 0 - 1.8320e+03 0 - 2.3320e+03 0 - 2.4520e+03 0 - 2.8350e+03 0 - 2.9760e+03 0 - 3.1500e+03 0 - 3.3580e+03 1.0000e+00 - 3.4220e+03 0 - 3.4450e+03 0 - 3.4450e+03 1.0000e+00 - 3.5770e+03 0 - 3.5810e+03 0 - 3.7620e+03 1.0000e+00 - 3.8530e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.151 -- next: -0.725468 -- N events: 1 -- N risk: 1 -current value: -0.725468 -- next: -0.679275 -- N events: 1 -- N risk: 3 -current value: -0.679275 -- next: -0.31774 -- N events: 1 -- N risk: 4 -current value: -0.31774 -- next: -0.298695 -- N events: 1 -- N risk: 6 - -lower cutpoint: -0.31774 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 0.459977 ---- next value: 0.369419 ---- N events: 1 ---- N risk: 1 -current value: 0.369419 ---- next value: 0.349949 ---- N events: 4 ---- N risk: 4 -current value: 0.349949 ---- next value: 0.328203 ---- N events: 4 ---- N risk: 6 - -upper cutpoint: 0.328203 - - n_events, right node: 4 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.1917 - -0.0359 - -0.0138 - 0.1049 - 0.1126 - - -testing cutpoint: -0.191712 - - ---- view of lincomb & g_node & w_node ---- - - -1.1510 0 1.0000 - -0.7255 0 2.0000 - -0.6793 0 1.0000 - -0.3177 0 2.0000 - -0.2987 0 2.0000 - -0.1917 0 2.0000 - -0.0893 1.0000 1.0000 - -0.0359 1.0000 2.0000 - -0.0138 1.0000 1.0000 - 0.0354 1.0000 1.0000 - 0.1049 1.0000 2.0000 - 0.1126 1.0000 2.0000 - 0.1570 1.0000 1.0000 - 0.2341 1.0000 1.0000 - 0.2392 1.0000 2.0000 - 0.2605 1.0000 1.0000 - 0.2787 1.0000 2.0000 - 0.3184 1.0000 1.0000 - 0.3282 1.0000 1.0000 - 0.3499 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.126299 - ------------------------------------------- - -testing cutpoint: -0.0359329 - - ---- view of lincomb & g_node & w_node ---- - - -1.1510 0 1.0000 - -0.7255 0 2.0000 - -0.6793 0 1.0000 - -0.3177 0 2.0000 - -0.2987 0 2.0000 - -0.1917 0 2.0000 - -0.0893 0 1.0000 - -0.0359 0 2.0000 - -0.0138 1.0000 1.0000 - 0.0354 1.0000 1.0000 - 0.1049 1.0000 2.0000 - 0.1126 1.0000 2.0000 - 0.1570 1.0000 1.0000 - 0.2341 1.0000 1.0000 - 0.2392 1.0000 2.0000 - 0.2605 1.0000 1.0000 - 0.2787 1.0000 2.0000 - 0.3184 1.0000 1.0000 - 0.3282 1.0000 1.0000 - 0.3499 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.813352 - ------------------------------------------- - -testing cutpoint: -0.0138088 - - ---- view of lincomb & g_node & w_node ---- - - -1.1510 0 1.0000 - -0.7255 0 2.0000 - -0.6793 0 1.0000 - -0.3177 0 2.0000 - -0.2987 0 2.0000 - -0.1917 0 2.0000 - -0.0893 0 1.0000 - -0.0359 0 2.0000 - -0.0138 0 1.0000 - 0.0354 1.0000 1.0000 - 0.1049 1.0000 2.0000 - 0.1126 1.0000 2.0000 - 0.1570 1.0000 1.0000 - 0.2341 1.0000 1.0000 - 0.2392 1.0000 2.0000 - 0.2605 1.0000 1.0000 - 0.2787 1.0000 2.0000 - 0.3184 1.0000 1.0000 - 0.3282 1.0000 1.0000 - 0.3499 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.930918 - ------------------------------------------- - -testing cutpoint: 0.104883 - - ---- view of lincomb & g_node & w_node ---- - - -1.1510 0 1.0000 - -0.7255 0 2.0000 - -0.6793 0 1.0000 - -0.3177 0 2.0000 - -0.2987 0 2.0000 - -0.1917 0 2.0000 - -0.0893 0 1.0000 - -0.0359 0 2.0000 - -0.0138 0 1.0000 - 0.0354 0 1.0000 - 0.1049 0 2.0000 - 0.1126 1.0000 2.0000 - 0.1570 1.0000 1.0000 - 0.2341 1.0000 1.0000 - 0.2392 1.0000 2.0000 - 0.2605 1.0000 1.0000 - 0.2787 1.0000 2.0000 - 0.3184 1.0000 1.0000 - 0.3282 1.0000 1.0000 - 0.3499 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.25938 - ------------------------------------------- - -testing cutpoint: 0.112643 - - ---- view of lincomb & g_node & w_node ---- - - -1.1510 0 1.0000 - -0.7255 0 2.0000 - -0.6793 0 1.0000 - -0.3177 0 2.0000 - -0.2987 0 2.0000 - -0.1917 0 2.0000 - -0.0893 0 1.0000 - -0.0359 0 2.0000 - -0.0138 0 1.0000 - 0.0354 0 1.0000 - 0.1049 0 2.0000 - 0.1126 0 2.0000 - 0.1570 1.0000 1.0000 - 0.2341 1.0000 1.0000 - 0.2392 1.0000 2.0000 - 0.2605 1.0000 1.0000 - 0.2787 1.0000 2.0000 - 0.3184 1.0000 1.0000 - 0.3282 1.0000 1.0000 - 0.3499 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.51249 - ------------------------------------------- - -best split stat, 2.51249, was < split_min_stat, 3.84 -sprouting new leaf with node 19 - - ---- view of leaf_data ---- - - 7.8600e+02 9.3750e-01 6.2500e-02 - 1.4870e+03 8.7054e-01 1.3393e-01 - 1.5760e+03 8.3705e-01 1.7239e-01 - 3.3580e+03 7.7726e-01 2.4382e-01 - 3.4450e+03 7.0660e-01 3.3473e-01 - - -growing node 20 - - ---- view of x_node ---- - - 2.0000e+00 5.8817e+01 2.6000e+02 - 2.0000e+00 3.6079e+01 6.0800e+02 - 2.0000e+00 4.3066e+01 4.2600e+02 - 2.0000e+00 6.0537e+01 1.0000e+03 - 2.0000e+00 5.2758e+01 1.6000e+03 - 2.0000e+00 5.2444e+01 4.0800e+02 - 1.0000e+00 3.4379e+01 5.7800e+02 - 2.0000e+00 3.8910e+01 4.8600e+02 - 2.0000e+00 5.7040e+01 2.2600e+02 - 1.0000e+00 3.6493e+01 4.5000e+02 - 1.0000e+00 3.3476e+01 6.6000e+02 - - - ---- view of y_node ---- - - 1.8600e+02 1.0000e+00 - 7.9000e+02 1.0000e+00 - 1.2160e+03 0 - 1.3020e+03 0 - 1.6570e+03 1.0000e+00 - 1.7410e+03 1.0000e+00 - 1.7760e+03 0 - 2.1050e+03 1.0000e+00 - 2.3630e+03 0 - 2.4750e+03 0 - 2.6890e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.87672 -- next: -1.41022 -- N events: 0 -- N risk: 1 -current value: -1.41022 -- next: -1.13588 -- N events: 0 -- N risk: 3 -current value: -1.13588 -- next: -0.777821 -- N events: 2 -- N risk: 5 - -lower cutpoint: -1.13588 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 3.23164 ---- next value: 1.41495 ---- N events: 1 ---- N risk: 1 -current value: 1.41495 ---- next value: 1.16077 ---- N events: 3 ---- N risk: 3 -current value: 1.16077 ---- next value: 0.925898 ---- N events: 3 ---- N risk: 4 -current value: 0.925898 ---- next value: 0.535008 ---- N events: 5 ---- N risk: 6 - -upper cutpoint: 0.535008 - - n_events, right node: 5 - - n_risk, right node: 6 - -testing cutpoint: -1.13588 - - ---- view of lincomb & g_node & w_node ---- - - -1.8767 0 1.0000 - -1.4102 0 2.0000 - -1.1359 0 2.0000 - -0.7778 1.0000 1.0000 - -0.7745 1.0000 3.0000 - -0.0246 1.0000 3.0000 - 0.5350 1.0000 2.0000 - 0.9259 1.0000 2.0000 - 1.1608 1.0000 1.0000 - 1.4150 1.0000 2.0000 - 3.2316 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.19187 - ------------------------------------------- - -testing cutpoint: -0.777821 - - ---- view of lincomb & g_node & w_node ---- - - -1.8767 0 1.0000 - -1.4102 0 2.0000 - -1.1359 0 2.0000 - -0.7778 0 1.0000 - -0.7745 1.0000 3.0000 - -0.0246 1.0000 3.0000 - 0.5350 1.0000 2.0000 - 0.9259 1.0000 2.0000 - 1.1608 1.0000 1.0000 - 1.4150 1.0000 2.0000 - 3.2316 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.42133 - ------------------------------------------- - -testing cutpoint: -0.774514 - - ---- view of lincomb & g_node & w_node ---- - - -1.8767 0 1.0000 - -1.4102 0 2.0000 - -1.1359 0 2.0000 - -0.7778 0 1.0000 - -0.7745 0 3.0000 - -0.0246 1.0000 3.0000 - 0.5350 1.0000 2.0000 - 0.9259 1.0000 2.0000 - 1.1608 1.0000 1.0000 - 1.4150 1.0000 2.0000 - 3.2316 1.0000 1.0000 - - -logrank stat for this cutpoint: 9.49708 - ------------------------------------------- - -testing cutpoint: -0.0246133 - - ---- view of lincomb & g_node & w_node ---- - - -1.8767 0 1.0000 - -1.4102 0 2.0000 - -1.1359 0 2.0000 - -0.7778 0 1.0000 - -0.7745 0 3.0000 - -0.0246 0 3.0000 - 0.5350 1.0000 2.0000 - 0.9259 1.0000 2.0000 - 1.1608 1.0000 1.0000 - 1.4150 1.0000 2.0000 - 3.2316 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.39872 - ------------------------------------------- - -testing cutpoint: 0.535008 - - ---- view of lincomb & g_node & w_node ---- - - -1.8767 0 1.0000 - -1.4102 0 2.0000 - -1.1359 0 2.0000 - -0.7778 0 1.0000 - -0.7745 0 3.0000 - -0.0246 0 3.0000 - 0.5350 0 2.0000 - 0.9259 1.0000 2.0000 - 1.1608 1.0000 1.0000 - 1.4150 1.0000 2.0000 - 3.2316 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.83739 - ------------------------------------------- - -node assignments: - 11 - 21 - 12 - 10 - 11 - 23 - 10 - 12 - 12 - 11 - 12 - -growing node 21 - -sprouting new leaf with node 21 - - ---- view of leaf_data ---- - - 1.9800e+02 9.1667e-01 8.3333e-02 - 2.5980e+03 6.1111e-01 4.1667e-01 - 2.7960e+03 1.5278e-01 1.1667e+00 - 3.5840e+03 0 2.1667e+00 - - -growing node 22 - -sprouting new leaf with node 22 - - ---- view of leaf_data ---- - - 4.6000e+02 9.2308e-01 7.6923e-02 - 6.1100e+02 8.4615e-01 1.6026e-01 - 1.1650e+03 7.6923e-01 2.5117e-01 - 2.2970e+03 3.0769e-01 8.5117e-01 - 2.3860e+03 0 1.8512e+00 - - -growing node 23 - -sprouting new leaf with node 23 - - ---- view of leaf_data ---- - - 1.8600e+02 8.8889e-01 1.1111e-01 - 2.6890e+03 0 1.1111e+00 - - -growing node 24 - -sprouting new leaf with node 24 - - ---- view of leaf_data ---- - - 7.9000e+02 8.1818e-01 1.8182e-01 - 1.6570e+03 6.8182e-01 3.4848e-01 - 1.7410e+03 2.7273e-01 9.4848e-01 - 2.1050e+03 0 1.9485e+00 - - -Effective sample size: 276 -Effective number of events: 95 -Number of unique rows in x: 183 - -Max number of nodes for this tree: 189 -Max number of leaves for this tree: 95 - -growing node 0 - - ---- view of x_node ---- - - 1.2900e+01 1.7900e+01 7.0500e+02 - 1.1500e+01 1.2600e+01 9.1800e+02 - 1.1600e+01 1.2200e+01 2.1320e+03 - 1.1100e+01 2.5000e+00 1.2730e+03 - 1.2400e+01 1.1400e+01 9.6100e+02 - 1.4100e+01 2.4000e+00 1.0560e+03 - 1.2000e+01 3.2000e+00 8.1500e+02 - 1.3200e+01 1.3000e+00 1.1120e+03 - 1.0700e+01 1.1000e+00 1.8600e+03 - 1.5200e+01 2.4500e+01 3.7400e+03 - 1.1700e+01 1.7400e+01 6.0648e+03 - 1.3600e+01 3.6000e+00 5.9100e+02 - 1.1000e+01 3.6000e+00 7.2770e+03 - 1.2100e+01 6.6000e+00 1.8190e+03 - 1.1000e+01 1.4100e+01 1.8330e+03 - 1.1400e+01 4.5000e+00 1.0200e+03 - 1.2200e+01 1.4000e+00 1.6260e+03 - 9.5000e+00 6.0000e-01 9.4400e+02 - 1.3000e+01 1.7200e+01 1.9750e+03 - 1.1400e+01 2.0000e+00 3.1960e+03 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9100e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.71086 -- next: -1.70118 -- N events: 0 -- N risk: 2 -current value: -1.70118 -- next: -1.69005 -- N events: 2 -- N risk: 4 -current value: -1.69005 -- next: -1.65518 -- N events: 2 -- N risk: 5 - -lower cutpoint: -1.69005 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 11.1993 ---- next value: 9.61411 ---- N events: 1 ---- N risk: 1 -current value: 9.61411 ---- next value: 7.85146 ---- N events: 3 ---- N risk: 3 -current value: 7.85146 ---- next value: 7.2078 ---- N events: 4 ---- N risk: 4 -current value: 7.2078 ---- next value: 6.99739 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 6.99739 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.4302 - -0.8393 - -0.6693 - -0.2376 - 1.4914 - - -testing cutpoint: -1.43019 - - ---- view of lincomb & g_node & w_node ---- - - -1.7109 0 2.0000 - -1.7012 0 2.0000 - -1.6900 0 1.0000 - -1.6552 0 4.0000 - -1.6507 0 1.0000 - -1.6355 0 2.0000 - -1.6124 0 1.0000 - -1.5929 0 2.0000 - -1.5830 0 2.0000 - -1.5680 0 1.0000 - -1.5444 0 2.0000 - -1.5340 0 1.0000 - -1.4742 0 1.0000 - -1.4739 0 2.0000 - -1.4715 0 2.0000 - -1.4702 0 2.0000 - -1.4463 0 1.0000 - -1.4415 0 1.0000 - -1.4361 0 1.0000 - -1.4326 0 2.0000 - - -logrank stat for this cutpoint: 10.5786 - ------------------------------------------- - -testing cutpoint: -0.839331 - - ---- view of lincomb & g_node & w_node ---- - - -1.7109 0 2.0000 - -1.7012 0 2.0000 - -1.6900 0 1.0000 - -1.6552 0 4.0000 - -1.6507 0 1.0000 - -1.6355 0 2.0000 - -1.6124 0 1.0000 - -1.5929 0 2.0000 - -1.5830 0 2.0000 - -1.5680 0 1.0000 - -1.5444 0 2.0000 - -1.5340 0 1.0000 - -1.4742 0 1.0000 - -1.4739 0 2.0000 - -1.4715 0 2.0000 - -1.4702 0 2.0000 - -1.4463 0 1.0000 - -1.4415 0 1.0000 - -1.4361 0 1.0000 - -1.4326 0 2.0000 - - -logrank stat for this cutpoint: 51.5425 - ------------------------------------------- - -testing cutpoint: -0.669287 - - ---- view of lincomb & g_node & w_node ---- - - -1.7109 0 2.0000 - -1.7012 0 2.0000 - -1.6900 0 1.0000 - -1.6552 0 4.0000 - -1.6507 0 1.0000 - -1.6355 0 2.0000 - -1.6124 0 1.0000 - -1.5929 0 2.0000 - -1.5830 0 2.0000 - -1.5680 0 1.0000 - -1.5444 0 2.0000 - -1.5340 0 1.0000 - -1.4742 0 1.0000 - -1.4739 0 2.0000 - -1.4715 0 2.0000 - -1.4702 0 2.0000 - -1.4463 0 1.0000 - -1.4415 0 1.0000 - -1.4361 0 1.0000 - -1.4326 0 2.0000 - - -logrank stat for this cutpoint: 70.567 - ------------------------------------------- - -testing cutpoint: -0.237564 - - ---- view of lincomb & g_node & w_node ---- - - -1.7109 0 2.0000 - -1.7012 0 2.0000 - -1.6900 0 1.0000 - -1.6552 0 4.0000 - -1.6507 0 1.0000 - -1.6355 0 2.0000 - -1.6124 0 1.0000 - -1.5929 0 2.0000 - -1.5830 0 2.0000 - -1.5680 0 1.0000 - -1.5444 0 2.0000 - -1.5340 0 1.0000 - -1.4742 0 1.0000 - -1.4739 0 2.0000 - -1.4715 0 2.0000 - -1.4702 0 2.0000 - -1.4463 0 1.0000 - -1.4415 0 1.0000 - -1.4361 0 1.0000 - -1.4326 0 2.0000 - - -logrank stat for this cutpoint: 110.827 - ------------------------------------------- - -testing cutpoint: 1.49143 - - ---- view of lincomb & g_node & w_node ---- - - -1.7109 0 2.0000 - -1.7012 0 2.0000 - -1.6900 0 1.0000 - -1.6552 0 4.0000 - -1.6507 0 1.0000 - -1.6355 0 2.0000 - -1.6124 0 1.0000 - -1.5929 0 2.0000 - -1.5830 0 2.0000 - -1.5680 0 1.0000 - -1.5444 0 2.0000 - -1.5340 0 1.0000 - -1.4742 0 1.0000 - -1.4739 0 2.0000 - -1.4715 0 2.0000 - -1.4702 0 2.0000 - -1.4463 0 1.0000 - -1.4415 0 1.0000 - -1.4361 0 1.0000 - -1.4326 0 2.0000 - - -logrank stat for this cutpoint: 145.052 - ------------------------------------------- - -node assignments: - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - -growing node 1 - - ---- view of x_node ---- - - 1.1000e+02 3.6700e+00 2.0000e+00 - 1.0800e+02 2.5600e+00 2.0000e+00 - 1.6000e+02 3.1900e+00 2.0000e+00 - 2.1300e+02 3.0800e+00 1.0000e+00 - 4.4700e+02 4.4000e+00 1.0000e+00 - 1.2400e+02 2.5400e+00 2.0000e+00 - 1.3900e+02 3.0500e+00 1.0000e+00 - 1.4500e+02 3.1300e+00 1.0000e+00 - 3.0600e+02 3.8300e+00 2.0000e+00 - 3.4400e+02 3.2600e+00 1.0000e+00 - 1.7300e+02 3.6300e+00 2.0000e+00 - 2.9700e+02 2.8300e+00 1.0000e+00 - 2.6400e+02 3.7500e+00 2.0000e+00 - 1.4000e+02 3.7900e+00 2.0000e+00 - 2.2400e+02 3.1500e+00 1.0000e+00 - 2.7700e+02 3.6000e+00 1.0000e+00 - 2.0000e+02 3.7900e+00 2.0000e+00 - 2.6900e+02 3.9900e+00 1.0000e+00 - 2.8200e+02 3.6200e+00 2.0000e+00 - 3.0600e+02 3.8300e+00 1.0000e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9100e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.3700e+02 0 - 7.6200e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 8.7700e+02 0 - - ------ finding lower bound for cut-points ----- -current value: -2.04367 -- next: -1.58138 -- N events: 1 -- N risk: 1 -current value: -1.58138 -- next: -1.50955 -- N events: 1 -- N risk: 3 -current value: -1.50955 -- next: -1.47315 -- N events: 1 -- N risk: 5 - -lower cutpoint: -1.50955 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.7716 ---- next value: 2.74151 ---- N events: 1 ---- N risk: 1 -current value: 2.74151 ---- next value: 2.51881 ---- N events: 2 ---- N risk: 2 -current value: 2.51881 ---- next value: 1.62059 ---- N events: 4 ---- N risk: 4 -current value: 1.62059 ---- next value: 1.53254 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 1.53254 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -1.0870 - -0.4586 - -0.2352 - -0.0304 - 0.7594 - - -testing cutpoint: -1.08696 - - ---- view of lincomb & g_node & w_node ---- - - -2.0437 0 1.0000 - -1.5814 0 2.0000 - -1.5095 0 2.0000 - -1.4731 0 2.0000 - -1.3873 0 2.0000 - -1.3669 0 2.0000 - -1.3557 0 3.0000 - -1.3280 0 1.0000 - -1.1972 0 1.0000 - -1.1582 0 1.0000 - -1.1248 0 1.0000 - -1.0870 0 1.0000 - -1.0184 1.0000 1.0000 - -0.9867 1.0000 6.0000 - -0.9556 1.0000 2.0000 - -0.8619 1.0000 1.0000 - -0.7783 1.0000 1.0000 - -0.7671 1.0000 1.0000 - -0.7622 1.0000 2.0000 - -0.7505 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0127544 - ------------------------------------------- - -testing cutpoint: -0.458584 - - ---- view of lincomb & g_node & w_node ---- - - -2.0437 0 1.0000 - -1.5814 0 2.0000 - -1.5095 0 2.0000 - -1.4731 0 2.0000 - -1.3873 0 2.0000 - -1.3669 0 2.0000 - -1.3557 0 3.0000 - -1.3280 0 1.0000 - -1.1972 0 1.0000 - -1.1582 0 1.0000 - -1.1248 0 1.0000 - -1.0870 0 1.0000 - -1.0184 0 1.0000 - -0.9867 0 6.0000 - -0.9556 0 2.0000 - -0.8619 0 1.0000 - -0.7783 0 1.0000 - -0.7671 0 1.0000 - -0.7622 0 2.0000 - -0.7505 0 1.0000 - - -logrank stat for this cutpoint: 8.24198 - ------------------------------------------- - -testing cutpoint: -0.235211 - - ---- view of lincomb & g_node & w_node ---- - - -2.0437 0 1.0000 - -1.5814 0 2.0000 - -1.5095 0 2.0000 - -1.4731 0 2.0000 - -1.3873 0 2.0000 - -1.3669 0 2.0000 - -1.3557 0 3.0000 - -1.3280 0 1.0000 - -1.1972 0 1.0000 - -1.1582 0 1.0000 - -1.1248 0 1.0000 - -1.0870 0 1.0000 - -1.0184 0 1.0000 - -0.9867 0 6.0000 - -0.9556 0 2.0000 - -0.8619 0 1.0000 - -0.7783 0 1.0000 - -0.7671 0 1.0000 - -0.7622 0 2.0000 - -0.7505 0 1.0000 - - -logrank stat for this cutpoint: 5.84767 - ------------------------------------------- - -testing cutpoint: -0.0304298 - - ---- view of lincomb & g_node & w_node ---- - - -2.0437 0 1.0000 - -1.5814 0 2.0000 - -1.5095 0 2.0000 - -1.4731 0 2.0000 - -1.3873 0 2.0000 - -1.3669 0 2.0000 - -1.3557 0 3.0000 - -1.3280 0 1.0000 - -1.1972 0 1.0000 - -1.1582 0 1.0000 - -1.1248 0 1.0000 - -1.0870 0 1.0000 - -1.0184 0 1.0000 - -0.9867 0 6.0000 - -0.9556 0 2.0000 - -0.8619 0 1.0000 - -0.7783 0 1.0000 - -0.7671 0 1.0000 - -0.7622 0 2.0000 - -0.7505 0 1.0000 - - -logrank stat for this cutpoint: 9.11941 - ------------------------------------------- - -testing cutpoint: 0.759415 - - ---- view of lincomb & g_node & w_node ---- - - -2.0437 0 1.0000 - -1.5814 0 2.0000 - -1.5095 0 2.0000 - -1.4731 0 2.0000 - -1.3873 0 2.0000 - -1.3669 0 2.0000 - -1.3557 0 3.0000 - -1.3280 0 1.0000 - -1.1972 0 1.0000 - -1.1582 0 1.0000 - -1.1248 0 1.0000 - -1.0870 0 1.0000 - -1.0184 0 1.0000 - -0.9867 0 6.0000 - -0.9556 0 2.0000 - -0.8619 0 1.0000 - -0.7783 0 1.0000 - -0.7671 0 1.0000 - -0.7622 0 2.0000 - -0.7505 0 1.0000 - - -logrank stat for this cutpoint: 48.9475 - ------------------------------------------- - -node assignments: - 2 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 3 - 4 - 2 - 3 - 4 - 2 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 3 - 3 - 3 - 4 - 2 - 3 - 3 - 3 - 4 - 2 - 2 - 3 - 3 - 2 - 3 - 3 - 3 - 4 - 3 - 4 - 3 - 2 - 3 - 3 - 3 - 3 - 3 - 3 - 2 - 3 - 2 - 3 - 3 - 3 - 4 - 3 - 3 - 2 - 4 - 3 - 3 - 4 - 3 - 4 - 4 - 3 - 3 - 2 - 2 - 3 - 3 - 4 - 3 - 3 - 4 - 4 - 3 - 2 - 3 - 3 - 4 - 3 - 2 - 4 - 3 - 3 - 4 - 2 - 3 - 2 - 3 - 2 - 4 - 4 - 3 - 2 - 3 - 3 - 4 - 4 - 4 - 3 - 4 - 3 - 3 - 3 - 3 - 2 - 3 - 4 - 2 - -growing node 2 - - ---- view of x_node ---- - - 7.0500e+02 2.2900e+02 3.0000e+00 - 9.1800e+02 1.4300e+02 3.0000e+00 - 2.1320e+03 2.4300e+02 2.0000e+00 - 9.6100e+02 2.0000e+02 3.0000e+00 - 3.7400e+03 4.3200e+02 1.0000e+00 - 6.0648e+03 1.9100e+02 3.0000e+00 - 5.9100e+02 9.5000e+01 1.0000e+00 - 1.8190e+03 9.1000e+01 2.0000e+00 - 1.8330e+03 1.5500e+02 3.0000e+00 - 1.9750e+03 1.9500e+02 3.0000e+00 - 1.7900e+03 2.1000e+02 1.0000e+00 - 2.4680e+03 2.0500e+02 1.0000e+00 - 1.3030e+03 9.1000e+01 1.0000e+00 - 2.0090e+03 1.3900e+02 1.0000e+00 - 2.4120e+03 1.4000e+02 1.0000e+00 - 9.7900e+02 1.0000e+02 1.0000e+00 - 6.3700e+02 2.4200e+02 2.0000e+00 - 2.3740e+03 1.4900e+02 1.0000e+00 - 3.2920e+03 1.8400e+02 2.0000e+00 - 2.0780e+03 5.9800e+02 2.0000e+00 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.1000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 7.9000e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.7400e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 1.0670e+03 0 - 1.0830e+03 1.0000e+00 - 1.1700e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.729419 -- next: -0.659925 -- N events: 1 -- N risk: 1 -current value: -0.659925 -- next: -0.569259 -- N events: 2 -- N risk: 2 -current value: -0.569259 -- next: -0.559599 -- N events: 3 -- N risk: 3 -current value: -0.559599 -- next: -0.515862 -- N events: 5 -- N risk: 5 - -lower cutpoint: -0.559599 - - n_events, left node: 5 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 0.840697 ---- next value: 0.794871 ---- N events: 0 ---- N risk: 1 -current value: 0.794871 ---- next value: 0.78988 ---- N events: 2 ---- N risk: 3 -current value: 0.78988 ---- next value: 0.788011 ---- N events: 3 ---- N risk: 4 -current value: 0.788011 ---- next value: 0.757398 ---- N events: 6 ---- N risk: 7 - -upper cutpoint: 0.757398 - - n_events, right node: 6 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -0.4886 - -0.4879 - -0.4731 - 0.1206 - 0.7197 - - -testing cutpoint: -0.488599 - - ---- view of lincomb & g_node & w_node ---- - - -0.7294 0 1.0000 - -0.6599 0 1.0000 - -0.5693 0 1.0000 - -0.5596 0 2.0000 - -0.5159 0 1.0000 - -0.5110 0 2.0000 - -0.5085 0 1.0000 - -0.5084 0 2.0000 - -0.4886 0 1.0000 - -0.4879 1.0000 2.0000 - -0.4787 1.0000 1.0000 - -0.4761 1.0000 1.0000 - -0.4731 1.0000 1.0000 - -0.4516 1.0000 1.0000 - -0.2187 1.0000 2.0000 - 0.0522 1.0000 1.0000 - 0.0640 1.0000 1.0000 - 0.1206 1.0000 1.0000 - 0.1822 1.0000 2.0000 - 0.7197 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.178962 - ------------------------------------------- - -testing cutpoint: -0.487877 - - ---- view of lincomb & g_node & w_node ---- - - -0.7294 0 1.0000 - -0.6599 0 1.0000 - -0.5693 0 1.0000 - -0.5596 0 2.0000 - -0.5159 0 1.0000 - -0.5110 0 2.0000 - -0.5085 0 1.0000 - -0.5084 0 2.0000 - -0.4886 0 1.0000 - -0.4879 0 2.0000 - -0.4787 1.0000 1.0000 - -0.4761 1.0000 1.0000 - -0.4731 1.0000 1.0000 - -0.4516 1.0000 1.0000 - -0.2187 1.0000 2.0000 - 0.0522 1.0000 1.0000 - 0.0640 1.0000 1.0000 - 0.1206 1.0000 1.0000 - 0.1822 1.0000 2.0000 - 0.7197 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0127319 - ------------------------------------------- - -testing cutpoint: -0.473087 - - ---- view of lincomb & g_node & w_node ---- - - -0.7294 0 1.0000 - -0.6599 0 1.0000 - -0.5693 0 1.0000 - -0.5596 0 2.0000 - -0.5159 0 1.0000 - -0.5110 0 2.0000 - -0.5085 0 1.0000 - -0.5084 0 2.0000 - -0.4886 0 1.0000 - -0.4879 0 2.0000 - -0.4787 0 1.0000 - -0.4761 0 1.0000 - -0.4731 0 1.0000 - -0.4516 1.0000 1.0000 - -0.2187 1.0000 2.0000 - 0.0522 1.0000 1.0000 - 0.0640 1.0000 1.0000 - 0.1206 1.0000 1.0000 - 0.1822 1.0000 2.0000 - 0.7197 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.14172 - ------------------------------------------- - -testing cutpoint: 0.120597 - - ---- view of lincomb & g_node & w_node ---- - - -0.7294 0 1.0000 - -0.6599 0 1.0000 - -0.5693 0 1.0000 - -0.5596 0 2.0000 - -0.5159 0 1.0000 - -0.5110 0 2.0000 - -0.5085 0 1.0000 - -0.5084 0 2.0000 - -0.4886 0 1.0000 - -0.4879 0 2.0000 - -0.4787 0 1.0000 - -0.4761 0 1.0000 - -0.4731 0 1.0000 - -0.4516 0 1.0000 - -0.2187 0 2.0000 - 0.0522 0 1.0000 - 0.0640 0 1.0000 - 0.1206 0 1.0000 - 0.1822 1.0000 2.0000 - 0.7197 1.0000 1.0000 - - -logrank stat for this cutpoint: 11.4292 - ------------------------------------------- - -testing cutpoint: 0.719716 - - ---- view of lincomb & g_node & w_node ---- - - -0.7294 0 1.0000 - -0.6599 0 1.0000 - -0.5693 0 1.0000 - -0.5596 0 2.0000 - -0.5159 0 1.0000 - -0.5110 0 2.0000 - -0.5085 0 1.0000 - -0.5084 0 2.0000 - -0.4886 0 1.0000 - -0.4879 0 2.0000 - -0.4787 0 1.0000 - -0.4761 0 1.0000 - -0.4731 0 1.0000 - -0.4516 0 1.0000 - -0.2187 0 2.0000 - 0.0522 0 1.0000 - 0.0640 0 1.0000 - 0.1206 0 1.0000 - 0.1822 0 2.0000 - 0.7197 0 1.0000 - - -logrank stat for this cutpoint: 5.50321 - ------------------------------------------- - -node assignments: - 6 - 3 - 6 - 5 - 3 - 6 - 4 - 6 - 4 - 4 - 4 - 3 - 3 - 4 - 3 - 4 - 5 - 6 - 4 - 6 - 4 - 5 - 3 - 6 - 4 - 4 - -growing node 3 - - ---- view of x_node ---- - - 1.0000 1.0000 2.0000 - 1.0000 1.0000 2.0000 - 2.0000 2.0000 1.0000 - 1.0000 2.0000 2.0000 - 2.0000 2.0000 2.0000 - 2.0000 2.0000 2.0000 - 2.0000 1.0000 2.0000 - 1.0000 2.0000 1.0000 - 2.0000 2.0000 2.0000 - 1.0000 1.0000 1.0000 - 1.0000 1.0000 2.0000 - 1.0000 1.0000 2.0000 - 1.0000 1.0000 1.0000 - 2.0000 1.0000 2.0000 - 2.0000 1.0000 2.0000 - 2.0000 2.0000 2.0000 - 2.0000 1.0000 2.0000 - 1.0000 2.0000 2.0000 - 2.0000 1.0000 2.0000 - 2.0000 2.0000 2.0000 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3700e+02 0 - 7.6900e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 8.7700e+02 0 - 9.0100e+02 0 - 9.3900e+02 0 - 1.0120e+03 1.0000e+00 - 1.0300e+03 0 - 1.0800e+03 1.0000e+00 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 2 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 3 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 4 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 8 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 10 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 11 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 12 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 13 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 15 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 17 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 18 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 20 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 21 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 23 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 24 -current value: -0.490365 -- next: -0.490365 -- N events: 0 -- N risk: 26 -current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 28 -current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 29 -current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 30 -current value: -0.490365 -- next: -0.490365 -- N events: 2 -- N risk: 31 -current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 32 -current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 33 -current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 34 -current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 35 -current value: -0.490365 -- next: -0.490365 -- N events: 3 -- N risk: 37 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 39 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 41 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 42 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 45 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 47 -current value: -0.490365 -- next: -0.490365 -- N events: 5 -- N risk: 49 -current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 50 -current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 53 -current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 55 -current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 57 -current value: -0.490365 -- next: -0.490365 -- N events: 6 -- N risk: 61 -current value: -0.490365 -- next: -0.487628 -- N events: 6 -- N risk: 62 - -lower cutpoint: -0.490365 - - n_events, left node: 6 - - n_risk, left node: 62 - ------ finding upper bound for cut-points ----- -current value: 2.7847 ---- next value: 2.7847 ---- N events: 2 ---- N risk: 2 -current value: 2.7847 ---- next value: 2.78196 ---- N events: 2 ---- N risk: 3 -current value: 2.78196 ---- next value: 2.78196 ---- N events: 3 ---- N risk: 4 -current value: 2.78196 ---- next value: 2.78196 ---- N events: 4 ---- N risk: 5 -current value: 2.78196 ---- next value: 2.78196 ---- N events: 5 ---- N risk: 6 -current value: 2.78196 ---- next value: 2.08134 ---- N events: 5 ---- N risk: 7 - -upper cutpoint: 2.08134 - - n_events, right node: 5 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -0.4904 - 0.2130 - 0.2157 - 2.0786 - 2.0813 - - -testing cutpoint: -0.490365 - - ---- view of lincomb & g_node & w_node ---- - - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 4.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - - -logrank stat for this cutpoint: 8.96747 - ------------------------------------------- - -testing cutpoint: 0.212989 - - ---- view of lincomb & g_node & w_node ---- - - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 4.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - - -logrank stat for this cutpoint: 12.7343 - ------------------------------------------- - -testing cutpoint: 0.215726 - - ---- view of lincomb & g_node & w_node ---- - - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 4.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - - -logrank stat for this cutpoint: 22.9887 - ------------------------------------------- - -testing cutpoint: 2.07861 - - ---- view of lincomb & g_node & w_node ---- - - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 4.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - - -logrank stat for this cutpoint: 6.02857 - ------------------------------------------- - -testing cutpoint: 2.08134 - - ---- view of lincomb & g_node & w_node ---- - - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 4.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 2.0000 - -0.4904 0 2.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - -0.4904 0 1.0000 - - -logrank stat for this cutpoint: 8.07356 - ------------------------------------------- - -node assignments: - 7 - 4 - 5 - 8 - 7 - 5 - 5 - 7 - 7 - 7 - 7 - 7 - 4 - 8 - 7 - 7 - 6 - 7 - 7 - 4 - 7 - 7 - 4 - 7 - 8 - 7 - 5 - 7 - 7 - 4 - 7 - 6 - 5 - 6 - 7 - 5 - 4 - 4 - 4 - 8 - 7 - 4 - 7 - 7 - 7 - 7 - 4 - 6 - 4 - 4 - 7 - 4 - 7 - 6 - 6 - 7 - 7 - 7 - 7 - 4 - 7 - 7 - 7 - 7 - 7 - 5 - 7 - 4 - 7 - 8 - 8 - 5 - 7 - 7 - 7 - 4 - 7 - 5 - 4 - 7 - 7 - 7 - 4 - 5 - 7 - 7 - 7 - 7 - 5 - 7 - 7 - 7 - 7 - 4 - 7 - 7 - 6 - 4 - 7 - 7 - 6 - 4 - 8 - 4 - 7 - 5 - 8 - 7 - 7 - 4 - 5 - 4 - 7 - 7 - 4 - 7 - 7 - 5 - 4 - 5 - 7 - 7 - 4 - 4 - 7 - 7 - 5 - -growing node 4 - - ---- view of x_node ---- - - 2.0000e+00 2.0000e+00 1.2730e+03 - 1.0000e+00 1.0000e+00 1.0560e+03 - 2.0000e+00 2.0000e+00 8.1500e+02 - 2.0000e+00 1.0000e+00 1.1120e+03 - 2.0000e+00 2.0000e+00 7.2770e+03 - 1.0000e+00 2.0000e+00 1.0200e+03 - 1.0000e+00 2.0000e+00 1.6260e+03 - 1.0000e+00 2.0000e+00 1.3760e+03 - 1.0000e+00 2.0000e+00 3.6810e+03 - 1.0000e+00 1.0000e+00 1.6640e+03 - 1.0000e+00 2.0000e+00 1.4400e+03 - 2.0000e+00 2.0000e+00 1.1660e+03 - 1.0000e+00 2.0000e+00 1.7680e+03 - 2.0000e+00 2.0000e+00 1.1900e+03 - 1.0000e+00 2.0000e+00 1.2570e+03 - 1.0000e+00 2.0000e+00 5.4872e+03 - 2.0000e+00 2.0000e+00 6.7100e+02 - 2.0000e+00 2.0000e+00 1.9110e+03 - 2.0000e+00 2.0000e+00 1.6770e+03 - 1.0000e+00 2.0000e+00 9.3300e+02 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9100e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.6200e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.9400e+02 0 - 1.2340e+03 0 - 1.2500e+03 0 - 1.4080e+03 0 - 1.4340e+03 1.0000e+00 - 1.5040e+03 0 - 1.5420e+03 0 - 1.5580e+03 0 - 1.5760e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.883772 -- next: -0.817287 -- N events: 0 -- N risk: 1 -current value: -0.817287 -- next: -0.790767 -- N events: 0 -- N risk: 3 -current value: -0.790767 -- next: -0.736437 -- N events: 2 -- N risk: 5 - -lower cutpoint: -0.790767 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 5.10489 ---- next value: 4.99292 ---- N events: 1 ---- N risk: 1 -current value: 4.99292 ---- next value: 4.6897 ---- N events: 2 ---- N risk: 2 -current value: 4.6897 ---- next value: 0.500111 ---- N events: 3 ---- N risk: 3 -current value: 0.500111 ---- next value: 0.399335 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.399335 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.7217 - -0.7064 - -0.6320 - -0.4555 - 0.0506 - - -testing cutpoint: -0.721703 - - ---- view of lincomb & g_node & w_node ---- - - -0.8838 0 1.0000 - -0.8173 0 2.0000 - -0.7908 0 2.0000 - -0.7364 0 1.0000 - -0.7261 0 2.0000 - -0.7217 0 1.0000 - -0.7064 1.0000 1.0000 - -0.6604 1.0000 1.0000 - -0.6320 1.0000 1.0000 - -0.6293 1.0000 2.0000 - -0.5889 1.0000 1.0000 - -0.5253 1.0000 3.0000 - -0.4555 1.0000 1.0000 - -0.4395 1.0000 1.0000 - -0.3958 1.0000 1.0000 - -0.3938 1.0000 1.0000 - -0.3739 1.0000 1.0000 - -0.3621 1.0000 2.0000 - -0.3413 1.0000 1.0000 - -0.3279 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.866692 - ------------------------------------------- - -testing cutpoint: -0.706417 - - ---- view of lincomb & g_node & w_node ---- - - -0.8838 0 1.0000 - -0.8173 0 2.0000 - -0.7908 0 2.0000 - -0.7364 0 1.0000 - -0.7261 0 2.0000 - -0.7217 0 1.0000 - -0.7064 0 1.0000 - -0.6604 1.0000 1.0000 - -0.6320 1.0000 1.0000 - -0.6293 1.0000 2.0000 - -0.5889 1.0000 1.0000 - -0.5253 1.0000 3.0000 - -0.4555 1.0000 1.0000 - -0.4395 1.0000 1.0000 - -0.3958 1.0000 1.0000 - -0.3938 1.0000 1.0000 - -0.3739 1.0000 1.0000 - -0.3621 1.0000 2.0000 - -0.3413 1.0000 1.0000 - -0.3279 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.114467 - ------------------------------------------- - -testing cutpoint: -0.632013 - - ---- view of lincomb & g_node & w_node ---- - - -0.8838 0 1.0000 - -0.8173 0 2.0000 - -0.7908 0 2.0000 - -0.7364 0 1.0000 - -0.7261 0 2.0000 - -0.7217 0 1.0000 - -0.7064 0 1.0000 - -0.6604 0 1.0000 - -0.6320 0 1.0000 - -0.6293 1.0000 2.0000 - -0.5889 1.0000 1.0000 - -0.5253 1.0000 3.0000 - -0.4555 1.0000 1.0000 - -0.4395 1.0000 1.0000 - -0.3958 1.0000 1.0000 - -0.3938 1.0000 1.0000 - -0.3739 1.0000 1.0000 - -0.3621 1.0000 2.0000 - -0.3413 1.0000 1.0000 - -0.3279 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.16065 - ------------------------------------------- - -testing cutpoint: -0.455506 - - ---- view of lincomb & g_node & w_node ---- - - -0.8838 0 1.0000 - -0.8173 0 2.0000 - -0.7908 0 2.0000 - -0.7364 0 1.0000 - -0.7261 0 2.0000 - -0.7217 0 1.0000 - -0.7064 0 1.0000 - -0.6604 0 1.0000 - -0.6320 0 1.0000 - -0.6293 0 2.0000 - -0.5889 0 1.0000 - -0.5253 0 3.0000 - -0.4555 0 1.0000 - -0.4395 1.0000 1.0000 - -0.3958 1.0000 1.0000 - -0.3938 1.0000 1.0000 - -0.3739 1.0000 1.0000 - -0.3621 1.0000 2.0000 - -0.3413 1.0000 1.0000 - -0.3279 1.0000 1.0000 - - -logrank stat for this cutpoint: 10.4348 - ------------------------------------------- - -testing cutpoint: 0.0505909 - - ---- view of lincomb & g_node & w_node ---- - - -0.8838 0 1.0000 - -0.8173 0 2.0000 - -0.7908 0 2.0000 - -0.7364 0 1.0000 - -0.7261 0 2.0000 - -0.7217 0 1.0000 - -0.7064 0 1.0000 - -0.6604 0 1.0000 - -0.6320 0 1.0000 - -0.6293 0 2.0000 - -0.5889 0 1.0000 - -0.5253 0 3.0000 - -0.4555 0 1.0000 - -0.4395 0 1.0000 - -0.3958 0 1.0000 - -0.3938 0 1.0000 - -0.3739 0 1.0000 - -0.3621 0 2.0000 - -0.3413 0 1.0000 - -0.3279 0 1.0000 - - -logrank stat for this cutpoint: 7.87524 - ------------------------------------------- - -node assignments: - 7 - 10 - 5 - 10 - 5 - 6 - 6 - 7 - 6 - 7 - 7 - 8 - 8 - 10 - 6 - 7 - 10 - 6 - 10 - 9 - 10 - 10 - 5 - 7 - 10 - 6 - 7 - 9 - 6 - 5 - -growing node 5 - - ---- view of x_node ---- - - 2.0000 2.0000 1.0000 - 2.0000 1.0000 2.0000 - 1.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 2.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 2.0000 1.0000 - 2.0000 2.0000 2.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 2.0000 1.0000 1.0000 - 1.0000 1.0000 1.0000 - - - ---- view of y_node ---- - - 7.1000e+01 1.0000e+00 - 2.1600e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 7.9000e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.7400e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 1.0670e+03 0 - 1.0830e+03 1.0000e+00 - 1.1700e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.3560e+03 1.0000e+00 - 1.8820e+03 0 - 2.2560e+03 1.0000e+00 - 2.5400e+03 1.0000e+00 - 3.3880e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.388904 -- next: -0.388904 -- N events: 1 -- N risk: 1 -current value: -0.388904 -- next: -0.388904 -- N events: 2 -- N risk: 2 -current value: -0.388904 -- next: -0.280695 -- N events: 2 -- N risk: 3 -current value: -0.280695 -- next: -0.280695 -- N events: 2 -- N risk: 4 -current value: -0.280695 -- next: 0.0885312 -- N events: 4 -- N risk: 6 - -lower cutpoint: -0.280695 - - n_events, left node: 4 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 0.574743 ---- next value: 0.0973081 ---- N events: 1 ---- N risk: 1 -current value: 0.0973081 ---- next value: 0.0885312 ---- N events: 3 ---- N risk: 3 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 4 ---- N risk: 4 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 5 ---- N risk: 5 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 5 ---- N risk: 6 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 6 ---- N risk: 7 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 7 ---- N risk: 8 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 8 ---- N risk: 9 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 9 ---- N risk: 10 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 11 ---- N risk: 12 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 13 ---- N risk: 14 -current value: 0.0885312 ---- next value: 0.0885312 ---- N events: 14 ---- N risk: 15 -current value: 0.0885312 ---- next value: -0.280695 ---- N events: 16 ---- N risk: 17 - -upper cutpoint: -0.280695 - - n_events, right node: 16 - - n_risk, right node: 17 - -testing cutpoint: -0.280695 - - ---- view of lincomb & g_node & w_node ---- - - -0.3889 0 1.0000 - -0.3889 0 1.0000 - -0.3889 0 1.0000 - -0.2807 0 1.0000 - -0.2807 0 2.0000 - 0.0885 1.0000 2.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 2.0000 - 0.0885 1.0000 2.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0885 1.0000 1.0000 - 0.0973 1.0000 2.0000 - 0.5747 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0986449 - ------------------------------------------- - -best split stat, 0.0986449, was < split_min_stat, 3.84 -sprouting new leaf with node 5 - - ---- view of leaf_data ---- - - 7.1000e+01 9.5652e-01 4.3478e-02 - 2.1600e+02 9.1304e-01 8.8933e-02 - 3.0400e+02 8.2609e-01 1.8417e-01 - 7.9000e+02 7.8261e-01 2.3680e-01 - 8.5300e+02 6.9565e-01 3.4791e-01 - - -growing node 6 - -sprouting new leaf with node 6 - - ---- view of leaf_data ---- - - 4.1000e+01 9.2857e-01 7.1429e-02 - 5.1000e+01 8.5714e-01 1.4835e-01 - 1.3100e+02 7.8571e-01 2.3168e-01 - 2.6400e+02 6.4286e-01 4.1350e-01 - 3.2600e+02 5.0000e-01 6.3573e-01 - - -growing node 7 - - ---- view of x_node ---- - - 2.1855e+02 4.4700e+02 1.0000e+00 - 9.7650e+01 3.0600e+02 1.0000e+00 - 1.1000e+02 2.6400e+02 1.0000e+00 - 1.1780e+02 2.2400e+02 2.0000e+00 - 1.3485e+02 2.7700e+02 2.0000e+00 - 1.3600e+02 2.0000e+02 2.0000e+00 - 1.1470e+02 2.8200e+02 2.0000e+00 - 2.0500e+02 3.0400e+02 1.0000e+00 - 1.7100e+02 2.3400e+02 1.0000e+00 - 9.1000e+01 4.2200e+02 2.0000e+00 - 2.0305e+02 2.1600e+02 2.0000e+00 - 1.2000e+02 2.9600e+02 2.0000e+00 - 1.3000e+02 3.4400e+02 2.0000e+00 - 9.1000e+01 2.8800e+02 1.0000e+00 - 1.4260e+02 2.9500e+02 2.0000e+00 - 2.8800e+02 2.7500e+02 2.0000e+00 - 4.5000e+01 2.4600e+02 1.0000e+00 - 7.4000e+01 2.9500e+02 2.0000e+00 - 1.9000e+02 2.4800e+02 2.0000e+00 - 1.3700e+02 2.9300e+02 2.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 7.3700e+02 0 - 7.6900e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 8.3700e+02 0 - 9.0100e+02 0 - 9.3900e+02 0 - 1.0300e+03 0 - 1.0800e+03 1.0000e+00 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2300e+03 0 - 1.2950e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.535166 -- next: -0.485257 -- N events: 0 -- N risk: 1 -current value: -0.485257 -- next: -0.483903 -- N events: 0 -- N risk: 2 -current value: -0.483903 -- next: -0.482685 -- N events: 0 -- N risk: 4 -current value: -0.482685 -- next: -0.481037 -- N events: 0 -- N risk: 5 -current value: -0.481037 -- next: -0.480347 -- N events: 0 -- N risk: 7 -current value: -0.480347 -- next: -0.476723 -- N events: 0 -- N risk: 8 -current value: -0.476723 -- next: -0.474017 -- N events: 0 -- N risk: 9 -current value: -0.474017 -- next: -0.472976 -- N events: 0 -- N risk: 11 -current value: -0.472976 -- next: -0.433407 -- N events: 0 -- N risk: 13 -current value: -0.433407 -- next: -0.412031 -- N events: 0 -- N risk: 15 -current value: -0.412031 -- next: -0.407689 -- N events: 0 -- N risk: 18 -current value: -0.407689 -- next: -0.40617 -- N events: 0 -- N risk: 19 -current value: -0.40617 -- next: -0.400797 -- N events: 0 -- N risk: 21 -current value: -0.400797 -- next: -0.341982 -- N events: 0 -- N risk: 22 -current value: -0.341982 -- next: -0.339588 -- N events: 0 -- N risk: 23 -current value: -0.339588 -- next: -0.322862 -- N events: 0 -- N risk: 24 -current value: -0.322862 -- next: -0.318393 -- N events: 1 -- N risk: 25 - -lower cutpoint: -0.322862 - - n_events, left node: 1 - - n_risk, left node: 25 - ------ finding upper bound for cut-points ----- -current value: 0.995688 ---- next value: 0.714673 ---- N events: 0 ---- N risk: 1 -current value: 0.714673 ---- next value: 0.658321 ---- N events: 0 ---- N risk: 7 -current value: 0.658321 ---- next value: 0.563605 ---- N events: 0 ---- N risk: 8 -current value: 0.563605 ---- next value: 0.554736 ---- N events: 2 ---- N risk: 10 - -upper cutpoint: 0.554736 - - n_events, right node: 2 - - n_risk, right node: 10 - -Randomly sampled cutpoints: - -0.0154 - 0.0558 - 0.2163 - 0.3910 - 0.4601 - - -testing cutpoint: -0.0153728 - - ---- view of lincomb & g_node & w_node ---- - - -0.5352 0 1.0000 - -0.4853 0 1.0000 - -0.4839 0 2.0000 - -0.4827 0 1.0000 - -0.4810 0 2.0000 - -0.4803 0 1.0000 - -0.4767 0 1.0000 - -0.4740 0 2.0000 - -0.4730 0 2.0000 - -0.4334 0 2.0000 - -0.4120 0 3.0000 - -0.4077 0 1.0000 - -0.4062 0 2.0000 - -0.4008 0 1.0000 - -0.3420 0 1.0000 - -0.3396 0 1.0000 - -0.3229 0 1.0000 - -0.3184 0 2.0000 - -0.3116 0 2.0000 - -0.2964 0 1.0000 - - -logrank stat for this cutpoint: 0.873139 - ------------------------------------------- - -testing cutpoint: 0.0557706 - - ---- view of lincomb & g_node & w_node ---- - - -0.5352 0 1.0000 - -0.4853 0 1.0000 - -0.4839 0 2.0000 - -0.4827 0 1.0000 - -0.4810 0 2.0000 - -0.4803 0 1.0000 - -0.4767 0 1.0000 - -0.4740 0 2.0000 - -0.4730 0 2.0000 - -0.4334 0 2.0000 - -0.4120 0 3.0000 - -0.4077 0 1.0000 - -0.4062 0 2.0000 - -0.4008 0 1.0000 - -0.3420 0 1.0000 - -0.3396 0 1.0000 - -0.3229 0 1.0000 - -0.3184 0 2.0000 - -0.3116 0 2.0000 - -0.2964 0 1.0000 - - -logrank stat for this cutpoint: 1.09862 - ------------------------------------------- - -testing cutpoint: 0.216325 - - ---- view of lincomb & g_node & w_node ---- - - -0.5352 0 1.0000 - -0.4853 0 1.0000 - -0.4839 0 2.0000 - -0.4827 0 1.0000 - -0.4810 0 2.0000 - -0.4803 0 1.0000 - -0.4767 0 1.0000 - -0.4740 0 2.0000 - -0.4730 0 2.0000 - -0.4334 0 2.0000 - -0.4120 0 3.0000 - -0.4077 0 1.0000 - -0.4062 0 2.0000 - -0.4008 0 1.0000 - -0.3420 0 1.0000 - -0.3396 0 1.0000 - -0.3229 0 1.0000 - -0.3184 0 2.0000 - -0.3116 0 2.0000 - -0.2964 0 1.0000 - - -logrank stat for this cutpoint: 10.2286 - ------------------------------------------- - -testing cutpoint: 0.39104 - - ---- view of lincomb & g_node & w_node ---- - - -0.5352 0 1.0000 - -0.4853 0 1.0000 - -0.4839 0 2.0000 - -0.4827 0 1.0000 - -0.4810 0 2.0000 - -0.4803 0 1.0000 - -0.4767 0 1.0000 - -0.4740 0 2.0000 - -0.4730 0 2.0000 - -0.4334 0 2.0000 - -0.4120 0 3.0000 - -0.4077 0 1.0000 - -0.4062 0 2.0000 - -0.4008 0 1.0000 - -0.3420 0 1.0000 - -0.3396 0 1.0000 - -0.3229 0 1.0000 - -0.3184 0 2.0000 - -0.3116 0 2.0000 - -0.2964 0 1.0000 - - -logrank stat for this cutpoint: 0.542733 - ------------------------------------------- - -testing cutpoint: 0.460087 - - ---- view of lincomb & g_node & w_node ---- - - -0.5352 0 1.0000 - -0.4853 0 1.0000 - -0.4839 0 2.0000 - -0.4827 0 1.0000 - -0.4810 0 2.0000 - -0.4803 0 1.0000 - -0.4767 0 1.0000 - -0.4740 0 2.0000 - -0.4730 0 2.0000 - -0.4334 0 2.0000 - -0.4120 0 3.0000 - -0.4077 0 1.0000 - -0.4062 0 2.0000 - -0.4008 0 1.0000 - -0.3420 0 1.0000 - -0.3396 0 1.0000 - -0.3229 0 1.0000 - -0.3184 0 2.0000 - -0.3116 0 2.0000 - -0.2964 0 1.0000 - - -logrank stat for this cutpoint: 3.17724 - ------------------------------------------- - -node assignments: - 10 - 5 - 5 - 9 - 12 - 8 - 12 - 12 - 10 - 11 - 8 - 5 - 11 - 11 - 11 - 11 - 12 - 11 - 9 - 11 - 6 - 5 - 11 - 5 - 10 - 6 - 8 - 10 - 5 - 9 - 5 - 12 - 11 - 11 - 11 - 12 - 11 - 11 - 10 - 8 - 12 - 10 - 6 - 5 - 5 - 11 - 9 - 12 - 11 - 12 - 11 - 5 - 11 - 5 - 11 - 11 - 11 - 11 - 11 - 5 - 5 - 11 - 10 - 11 - 9 - 12 - 11 - 10 - 5 - 11 - 11 - 11 - 9 - 11 - 8 - 11 - 11 - 12 - 9 - 12 - 11 - 9 - 9 - 11 - 11 - 5 - 11 - 10 - 10 - 9 - 10 - 10 - 11 - 6 - 11 - 8 - 11 - 6 - 8 - 10 - 11 - 11 - 6 - 11 - 10 - 10 - 6 - 12 - 6 - 11 - 11 - 8 - 11 - 10 - -growing node 8 - -sprouting new leaf with node 8 - - ---- view of leaf_data ---- - - 6.1100e+02 8.8889e-01 1.1111e-01 - 7.9900e+02 8.3333e-01 1.7361e-01 - 1.0120e+03 7.0513e-01 3.2746e-01 - 1.3600e+03 6.4103e-01 4.1837e-01 - 1.5360e+03 5.7692e-01 5.1837e-01 - - -growing node 9 - -sprouting new leaf with node 9 - - ---- view of leaf_data ---- - - 1.1000e+02 9.4737e-01 5.2632e-02 - 1.8600e+02 8.4211e-01 1.6374e-01 - 1.5760e+03 7.4854e-01 2.7485e-01 - 3.0900e+03 0 1.2749e+00 - - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 1.4000e+02 9.4737e-01 5.2632e-02 - 1.9100e+02 8.9474e-01 1.0819e-01 - 3.2100e+02 8.4211e-01 1.6701e-01 - 3.4800e+02 7.8947e-01 2.2951e-01 - 3.8800e+02 7.3684e-01 2.9618e-01 - - -growing node 11 - - ---- view of x_node ---- - - 1.2900e+02 9.5000e+00 9.7650e+01 - 1.2100e+02 1.0000e+01 1.1000e+02 - 1.5900e+02 1.0500e+01 1.1780e+02 - 1.8600e+02 1.0800e+01 1.3600e+02 - 3.0800e+02 9.8000e+00 1.1470e+02 - 3.9000e+01 1.0200e+01 1.7100e+02 - 1.0300e+02 9.6000e+00 9.1000e+01 - 1.2100e+02 1.0000e+01 1.2000e+02 - 5.2000e+01 1.0500e+01 1.3000e+02 - 2.4000e+01 1.0400e+01 9.1000e+01 - 2.2000e+01 1.0800e+01 4.5000e+01 - 5.0000e+01 1.0500e+01 7.4000e+01 - 6.5000e+01 1.0000e+01 5.7000e+01 - 6.9000e+01 9.6000e+00 1.4200e+02 - 3.8000e+01 9.8000e+00 5.7000e+01 - 4.4000e+01 9.8000e+00 8.4000e+01 - 6.3000e+01 1.0100e+01 1.5035e+02 - 9.7000e+01 9.5000e+00 7.1000e+01 - 4.0000e+01 9.9000e+00 8.3000e+01 - 6.7000e+01 1.0700e+01 1.4500e+02 - - - ---- view of y_node ---- - - 5.1500e+02 1.0000e+00 - 7.3700e+02 0 - 7.6900e+02 1.0000e+00 - 7.8800e+02 0 - 8.3700e+02 0 - 9.3900e+02 0 - 1.0300e+03 0 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2300e+03 0 - 1.2950e+03 0 - 1.4010e+03 0 - 1.4120e+03 0 - 1.4330e+03 0 - 1.4340e+03 0 - 1.4350e+03 0 - 1.4550e+03 0 - 1.4570e+03 0 - 1.4810e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.06915 -- next: -0.978985 -- N events: 0 -- N risk: 4 -current value: -0.978985 -- next: -0.971888 -- N events: 0 -- N risk: 5 -current value: -0.971888 -- next: -0.900924 -- N events: 0 -- N risk: 7 -current value: -0.900924 -- next: -0.877177 -- N events: 0 -- N risk: 9 -current value: -0.877177 -- next: -0.776323 -- N events: 0 -- N risk: 11 -current value: -0.776323 -- next: -0.766868 -- N events: 0 -- N risk: 12 -current value: -0.766868 -- next: -0.714359 -- N events: 0 -- N risk: 13 -current value: -0.714359 -- next: -0.699652 -- N events: 0 -- N risk: 14 -current value: -0.699652 -- next: -0.693545 -- N events: 1 -- N risk: 15 - -lower cutpoint: -0.699652 - - n_events, left node: 1 - - n_risk, left node: 15 - ------ finding upper bound for cut-points ----- -current value: 3.45673 ---- next value: 3.01662 ---- N events: 0 ---- N risk: 2 -current value: 3.01662 ---- next value: 2.09452 ---- N events: 3 ---- N risk: 5 - -upper cutpoint: 2.09452 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.5298 - -0.3881 - 0.2090 - 0.2207 - 0.6986 - - -testing cutpoint: -0.529784 - - ---- view of lincomb & g_node & w_node ---- - - -1.0692 0 4.0000 - -0.9790 0 1.0000 - -0.9719 0 2.0000 - -0.9009 0 2.0000 - -0.8772 0 2.0000 - -0.7763 0 1.0000 - -0.7669 0 1.0000 - -0.7144 0 1.0000 - -0.6997 0 1.0000 - -0.6935 0 1.0000 - -0.6609 0 1.0000 - -0.6392 0 1.0000 - -0.6317 0 2.0000 - -0.6285 0 2.0000 - -0.6222 0 1.0000 - -0.6047 0 1.0000 - -0.6040 0 1.0000 - -0.5889 0 1.0000 - -0.5691 0 2.0000 - -0.5584 0 1.0000 - - -logrank stat for this cutpoint: 0.211496 - ------------------------------------------- - -testing cutpoint: -0.388112 - - ---- view of lincomb & g_node & w_node ---- - - -1.0692 0 4.0000 - -0.9790 0 1.0000 - -0.9719 0 2.0000 - -0.9009 0 2.0000 - -0.8772 0 2.0000 - -0.7763 0 1.0000 - -0.7669 0 1.0000 - -0.7144 0 1.0000 - -0.6997 0 1.0000 - -0.6935 0 1.0000 - -0.6609 0 1.0000 - -0.6392 0 1.0000 - -0.6317 0 2.0000 - -0.6285 0 2.0000 - -0.6222 0 1.0000 - -0.6047 0 1.0000 - -0.6040 0 1.0000 - -0.5889 0 1.0000 - -0.5691 0 2.0000 - -0.5584 0 1.0000 - - -logrank stat for this cutpoint: 1.31492 - ------------------------------------------- - -testing cutpoint: 0.208971 - - ---- view of lincomb & g_node & w_node ---- - - -1.0692 0 4.0000 - -0.9790 0 1.0000 - -0.9719 0 2.0000 - -0.9009 0 2.0000 - -0.8772 0 2.0000 - -0.7763 0 1.0000 - -0.7669 0 1.0000 - -0.7144 0 1.0000 - -0.6997 0 1.0000 - -0.6935 0 1.0000 - -0.6609 0 1.0000 - -0.6392 0 1.0000 - -0.6317 0 2.0000 - -0.6285 0 2.0000 - -0.6222 0 1.0000 - -0.6047 0 1.0000 - -0.6040 0 1.0000 - -0.5889 0 1.0000 - -0.5691 0 2.0000 - -0.5584 0 1.0000 - - -logrank stat for this cutpoint: 5.31815 - ------------------------------------------- - -testing cutpoint: 0.220693 - - ---- view of lincomb & g_node & w_node ---- - - -1.0692 0 4.0000 - -0.9790 0 1.0000 - -0.9719 0 2.0000 - -0.9009 0 2.0000 - -0.8772 0 2.0000 - -0.7763 0 1.0000 - -0.7669 0 1.0000 - -0.7144 0 1.0000 - -0.6997 0 1.0000 - -0.6935 0 1.0000 - -0.6609 0 1.0000 - -0.6392 0 1.0000 - -0.6317 0 2.0000 - -0.6285 0 2.0000 - -0.6222 0 1.0000 - -0.6047 0 1.0000 - -0.6040 0 1.0000 - -0.5889 0 1.0000 - -0.5691 0 2.0000 - -0.5584 0 1.0000 - - -logrank stat for this cutpoint: 8.69912 - ------------------------------------------- - -testing cutpoint: 0.698605 - - ---- view of lincomb & g_node & w_node ---- - - -1.0692 0 4.0000 - -0.9790 0 1.0000 - -0.9719 0 2.0000 - -0.9009 0 2.0000 - -0.8772 0 2.0000 - -0.7763 0 1.0000 - -0.7669 0 1.0000 - -0.7144 0 1.0000 - -0.6997 0 1.0000 - -0.6935 0 1.0000 - -0.6609 0 1.0000 - -0.6392 0 1.0000 - -0.6317 0 2.0000 - -0.6285 0 2.0000 - -0.6222 0 1.0000 - -0.6047 0 1.0000 - -0.6040 0 1.0000 - -0.5889 0 1.0000 - -0.5691 0 2.0000 - -0.5584 0 1.0000 - - -logrank stat for this cutpoint: 11.3364 - ------------------------------------------- - -node assignments: - 12 - 5 - 9 - 8 - 13 - 13 - 12 - 5 - 9 - 8 - 13 - 5 - 13 - 12 - 5 - 13 - 13 - 13 - 6 - 6 - 13 - 6 - 6 - 10 - 13 - 14 - 10 - 14 - 5 - 13 - 9 - 13 - 12 - 5 - 12 - 10 - 10 - 10 - 13 - 13 - 12 - 5 - 14 - 13 - 5 - 10 - 12 - 6 - 5 - 10 - 10 - 12 - 5 - 13 - 12 - 5 - 10 - 13 - 8 - 13 - 9 - 12 - 5 - 9 - 13 - 5 - 8 - 10 - 13 - 10 - 13 - 13 - 13 - 9 - 8 - 12 - 13 - 10 - 13 - 6 - 10 - 6 - 13 - 8 - 12 - 5 - 12 - 8 - 9 - 9 - 10 - 9 - 6 - -growing node 12 - - ---- view of x_node ---- - - 4.4700e+02 4.4000e+00 1.0000e+00 - 2.7700e+02 3.6000e+00 2.0000e+00 - 3.0400e+02 3.1800e+00 1.0000e+00 - 2.1600e+02 3.8500e+00 2.0000e+00 - 2.9500e+02 4.2200e+00 2.0000e+00 - 2.7500e+02 3.6100e+00 2.0000e+00 - 2.4800e+02 3.5700e+00 2.0000e+00 - 2.9300e+02 3.3100e+00 2.0000e+00 - 1.5100e+02 3.5000e+00 2.0000e+00 - 2.1500e+02 3.7000e+00 2.0000e+00 - 3.3000e+02 3.2600e+00 2.0000e+00 - 1.7800e+02 3.5000e+00 2.0000e+00 - 3.0300e+02 3.3600e+00 2.0000e+00 - 3.3200e+02 3.5500e+00 2.0000e+00 - 2.8300e+02 3.4800e+00 2.0000e+00 - 1.7500e+02 4.3800e+00 2.0000e+00 - 3.5600e+02 3.6500e+00 2.0000e+00 - 3.4800e+02 4.2000e+00 2.0000e+00 - 3.2700e+02 3.6000e+00 2.0000e+00 - 1.9500e+02 3.4400e+00 2.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 9.0100e+02 0 - 1.0800e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - 1.3630e+03 0 - 1.4200e+03 0 - 1.4270e+03 1.0000e+00 - 1.4870e+03 1.0000e+00 - 1.7690e+03 0 - 2.3180e+03 0 - 2.4190e+03 1.0000e+00 - 2.5630e+03 0 - 2.5760e+03 0 - 3.0920e+03 0 - 3.5810e+03 0 - 3.8390e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.04851 -- next: -0.611927 -- N events: 1 -- N risk: 1 -current value: -0.611927 -- next: -0.481616 -- N events: 1 -- N risk: 3 -current value: -0.481616 -- next: -0.367461 -- N events: 1 -- N risk: 9 - -lower cutpoint: -0.481616 - - n_events, left node: 1 - - n_risk, left node: 9 - ------ finding upper bound for cut-points ----- -current value: 0.591883 ---- next value: 0.496857 ---- N events: 1 ---- N risk: 1 -current value: 0.496857 ---- next value: 0.475427 ---- N events: 1 ---- N risk: 3 -current value: 0.475427 ---- next value: 0.379899 ---- N events: 1 ---- N risk: 4 -current value: 0.379899 ---- next value: 0.355096 ---- N events: 1 ---- N risk: 6 - -upper cutpoint: 0.355096 - - n_events, right node: 1 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.3675 - -0.1750 - 0.0854 - 0.1336 - 0.2461 - - -testing cutpoint: -0.367461 - - ---- view of lincomb & g_node & w_node ---- - - -1.0485 0 1.0000 - -0.6119 0 2.0000 - -0.4816 0 6.0000 - -0.3675 0 2.0000 - -0.1750 1.0000 1.0000 - -0.0772 1.0000 2.0000 - -0.0243 1.0000 2.0000 - 0.0854 1.0000 2.0000 - 0.1336 1.0000 1.0000 - 0.1758 1.0000 1.0000 - 0.2335 1.0000 1.0000 - 0.2461 1.0000 1.0000 - 0.2470 1.0000 2.0000 - 0.2567 1.0000 1.0000 - 0.3350 1.0000 1.0000 - 0.3433 1.0000 1.0000 - 0.3551 1.0000 3.0000 - 0.3799 1.0000 2.0000 - 0.4754 1.0000 1.0000 - 0.4969 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.08391 - ------------------------------------------- - -testing cutpoint: -0.175028 - - ---- view of lincomb & g_node & w_node ---- - - -1.0485 0 1.0000 - -0.6119 0 2.0000 - -0.4816 0 6.0000 - -0.3675 0 2.0000 - -0.1750 0 1.0000 - -0.0772 1.0000 2.0000 - -0.0243 1.0000 2.0000 - 0.0854 1.0000 2.0000 - 0.1336 1.0000 1.0000 - 0.1758 1.0000 1.0000 - 0.2335 1.0000 1.0000 - 0.2461 1.0000 1.0000 - 0.2470 1.0000 2.0000 - 0.2567 1.0000 1.0000 - 0.3350 1.0000 1.0000 - 0.3433 1.0000 1.0000 - 0.3551 1.0000 3.0000 - 0.3799 1.0000 2.0000 - 0.4754 1.0000 1.0000 - 0.4969 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.85141 - ------------------------------------------- - -testing cutpoint: 0.085427 - - ---- view of lincomb & g_node & w_node ---- - - -1.0485 0 1.0000 - -0.6119 0 2.0000 - -0.4816 0 6.0000 - -0.3675 0 2.0000 - -0.1750 0 1.0000 - -0.0772 0 2.0000 - -0.0243 0 2.0000 - 0.0854 0 2.0000 - 0.1336 1.0000 1.0000 - 0.1758 1.0000 1.0000 - 0.2335 1.0000 1.0000 - 0.2461 1.0000 1.0000 - 0.2470 1.0000 2.0000 - 0.2567 1.0000 1.0000 - 0.3350 1.0000 1.0000 - 0.3433 1.0000 1.0000 - 0.3551 1.0000 3.0000 - 0.3799 1.0000 2.0000 - 0.4754 1.0000 1.0000 - 0.4969 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.56307 - ------------------------------------------- - -testing cutpoint: 0.133567 - - ---- view of lincomb & g_node & w_node ---- - - -1.0485 0 1.0000 - -0.6119 0 2.0000 - -0.4816 0 6.0000 - -0.3675 0 2.0000 - -0.1750 0 1.0000 - -0.0772 0 2.0000 - -0.0243 0 2.0000 - 0.0854 0 2.0000 - 0.1336 0 1.0000 - 0.1758 1.0000 1.0000 - 0.2335 1.0000 1.0000 - 0.2461 1.0000 1.0000 - 0.2470 1.0000 2.0000 - 0.2567 1.0000 1.0000 - 0.3350 1.0000 1.0000 - 0.3433 1.0000 1.0000 - 0.3551 1.0000 3.0000 - 0.3799 1.0000 2.0000 - 0.4754 1.0000 1.0000 - 0.4969 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.80053 - ------------------------------------------- - -testing cutpoint: 0.246138 - - ---- view of lincomb & g_node & w_node ---- - - -1.0485 0 1.0000 - -0.6119 0 2.0000 - -0.4816 0 6.0000 - -0.3675 0 2.0000 - -0.1750 0 1.0000 - -0.0772 0 2.0000 - -0.0243 0 2.0000 - 0.0854 0 2.0000 - 0.1336 0 1.0000 - 0.1758 0 1.0000 - 0.2335 0 1.0000 - 0.2461 0 1.0000 - 0.2470 1.0000 2.0000 - 0.2567 1.0000 1.0000 - 0.3350 1.0000 1.0000 - 0.3433 1.0000 1.0000 - 0.3551 1.0000 3.0000 - 0.3799 1.0000 2.0000 - 0.4754 1.0000 1.0000 - 0.4969 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.1569 - ------------------------------------------- - -node assignments: - 6 - 10 - 10 - 5 - 6 - 13 - 9 - 5 - 15 - 5 - 9 - 10 - 8 - 6 - 6 - 10 - 6 - 6 - 10 - 10 - 6 - -growing node 13 - -Column 2 was sampled but unique values of column 2 are 2.0000 - - ---- view of x_node ---- - - 9.4400e+02 9.5000e+00 2.0000e+00 - 1.1360e+03 1.0000e+01 2.0000e+00 - 1.7130e+03 1.0200e+01 1.0000e+00 - 1.2930e+03 9.6000e+00 1.0000e+00 - 9.3800e+02 1.0000e+01 1.0000e+00 - 1.2820e+03 1.0500e+01 1.0000e+00 - 7.9700e+02 1.0400e+01 1.0000e+00 - 6.6300e+02 1.0800e+01 1.0000e+00 - 1.3070e+03 1.0500e+01 1.0000e+00 - 6.8800e+02 1.0000e+01 1.0000e+00 - 2.5830e+03 9.6000e+00 1.0000e+00 - 9.1100e+02 9.8000e+00 1.0000e+00 - 1.6360e+03 9.8000e+00 1.0000e+00 - 1.6130e+03 1.0100e+01 1.0000e+00 - 1.6220e+03 9.5000e+00 1.0000e+00 - 6.7600e+02 9.9000e+00 1.0000e+00 - 6.4000e+02 1.0700e+01 1.0000e+00 - 1.1280e+03 1.0200e+01 2.0000e+00 - 9.5500e+02 9.7000e+00 1.0000e+00 - 1.3950e+03 1.0200e+01 1.0000e+00 - - - ---- view of y_node ---- - - 5.1500e+02 1.0000e+00 - 7.3700e+02 0 - 9.3900e+02 0 - 1.0300e+03 0 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2300e+03 0 - 1.2950e+03 0 - 1.4010e+03 0 - 1.4120e+03 0 - 1.4330e+03 0 - 1.4340e+03 0 - 1.4350e+03 0 - 1.4550e+03 0 - 1.4570e+03 0 - 1.4810e+03 0 - 1.5680e+03 0 - 1.5690e+03 0 - 1.5920e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.38963 -- next: -1.38696 -- N events: 0 -- N risk: 2 -current value: -1.38696 -- next: -1.33391 -- N events: 0 -- N risk: 4 -current value: -1.33391 -- next: -1.25207 -- N events: 0 -- N risk: 5 -current value: -1.25207 -- next: -1.24853 -- N events: 0 -- N risk: 6 -current value: -1.24853 -- next: -1.2111 -- N events: 0 -- N risk: 7 -current value: -1.2111 -- next: -1.20263 -- N events: 0 -- N risk: 9 -current value: -1.20263 -- next: -1.18819 -- N events: 0 -- N risk: 10 -current value: -1.18819 -- next: -1.17469 -- N events: 0 -- N risk: 12 -current value: -1.17469 -- next: -1.17407 -- N events: 0 -- N risk: 13 -current value: -1.17407 -- next: -1.14371 -- N events: 0 -- N risk: 15 -current value: -1.14371 -- next: -1.13726 -- N events: 0 -- N risk: 17 -current value: -1.13726 -- next: -1.1207 -- N events: 0 -- N risk: 18 -current value: -1.1207 -- next: -1.11623 -- N events: 0 -- N risk: 20 -current value: -1.11623 -- next: -1.10093 -- N events: 0 -- N risk: 21 -current value: -1.10093 -- next: -1.093 -- N events: 0 -- N risk: 22 -current value: -1.093 -- next: -1.0671 -- N events: 0 -- N risk: 24 -current value: -1.0671 -- next: -1.03422 -- N events: 0 -- N risk: 25 -current value: -1.03422 -- next: -1.01555 -- N events: 0 -- N risk: 26 -current value: -1.01555 -- next: -1.00715 -- N events: 0 -- N risk: 28 -current value: -1.00715 -- next: -0.983378 -- N events: 0 -- N risk: 30 -current value: -0.983378 -- next: -0.977969 -- N events: 0 -- N risk: 31 -current value: -0.977969 -- next: -0.956072 -- N events: 0 -- N risk: 32 -current value: -0.956072 -- next: -0.925153 -- N events: 0 -- N risk: 33 -current value: -0.925153 -- next: -0.907726 -- N events: 0 -- N risk: 35 -current value: -0.907726 -- next: -0.875243 -- N events: 0 -- N risk: 36 -current value: -0.875243 -- next: -0.871239 -- N events: 0 -- N risk: 38 -current value: -0.871239 -- next: -0.861585 -- N events: 0 -- N risk: 39 -current value: -0.861585 -- next: -0.853745 -- N events: 0 -- N risk: 42 -current value: -0.853745 -- next: -0.844649 -- N events: 0 -- N risk: 44 -current value: -0.844649 -- next: -0.841345 -- N events: 0 -- N risk: 46 -current value: -0.841345 -- next: -0.81914 -- N events: 1 -- N risk: 47 - -lower cutpoint: -0.841345 - - n_events, left node: 1 - - n_risk, left node: 47 - ------ finding upper bound for cut-points ----- -current value: 9.25981 ---- next value: 5.83245 ---- N events: 1 ---- N risk: 1 -current value: 5.83245 ---- next value: 3.76609 ---- N events: 2 ---- N risk: 2 -current value: 3.76609 ---- next value: 2.78297 ---- N events: 3 ---- N risk: 3 -current value: 2.78297 ---- next value: 2.37319 ---- N events: 3 ---- N risk: 5 - -upper cutpoint: 2.37319 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.4629 - -0.2694 - 0.1807 - 1.5302 - 2.0753 - - -testing cutpoint: -0.462882 - - ---- view of lincomb & g_node & w_node ---- - - -1.3896 0 2.0000 - -1.3870 0 2.0000 - -1.3339 0 1.0000 - -1.2521 0 1.0000 - -1.2485 0 1.0000 - -1.2111 0 2.0000 - -1.2026 0 1.0000 - -1.1882 0 2.0000 - -1.1747 0 1.0000 - -1.1741 0 2.0000 - -1.1437 0 2.0000 - -1.1373 0 1.0000 - -1.1207 0 2.0000 - -1.1162 0 1.0000 - -1.1009 0 1.0000 - -1.0930 0 2.0000 - -1.0671 0 1.0000 - -1.0342 0 1.0000 - -1.0156 0 2.0000 - -1.0071 0 2.0000 - - -logrank stat for this cutpoint: 10.1151 - ------------------------------------------- - -testing cutpoint: -0.269382 - - ---- view of lincomb & g_node & w_node ---- - - -1.3896 0 2.0000 - -1.3870 0 2.0000 - -1.3339 0 1.0000 - -1.2521 0 1.0000 - -1.2485 0 1.0000 - -1.2111 0 2.0000 - -1.2026 0 1.0000 - -1.1882 0 2.0000 - -1.1747 0 1.0000 - -1.1741 0 2.0000 - -1.1437 0 2.0000 - -1.1373 0 1.0000 - -1.1207 0 2.0000 - -1.1162 0 1.0000 - -1.1009 0 1.0000 - -1.0930 0 2.0000 - -1.0671 0 1.0000 - -1.0342 0 1.0000 - -1.0156 0 2.0000 - -1.0071 0 2.0000 - - -logrank stat for this cutpoint: 12.5618 - ------------------------------------------- - -testing cutpoint: 0.180664 - - ---- view of lincomb & g_node & w_node ---- - - -1.3896 0 2.0000 - -1.3870 0 2.0000 - -1.3339 0 1.0000 - -1.2521 0 1.0000 - -1.2485 0 1.0000 - -1.2111 0 2.0000 - -1.2026 0 1.0000 - -1.1882 0 2.0000 - -1.1747 0 1.0000 - -1.1741 0 2.0000 - -1.1437 0 2.0000 - -1.1373 0 1.0000 - -1.1207 0 2.0000 - -1.1162 0 1.0000 - -1.1009 0 1.0000 - -1.0930 0 2.0000 - -1.0671 0 1.0000 - -1.0342 0 1.0000 - -1.0156 0 2.0000 - -1.0071 0 2.0000 - - -logrank stat for this cutpoint: 7.55791 - ------------------------------------------- - -testing cutpoint: 1.53023 - - ---- view of lincomb & g_node & w_node ---- - - -1.3896 0 2.0000 - -1.3870 0 2.0000 - -1.3339 0 1.0000 - -1.2521 0 1.0000 - -1.2485 0 1.0000 - -1.2111 0 2.0000 - -1.2026 0 1.0000 - -1.1882 0 2.0000 - -1.1747 0 1.0000 - -1.1741 0 2.0000 - -1.1437 0 2.0000 - -1.1373 0 1.0000 - -1.1207 0 2.0000 - -1.1162 0 1.0000 - -1.1009 0 1.0000 - -1.0930 0 2.0000 - -1.0671 0 1.0000 - -1.0342 0 1.0000 - -1.0156 0 2.0000 - -1.0071 0 2.0000 - - -logrank stat for this cutpoint: 3.39311 - ------------------------------------------- - -testing cutpoint: 2.07532 - - ---- view of lincomb & g_node & w_node ---- - - -1.3896 0 2.0000 - -1.3870 0 2.0000 - -1.3339 0 1.0000 - -1.2521 0 1.0000 - -1.2485 0 1.0000 - -1.2111 0 2.0000 - -1.2026 0 1.0000 - -1.1882 0 2.0000 - -1.1747 0 1.0000 - -1.1741 0 2.0000 - -1.1437 0 2.0000 - -1.1373 0 1.0000 - -1.1207 0 2.0000 - -1.1162 0 1.0000 - -1.1009 0 1.0000 - -1.0930 0 2.0000 - -1.0671 0 1.0000 - -1.0342 0 1.0000 - -1.0156 0 2.0000 - -1.0071 0 2.0000 - - -logrank stat for this cutpoint: 3.26708 - ------------------------------------------- - -node assignments: - 17 - 5 - 15 - 5 - 8 - 17 - 10 - 14 - 10 - 5 - 17 - 18 - 5 - 6 - 16 - 5 - 10 - 16 - 8 - 10 - 6 - 9 - 5 - 5 - 17 - 18 - 9 - 9 - 10 - 6 - 17 - 14 - 9 - 10 - 17 - 10 - 17 - 10 - 17 - 17 - 16 - 10 - 16 - 5 - 8 - 6 - 10 - 5 - 15 - 8 - 6 - 5 - 17 - 16 - 10 - 17 - 6 - 14 - 16 - 16 - 5 - 5 - 16 - 9 - 16 - 17 - 16 - 6 - 10 - 9 - 8 - 9 - 17 - 6 - 9 - 18 - 17 - 17 - 17 - 5 - 8 - 5 - -growing node 14 - -sprouting new leaf with node 14 - - ---- view of leaf_data ---- - - 7.6900e+02 9.3750e-01 6.2500e-02 - 2.8470e+03 8.3333e-01 1.7361e-01 - 3.2820e+03 3.3333e-01 7.7361e-01 - 3.5840e+03 0 1.7736e+00 - - -growing node 15 - -sprouting new leaf with node 15 - - ---- view of leaf_data ---- - - 1.9800e+02 9.0909e-01 9.0909e-02 - - -growing node 16 - - ---- view of x_node ---- - - 1.1000e+01 2.7700e+02 3.6000e+00 - 1.0700e+01 2.1600e+02 3.8500e+00 - 1.0100e+01 2.9500e+02 4.2200e+00 - 1.0600e+01 2.7500e+02 3.6100e+00 - 1.1400e+01 2.4800e+02 3.5700e+00 - 1.0900e+01 2.9300e+02 3.3100e+00 - 1.0100e+01 1.5100e+02 3.5000e+00 - 9.9000e+00 2.1500e+02 3.7000e+00 - 9.8000e+00 3.3000e+02 3.2600e+00 - 1.1000e+01 1.7800e+02 3.5000e+00 - 1.0900e+01 3.0300e+02 3.3600e+00 - 9.9000e+00 3.3200e+02 3.5500e+00 - 9.9000e+00 2.8300e+02 3.4800e+00 - 9.8000e+00 3.5600e+02 3.6500e+00 - 1.0300e+01 3.4800e+02 4.2000e+00 - 1.0400e+01 3.2700e+02 3.6000e+00 - 1.0300e+01 1.9500e+02 3.4400e+00 - - - ---- view of y_node ---- - - 7.8600e+02 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - 1.3630e+03 0 - 1.4200e+03 0 - 1.4270e+03 1.0000e+00 - 1.4870e+03 1.0000e+00 - 1.7690e+03 0 - 2.3180e+03 0 - 2.4190e+03 1.0000e+00 - 2.5760e+03 0 - 3.0920e+03 0 - 3.5810e+03 0 - 3.8390e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.906265 -- next: -0.795028 -- N events: 1 -- N risk: 1 -current value: -0.795028 -- next: -0.661674 -- N events: 1 -- N risk: 2 -current value: -0.661674 -- next: -0.387361 -- N events: 1 -- N risk: 4 -current value: -0.387361 -- next: -0.357995 -- N events: 4 -- N risk: 7 - -lower cutpoint: -0.387361 - - n_events, left node: 4 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 0.839194 ---- next value: 0.701205 ---- N events: 1 ---- N risk: 1 -current value: 0.701205 ---- next value: 0.612767 ---- N events: 3 ---- N risk: 3 -current value: 0.612767 ---- next value: 0.597032 ---- N events: 3 ---- N risk: 4 -current value: 0.597032 ---- next value: 0.354943 ---- N events: 3 ---- N risk: 5 - -upper cutpoint: 0.354943 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.3874 - -0.1093 - -0.1076 - 0.0881 - 0.2241 - - -testing cutpoint: -0.387361 - - ---- view of lincomb & g_node & w_node ---- - - -0.9063 0 1.0000 - -0.7950 0 1.0000 - -0.6617 0 2.0000 - -0.3874 0 3.0000 - -0.3580 1.0000 1.0000 - -0.1392 1.0000 1.0000 - -0.1093 1.0000 2.0000 - -0.1076 1.0000 2.0000 - 0.0881 1.0000 1.0000 - 0.1652 1.0000 1.0000 - 0.2241 1.0000 2.0000 - 0.2548 1.0000 1.0000 - 0.3549 1.0000 2.0000 - 0.5970 1.0000 1.0000 - 0.6128 1.0000 1.0000 - 0.7012 1.0000 2.0000 - 0.8392 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.146784 - ------------------------------------------- - -testing cutpoint: -0.109252 - - ---- view of lincomb & g_node & w_node ---- - - -0.9063 0 1.0000 - -0.7950 0 1.0000 - -0.6617 0 2.0000 - -0.3874 0 3.0000 - -0.3580 0 1.0000 - -0.1392 0 1.0000 - -0.1093 0 2.0000 - -0.1076 1.0000 2.0000 - 0.0881 1.0000 1.0000 - 0.1652 1.0000 1.0000 - 0.2241 1.0000 2.0000 - 0.2548 1.0000 1.0000 - 0.3549 1.0000 2.0000 - 0.5970 1.0000 1.0000 - 0.6128 1.0000 1.0000 - 0.7012 1.0000 2.0000 - 0.8392 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.306476 - ------------------------------------------- - -testing cutpoint: -0.107563 - - ---- view of lincomb & g_node & w_node ---- - - -0.9063 0 1.0000 - -0.7950 0 1.0000 - -0.6617 0 2.0000 - -0.3874 0 3.0000 - -0.3580 0 1.0000 - -0.1392 0 1.0000 - -0.1093 0 2.0000 - -0.1076 0 2.0000 - 0.0881 1.0000 1.0000 - 0.1652 1.0000 1.0000 - 0.2241 1.0000 2.0000 - 0.2548 1.0000 1.0000 - 0.3549 1.0000 2.0000 - 0.5970 1.0000 1.0000 - 0.6128 1.0000 1.0000 - 0.7012 1.0000 2.0000 - 0.8392 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.54954 - ------------------------------------------- - -testing cutpoint: 0.0880917 - - ---- view of lincomb & g_node & w_node ---- - - -0.9063 0 1.0000 - -0.7950 0 1.0000 - -0.6617 0 2.0000 - -0.3874 0 3.0000 - -0.3580 0 1.0000 - -0.1392 0 1.0000 - -0.1093 0 2.0000 - -0.1076 0 2.0000 - 0.0881 0 1.0000 - 0.1652 1.0000 1.0000 - 0.2241 1.0000 2.0000 - 0.2548 1.0000 1.0000 - 0.3549 1.0000 2.0000 - 0.5970 1.0000 1.0000 - 0.6128 1.0000 1.0000 - 0.7012 1.0000 2.0000 - 0.8392 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.0213 - ------------------------------------------- - -testing cutpoint: 0.224118 - - ---- view of lincomb & g_node & w_node ---- - - -0.9063 0 1.0000 - -0.7950 0 1.0000 - -0.6617 0 2.0000 - -0.3874 0 3.0000 - -0.3580 0 1.0000 - -0.1392 0 1.0000 - -0.1093 0 2.0000 - -0.1076 0 2.0000 - 0.0881 0 1.0000 - 0.1652 0 1.0000 - 0.2241 0 2.0000 - 0.2548 1.0000 1.0000 - 0.3549 1.0000 2.0000 - 0.5970 1.0000 1.0000 - 0.6128 1.0000 1.0000 - 0.7012 1.0000 2.0000 - 0.8392 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.02821 - ------------------------------------------- - -best split stat, 3.0213, was < split_min_stat, 3.84 -sprouting new leaf with node 16 - - ---- view of leaf_data ---- - - 7.8600e+02 9.6000e-01 4.0000e-02 - 1.0800e+03 8.8000e-01 1.2333e-01 - 1.2120e+03 8.4000e-01 1.6879e-01 - 1.4270e+03 7.8000e-01 2.4022e-01 - 1.4870e+03 7.2000e-01 3.1714e-01 - - -growing node 17 - -sprouting new leaf with node 17 - - ---- view of leaf_data ---- - - 2.0900e+03 9.7619e-01 2.3810e-02 - - -growing node 18 - - ---- view of x_node ---- - - 3.0600e+02 2.0000e+00 3.0000e+00 - 2.6400e+02 2.0000e+00 3.0000e+00 - 2.2800e+02 2.0000e+00 3.0000e+00 - 1.5600e+02 2.0000e+00 3.0000e+00 - 2.0000e+02 1.0000e+00 2.0000e+00 - 3.6500e+02 2.0000e+00 2.0000e+00 - 3.4100e+02 2.0000e+00 3.0000e+00 - 2.6900e+02 1.0000e+00 4.0000e+00 - 3.0900e+02 2.0000e+00 2.0000e+00 - 3.2100e+02 2.0000e+00 3.0000e+00 - 2.4000e+02 1.0000e+00 1.0000e+00 - 2.2800e+02 1.0000e+00 4.0000e+00 - 5.6300e+02 1.0000e+00 4.0000e+00 - 4.4200e+02 1.0000e+00 3.0000e+00 - 3.7300e+02 1.0000e+00 3.0000e+00 - 3.1300e+02 1.0000e+00 2.0000e+00 - 4.9300e+02 2.0000e+00 2.0000e+00 - 3.4400e+02 1.0000e+00 2.0000e+00 - 3.4900e+02 1.0000e+00 2.0000e+00 - 4.3800e+02 2.0000e+00 3.0000e+00 - - - ---- view of y_node ---- - - 5.1500e+02 1.0000e+00 - 7.3700e+02 0 - 1.5680e+03 0 - 1.7350e+03 0 - 1.7410e+03 1.0000e+00 - 1.8470e+03 1.0000e+00 - 1.9080e+03 0 - 2.0500e+03 0 - 2.2160e+03 0 - 2.2240e+03 1.0000e+00 - 2.2550e+03 0 - 2.2940e+03 0 - 2.2970e+03 1.0000e+00 - 2.4520e+03 0 - 2.4660e+03 1.0000e+00 - 2.4750e+03 0 - 2.6570e+03 0 - 2.9900e+03 0 - 3.0860e+03 1.0000e+00 - 3.3360e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.913244 -- next: -0.834836 -- N events: 0 -- N risk: 1 -current value: -0.834836 -- next: -0.802325 -- N events: 0 -- N risk: 2 -current value: -0.802325 -- next: -0.565187 -- N events: 0 -- N risk: 4 -current value: -0.565187 -- next: -0.288364 -- N events: 0 -- N risk: 6 -current value: -0.288364 -- next: -0.272589 -- N events: 1 -- N risk: 7 - -lower cutpoint: -0.288364 - - n_events, left node: 1 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 0.859103 ---- next value: 0.614315 ---- N events: 0 ---- N risk: 1 -current value: 0.614315 ---- next value: 0.50722 ---- N events: 1 ---- N risk: 2 -current value: 0.50722 ---- next value: 0.406338 ---- N events: 1 ---- N risk: 6 - -upper cutpoint: 0.406338 - - n_events, right node: 1 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.2726 - -0.2659 - -0.1564 - 0.1558 - 0.4063 - - -testing cutpoint: -0.272589 - - ---- view of lincomb & g_node & w_node ---- - - -0.9132 0 1.0000 - -0.8348 0 1.0000 - -0.8023 0 2.0000 - -0.5652 0 2.0000 - -0.2884 0 1.0000 - -0.2726 0 1.0000 - -0.2716 1.0000 1.0000 - -0.2659 1.0000 2.0000 - -0.1564 1.0000 2.0000 - -0.1330 1.0000 1.0000 - -0.1320 1.0000 2.0000 - -0.0555 1.0000 1.0000 - 0.0038 1.0000 1.0000 - 0.0047 1.0000 1.0000 - 0.0133 1.0000 1.0000 - 0.0736 1.0000 3.0000 - 0.1525 1.0000 2.0000 - 0.1539 1.0000 2.0000 - 0.1558 1.0000 1.0000 - 0.1826 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.632566 - ------------------------------------------- - -testing cutpoint: -0.26589 - - ---- view of lincomb & g_node & w_node ---- - - -0.9132 0 1.0000 - -0.8348 0 1.0000 - -0.8023 0 2.0000 - -0.5652 0 2.0000 - -0.2884 0 1.0000 - -0.2726 0 1.0000 - -0.2716 0 1.0000 - -0.2659 0 2.0000 - -0.1564 1.0000 2.0000 - -0.1330 1.0000 1.0000 - -0.1320 1.0000 2.0000 - -0.0555 1.0000 1.0000 - 0.0038 1.0000 1.0000 - 0.0047 1.0000 1.0000 - 0.0133 1.0000 1.0000 - 0.0736 1.0000 3.0000 - 0.1525 1.0000 2.0000 - 0.1539 1.0000 2.0000 - 0.1558 1.0000 1.0000 - 0.1826 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.909671 - ------------------------------------------- - -testing cutpoint: -0.156408 - - ---- view of lincomb & g_node & w_node ---- - - -0.9132 0 1.0000 - -0.8348 0 1.0000 - -0.8023 0 2.0000 - -0.5652 0 2.0000 - -0.2884 0 1.0000 - -0.2726 0 1.0000 - -0.2716 0 1.0000 - -0.2659 0 2.0000 - -0.1564 0 2.0000 - -0.1330 1.0000 1.0000 - -0.1320 1.0000 2.0000 - -0.0555 1.0000 1.0000 - 0.0038 1.0000 1.0000 - 0.0047 1.0000 1.0000 - 0.0133 1.0000 1.0000 - 0.0736 1.0000 3.0000 - 0.1525 1.0000 2.0000 - 0.1539 1.0000 2.0000 - 0.1558 1.0000 1.0000 - 0.1826 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.45225 - ------------------------------------------- - -testing cutpoint: 0.155814 - - ---- view of lincomb & g_node & w_node ---- - - -0.9132 0 1.0000 - -0.8348 0 1.0000 - -0.8023 0 2.0000 - -0.5652 0 2.0000 - -0.2884 0 1.0000 - -0.2726 0 1.0000 - -0.2716 0 1.0000 - -0.2659 0 2.0000 - -0.1564 0 2.0000 - -0.1330 0 1.0000 - -0.1320 0 2.0000 - -0.0555 0 1.0000 - 0.0038 0 1.0000 - 0.0047 0 1.0000 - 0.0133 0 1.0000 - 0.0736 0 3.0000 - 0.1525 0 2.0000 - 0.1539 0 2.0000 - 0.1558 0 1.0000 - 0.1826 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0182177 - ------------------------------------------- - -testing cutpoint: 0.406338 - - ---- view of lincomb & g_node & w_node ---- - - -0.9132 0 1.0000 - -0.8348 0 1.0000 - -0.8023 0 2.0000 - -0.5652 0 2.0000 - -0.2884 0 1.0000 - -0.2726 0 1.0000 - -0.2716 0 1.0000 - -0.2659 0 2.0000 - -0.1564 0 2.0000 - -0.1330 0 1.0000 - -0.1320 0 2.0000 - -0.0555 0 1.0000 - 0.0038 0 1.0000 - 0.0047 0 1.0000 - 0.0133 0 1.0000 - 0.0736 0 3.0000 - 0.1525 0 2.0000 - 0.1539 0 2.0000 - 0.1558 0 1.0000 - 0.1826 0 1.0000 - - -logrank stat for this cutpoint: 0.0638308 - ------------------------------------------- - -best split stat, 1.45225, was < split_min_stat, 3.84 -sprouting new leaf with node 18 - - ---- view of leaf_data ---- - - 5.1500e+02 9.5238e-01 4.7619e-02 - 1.7410e+03 9.2517e-01 7.6190e-02 - 1.8470e+03 8.9796e-01 1.0560e-01 - 2.2240e+03 8.5892e-01 1.4908e-01 - 2.2970e+03 8.1371e-01 2.0171e-01 - - -Effective sample size: 276 -Effective number of events: 112 -Number of unique rows in x: 180 - -Max number of nodes for this tree: 223 -Max number of leaves for this tree: 112 - -growing node 0 - - ---- view of x_node ---- - - 1.0000e+00 1.7900e+01 7.0500e+02 - 1.0000e+00 1.2600e+01 9.1800e+02 - 2.0000e+00 1.2200e+01 2.1320e+03 - 2.0000e+00 2.5000e+00 1.2730e+03 - 2.0000e+00 1.1400e+01 9.6100e+02 - 2.0000e+00 6.6000e+00 6.2000e+02 - 2.0000e+00 3.2000e+00 8.1500e+02 - 2.0000e+00 2.4500e+01 3.7400e+03 - 2.0000e+00 7.1000e+00 6.9312e+03 - 2.0000e+00 3.6000e+00 7.2770e+03 - 2.0000e+00 6.6000e+00 1.8190e+03 - 2.0000e+00 1.4100e+01 1.8330e+03 - 2.0000e+00 4.5000e+00 1.0200e+03 - 2.0000e+00 1.4500e+01 1.7180e+03 - 2.0000e+00 5.0000e+00 2.4600e+03 - 1.0000e+00 6.0000e-01 9.4400e+02 - 2.0000e+00 1.2000e+00 1.1420e+03 - 2.0000e+00 1.7200e+01 1.9750e+03 - 2.0000e+00 2.3000e+00 7.4600e+02 - 2.0000e+00 4.5000e+00 2.3100e+03 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.77819 -- next: -1.77517 -- N events: 0 -- N risk: 2 -current value: -1.77517 -- next: -1.74419 -- N events: 1 -- N risk: 3 -current value: -1.74419 -- next: -1.71141 -- N events: 1 -- N risk: 4 -current value: -1.71141 -- next: -1.69802 -- N events: 4 -- N risk: 7 - -lower cutpoint: -1.71141 - - n_events, left node: 4 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 9.71298 ---- next value: 9.3437 ---- N events: 1 ---- N risk: 1 -current value: 9.3437 ---- next value: 7.98428 ---- N events: 3 ---- N risk: 3 -current value: 7.98428 ---- next value: 7.39002 ---- N events: 4 ---- N risk: 4 -current value: 7.39002 ---- next value: 6.21543 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 6.21543 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -1.5559 - -1.5528 - -1.0908 - -0.9001 - -0.4050 - - -testing cutpoint: -1.5559 - - ---- view of lincomb & g_node & w_node ---- - - -1.7782 0 2.0000 - -1.7752 0 1.0000 - -1.7442 0 1.0000 - -1.7114 0 3.0000 - -1.6980 0 1.0000 - -1.6973 0 1.0000 - -1.6897 0 3.0000 - -1.6873 0 1.0000 - -1.6867 0 2.0000 - -1.6756 0 1.0000 - -1.6693 0 3.0000 - -1.6651 0 3.0000 - -1.6632 0 1.0000 - -1.6599 0 1.0000 - -1.6562 0 1.0000 - -1.6551 0 1.0000 - -1.6451 0 3.0000 - -1.6399 0 1.0000 - -1.6375 0 1.0000 - -1.6311 0 1.0000 - - -logrank stat for this cutpoint: 20.787 - ------------------------------------------- - -testing cutpoint: -1.55278 - - ---- view of lincomb & g_node & w_node ---- - - -1.7782 0 2.0000 - -1.7752 0 1.0000 - -1.7442 0 1.0000 - -1.7114 0 3.0000 - -1.6980 0 1.0000 - -1.6973 0 1.0000 - -1.6897 0 3.0000 - -1.6873 0 1.0000 - -1.6867 0 2.0000 - -1.6756 0 1.0000 - -1.6693 0 3.0000 - -1.6651 0 3.0000 - -1.6632 0 1.0000 - -1.6599 0 1.0000 - -1.6562 0 1.0000 - -1.6551 0 1.0000 - -1.6451 0 3.0000 - -1.6399 0 1.0000 - -1.6375 0 1.0000 - -1.6311 0 1.0000 - - -logrank stat for this cutpoint: 21.5589 - ------------------------------------------- - -testing cutpoint: -1.0908 - - ---- view of lincomb & g_node & w_node ---- - - -1.7782 0 2.0000 - -1.7752 0 1.0000 - -1.7442 0 1.0000 - -1.7114 0 3.0000 - -1.6980 0 1.0000 - -1.6973 0 1.0000 - -1.6897 0 3.0000 - -1.6873 0 1.0000 - -1.6867 0 2.0000 - -1.6756 0 1.0000 - -1.6693 0 3.0000 - -1.6651 0 3.0000 - -1.6632 0 1.0000 - -1.6599 0 1.0000 - -1.6562 0 1.0000 - -1.6551 0 1.0000 - -1.6451 0 3.0000 - -1.6399 0 1.0000 - -1.6375 0 1.0000 - -1.6311 0 1.0000 - - -logrank stat for this cutpoint: 60.1081 - ------------------------------------------- - -testing cutpoint: -0.900103 - - ---- view of lincomb & g_node & w_node ---- - - -1.7782 0 2.0000 - -1.7752 0 1.0000 - -1.7442 0 1.0000 - -1.7114 0 3.0000 - -1.6980 0 1.0000 - -1.6973 0 1.0000 - -1.6897 0 3.0000 - -1.6873 0 1.0000 - -1.6867 0 2.0000 - -1.6756 0 1.0000 - -1.6693 0 3.0000 - -1.6651 0 3.0000 - -1.6632 0 1.0000 - -1.6599 0 1.0000 - -1.6562 0 1.0000 - -1.6551 0 1.0000 - -1.6451 0 3.0000 - -1.6399 0 1.0000 - -1.6375 0 1.0000 - -1.6311 0 1.0000 - - -logrank stat for this cutpoint: 100.53 - ------------------------------------------- - -testing cutpoint: -0.404998 - - ---- view of lincomb & g_node & w_node ---- - - -1.7782 0 2.0000 - -1.7752 0 1.0000 - -1.7442 0 1.0000 - -1.7114 0 3.0000 - -1.6980 0 1.0000 - -1.6973 0 1.0000 - -1.6897 0 3.0000 - -1.6873 0 1.0000 - -1.6867 0 2.0000 - -1.6756 0 1.0000 - -1.6693 0 3.0000 - -1.6651 0 3.0000 - -1.6632 0 1.0000 - -1.6599 0 1.0000 - -1.6562 0 1.0000 - -1.6551 0 1.0000 - -1.6451 0 3.0000 - -1.6399 0 1.0000 - -1.6375 0 1.0000 - -1.6311 0 1.0000 - - -logrank stat for this cutpoint: 153.603 - ------------------------------------------- - -node assignments: - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - -growing node 1 - - ---- view of x_node ---- - - 1.1400e+02 5.4256e+01 1.2900e+02 - 9.1000e+01 5.5986e+01 1.0000e+02 - 5.5000e+01 5.6277e+01 4.6400e+02 - 1.9400e+02 3.5351e+01 1.0200e+02 - 6.3000e+01 5.8951e+01 1.7200e+02 - 1.1300e+02 6.2861e+01 1.0300e+02 - 5.9000e+01 3.0574e+01 5.2000e+01 - 1.1300e+02 6.1183e+01 2.4000e+01 - 1.3700e+02 3.5491e+01 6.7000e+01 - 6.4000e+01 5.6392e+01 3.1000e+01 - 7.5000e+01 3.5535e+01 2.2000e+01 - 1.0400e+02 3.7799e+01 4.3000e+01 - 9.3000e+01 5.2726e+01 7.3000e+01 - 7.7000e+01 3.4875e+01 4.5000e+01 - 9.5000e+01 3.1381e+01 6.2000e+01 - 1.1400e+02 3.8316e+01 7.7000e+01 - 2.1900e+02 6.5763e+01 1.2100e+02 - 1.1800e+02 3.8853e+01 7.0000e+01 - 1.4000e+02 4.6155e+01 6.9000e+01 - 1.9500e+02 4.8564e+01 7.5000e+01 - - - ---- view of y_node ---- - - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 6.7300e+02 1.0000e+00 - 8.7700e+02 0 - 9.9900e+02 1.0000e+00 - 1.0300e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.3000e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - 1.3490e+03 0 - 1.3600e+03 1.0000e+00 - 1.4080e+03 0 - 1.4120e+03 0 - 1.4180e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.18535 -- next: -1.08102 -- N events: 0 -- N risk: 1 -current value: -1.08102 -- next: -1.03388 -- N events: 0 -- N risk: 2 -current value: -1.03388 -- next: -1.02782 -- N events: 0 -- N risk: 3 -current value: -1.02782 -- next: -0.991534 -- N events: 0 -- N risk: 5 -current value: -0.991534 -- next: -0.979888 -- N events: 0 -- N risk: 8 -current value: -0.979888 -- next: -0.969025 -- N events: 0 -- N risk: 9 -current value: -0.969025 -- next: -0.945436 -- N events: 0 -- N risk: 10 -current value: -0.945436 -- next: -0.938951 -- N events: 0 -- N risk: 12 -current value: -0.938951 -- next: -0.934879 -- N events: 0 -- N risk: 15 -current value: -0.934879 -- next: -0.923736 -- N events: 0 -- N risk: 16 -current value: -0.923736 -- next: -0.923347 -- N events: 0 -- N risk: 17 -current value: -0.923347 -- next: -0.896972 -- N events: 0 -- N risk: 18 -current value: -0.896972 -- next: -0.896756 -- N events: 0 -- N risk: 20 -current value: -0.896756 -- next: -0.883927 -- N events: 2 -- N risk: 22 - -lower cutpoint: -0.896756 - - n_events, left node: 2 - - n_risk, left node: 22 - ------ finding upper bound for cut-points ----- -current value: 4.8671 ---- next value: 3.68648 ---- N events: 1 ---- N risk: 1 -current value: 3.68648 ---- next value: 2.56786 ---- N events: 1 ---- N risk: 2 -current value: 2.56786 ---- next value: 1.91415 ---- N events: 1 ---- N risk: 3 -current value: 1.91415 ---- next value: 1.8317 ---- N events: 2 ---- N risk: 4 -current value: 1.8317 ---- next value: 1.76352 ---- N events: 4 ---- N risk: 6 - -upper cutpoint: 1.76352 - - n_events, right node: 4 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.8968 - -0.6295 - -0.1169 - 0.4225 - 1.5813 - - -testing cutpoint: -0.896756 - - ---- view of lincomb & g_node & w_node ---- - - -1.1854 0 1.0000 - -1.0810 0 1.0000 - -1.0339 0 1.0000 - -1.0278 0 2.0000 - -0.9915 0 3.0000 - -0.9799 0 1.0000 - -0.9690 0 1.0000 - -0.9454 0 2.0000 - -0.9390 0 3.0000 - -0.9349 0 1.0000 - -0.9237 0 1.0000 - -0.9233 0 1.0000 - -0.8970 0 2.0000 - -0.8968 0 2.0000 - -0.8839 1.0000 2.0000 - -0.8153 1.0000 1.0000 - -0.8030 1.0000 2.0000 - -0.7987 1.0000 1.0000 - -0.7525 1.0000 1.0000 - -0.7055 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.10319 - ------------------------------------------- - -testing cutpoint: -0.629522 - - ---- view of lincomb & g_node & w_node ---- - - -1.1854 0 1.0000 - -1.0810 0 1.0000 - -1.0339 0 1.0000 - -1.0278 0 2.0000 - -0.9915 0 3.0000 - -0.9799 0 1.0000 - -0.9690 0 1.0000 - -0.9454 0 2.0000 - -0.9390 0 3.0000 - -0.9349 0 1.0000 - -0.9237 0 1.0000 - -0.9233 0 1.0000 - -0.8970 0 2.0000 - -0.8968 0 2.0000 - -0.8839 0 2.0000 - -0.8153 0 1.0000 - -0.8030 0 2.0000 - -0.7987 0 1.0000 - -0.7525 0 1.0000 - -0.7055 0 1.0000 - - -logrank stat for this cutpoint: 3.05802 - ------------------------------------------- - -testing cutpoint: -0.116922 - - ---- view of lincomb & g_node & w_node ---- - - -1.1854 0 1.0000 - -1.0810 0 1.0000 - -1.0339 0 1.0000 - -1.0278 0 2.0000 - -0.9915 0 3.0000 - -0.9799 0 1.0000 - -0.9690 0 1.0000 - -0.9454 0 2.0000 - -0.9390 0 3.0000 - -0.9349 0 1.0000 - -0.9237 0 1.0000 - -0.9233 0 1.0000 - -0.8970 0 2.0000 - -0.8968 0 2.0000 - -0.8839 0 2.0000 - -0.8153 0 1.0000 - -0.8030 0 2.0000 - -0.7987 0 1.0000 - -0.7525 0 1.0000 - -0.7055 0 1.0000 - - -logrank stat for this cutpoint: 2.96616 - ------------------------------------------- - -testing cutpoint: 0.422455 - - ---- view of lincomb & g_node & w_node ---- - - -1.1854 0 1.0000 - -1.0810 0 1.0000 - -1.0339 0 1.0000 - -1.0278 0 2.0000 - -0.9915 0 3.0000 - -0.9799 0 1.0000 - -0.9690 0 1.0000 - -0.9454 0 2.0000 - -0.9390 0 3.0000 - -0.9349 0 1.0000 - -0.9237 0 1.0000 - -0.9233 0 1.0000 - -0.8970 0 2.0000 - -0.8968 0 2.0000 - -0.8839 0 2.0000 - -0.8153 0 1.0000 - -0.8030 0 2.0000 - -0.7987 0 1.0000 - -0.7525 0 1.0000 - -0.7055 0 1.0000 - - -logrank stat for this cutpoint: 17.2113 - ------------------------------------------- - -testing cutpoint: 1.58133 - - ---- view of lincomb & g_node & w_node ---- - - -1.1854 0 1.0000 - -1.0810 0 1.0000 - -1.0339 0 1.0000 - -1.0278 0 2.0000 - -0.9915 0 3.0000 - -0.9799 0 1.0000 - -0.9690 0 1.0000 - -0.9454 0 2.0000 - -0.9390 0 3.0000 - -0.9349 0 1.0000 - -0.9237 0 1.0000 - -0.9233 0 1.0000 - -0.8970 0 2.0000 - -0.8968 0 2.0000 - -0.8839 0 2.0000 - -0.8153 0 1.0000 - -0.8030 0 2.0000 - -0.7987 0 1.0000 - -0.7525 0 1.0000 - -0.7055 0 1.0000 - - -logrank stat for this cutpoint: 14.329 - ------------------------------------------- - -node assignments: - 2 - 2 - 3 - 2 - 2 - 3 - 3 - 2 - 3 - 4 - 3 - 2 - 3 - 3 - 2 - 2 - 2 - 2 - 2 - 2 - 3 - 2 - 3 - 2 - 4 - 3 - 2 - 4 - 3 - 2 - 2 - 2 - 2 - 4 - 2 - 2 - 2 - 2 - 2 - 4 - 3 - 2 - 3 - 3 - 3 - 4 - 2 - 3 - 2 - 4 - 3 - 3 - 3 - 4 - 2 - 3 - 2 - 2 - 3 - 2 - 3 - 2 - 4 - 3 - 2 - 2 - 2 - 2 - 2 - 3 - 2 - 2 - 2 - 2 - 3 - 4 - 4 - 3 - 3 - 3 - 2 - 2 - 2 - 2 - 4 - 2 - 2 - 2 - 2 - 3 - 2 - 2 - 2 - 2 - 3 - 3 - 2 - 3 - 2 - 4 - 3 - 2 - 4 - 3 - 3 - 4 - 3 - 2 - 4 - 4 - 3 - 3 - 3 - 2 - -growing node 2 - - ---- view of x_node ---- - - 3.3800e+02 1.0000e+00 4.0000e+00 - 1.4725e+02 2.0000e+00 4.0000e+00 - 1.5500e+02 2.0000e+00 4.0000e+00 - 1.1935e+02 2.0000e+00 4.0000e+00 - 2.8055e+02 2.0000e+00 4.0000e+00 - 1.0600e+02 2.0000e+00 4.0000e+00 - 1.2710e+02 2.0000e+00 4.0000e+00 - 1.4725e+02 2.0000e+00 4.0000e+00 - 1.8060e+02 1.0000e+00 4.0000e+00 - 1.2126e+02 2.0000e+00 4.0000e+00 - 1.7050e+02 2.0000e+00 3.0000e+00 - 1.3400e+02 1.0000e+00 4.0000e+00 - 1.7515e+02 1.0000e+00 4.0000e+00 - 1.3795e+02 2.0000e+00 4.0000e+00 - 2.4645e+02 2.0000e+00 4.0000e+00 - 1.8910e+02 2.0000e+00 4.0000e+00 - 1.7825e+02 1.0000e+00 4.0000e+00 - 1.6740e+02 1.0000e+00 3.0000e+00 - 7.7500e+01 1.0000e+00 3.0000e+00 - 1.5810e+02 1.0000e+00 3.0000e+00 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3200e+02 0 - - ------ finding lower bound for cut-points ----- -current value: -2.02666 -- next: -1.8522 -- N events: 1 -- N risk: 1 -current value: -1.8522 -- next: -1.55129 -- N events: 1 -- N risk: 3 -current value: -1.55129 -- next: -1.45261 -- N events: 4 -- N risk: 6 - -lower cutpoint: -1.55129 - - n_events, left node: 4 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.48545 ---- next value: 1.38665 ---- N events: 2 ---- N risk: 2 -current value: 1.38665 ---- next value: 1.29354 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 1.29354 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.6234 - -0.5732 - 0.2477 - 0.3480 - 0.6829 - - -testing cutpoint: -0.623356 - - ---- view of lincomb & g_node & w_node ---- - - -2.0267 0 1.0000 - -1.8522 0 2.0000 - -1.5513 0 3.0000 - -1.4526 0 4.0000 - -1.3766 0 1.0000 - -1.0770 0 1.0000 - -0.9178 0 2.0000 - -0.9022 0 1.0000 - -0.8502 0 2.0000 - -0.8096 0 2.0000 - -0.7436 0 2.0000 - -0.7368 0 1.0000 - -0.6495 0 1.0000 - -0.6234 0 2.0000 - -0.5732 1.0000 2.0000 - -0.5710 1.0000 3.0000 - -0.5710 1.0000 1.0000 - -0.5448 1.0000 1.0000 - -0.4719 1.0000 2.0000 - -0.4542 1.0000 1.0000 - - -logrank stat for this cutpoint: 12.1265 - ------------------------------------------- - -testing cutpoint: -0.573235 - - ---- view of lincomb & g_node & w_node ---- - - -2.0267 0 1.0000 - -1.8522 0 2.0000 - -1.5513 0 3.0000 - -1.4526 0 4.0000 - -1.3766 0 1.0000 - -1.0770 0 1.0000 - -0.9178 0 2.0000 - -0.9022 0 1.0000 - -0.8502 0 2.0000 - -0.8096 0 2.0000 - -0.7436 0 2.0000 - -0.7368 0 1.0000 - -0.6495 0 1.0000 - -0.6234 0 2.0000 - -0.5732 0 2.0000 - -0.5710 1.0000 3.0000 - -0.5710 1.0000 1.0000 - -0.5448 1.0000 1.0000 - -0.4719 1.0000 2.0000 - -0.4542 1.0000 1.0000 - - -logrank stat for this cutpoint: 14.8045 - ------------------------------------------- - -testing cutpoint: 0.247746 - - ---- view of lincomb & g_node & w_node ---- - - -2.0267 0 1.0000 - -1.8522 0 2.0000 - -1.5513 0 3.0000 - -1.4526 0 4.0000 - -1.3766 0 1.0000 - -1.0770 0 1.0000 - -0.9178 0 2.0000 - -0.9022 0 1.0000 - -0.8502 0 2.0000 - -0.8096 0 2.0000 - -0.7436 0 2.0000 - -0.7368 0 1.0000 - -0.6495 0 1.0000 - -0.6234 0 2.0000 - -0.5732 0 2.0000 - -0.5710 0 3.0000 - -0.5710 0 1.0000 - -0.5448 0 1.0000 - -0.4719 0 2.0000 - -0.4542 0 1.0000 - - -logrank stat for this cutpoint: 38.8646 - ------------------------------------------- - -testing cutpoint: 0.348004 - - ---- view of lincomb & g_node & w_node ---- - - -2.0267 0 1.0000 - -1.8522 0 2.0000 - -1.5513 0 3.0000 - -1.4526 0 4.0000 - -1.3766 0 1.0000 - -1.0770 0 1.0000 - -0.9178 0 2.0000 - -0.9022 0 1.0000 - -0.8502 0 2.0000 - -0.8096 0 2.0000 - -0.7436 0 2.0000 - -0.7368 0 1.0000 - -0.6495 0 1.0000 - -0.6234 0 2.0000 - -0.5732 0 2.0000 - -0.5710 0 3.0000 - -0.5710 0 1.0000 - -0.5448 0 1.0000 - -0.4719 0 2.0000 - -0.4542 0 1.0000 - - -logrank stat for this cutpoint: 39.1016 - ------------------------------------------- - -testing cutpoint: 0.682901 - - ---- view of lincomb & g_node & w_node ---- - - -2.0267 0 1.0000 - -1.8522 0 2.0000 - -1.5513 0 3.0000 - -1.4526 0 4.0000 - -1.3766 0 1.0000 - -1.0770 0 1.0000 - -0.9178 0 2.0000 - -0.9022 0 1.0000 - -0.8502 0 2.0000 - -0.8096 0 2.0000 - -0.7436 0 2.0000 - -0.7368 0 1.0000 - -0.6495 0 1.0000 - -0.6234 0 2.0000 - -0.5732 0 2.0000 - -0.5710 0 3.0000 - -0.5710 0 1.0000 - -0.5448 0 1.0000 - -0.4719 0 2.0000 - -0.4542 0 1.0000 - - -logrank stat for this cutpoint: 28.6487 - ------------------------------------------- - -node assignments: - 6 - 5 - 3 - 3 - 5 - 6 - 3 - 5 - 3 - 3 - 3 - 3 - 5 - 5 - 6 - 3 - 6 - 5 - 4 - 3 - 5 - 5 - 6 - 4 - 3 - 5 - 4 - 3 - 3 - 4 - 5 - 5 - 5 - 6 - 6 - 5 - 5 - 5 - 3 - 5 - 3 - 6 - 6 - 4 - 6 - 6 - 6 - 5 - 5 - 6 - 6 - 5 - 6 - 6 - 5 - 6 - 6 - 6 - 6 - 5 - 5 - 4 - 6 - 6 - 6 - 6 - -growing node 3 - - ---- view of x_node ---- - - 2.4000e+00 1.0000e+00 1.0200e+02 - 8.0000e-01 1.0000e+00 5.2000e+01 - 4.0000e-01 1.0000e+00 2.4000e+01 - 1.3000e+00 1.0000e+00 6.7000e+01 - 6.0000e-01 1.0000e+00 3.1000e+01 - 5.0000e-01 1.0000e+00 2.2000e+01 - 7.0000e-01 1.0000e+00 4.3000e+01 - 1.1000e+00 1.0000e+00 7.3000e+01 - 1.1000e+00 2.0000e+00 4.5000e+01 - 8.0000e-01 1.0000e+00 6.2000e+01 - 2.2000e+00 1.0000e+00 7.7000e+01 - 2.0000e+00 2.0000e+00 7.0000e+01 - 1.6000e+00 1.0000e+00 6.9000e+01 - 1.3000e+00 1.0000e+00 7.5000e+01 - 5.0000e-01 1.0000e+00 3.8000e+01 - 1.3000e+00 1.0000e+00 9.7000e+01 - 5.0000e-01 1.0000e+00 4.0000e+01 - 2.2000e+00 2.0000e+00 7.5000e+01 - 2.1000e+00 1.0000e+00 5.2000e+01 - 5.0000e-01 1.0000e+00 5.2000e+01 - - - ---- view of y_node ---- - - 8.7700e+02 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.3000e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - 1.3490e+03 0 - 1.4080e+03 0 - 1.4120e+03 0 - 1.4180e+03 0 - 1.4330e+03 0 - 1.4550e+03 0 - 1.4570e+03 0 - 1.5580e+03 0 - 1.5920e+03 0 - 1.6140e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.505038 -- next: -0.504979 -- N events: 1 -- N risk: 1 -current value: -0.504979 -- next: -0.427762 -- N events: 1 -- N risk: 3 -current value: -0.427762 -- next: -0.427234 -- N events: 1 -- N risk: 6 - -lower cutpoint: -0.427762 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.132 ---- next value: 1.05681 ---- N events: 0 ---- N risk: 2 -current value: 1.05681 ---- next value: 0.984051 ---- N events: 0 ---- N risk: 5 -current value: 0.984051 ---- next value: 0.976593 ---- N events: 0 ---- N risk: 6 -current value: 0.976593 ---- next value: 0.899258 ---- N events: 0 ---- N risk: 7 -current value: 0.899258 ---- next value: 0.828061 ---- N events: 0 ---- N risk: 8 -current value: 0.828061 ---- next value: 0.821248 ---- N events: 0 ---- N risk: 9 -current value: 0.821248 ---- next value: 0.749875 ---- N events: 1 ---- N risk: 10 - -upper cutpoint: 0.749875 - - n_events, right node: 1 - - n_risk, right node: 10 - -Randomly sampled cutpoints: - -0.3496 - -0.1953 - -0.1939 - -0.1165 - 0.1978 - - -testing cutpoint: -0.349605 - - ---- view of lincomb & g_node & w_node ---- - - -0.5050 0 1.0000 - -0.5050 0 2.0000 - -0.4278 0 3.0000 - -0.4272 0 1.0000 - -0.4271 0 1.0000 - -0.4271 0 1.0000 - -0.4268 0 3.0000 - -0.3503 0 1.0000 - -0.3503 0 1.0000 - -0.3498 0 3.0000 - -0.3498 0 1.0000 - -0.3496 0 1.0000 - -0.3495 1.0000 2.0000 - -0.3494 1.0000 1.0000 - -0.3490 1.0000 1.0000 - -0.3488 1.0000 3.0000 - -0.3486 1.0000 1.0000 - -0.3412 1.0000 3.0000 - -0.2717 1.0000 1.0000 - -0.2712 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.5993 - ------------------------------------------- - -testing cutpoint: -0.195348 - - ---- view of lincomb & g_node & w_node ---- - - -0.5050 0 1.0000 - -0.5050 0 2.0000 - -0.4278 0 3.0000 - -0.4272 0 1.0000 - -0.4271 0 1.0000 - -0.4271 0 1.0000 - -0.4268 0 3.0000 - -0.3503 0 1.0000 - -0.3503 0 1.0000 - -0.3498 0 3.0000 - -0.3498 0 1.0000 - -0.3496 0 1.0000 - -0.3495 0 2.0000 - -0.3494 0 1.0000 - -0.3490 0 1.0000 - -0.3488 0 3.0000 - -0.3486 0 1.0000 - -0.3412 0 3.0000 - -0.2717 0 1.0000 - -0.2712 0 1.0000 - - -logrank stat for this cutpoint: 0.201508 - ------------------------------------------- - -testing cutpoint: -0.193879 - - ---- view of lincomb & g_node & w_node ---- - - -0.5050 0 1.0000 - -0.5050 0 2.0000 - -0.4278 0 3.0000 - -0.4272 0 1.0000 - -0.4271 0 1.0000 - -0.4271 0 1.0000 - -0.4268 0 3.0000 - -0.3503 0 1.0000 - -0.3503 0 1.0000 - -0.3498 0 3.0000 - -0.3498 0 1.0000 - -0.3496 0 1.0000 - -0.3495 0 2.0000 - -0.3494 0 1.0000 - -0.3490 0 1.0000 - -0.3488 0 3.0000 - -0.3486 0 1.0000 - -0.3412 0 3.0000 - -0.2717 0 1.0000 - -0.2712 0 1.0000 - - -logrank stat for this cutpoint: 0.393978 - ------------------------------------------- - -testing cutpoint: -0.116516 - - ---- view of lincomb & g_node & w_node ---- - - -0.5050 0 1.0000 - -0.5050 0 2.0000 - -0.4278 0 3.0000 - -0.4272 0 1.0000 - -0.4271 0 1.0000 - -0.4271 0 1.0000 - -0.4268 0 3.0000 - -0.3503 0 1.0000 - -0.3503 0 1.0000 - -0.3498 0 3.0000 - -0.3498 0 1.0000 - -0.3496 0 1.0000 - -0.3495 0 2.0000 - -0.3494 0 1.0000 - -0.3490 0 1.0000 - -0.3488 0 3.0000 - -0.3486 0 1.0000 - -0.3412 0 3.0000 - -0.2717 0 1.0000 - -0.2712 0 1.0000 - - -logrank stat for this cutpoint: 0.39709 - ------------------------------------------- - -testing cutpoint: 0.197845 - - ---- view of lincomb & g_node & w_node ---- - - -0.5050 0 1.0000 - -0.5050 0 2.0000 - -0.4278 0 3.0000 - -0.4272 0 1.0000 - -0.4271 0 1.0000 - -0.4271 0 1.0000 - -0.4268 0 3.0000 - -0.3503 0 1.0000 - -0.3503 0 1.0000 - -0.3498 0 3.0000 - -0.3498 0 1.0000 - -0.3496 0 1.0000 - -0.3495 0 2.0000 - -0.3494 0 1.0000 - -0.3490 0 1.0000 - -0.3488 0 3.0000 - -0.3486 0 1.0000 - -0.3412 0 3.0000 - -0.2717 0 1.0000 - -0.2712 0 1.0000 - - -logrank stat for this cutpoint: 6.0225 - ------------------------------------------- - -node assignments: - 8 - 5 - 5 - 5 - 6 - 5 - 7 - 5 - 5 - 5 - 6 - 4 - 4 - 6 - 6 - 5 - 7 - 6 - 5 - 6 - 4 - 5 - 5 - 5 - 8 - 5 - 7 - 5 - 5 - 5 - 6 - 7 - 7 - 6 - 7 - 7 - 6 - 5 - 8 - 7 - 4 - 5 - 6 - 6 - 7 - 5 - 5 - 4 - 5 - 5 - 8 - 4 - 4 - 6 - 6 - 5 - 7 - 6 - 8 - 8 - 6 - 7 - 7 - 7 - 5 - 4 - 6 - 6 - 8 - 6 - 8 - 6 - 8 - 6 - 6 - 6 - 6 - 6 - 7 - 8 - 5 - 5 - 5 - 6 - 5 - 6 - 4 - 6 - -growing node 4 - - ---- view of x_node ---- - - 3.8300 54.2560 0.6000 - 3.4300 55.9863 1.2000 - 3.6300 56.2765 3.4000 - 3.3500 58.9514 2.3000 - 3.9900 62.8611 1.1000 - 3.9400 65.7632 1.8000 - 3.4000 39.1978 1.3000 - 3.5000 62.9076 2.1000 - 3.5300 70.8364 2.0000 - 3.3500 68.4627 1.1000 - 3.4300 69.3470 0.9000 - 2.9700 64.5722 1.9000 - 2.9500 59.7618 1.6000 - 3.0600 42.6858 0.9000 - 3.6500 56.6297 0.9000 - 3.3100 46.7625 1.1000 - 4.0400 37.0568 0.5000 - 3.8000 52.1533 0.8000 - 3.2000 48.6188 1.2000 - 3.6000 62.8611 1.1000 - - - ---- view of y_node ---- - - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 6.7300e+02 1.0000e+00 - 9.9900e+02 1.0000e+00 - 1.0300e+03 0 - 1.3600e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.4870e+03 1.0000e+00 - 1.5760e+03 1.0000e+00 - 1.7700e+03 0 - 1.7860e+03 1.0000e+00 - 1.8100e+03 0 - 1.8820e+03 0 - 1.9320e+03 0 - 2.0500e+03 0 - 2.1060e+03 0 - 2.2210e+03 0 - 2.6240e+03 0 - 2.8470e+03 1.0000e+00 - 2.9900e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.20887 -- next: -0.707459 -- N events: 0 -- N risk: 1 -current value: -0.707459 -- next: -0.703651 -- N events: 0 -- N risk: 3 -current value: -0.703651 -- next: -0.689786 -- N events: 1 -- N risk: 4 -current value: -0.689786 -- next: -0.61901 -- N events: 3 -- N risk: 6 - -lower cutpoint: -0.689786 - - n_events, left node: 3 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.86741 ---- next value: 1.40459 ---- N events: 1 ---- N risk: 1 -current value: 1.40459 ---- next value: 0.924967 ---- N events: 2 ---- N risk: 2 -current value: 0.924967 ---- next value: 0.774289 ---- N events: 4 ---- N risk: 4 -current value: 0.774289 ---- next value: 0.592287 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.592287 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.6898 - -0.0400 - 0.1946 - 0.2884 - 0.4337 - - -testing cutpoint: -0.689786 - - ---- view of lincomb & g_node & w_node ---- - - -1.2089 0 1.0000 - -0.7075 0 2.0000 - -0.7037 0 1.0000 - -0.6898 0 2.0000 - -0.6190 1.0000 1.0000 - -0.4287 1.0000 1.0000 - -0.3909 1.0000 1.0000 - -0.2977 1.0000 1.0000 - -0.2650 1.0000 1.0000 - -0.2538 1.0000 1.0000 - -0.2194 1.0000 2.0000 - -0.1563 1.0000 2.0000 - -0.0973 1.0000 2.0000 - -0.0716 1.0000 1.0000 - -0.0400 1.0000 2.0000 - 0.0322 1.0000 1.0000 - 0.1606 1.0000 1.0000 - 0.1946 1.0000 1.0000 - 0.2884 1.0000 1.0000 - 0.4337 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.273045 - ------------------------------------------- - -testing cutpoint: -0.0400122 - - ---- view of lincomb & g_node & w_node ---- - - -1.2089 0 1.0000 - -0.7075 0 2.0000 - -0.7037 0 1.0000 - -0.6898 0 2.0000 - -0.6190 0 1.0000 - -0.4287 0 1.0000 - -0.3909 0 1.0000 - -0.2977 0 1.0000 - -0.2650 0 1.0000 - -0.2538 0 1.0000 - -0.2194 0 2.0000 - -0.1563 0 2.0000 - -0.0973 0 2.0000 - -0.0716 0 1.0000 - -0.0400 0 2.0000 - 0.0322 1.0000 1.0000 - 0.1606 1.0000 1.0000 - 0.1946 1.0000 1.0000 - 0.2884 1.0000 1.0000 - 0.4337 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.4732 - ------------------------------------------- - -testing cutpoint: 0.194649 - - ---- view of lincomb & g_node & w_node ---- - - -1.2089 0 1.0000 - -0.7075 0 2.0000 - -0.7037 0 1.0000 - -0.6898 0 2.0000 - -0.6190 0 1.0000 - -0.4287 0 1.0000 - -0.3909 0 1.0000 - -0.2977 0 1.0000 - -0.2650 0 1.0000 - -0.2538 0 1.0000 - -0.2194 0 2.0000 - -0.1563 0 2.0000 - -0.0973 0 2.0000 - -0.0716 0 1.0000 - -0.0400 0 2.0000 - 0.0322 0 1.0000 - 0.1606 0 1.0000 - 0.1946 0 1.0000 - 0.2884 1.0000 1.0000 - 0.4337 1.0000 1.0000 - - -logrank stat for this cutpoint: 8.18724 - ------------------------------------------- - -testing cutpoint: 0.288416 - - ---- view of lincomb & g_node & w_node ---- - - -1.2089 0 1.0000 - -0.7075 0 2.0000 - -0.7037 0 1.0000 - -0.6898 0 2.0000 - -0.6190 0 1.0000 - -0.4287 0 1.0000 - -0.3909 0 1.0000 - -0.2977 0 1.0000 - -0.2650 0 1.0000 - -0.2538 0 1.0000 - -0.2194 0 2.0000 - -0.1563 0 2.0000 - -0.0973 0 2.0000 - -0.0716 0 1.0000 - -0.0400 0 2.0000 - 0.0322 0 1.0000 - 0.1606 0 1.0000 - 0.1946 0 1.0000 - 0.2884 0 1.0000 - 0.4337 1.0000 1.0000 - - -logrank stat for this cutpoint: 16.7898 - ------------------------------------------- - -testing cutpoint: 0.433712 - - ---- view of lincomb & g_node & w_node ---- - - -1.2089 0 1.0000 - -0.7075 0 2.0000 - -0.7037 0 1.0000 - -0.6898 0 2.0000 - -0.6190 0 1.0000 - -0.4287 0 1.0000 - -0.3909 0 1.0000 - -0.2977 0 1.0000 - -0.2650 0 1.0000 - -0.2538 0 1.0000 - -0.2194 0 2.0000 - -0.1563 0 2.0000 - -0.0973 0 2.0000 - -0.0716 0 1.0000 - -0.0400 0 2.0000 - 0.0322 0 1.0000 - 0.1606 0 1.0000 - 0.1946 0 1.0000 - 0.2884 0 1.0000 - 0.4337 0 1.0000 - - -logrank stat for this cutpoint: 18.0358 - ------------------------------------------- - -node assignments: - 6 - 9 - 6 - 6 - 9 - 5 - 6 - 6 - 6 - 6 - 6 - 5 - 5 - 6 - 5 - 5 - 5 - 5 - 6 - 6 - 6 - 6 - 6 - 6 - 6 - 10 - -growing node 5 - - ---- view of x_node ---- - - 2.0000e+00 1.0000e+00 1.3200e+02 - 1.0000e+00 2.0000e+00 2.1000e+02 - 2.0000e+00 1.0000e+00 2.4000e+02 - 2.0000e+00 1.0000e+00 3.4400e+02 - 1.0000e+00 1.0000e+00 2.9700e+02 - 2.0000e+00 1.0000e+00 2.6800e+02 - 1.0000e+00 1.0000e+00 2.6400e+02 - 2.0000e+00 1.0000e+00 2.7700e+02 - 2.0000e+00 1.0000e+00 2.9800e+02 - 1.0000e+00 1.0000e+00 2.6900e+02 - 2.0000e+00 1.0000e+00 1.5100e+02 - 2.0000e+00 1.0000e+00 1.6500e+02 - 1.0000e+00 1.0000e+00 1.5600e+02 - 2.0000e+00 1.0000e+00 4.7100e+02 - 2.0000e+00 1.0000e+00 2.9800e+02 - 2.0000e+00 1.0000e+00 2.1600e+02 - 2.0000e+00 1.0000e+00 2.9600e+02 - 1.0000e+00 1.0000e+00 2.2700e+02 - 1.0000e+00 2.0000e+00 1.4900e+02 - 1.0000e+00 1.0000e+00 2.2800e+02 - - - ---- view of y_node ---- - - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3200e+02 0 - 7.3300e+02 1.0000e+00 - 7.3700e+02 0 - 7.8600e+02 1.0000e+00 - 7.9000e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 8.5900e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.7400e+02 1.0000e+00 - 1.0670e+03 0 - 1.0800e+03 1.0000e+00 - 1.0840e+03 0 - 1.1700e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.2350e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.526918 -- next: -0.502555 -- N events: 2 -- N risk: 2 -current value: -0.502555 -- next: -0.476282 -- N events: 2 -- N risk: 3 -current value: -0.476282 -- next: -0.421347 -- N events: 4 -- N risk: 5 - -lower cutpoint: -0.476282 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 4.25921 ---- next value: 4.23007 ---- N events: 1 ---- N risk: 1 -current value: 4.23007 ---- next value: -0.044993 ---- N events: 3 ---- N risk: 3 -current value: -0.044993 ---- next value: -0.0469038 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: -0.0469038 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.3669 - -0.3540 - -0.2069 - -0.1405 - -0.1338 - - -testing cutpoint: -0.36689 - - ---- view of lincomb & g_node & w_node ---- - - -0.5269 0 2.0000 - -0.5026 0 1.0000 - -0.4763 0 2.0000 - -0.4213 0 2.0000 - -0.4080 0 1.0000 - -0.4056 0 2.0000 - -0.3884 0 1.0000 - -0.3879 0 2.0000 - -0.3827 0 2.0000 - -0.3784 0 1.0000 - -0.3678 0 1.0000 - -0.3669 0 1.0000 - -0.3540 1.0000 1.0000 - -0.2069 1.0000 3.0000 - -0.1816 1.0000 2.0000 - -0.1563 1.0000 3.0000 - -0.1463 1.0000 1.0000 - -0.1405 1.0000 4.0000 - -0.1396 1.0000 2.0000 - -0.1338 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.11436 - ------------------------------------------- - -testing cutpoint: -0.353993 - - ---- view of lincomb & g_node & w_node ---- - - -0.5269 0 2.0000 - -0.5026 0 1.0000 - -0.4763 0 2.0000 - -0.4213 0 2.0000 - -0.4080 0 1.0000 - -0.4056 0 2.0000 - -0.3884 0 1.0000 - -0.3879 0 2.0000 - -0.3827 0 2.0000 - -0.3784 0 1.0000 - -0.3678 0 1.0000 - -0.3669 0 1.0000 - -0.3540 0 1.0000 - -0.2069 1.0000 3.0000 - -0.1816 1.0000 2.0000 - -0.1563 1.0000 3.0000 - -0.1463 1.0000 1.0000 - -0.1405 1.0000 4.0000 - -0.1396 1.0000 2.0000 - -0.1338 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.38037 - ------------------------------------------- - -testing cutpoint: -0.206931 - - ---- view of lincomb & g_node & w_node ---- - - -0.5269 0 2.0000 - -0.5026 0 1.0000 - -0.4763 0 2.0000 - -0.4213 0 2.0000 - -0.4080 0 1.0000 - -0.4056 0 2.0000 - -0.3884 0 1.0000 - -0.3879 0 2.0000 - -0.3827 0 2.0000 - -0.3784 0 1.0000 - -0.3678 0 1.0000 - -0.3669 0 1.0000 - -0.3540 0 1.0000 - -0.2069 0 3.0000 - -0.1816 1.0000 2.0000 - -0.1563 1.0000 3.0000 - -0.1463 1.0000 1.0000 - -0.1405 1.0000 4.0000 - -0.1396 1.0000 2.0000 - -0.1338 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.18608 - ------------------------------------------- - -testing cutpoint: -0.140532 - - ---- view of lincomb & g_node & w_node ---- - - -0.5269 0 2.0000 - -0.5026 0 1.0000 - -0.4763 0 2.0000 - -0.4213 0 2.0000 - -0.4080 0 1.0000 - -0.4056 0 2.0000 - -0.3884 0 1.0000 - -0.3879 0 2.0000 - -0.3827 0 2.0000 - -0.3784 0 1.0000 - -0.3678 0 1.0000 - -0.3669 0 1.0000 - -0.3540 0 1.0000 - -0.2069 0 3.0000 - -0.1816 0 2.0000 - -0.1563 0 3.0000 - -0.1463 0 1.0000 - -0.1405 0 4.0000 - -0.1396 1.0000 2.0000 - -0.1338 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.17469 - ------------------------------------------- - -testing cutpoint: -0.133844 - - ---- view of lincomb & g_node & w_node ---- - - -0.5269 0 2.0000 - -0.5026 0 1.0000 - -0.4763 0 2.0000 - -0.4213 0 2.0000 - -0.4080 0 1.0000 - -0.4056 0 2.0000 - -0.3884 0 1.0000 - -0.3879 0 2.0000 - -0.3827 0 2.0000 - -0.3784 0 1.0000 - -0.3678 0 1.0000 - -0.3669 0 1.0000 - -0.3540 0 1.0000 - -0.2069 0 3.0000 - -0.1816 0 2.0000 - -0.1563 0 3.0000 - -0.1463 0 1.0000 - -0.1405 0 4.0000 - -0.1396 0 2.0000 - -0.1338 0 2.0000 - - -logrank stat for this cutpoint: 1.6673 - ------------------------------------------- - -best split stat, 2.11436, was < split_min_stat, 3.84 -sprouting new leaf with node 5 - - ---- view of leaf_data ---- - - 3.2600e+02 9.6825e-01 3.1746e-02 - 3.3400e+02 9.3651e-01 6.4533e-02 - 5.9700e+02 9.2063e-01 8.1482e-02 - 6.1100e+02 9.0476e-01 9.8723e-02 - 7.3300e+02 8.8831e-01 1.1691e-01 - - -growing node 6 - - ---- view of x_node ---- - - 2.2900e+02 3.3800e+02 2.0000e+00 - 1.4300e+02 1.4725e+02 2.0000e+00 - 2.4300e+02 1.5500e+02 1.0000e+00 - 1.0200e+02 1.1935e+02 2.0000e+00 - 2.0000e+02 2.8055e+02 1.0000e+00 - 9.1000e+01 1.0600e+02 2.0000e+00 - 1.0100e+02 1.2710e+02 1.0000e+00 - 4.3200e+02 1.4725e+02 2.0000e+00 - 1.1800e+02 1.8060e+02 2.0000e+00 - 1.5800e+02 1.2126e+02 1.0000e+00 - 1.1800e+02 1.7515e+02 2.0000e+00 - 1.7200e+02 1.3795e+02 2.0000e+00 - 5.6000e+01 2.4645e+02 1.0000e+00 - 1.9500e+02 1.8910e+02 2.0000e+00 - 1.2200e+02 1.7825e+02 1.0000e+00 - 6.9000e+01 1.5965e+02 1.0000e+00 - 3.2200e+02 1.1470e+02 1.0000e+00 - 1.0400e+02 1.3640e+02 1.0000e+00 - 9.1000e+01 1.7670e+02 1.0000e+00 - 1.3900e+02 1.9840e+02 1.0000e+00 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.1000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.4800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 7.5000e+02 1.0000e+00 - 8.3700e+02 0 - 8.5000e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.71611 -- next: -1.63945 -- N events: 2 -- N risk: 2 -current value: -1.63945 -- next: -1.28065 -- N events: 2 -- N risk: 3 -current value: -1.28065 -- next: -1.22748 -- N events: 3 -- N risk: 4 -current value: -1.22748 -- next: -1.06892 -- N events: 4 -- N risk: 5 - -lower cutpoint: -1.22748 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.30958 ---- next value: 1.88967 ---- N events: 3 ---- N risk: 3 -current value: 1.88967 ---- next value: 1.86614 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 1.86614 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.0358 - -1.0342 - -0.4484 - 1.5792 - 1.6627 - - -testing cutpoint: -1.03579 - - ---- view of lincomb & g_node & w_node ---- - - -1.7161 0 2.0000 - -1.6394 0 1.0000 - -1.2806 0 1.0000 - -1.2275 0 1.0000 - -1.0689 0 4.0000 - -1.0599 0 1.0000 - -1.0358 0 1.0000 - -1.0342 1.0000 1.0000 - -0.8972 1.0000 2.0000 - -0.8886 1.0000 4.0000 - -0.8601 1.0000 2.0000 - -0.8535 1.0000 1.0000 - -0.8500 1.0000 2.0000 - -0.8314 1.0000 1.0000 - -0.7440 1.0000 1.0000 - -0.7153 1.0000 1.0000 - -0.6380 1.0000 2.0000 - -0.4748 1.0000 1.0000 - -0.4484 1.0000 2.0000 - 1.0111 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.493241 - ------------------------------------------- - -testing cutpoint: -1.03415 - - ---- view of lincomb & g_node & w_node ---- - - -1.7161 0 2.0000 - -1.6394 0 1.0000 - -1.2806 0 1.0000 - -1.2275 0 1.0000 - -1.0689 0 4.0000 - -1.0599 0 1.0000 - -1.0358 0 1.0000 - -1.0342 0 1.0000 - -0.8972 1.0000 2.0000 - -0.8886 1.0000 4.0000 - -0.8601 1.0000 2.0000 - -0.8535 1.0000 1.0000 - -0.8500 1.0000 2.0000 - -0.8314 1.0000 1.0000 - -0.7440 1.0000 1.0000 - -0.7153 1.0000 1.0000 - -0.6380 1.0000 2.0000 - -0.4748 1.0000 1.0000 - -0.4484 1.0000 2.0000 - 1.0111 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.38701 - ------------------------------------------- - -testing cutpoint: -0.448356 - - ---- view of lincomb & g_node & w_node ---- - - -1.7161 0 2.0000 - -1.6394 0 1.0000 - -1.2806 0 1.0000 - -1.2275 0 1.0000 - -1.0689 0 4.0000 - -1.0599 0 1.0000 - -1.0358 0 1.0000 - -1.0342 0 1.0000 - -0.8972 0 2.0000 - -0.8886 0 4.0000 - -0.8601 0 2.0000 - -0.8535 0 1.0000 - -0.8500 0 2.0000 - -0.8314 0 1.0000 - -0.7440 0 1.0000 - -0.7153 0 1.0000 - -0.6380 0 2.0000 - -0.4748 0 1.0000 - -0.4484 0 2.0000 - 1.0111 1.0000 2.0000 - - -logrank stat for this cutpoint: 30.1938 - ------------------------------------------- - -testing cutpoint: 1.57921 - - ---- view of lincomb & g_node & w_node ---- - - -1.7161 0 2.0000 - -1.6394 0 1.0000 - -1.2806 0 1.0000 - -1.2275 0 1.0000 - -1.0689 0 4.0000 - -1.0599 0 1.0000 - -1.0358 0 1.0000 - -1.0342 0 1.0000 - -0.8972 0 2.0000 - -0.8886 0 4.0000 - -0.8601 0 2.0000 - -0.8535 0 1.0000 - -0.8500 0 2.0000 - -0.8314 0 1.0000 - -0.7440 0 1.0000 - -0.7153 0 1.0000 - -0.6380 0 2.0000 - -0.4748 0 1.0000 - -0.4484 0 2.0000 - 1.0111 0 2.0000 - - -logrank stat for this cutpoint: 29.9689 - ------------------------------------------- - -testing cutpoint: 1.66265 - - ---- view of lincomb & g_node & w_node ---- - - -1.7161 0 2.0000 - -1.6394 0 1.0000 - -1.2806 0 1.0000 - -1.2275 0 1.0000 - -1.0689 0 4.0000 - -1.0599 0 1.0000 - -1.0358 0 1.0000 - -1.0342 0 1.0000 - -0.8972 0 2.0000 - -0.8886 0 4.0000 - -0.8601 0 2.0000 - -0.8535 0 1.0000 - -0.8500 0 2.0000 - -0.8314 0 1.0000 - -0.7440 0 1.0000 - -0.7153 0 1.0000 - -0.6380 0 2.0000 - -0.4748 0 1.0000 - -0.4484 0 2.0000 - 1.0111 0 2.0000 - - -logrank stat for this cutpoint: 14.8435 - ------------------------------------------- - -node assignments: - 5 - 9 - 11 - 11 - 11 - 5 - 12 - 5 - 11 - 11 - 5 - 9 - 5 - 11 - 5 - 10 - 11 - 5 - 12 - 12 - 5 - 12 - 12 - 12 - 12 - 5 - 12 - 12 - -growing node 7 - - ---- view of x_node ---- - - 1.2820e+03 2.0000e+00 3.4400e+02 - 7.9700e+02 2.0000e+00 2.8800e+02 - 1.0720e+03 2.0000e+00 2.2700e+02 - 6.6300e+02 3.0000e+00 2.4600e+02 - 6.5700e+02 2.0000e+00 2.6800e+02 - 2.8900e+02 3.0000e+00 2.4300e+02 - 1.4060e+03 4.0000e+00 2.4800e+02 - 1.1050e+03 4.0000e+00 2.9300e+02 - 9.1100e+02 2.0000e+00 2.8000e+02 - 6.7600e+02 2.0000e+00 2.4900e+02 - 6.1300e+02 3.0000e+00 2.7900e+02 - 8.2300e+02 3.0000e+00 2.4200e+02 - 4.6600e+02 3.0000e+00 1.5600e+02 - 2.7690e+03 4.0000e+00 3.0300e+02 - 9.7600e+02 2.0000e+00 3.2200e+02 - 1.2370e+03 3.0000e+00 3.7100e+02 - 7.9400e+02 3.0000e+00 3.0500e+02 - 3.6900e+02 3.0000e+00 3.2600e+02 - 8.2400e+02 3.0000e+00 2.0400e+02 - 1.0010e+03 3.0000e+00 2.6500e+02 - - - ---- view of y_node ---- - - 1.1490e+03 0 - 1.1530e+03 0 - 1.2160e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.3000e+03 0 - 1.3010e+03 0 - 1.3210e+03 0 - 1.4330e+03 0 - 1.4570e+03 0 - 1.6140e+03 0 - 1.7010e+03 0 - 1.7350e+03 0 - 1.7690e+03 0 - 1.7760e+03 0 - 1.7850e+03 0 - 1.7900e+03 0 - 1.8310e+03 0 - 1.8320e+03 0 - 1.9510e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.43088 -- next: -1.18041 -- N events: 0 -- N risk: 1 -current value: -1.18041 -- next: -1.08447 -- N events: 0 -- N risk: 2 -current value: -1.08447 -- next: -1.00695 -- N events: 0 -- N risk: 5 -current value: -1.00695 -- next: -0.976973 -- N events: 0 -- N risk: 6 -current value: -0.976973 -- next: -0.91607 -- N events: 0 -- N risk: 7 -current value: -0.91607 -- next: -0.895317 -- N events: 0 -- N risk: 10 -current value: -0.895317 -- next: -0.838226 -- N events: 0 -- N risk: 12 -current value: -0.838226 -- next: -0.763231 -- N events: 0 -- N risk: 14 -current value: -0.763231 -- next: -0.650428 -- N events: 0 -- N risk: 16 -current value: -0.650428 -- next: -0.642424 -- N events: 0 -- N risk: 17 -current value: -0.642424 -- next: -0.622204 -- N events: 0 -- N risk: 18 -current value: -0.622204 -- next: -0.606521 -- N events: 1 -- N risk: 19 - -lower cutpoint: -0.622204 - - n_events, left node: 1 - - n_risk, left node: 19 - ------ finding upper bound for cut-points ----- -current value: 3.56752 ---- next value: 1.72863 ---- N events: 2 ---- N risk: 2 -current value: 1.72863 ---- next value: 1.1201 ---- N events: 2 ---- N risk: 3 -current value: 1.1201 ---- next value: 1.09629 ---- N events: 2 ---- N risk: 4 -current value: 1.09629 ---- next value: 1.0357 ---- N events: 2 ---- N risk: 6 - -upper cutpoint: 1.0357 - - n_events, right node: 2 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.5231 - -0.3466 - -0.1877 - 0.7813 - 0.9653 - - -testing cutpoint: -0.523106 - - ---- view of lincomb & g_node & w_node ---- - - -1.4309 0 1.0000 - -1.1804 0 1.0000 - -1.0845 0 3.0000 - -1.0069 0 1.0000 - -0.9770 0 1.0000 - -0.9161 0 3.0000 - -0.8953 0 2.0000 - -0.8382 0 2.0000 - -0.7632 0 2.0000 - -0.6504 0 1.0000 - -0.6424 0 1.0000 - -0.6222 0 1.0000 - -0.6065 0 1.0000 - -0.5883 0 2.0000 - -0.5647 0 1.0000 - -0.5375 0 1.0000 - -0.5231 0 2.0000 - -0.5027 1.0000 3.0000 - -0.4705 1.0000 2.0000 - -0.4416 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.17933 - ------------------------------------------- - -testing cutpoint: -0.346631 - - ---- view of lincomb & g_node & w_node ---- - - -1.4309 0 1.0000 - -1.1804 0 1.0000 - -1.0845 0 3.0000 - -1.0069 0 1.0000 - -0.9770 0 1.0000 - -0.9161 0 3.0000 - -0.8953 0 2.0000 - -0.8382 0 2.0000 - -0.7632 0 2.0000 - -0.6504 0 1.0000 - -0.6424 0 1.0000 - -0.6222 0 1.0000 - -0.6065 0 1.0000 - -0.5883 0 2.0000 - -0.5647 0 1.0000 - -0.5375 0 1.0000 - -0.5231 0 2.0000 - -0.5027 0 3.0000 - -0.4705 0 2.0000 - -0.4416 0 1.0000 - - -logrank stat for this cutpoint: 1.5508 - ------------------------------------------- - -testing cutpoint: -0.187727 - - ---- view of lincomb & g_node & w_node ---- - - -1.4309 0 1.0000 - -1.1804 0 1.0000 - -1.0845 0 3.0000 - -1.0069 0 1.0000 - -0.9770 0 1.0000 - -0.9161 0 3.0000 - -0.8953 0 2.0000 - -0.8382 0 2.0000 - -0.7632 0 2.0000 - -0.6504 0 1.0000 - -0.6424 0 1.0000 - -0.6222 0 1.0000 - -0.6065 0 1.0000 - -0.5883 0 2.0000 - -0.5647 0 1.0000 - -0.5375 0 1.0000 - -0.5231 0 2.0000 - -0.5027 0 3.0000 - -0.4705 0 2.0000 - -0.4416 0 1.0000 - - -logrank stat for this cutpoint: 0.358379 - ------------------------------------------- - -testing cutpoint: 0.781285 - - ---- view of lincomb & g_node & w_node ---- - - -1.4309 0 1.0000 - -1.1804 0 1.0000 - -1.0845 0 3.0000 - -1.0069 0 1.0000 - -0.9770 0 1.0000 - -0.9161 0 3.0000 - -0.8953 0 2.0000 - -0.8382 0 2.0000 - -0.7632 0 2.0000 - -0.6504 0 1.0000 - -0.6424 0 1.0000 - -0.6222 0 1.0000 - -0.6065 0 1.0000 - -0.5883 0 2.0000 - -0.5647 0 1.0000 - -0.5375 0 1.0000 - -0.5231 0 2.0000 - -0.5027 0 3.0000 - -0.4705 0 2.0000 - -0.4416 0 1.0000 - - -logrank stat for this cutpoint: 1.04285 - ------------------------------------------- - -testing cutpoint: 0.96529 - - ---- view of lincomb & g_node & w_node ---- - - -1.4309 0 1.0000 - -1.1804 0 1.0000 - -1.0845 0 3.0000 - -1.0069 0 1.0000 - -0.9770 0 1.0000 - -0.9161 0 3.0000 - -0.8953 0 2.0000 - -0.8382 0 2.0000 - -0.7632 0 2.0000 - -0.6504 0 1.0000 - -0.6424 0 1.0000 - -0.6222 0 1.0000 - -0.6065 0 1.0000 - -0.5883 0 2.0000 - -0.5647 0 1.0000 - -0.5375 0 1.0000 - -0.5231 0 2.0000 - -0.5027 0 3.0000 - -0.4705 0 2.0000 - -0.4416 0 1.0000 - - -logrank stat for this cutpoint: 1.64458 - ------------------------------------------- - -best split stat, 1.64458, was < split_min_stat, 3.84 -sprouting new leaf with node 7 - - ---- view of leaf_data ---- - - 2.0550e+03 9.8551e-01 1.4493e-02 - 2.0900e+03 9.7101e-01 2.9199e-02 - 2.2970e+03 9.3505e-01 6.6236e-02 - 2.5830e+03 8.7130e-01 1.3442e-01 - 2.5980e+03 8.5005e-01 1.5881e-01 - - -growing node 8 - -sprouting new leaf with node 8 - - ---- view of leaf_data ---- - - 1.2120e+03 9.6296e-01 3.7037e-02 - 1.7410e+03 9.0947e-01 9.2593e-02 - 2.1050e+03 7.8820e-01 2.2593e-01 - 2.6890e+03 6.7560e-01 3.6878e-01 - 3.7620e+03 3.3780e-01 8.6878e-01 - - -growing node 9 - -sprouting new leaf with node 9 - - ---- view of leaf_data ---- - - 5.1500e+02 9.6154e-01 3.8462e-02 - 1.4340e+03 8.7793e-01 1.2542e-01 - 1.7860e+03 7.9013e-01 2.2542e-01 - 2.8470e+03 6.9137e-01 3.5042e-01 - 3.5840e+03 5.5309e-01 5.5042e-01 - - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 6.7300e+02 8.5714e-01 1.4286e-01 - 9.9900e+02 7.1429e-01 3.0952e-01 - 1.3600e+03 4.2857e-01 7.0952e-01 - 1.4870e+03 2.8571e-01 1.0429e+00 - 1.5760e+03 1.4286e-01 1.5429e+00 - - -growing node 11 - - ---- view of x_node ---- - - 4.0000e+00 3.9400e+02 2.0000e+00 - 4.0000e+00 1.7800e+02 2.0000e+00 - 4.0000e+00 2.6000e+02 2.0000e+00 - 4.0000e+00 2.6000e+02 2.0000e+00 - 4.0000e+00 3.2500e+02 2.0000e+00 - 4.0000e+00 1.7800e+02 2.0000e+00 - 4.0000e+00 2.0100e+02 2.0000e+00 - 4.0000e+00 3.1600e+02 2.0000e+00 - 4.0000e+00 2.4200e+02 2.0000e+00 - 4.0000e+00 2.4700e+02 2.0000e+00 - 4.0000e+00 4.6800e+02 2.0000e+00 - 4.0000e+00 3.7400e+02 2.0000e+00 - 4.0000e+00 5.1800e+02 2.0000e+00 - 3.0000e+00 4.2600e+02 2.0000e+00 - 4.0000e+00 1.9400e+02 2.0000e+00 - 4.0000e+00 3.3800e+02 1.0000e+00 - 4.0000e+00 4.3600e+02 2.0000e+00 - 3.0000e+00 3.5000e+02 1.0000e+00 - 4.0000e+00 5.5800e+02 2.0000e+00 - - - ---- view of y_node ---- - - 7.1000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 7.5000e+02 1.0000e+00 - 8.3700e+02 0 - 8.5000e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.3200e+03 0 - 1.4200e+03 0 - 1.6900e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.8270e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.33647 -- next: -1.22159 -- N events: 2 -- N risk: 2 -current value: -1.22159 -- next: -1.0879 -- N events: 3 -- N risk: 3 -current value: -1.0879 -- next: -0.831599 -- N events: 4 -- N risk: 4 -current value: -0.831599 -- next: -0.831599 -- N events: 4 -- N risk: 5 -current value: -0.831599 -- next: -0.777184 -- N events: 4 -- N risk: 6 - -lower cutpoint: -0.831599 - - n_events, left node: 4 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.02496 ---- next value: 1.02496 ---- N events: 2 ---- N risk: 2 -current value: 1.02496 ---- next value: 0.925535 ---- N events: 4 ---- N risk: 4 -current value: 0.925535 ---- next value: 0.882035 ---- N events: 4 ---- N risk: 6 - -upper cutpoint: 0.882035 - - n_events, right node: 4 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.3173 - -0.1930 - 0.1674 - 0.6272 - 0.8820 - - -testing cutpoint: -0.317325 - - ---- view of lincomb & g_node & w_node ---- - - -1.3365 0 2.0000 - -1.2216 0 1.0000 - -1.0879 0 1.0000 - -0.8316 0 1.0000 - -0.8316 0 1.0000 - -0.7772 0 2.0000 - -0.5783 0 4.0000 - -0.3173 0 1.0000 - -0.1930 1.0000 1.0000 - 0.1115 1.0000 2.0000 - 0.1674 1.0000 1.0000 - 0.5154 1.0000 4.0000 - 0.5154 1.0000 1.0000 - 0.5962 1.0000 1.0000 - 0.6272 1.0000 1.0000 - 0.8820 1.0000 1.0000 - 0.9255 1.0000 2.0000 - 1.0250 1.0000 2.0000 - 1.0250 1.0000 2.0000 - - -logrank stat for this cutpoint: 11.9051 - ------------------------------------------- - -testing cutpoint: -0.193039 - - ---- view of lincomb & g_node & w_node ---- - - -1.3365 0 2.0000 - -1.2216 0 1.0000 - -1.0879 0 1.0000 - -0.8316 0 1.0000 - -0.8316 0 1.0000 - -0.7772 0 2.0000 - -0.5783 0 4.0000 - -0.3173 0 1.0000 - -0.1930 0 1.0000 - 0.1115 1.0000 2.0000 - 0.1674 1.0000 1.0000 - 0.5154 1.0000 4.0000 - 0.5154 1.0000 1.0000 - 0.5962 1.0000 1.0000 - 0.6272 1.0000 1.0000 - 0.8820 1.0000 1.0000 - 0.9255 1.0000 2.0000 - 1.0250 1.0000 2.0000 - 1.0250 1.0000 2.0000 - - -logrank stat for this cutpoint: 12.0135 - ------------------------------------------- - -testing cutpoint: 0.16739 - - ---- view of lincomb & g_node & w_node ---- - - -1.3365 0 2.0000 - -1.2216 0 1.0000 - -1.0879 0 1.0000 - -0.8316 0 1.0000 - -0.8316 0 1.0000 - -0.7772 0 2.0000 - -0.5783 0 4.0000 - -0.3173 0 1.0000 - -0.1930 0 1.0000 - 0.1115 0 2.0000 - 0.1674 0 1.0000 - 0.5154 1.0000 4.0000 - 0.5154 1.0000 1.0000 - 0.5962 1.0000 1.0000 - 0.6272 1.0000 1.0000 - 0.8820 1.0000 1.0000 - 0.9255 1.0000 2.0000 - 1.0250 1.0000 2.0000 - 1.0250 1.0000 2.0000 - - -logrank stat for this cutpoint: 9.90501 - ------------------------------------------- - -testing cutpoint: 0.627249 - - ---- view of lincomb & g_node & w_node ---- - - -1.3365 0 2.0000 - -1.2216 0 1.0000 - -1.0879 0 1.0000 - -0.8316 0 1.0000 - -0.8316 0 1.0000 - -0.7772 0 2.0000 - -0.5783 0 4.0000 - -0.3173 0 1.0000 - -0.1930 0 1.0000 - 0.1115 0 2.0000 - 0.1674 0 1.0000 - 0.5154 0 4.0000 - 0.5154 0 1.0000 - 0.5962 0 1.0000 - 0.6272 0 1.0000 - 0.8820 1.0000 1.0000 - 0.9255 1.0000 2.0000 - 1.0250 1.0000 2.0000 - 1.0250 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.816267 - ------------------------------------------- - -testing cutpoint: 0.882035 - - ---- view of lincomb & g_node & w_node ---- - - -1.3365 0 2.0000 - -1.2216 0 1.0000 - -1.0879 0 1.0000 - -0.8316 0 1.0000 - -0.8316 0 1.0000 - -0.7772 0 2.0000 - -0.5783 0 4.0000 - -0.3173 0 1.0000 - -0.1930 0 1.0000 - 0.1115 0 2.0000 - 0.1674 0 1.0000 - 0.5154 0 4.0000 - 0.5154 0 1.0000 - 0.5962 0 1.0000 - 0.6272 0 1.0000 - 0.8820 0 1.0000 - 0.9255 1.0000 2.0000 - 1.0250 1.0000 2.0000 - 1.0250 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.420837 - ------------------------------------------- - -node assignments: - 14 - 12 - 12 - 9 - 12 - 5 - 9 - 12 - 5 - 14 - 12 - 13 - 12 - 14 - 12 - 14 - 14 - 12 - 12 - -growing node 12 - -sprouting new leaf with node 12 - - ---- view of leaf_data ---- - - 4.1000e+01 8.2353e-01 1.7647e-01 - 5.1000e+01 7.0588e-01 3.1933e-01 - 1.1000e+02 5.2941e-01 5.6933e-01 - 1.7900e+02 4.1176e-01 7.9155e-01 - 2.1600e+02 2.9412e-01 1.0773e+00 - - -growing node 13 - -sprouting new leaf with node 13 - - ---- view of leaf_data ---- - - 7.1000e+01 9.2857e-01 7.1429e-02 - 9.3000e+02 7.8571e-01 2.2527e-01 - 9.8000e+02 7.1429e-01 3.1618e-01 - 1.1650e+03 6.4286e-01 4.1618e-01 - 1.6900e+03 1.8367e-01 1.1305e+00 - - -growing node 14 - -sprouting new leaf with node 14 - - ---- view of leaf_data ---- - - 1.3100e+02 8.8235e-01 1.1765e-01 - 1.8600e+02 6.4706e-01 3.8431e-01 - 3.2100e+02 5.8824e-01 4.7522e-01 - 4.6000e+02 4.7059e-01 6.7522e-01 - 5.5200e+02 3.5294e-01 9.2522e-01 - - -Effective sample size: 276 -Effective number of events: 107 -Number of unique rows in x: 183 - -Max number of nodes for this tree: 213 -Max number of leaves for this tree: 107 - -growing node 0 - - ---- view of x_node ---- - - 1.0000e+00 6.2000e+01 2.2900e+02 - 2.0000e+00 3.0200e+02 1.4300e+02 - 2.0000e+00 8.0000e+01 1.6800e+02 - 2.0000e+00 1.1000e+02 1.0200e+02 - 2.0000e+00 2.8300e+02 2.0000e+02 - 2.0000e+00 1.0800e+02 7.5000e+01 - 2.0000e+00 1.9500e+02 9.1000e+01 - 1.0000e+00 2.1300e+02 4.9000e+01 - 1.0000e+00 4.4700e+02 7.2000e+01 - 1.0000e+00 1.0200e+02 1.1800e+02 - 2.0000e+00 2.1400e+02 1.9100e+02 - 2.0000e+00 1.2400e+02 1.5800e+02 - 2.0000e+00 1.3200e+02 9.1000e+01 - 1.0000e+00 2.1000e+02 1.5500e+02 - 1.0000e+00 1.4500e+02 7.0000e+01 - 2.0000e+00 4.3000e+02 5.6000e+01 - 1.0000e+00 1.1900e+02 1.2200e+02 - 1.0000e+00 2.4000e+02 1.3500e+02 - 1.0000e+00 3.4400e+02 9.1000e+01 - 2.0000e+00 1.7300e+02 5.5000e+01 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.7000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 1.9100e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.3054 -- next: -1.28589 -- N events: 0 -- N risk: 1 -current value: -1.28589 -- next: -1.18224 -- N events: 2 -- N risk: 3 -current value: -1.18224 -- next: -1.16359 -- N events: 2 -- N risk: 6 - -lower cutpoint: -1.18224 - - n_events, left node: 2 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 2.7799 ---- next value: 2.68124 ---- N events: 0 ---- N risk: 3 -current value: 2.68124 ---- next value: 2.4989 ---- N events: 1 ---- N risk: 4 -current value: 2.4989 ---- next value: 2.05076 ---- N events: 3 ---- N risk: 6 - -upper cutpoint: 2.05076 - - n_events, right node: 3 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.7775 - -0.7233 - -0.7125 - 0.3779 - 1.3721 - - -testing cutpoint: -0.777549 - - ---- view of lincomb & g_node & w_node ---- - - -1.3054 0 1.0000 - -1.2859 0 2.0000 - -1.1822 0 3.0000 - -1.1636 0 1.0000 - -1.1581 0 4.0000 - -1.1522 0 1.0000 - -1.1522 0 3.0000 - -1.1465 0 3.0000 - -1.0754 0 2.0000 - -1.0322 0 3.0000 - -1.0293 0 1.0000 - -1.0176 0 2.0000 - -1.0100 0 2.0000 - -1.0043 0 1.0000 - -0.9807 0 1.0000 - -0.9629 0 1.0000 - -0.9451 0 2.0000 - -0.9341 0 1.0000 - -0.9292 0 1.0000 - -0.9184 0 1.0000 - - -logrank stat for this cutpoint: 20.7772 - ------------------------------------------- - -testing cutpoint: -0.723282 - - ---- view of lincomb & g_node & w_node ---- - - -1.3054 0 1.0000 - -1.2859 0 2.0000 - -1.1822 0 3.0000 - -1.1636 0 1.0000 - -1.1581 0 4.0000 - -1.1522 0 1.0000 - -1.1522 0 3.0000 - -1.1465 0 3.0000 - -1.0754 0 2.0000 - -1.0322 0 3.0000 - -1.0293 0 1.0000 - -1.0176 0 2.0000 - -1.0100 0 2.0000 - -1.0043 0 1.0000 - -0.9807 0 1.0000 - -0.9629 0 1.0000 - -0.9451 0 2.0000 - -0.9341 0 1.0000 - -0.9292 0 1.0000 - -0.9184 0 1.0000 - - -logrank stat for this cutpoint: 25.2185 - ------------------------------------------- - -testing cutpoint: -0.712474 - - ---- view of lincomb & g_node & w_node ---- - - -1.3054 0 1.0000 - -1.2859 0 2.0000 - -1.1822 0 3.0000 - -1.1636 0 1.0000 - -1.1581 0 4.0000 - -1.1522 0 1.0000 - -1.1522 0 3.0000 - -1.1465 0 3.0000 - -1.0754 0 2.0000 - -1.0322 0 3.0000 - -1.0293 0 1.0000 - -1.0176 0 2.0000 - -1.0100 0 2.0000 - -1.0043 0 1.0000 - -0.9807 0 1.0000 - -0.9629 0 1.0000 - -0.9451 0 2.0000 - -0.9341 0 1.0000 - -0.9292 0 1.0000 - -0.9184 0 1.0000 - - -logrank stat for this cutpoint: 26.8629 - ------------------------------------------- - -testing cutpoint: 0.377922 - - ---- view of lincomb & g_node & w_node ---- - - -1.3054 0 1.0000 - -1.2859 0 2.0000 - -1.1822 0 3.0000 - -1.1636 0 1.0000 - -1.1581 0 4.0000 - -1.1522 0 1.0000 - -1.1522 0 3.0000 - -1.1465 0 3.0000 - -1.0754 0 2.0000 - -1.0322 0 3.0000 - -1.0293 0 1.0000 - -1.0176 0 2.0000 - -1.0100 0 2.0000 - -1.0043 0 1.0000 - -0.9807 0 1.0000 - -0.9629 0 1.0000 - -0.9451 0 2.0000 - -0.9341 0 1.0000 - -0.9292 0 1.0000 - -0.9184 0 1.0000 - - -logrank stat for this cutpoint: 59.3499 - ------------------------------------------- - -testing cutpoint: 1.37214 - - ---- view of lincomb & g_node & w_node ---- - - -1.3054 0 1.0000 - -1.2859 0 2.0000 - -1.1822 0 3.0000 - -1.1636 0 1.0000 - -1.1581 0 4.0000 - -1.1522 0 1.0000 - -1.1522 0 3.0000 - -1.1465 0 3.0000 - -1.0754 0 2.0000 - -1.0322 0 3.0000 - -1.0293 0 1.0000 - -1.0176 0 2.0000 - -1.0100 0 2.0000 - -1.0043 0 1.0000 - -0.9807 0 1.0000 - -0.9629 0 1.0000 - -0.9451 0 2.0000 - -0.9341 0 1.0000 - -0.9292 0 1.0000 - -0.9184 0 1.0000 - - -logrank stat for this cutpoint: 22.0118 - ------------------------------------------- - -node assignments: - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - -growing node 1 - - ---- view of x_node ---- - - 2.0000 4.0000 13.2000 - 1.0000 3.0000 10.7000 - 2.0000 4.0000 12.0000 - 2.0000 4.0000 11.0000 - 1.0000 4.0000 12.2000 - 2.0000 4.0000 11.9000 - 2.0000 4.0000 12.0000 - 2.0000 3.0000 12.4000 - 2.0000 3.0000 11.4000 - 2.0000 3.0000 10.0000 - 2.0000 3.0000 11.5000 - 2.0000 4.0000 10.5000 - 1.0000 4.0000 10.4000 - 1.0000 2.0000 10.5000 - 1.0000 3.0000 10.3000 - 2.0000 4.0000 11.2000 - 1.0000 4.0000 9.9000 - 2.0000 4.0000 10.0000 - 2.0000 4.0000 10.0000 - 2.0000 3.0000 10.0000 - - - ---- view of y_node ---- - - 1.9100e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3200e+02 0 - 7.3300e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 8.3900e+02 0 - 8.7700e+02 0 - 8.9000e+02 1.0000e+00 - 9.0100e+02 0 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -2.05349 -- next: -1.92036 -- N events: 0 -- N risk: 1 -current value: -1.92036 -- next: -1.79314 -- N events: 0 -- N risk: 3 -current value: -1.79314 -- next: -1.78722 -- N events: 0 -- N risk: 6 -current value: -1.78722 -- next: -1.72065 -- N events: 0 -- N risk: 8 -current value: -1.72065 -- next: -1.65409 -- N events: 0 -- N risk: 10 -current value: -1.65409 -- next: -1.59344 -- N events: 0 -- N risk: 11 -current value: -1.59344 -- next: -1.38782 -- N events: 0 -- N risk: 14 -current value: -1.38782 -- next: -1.32717 -- N events: 2 -- N risk: 16 - -lower cutpoint: -1.38782 - - n_events, left node: 2 - - n_risk, left node: 16 - ------ finding upper bound for cut-points ----- -current value: 2.94431 ---- next value: 2.93902 ---- N events: 2 ---- N risk: 2 -current value: 2.93902 ---- next value: 2.81117 ---- N events: 2 ---- N risk: 3 -current value: 2.81117 ---- next value: 2.14551 ---- N events: 3 ---- N risk: 4 -current value: 2.14551 ---- next value: 2.14551 ---- N events: 5 ---- N risk: 6 -current value: 2.14551 ---- next value: 2.12247 ---- N events: 6 ---- N risk: 7 - -upper cutpoint: 2.12247 - - n_events, right node: 6 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -1.3272 - -1.0609 - -0.5053 - -0.4618 - 0.2586 - - -testing cutpoint: -1.32717 - - ---- view of lincomb & g_node & w_node ---- - - -2.0535 0 1.0000 - -1.9204 0 2.0000 - -1.7931 0 3.0000 - -1.7872 0 2.0000 - -1.7207 0 2.0000 - -1.6541 0 1.0000 - -1.5934 0 3.0000 - -1.3878 0 2.0000 - -1.3272 0 2.0000 - -1.2665 1.0000 2.0000 - -1.1940 1.0000 1.0000 - -1.1940 1.0000 1.0000 - -1.1275 1.0000 1.0000 - -1.1275 1.0000 1.0000 - -1.1275 1.0000 1.0000 - -1.1275 1.0000 1.0000 - -1.1216 1.0000 1.0000 - -1.0609 1.0000 2.0000 - -1.0550 1.0000 2.0000 - -0.9943 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.31904 - ------------------------------------------- - -testing cutpoint: -1.0609 - - ---- view of lincomb & g_node & w_node ---- - - -2.0535 0 1.0000 - -1.9204 0 2.0000 - -1.7931 0 3.0000 - -1.7872 0 2.0000 - -1.7207 0 2.0000 - -1.6541 0 1.0000 - -1.5934 0 3.0000 - -1.3878 0 2.0000 - -1.3272 0 2.0000 - -1.2665 0 2.0000 - -1.1940 0 1.0000 - -1.1940 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1216 0 1.0000 - -1.0609 0 2.0000 - -1.0550 1.0000 2.0000 - -0.9943 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.01946 - ------------------------------------------- - -testing cutpoint: -0.505331 - - ---- view of lincomb & g_node & w_node ---- - - -2.0535 0 1.0000 - -1.9204 0 2.0000 - -1.7931 0 3.0000 - -1.7872 0 2.0000 - -1.7207 0 2.0000 - -1.6541 0 1.0000 - -1.5934 0 3.0000 - -1.3878 0 2.0000 - -1.3272 0 2.0000 - -1.2665 0 2.0000 - -1.1940 0 1.0000 - -1.1940 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1216 0 1.0000 - -1.0609 0 2.0000 - -1.0550 0 2.0000 - -0.9943 0 1.0000 - - -logrank stat for this cutpoint: 11.2411 - ------------------------------------------- - -testing cutpoint: -0.461803 - - ---- view of lincomb & g_node & w_node ---- - - -2.0535 0 1.0000 - -1.9204 0 2.0000 - -1.7931 0 3.0000 - -1.7872 0 2.0000 - -1.7207 0 2.0000 - -1.6541 0 1.0000 - -1.5934 0 3.0000 - -1.3878 0 2.0000 - -1.3272 0 2.0000 - -1.2665 0 2.0000 - -1.1940 0 1.0000 - -1.1940 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1216 0 1.0000 - -1.0609 0 2.0000 - -1.0550 0 2.0000 - -0.9943 0 1.0000 - - -logrank stat for this cutpoint: 17.2613 - ------------------------------------------- - -testing cutpoint: 0.2586 - - ---- view of lincomb & g_node & w_node ---- - - -2.0535 0 1.0000 - -1.9204 0 2.0000 - -1.7931 0 3.0000 - -1.7872 0 2.0000 - -1.7207 0 2.0000 - -1.6541 0 1.0000 - -1.5934 0 3.0000 - -1.3878 0 2.0000 - -1.3272 0 2.0000 - -1.2665 0 2.0000 - -1.1940 0 1.0000 - -1.1940 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1275 0 1.0000 - -1.1216 0 1.0000 - -1.0609 0 2.0000 - -1.0550 0 2.0000 - -0.9943 0 1.0000 - - -logrank stat for this cutpoint: 29.8827 - ------------------------------------------- - -node assignments: - 2 - 2 - 3 - 3 - 4 - 3 - 2 - 2 - 4 - 4 - 4 - 3 - 4 - 3 - 3 - 2 - 4 - 2 - 3 - 4 - 4 - 3 - 2 - 3 - 4 - 4 - 4 - 2 - 4 - 3 - 2 - 4 - 3 - 4 - 3 - 3 - 4 - 4 - 3 - 3 - 3 - 4 - 3 - 3 - 2 - 3 - 3 - 2 - 2 - 3 - 2 - 3 - 3 - 3 - 4 - 3 - 3 - 4 - 3 - 3 - 3 - 3 - 2 - 3 - 2 - 3 - 2 - 2 - 2 - 4 - 2 - 3 - 2 - 4 - 4 - 2 - 2 - 3 - 3 - 3 - 3 - 2 - 2 - 2 - 4 - 2 - 3 - 3 - 4 - 3 - 4 - 3 - 3 - 2 - 3 - 4 - 4 - 4 - 2 - 3 - 2 - 3 - 2 - 4 - 2 - 2 - 3 - 4 - 2 - 2 - 2 - 2 - 4 - 4 - 4 - 2 - 2 - 2 - 4 - 4 - 3 - 4 - 3 - 3 - 2 - 2 - 3 - 2 - 2 - 4 - 3 - 2 - -growing node 2 - - ---- view of x_node ---- - - 2.2900e+02 2.2000e+02 1.7900e+01 - 1.4300e+02 1.4000e+02 1.2600e+01 - 1.6800e+02 2.2100e+02 2.1600e+01 - 1.0200e+02 5.7000e+01 2.5000e+00 - 2.0000e+02 5.8800e+02 1.1400e+01 - 7.5000e+01 2.2500e+02 2.4000e+00 - 9.1000e+01 1.3800e+02 6.6000e+00 - 1.9100e+02 5.5800e+02 1.7400e+01 - 1.5800e+02 1.7200e+02 3.6000e+00 - 9.1000e+01 1.9900e+02 6.6000e+00 - 5.5000e+01 4.6400e+02 3.4000e+00 - 1.1200e+02 2.9000e+02 3.0000e+00 - 3.2200e+02 3.0800e+02 4.4000e+00 - 2.0500e+02 2.1900e+02 2.5500e+01 - 1.0000e+02 1.0300e+02 6.7000e+00 - 1.4900e+02 1.1100e+02 6.5000e+00 - 9.0000e+01 1.1500e+02 3.4000e+00 - 1.4400e+02 7.3000e+01 2.9000e+00 - 1.5100e+02 1.5500e+02 6.4000e+00 - 1.1300e+02 9.6000e+01 3.8000e+00 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 5.1000e+01 1.0000e+00 - 7.7000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 8.3700e+02 0 - 8.5300e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2350e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -2.17682 -- next: -1.7273 -- N events: 1 -- N risk: 1 -current value: -1.7273 -- next: -1.64982 -- N events: 1 -- N risk: 3 -current value: -1.64982 -- next: -1.62222 -- N events: 1 -- N risk: 4 -current value: -1.62222 -- next: -1.53952 -- N events: 2 -- N risk: 5 - -lower cutpoint: -1.62222 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 5.35396 ---- next value: 4.41167 ---- N events: 3 ---- N risk: 3 -current value: 4.41167 ---- next value: 4.09506 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 4.09506 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.3132 - -1.1339 - -0.8696 - -0.0301 - 0.3524 - - -testing cutpoint: -1.31322 - - ---- view of lincomb & g_node & w_node ---- - - -2.1768 0 1.0000 - -1.7273 0 2.0000 - -1.6498 0 1.0000 - -1.6222 0 1.0000 - -1.5395 0 1.0000 - -1.5183 0 1.0000 - -1.3847 0 1.0000 - -1.3617 0 1.0000 - -1.3285 0 2.0000 - -1.3132 0 2.0000 - -1.2794 1.0000 1.0000 - -1.2618 1.0000 1.0000 - -1.2477 1.0000 1.0000 - -1.1965 1.0000 1.0000 - -1.1655 1.0000 1.0000 - -1.1425 1.0000 4.0000 - -1.1339 1.0000 2.0000 - -1.1240 1.0000 1.0000 - -1.1183 1.0000 1.0000 - -0.9409 1.0000 3.0000 - - -logrank stat for this cutpoint: 16.8553 - ------------------------------------------- - -testing cutpoint: -1.13387 - - ---- view of lincomb & g_node & w_node ---- - - -2.1768 0 1.0000 - -1.7273 0 2.0000 - -1.6498 0 1.0000 - -1.6222 0 1.0000 - -1.5395 0 1.0000 - -1.5183 0 1.0000 - -1.3847 0 1.0000 - -1.3617 0 1.0000 - -1.3285 0 2.0000 - -1.3132 0 2.0000 - -1.2794 0 1.0000 - -1.2618 0 1.0000 - -1.2477 0 1.0000 - -1.1965 0 1.0000 - -1.1655 0 1.0000 - -1.1425 0 4.0000 - -1.1339 0 2.0000 - -1.1240 1.0000 1.0000 - -1.1183 1.0000 1.0000 - -0.9409 1.0000 3.0000 - - -logrank stat for this cutpoint: 15.3803 - ------------------------------------------- - -testing cutpoint: -0.869649 - - ---- view of lincomb & g_node & w_node ---- - - -2.1768 0 1.0000 - -1.7273 0 2.0000 - -1.6498 0 1.0000 - -1.6222 0 1.0000 - -1.5395 0 1.0000 - -1.5183 0 1.0000 - -1.3847 0 1.0000 - -1.3617 0 1.0000 - -1.3285 0 2.0000 - -1.3132 0 2.0000 - -1.2794 0 1.0000 - -1.2618 0 1.0000 - -1.2477 0 1.0000 - -1.1965 0 1.0000 - -1.1655 0 1.0000 - -1.1425 0 4.0000 - -1.1339 0 2.0000 - -1.1240 0 1.0000 - -1.1183 0 1.0000 - -0.9409 0 3.0000 - - -logrank stat for this cutpoint: 17.6717 - ------------------------------------------- - -testing cutpoint: -0.0301125 - - ---- view of lincomb & g_node & w_node ---- - - -2.1768 0 1.0000 - -1.7273 0 2.0000 - -1.6498 0 1.0000 - -1.6222 0 1.0000 - -1.5395 0 1.0000 - -1.5183 0 1.0000 - -1.3847 0 1.0000 - -1.3617 0 1.0000 - -1.3285 0 2.0000 - -1.3132 0 2.0000 - -1.2794 0 1.0000 - -1.2618 0 1.0000 - -1.2477 0 1.0000 - -1.1965 0 1.0000 - -1.1655 0 1.0000 - -1.1425 0 4.0000 - -1.1339 0 2.0000 - -1.1240 0 1.0000 - -1.1183 0 1.0000 - -0.9409 0 3.0000 - - -logrank stat for this cutpoint: 29.3691 - ------------------------------------------- - -testing cutpoint: 0.352362 - - ---- view of lincomb & g_node & w_node ---- - - -2.1768 0 1.0000 - -1.7273 0 2.0000 - -1.6498 0 1.0000 - -1.6222 0 1.0000 - -1.5395 0 1.0000 - -1.5183 0 1.0000 - -1.3847 0 1.0000 - -1.3617 0 1.0000 - -1.3285 0 2.0000 - -1.3132 0 2.0000 - -1.2794 0 1.0000 - -1.2618 0 1.0000 - -1.2477 0 1.0000 - -1.1965 0 1.0000 - -1.1655 0 1.0000 - -1.1425 0 4.0000 - -1.1339 0 2.0000 - -1.1240 0 1.0000 - -1.1183 0 1.0000 - -0.9409 0 3.0000 - - -logrank stat for this cutpoint: 33.4791 - ------------------------------------------- - -node assignments: - 5 - 4 - 3 - 4 - 5 - 5 - 6 - 3 - 5 - 3 - 3 - 4 - 3 - 5 - 5 - 4 - 5 - 4 - 4 - 6 - 4 - 3 - 3 - 3 - 5 - 6 - 5 - 4 - 3 - 3 - 4 - 3 - 4 - 4 - 4 - 6 - 5 - 5 - 5 - 4 - 3 - 4 - 4 - 6 - 6 - 6 - 3 - 6 - 4 - 6 - 4 - -growing node 3 - -Column 3 was sampled but unique values of column 3 are 1.0000 - - ---- view of x_node ---- - - 4.4000e+00 4.4700e+02 7.2000e+01 - 2.8300e+00 2.9700e+02 1.3900e+02 - 3.1900e+00 3.8200e+02 1.5700e+02 - 3.1600e+00 3.3500e+02 8.8000e+01 - 3.8300e+00 3.0600e+02 1.9400e+02 - 3.1800e+00 3.0400e+02 8.4000e+01 - 3.2600e+00 3.3500e+02 1.7100e+02 - 2.7500e+00 2.3100e+02 8.2000e+01 - 3.5600e+00 3.4400e+02 5.9000e+01 - 4.2200e+00 2.9500e+02 1.3700e+02 - 3.9300e+00 2.4600e+02 7.5000e+01 - 3.9500e+00 2.6800e+02 1.0400e+02 - 3.7600e+00 2.1300e+02 1.2700e+02 - 3.7700e+00 3.0900e+02 1.1400e+02 - 3.5000e+00 1.5100e+02 4.4000e+01 - 3.5700e+00 2.8300e+02 6.9000e+01 - 3.6900e+00 2.8400e+02 1.4000e+02 - 3.4400e+00 2.5100e+02 1.9500e+02 - 3.7000e+00 2.1500e+02 1.9300e+02 - 3.7700e+00 2.8000e+02 5.6000e+01 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 7.3200e+02 0 - 7.9700e+02 1.0000e+00 - 8.3900e+02 0 - 8.7700e+02 0 - 9.0100e+02 0 - 9.4300e+02 1.0000e+00 - 9.9400e+02 0 - 1.1490e+03 0 - 1.2120e+03 1.0000e+00 - 1.2300e+03 0 - 1.2710e+03 0 - 1.2930e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.3630e+03 0 - 1.4120e+03 0 - 1.4180e+03 0 - 1.4200e+03 0 - 1.4330e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -3.61753 -- next: -3.295 -- N events: 0 -- N risk: 1 -current value: -3.295 -- next: -2.27873 -- N events: 0 -- N risk: 3 -current value: -2.27873 -- next: -2.23777 -- N events: 0 -- N risk: 4 -current value: -2.23777 -- next: -2.0726 -- N events: 0 -- N risk: 5 -current value: -2.0726 -- next: -2.05123 -- N events: 0 -- N risk: 6 -current value: -2.05123 -- next: -1.90513 -- N events: 0 -- N risk: 7 -current value: -1.90513 -- next: -1.88282 -- N events: 0 -- N risk: 8 -current value: -1.88282 -- next: -1.7877 -- N events: 0 -- N risk: 9 -current value: -1.7877 -- next: -1.66592 -- N events: 0 -- N risk: 10 -current value: -1.66592 -- next: -1.64109 -- N events: 0 -- N risk: 11 -current value: -1.64109 -- next: -1.62923 -- N events: 0 -- N risk: 12 -current value: -1.62923 -- next: -1.42471 -- N events: 0 -- N risk: 13 -current value: -1.42471 -- next: -1.35935 -- N events: 0 -- N risk: 14 -current value: -1.35935 -- next: -1.23358 -- N events: 0 -- N risk: 16 -current value: -1.23358 -- next: -1.15726 -- N events: 1 -- N risk: 17 - -lower cutpoint: -1.23358 - - n_events, left node: 1 - - n_risk, left node: 17 - ------ finding upper bound for cut-points ----- -current value: 2.67088 ---- next value: 2.61205 ---- N events: 4 ---- N risk: 4 -current value: 2.61205 ---- next value: 2.43428 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 2.43428 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.3530 - -0.1067 - 0.4855 - 0.6612 - 2.2339 - - -testing cutpoint: -0.352956 - - ---- view of lincomb & g_node & w_node ---- - - -3.6175 0 1.0000 - -3.2950 0 2.0000 - -2.2787 0 1.0000 - -2.2378 0 1.0000 - -2.0726 0 1.0000 - -2.0512 0 1.0000 - -1.9051 0 1.0000 - -1.8828 0 1.0000 - -1.7877 0 1.0000 - -1.6659 0 1.0000 - -1.6411 0 1.0000 - -1.6292 0 1.0000 - -1.4247 0 1.0000 - -1.3594 0 2.0000 - -1.2336 0 1.0000 - -1.1573 0 2.0000 - -1.1544 0 2.0000 - -1.1230 0 1.0000 - -1.1082 0 1.0000 - -1.0447 0 3.0000 - - -logrank stat for this cutpoint: 2.94445 - ------------------------------------------- - -testing cutpoint: -0.106664 - - ---- view of lincomb & g_node & w_node ---- - - -3.6175 0 1.0000 - -3.2950 0 2.0000 - -2.2787 0 1.0000 - -2.2378 0 1.0000 - -2.0726 0 1.0000 - -2.0512 0 1.0000 - -1.9051 0 1.0000 - -1.8828 0 1.0000 - -1.7877 0 1.0000 - -1.6659 0 1.0000 - -1.6411 0 1.0000 - -1.6292 0 1.0000 - -1.4247 0 1.0000 - -1.3594 0 2.0000 - -1.2336 0 1.0000 - -1.1573 0 2.0000 - -1.1544 0 2.0000 - -1.1230 0 1.0000 - -1.1082 0 1.0000 - -1.0447 0 3.0000 - - -logrank stat for this cutpoint: 6.05923 - ------------------------------------------- - -testing cutpoint: 0.485459 - - ---- view of lincomb & g_node & w_node ---- - - -3.6175 0 1.0000 - -3.2950 0 2.0000 - -2.2787 0 1.0000 - -2.2378 0 1.0000 - -2.0726 0 1.0000 - -2.0512 0 1.0000 - -1.9051 0 1.0000 - -1.8828 0 1.0000 - -1.7877 0 1.0000 - -1.6659 0 1.0000 - -1.6411 0 1.0000 - -1.6292 0 1.0000 - -1.4247 0 1.0000 - -1.3594 0 2.0000 - -1.2336 0 1.0000 - -1.1573 0 2.0000 - -1.1544 0 2.0000 - -1.1230 0 1.0000 - -1.1082 0 1.0000 - -1.0447 0 3.0000 - - -logrank stat for this cutpoint: 6.80737 - ------------------------------------------- - -testing cutpoint: 0.661245 - - ---- view of lincomb & g_node & w_node ---- - - -3.6175 0 1.0000 - -3.2950 0 2.0000 - -2.2787 0 1.0000 - -2.2378 0 1.0000 - -2.0726 0 1.0000 - -2.0512 0 1.0000 - -1.9051 0 1.0000 - -1.8828 0 1.0000 - -1.7877 0 1.0000 - -1.6659 0 1.0000 - -1.6411 0 1.0000 - -1.6292 0 1.0000 - -1.4247 0 1.0000 - -1.3594 0 2.0000 - -1.2336 0 1.0000 - -1.1573 0 2.0000 - -1.1544 0 2.0000 - -1.1230 0 1.0000 - -1.1082 0 1.0000 - -1.0447 0 3.0000 - - -logrank stat for this cutpoint: 9.29821 - ------------------------------------------- - -testing cutpoint: 2.23392 - - ---- view of lincomb & g_node & w_node ---- - - -3.6175 0 1.0000 - -3.2950 0 2.0000 - -2.2787 0 1.0000 - -2.2378 0 1.0000 - -2.0726 0 1.0000 - -2.0512 0 1.0000 - -1.9051 0 1.0000 - -1.8828 0 1.0000 - -1.7877 0 1.0000 - -1.6659 0 1.0000 - -1.6411 0 1.0000 - -1.6292 0 1.0000 - -1.4247 0 1.0000 - -1.3594 0 2.0000 - -1.2336 0 1.0000 - -1.1573 0 2.0000 - -1.1544 0 2.0000 - -1.1230 0 1.0000 - -1.1082 0 1.0000 - -1.0447 0 3.0000 - - -logrank stat for this cutpoint: 52.9267 - ------------------------------------------- - -node assignments: - 4 - 4 - 5 - 6 - 4 - 5 - 5 - 7 - 5 - 4 - 5 - 7 - 7 - 4 - 5 - 5 - 4 - 5 - 4 - 4 - 5 - 4 - 4 - 8 - 7 - 7 - 4 - 7 - 7 - 6 - 6 - 5 - 4 - 7 - 6 - 7 - 5 - 7 - 7 - 4 - 5 - 6 - 7 - 7 - 4 - 5 - 6 - 5 - 6 - 4 - 7 - 7 - 4 - 4 - 6 - 6 - 7 - 4 - 7 - 4 - 4 - 4 - 7 - 7 - 4 - 7 - 5 - 4 - 7 - 7 - 7 - 4 - 5 - 5 - 7 - 4 - 4 - 7 - 5 - 4 - 6 - 7 - 4 - 6 - 5 - 6 - -growing node 4 - - ---- view of x_node ---- - - 2.0000 67.9069 3.0800 - 1.0000 61.7276 3.0100 - 1.0000 61.2430 2.4300 - 1.0000 76.7091 3.1300 - 2.0000 45.6071 3.4700 - 2.0000 51.4689 3.0000 - 2.0000 46.2642 3.3800 - 2.0000 71.8932 3.2600 - 2.0000 35.7919 3.4300 - 2.0000 52.1834 3.1500 - 2.0000 67.4114 3.7200 - 1.0000 61.2950 3.2000 - 2.0000 67.4880 2.8100 - 1.0000 53.3060 3.4500 - 2.0000 46.3819 3.2000 - 1.0000 69.9411 3.0100 - 1.0000 55.3949 2.7500 - 2.0000 45.2101 3.5700 - 2.0000 52.7255 3.3700 - 1.0000 60.5366 3.0700 - - - ---- view of y_node ---- - - 1.9100e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 1.0770e+03 1.0000e+00 - 1.0840e+03 0 - 1.1520e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.2950e+03 0 - 1.3000e+03 0 - 1.3020e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.91551 -- next: -1.72489 -- N events: 0 -- N risk: 1 -current value: -1.72489 -- next: -1.28016 -- N events: 0 -- N risk: 4 -current value: -1.28016 -- next: -1.0872 -- N events: 0 -- N risk: 6 -current value: -1.0872 -- next: -1.02117 -- N events: 0 -- N risk: 7 -current value: -1.02117 -- next: -0.99208 -- N events: 1 -- N risk: 8 - -lower cutpoint: -1.02117 - - n_events, left node: 1 - - n_risk, left node: 8 - ------ finding upper bound for cut-points ----- -current value: 1.98723 ---- next value: 1.89788 ---- N events: 1 ---- N risk: 1 -current value: 1.89788 ---- next value: 1.75834 ---- N events: 2 ---- N risk: 2 -current value: 1.75834 ---- next value: 1.59103 ---- N events: 3 ---- N risk: 3 -current value: 1.59103 ---- next value: 1.55125 ---- N events: 4 ---- N risk: 4 -current value: 1.55125 ---- next value: 1.4777 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 1.4777 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.9367 - -0.1698 - 0.2186 - 0.7206 - 1.1096 - - -testing cutpoint: -0.936736 - - ---- view of lincomb & g_node & w_node ---- - - -1.9155 0 1.0000 - -1.7249 0 3.0000 - -1.2802 0 2.0000 - -1.0872 0 1.0000 - -1.0212 0 1.0000 - -0.9921 0 1.0000 - -0.9367 0 3.0000 - -0.6885 1.0000 2.0000 - -0.6510 1.0000 1.0000 - -0.6066 1.0000 3.0000 - -0.6006 1.0000 3.0000 - -0.5753 1.0000 3.0000 - -0.5512 1.0000 2.0000 - -0.4998 1.0000 2.0000 - -0.4709 1.0000 1.0000 - -0.4112 1.0000 1.0000 - -0.3880 1.0000 1.0000 - -0.3121 1.0000 1.0000 - -0.1698 1.0000 3.0000 - -0.1668 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.71924 - ------------------------------------------- - -testing cutpoint: -0.169755 - - ---- view of lincomb & g_node & w_node ---- - - -1.9155 0 1.0000 - -1.7249 0 3.0000 - -1.2802 0 2.0000 - -1.0872 0 1.0000 - -1.0212 0 1.0000 - -0.9921 0 1.0000 - -0.9367 0 3.0000 - -0.6885 0 2.0000 - -0.6510 0 1.0000 - -0.6066 0 3.0000 - -0.6006 0 3.0000 - -0.5753 0 3.0000 - -0.5512 0 2.0000 - -0.4998 0 2.0000 - -0.4709 0 1.0000 - -0.4112 0 1.0000 - -0.3880 0 1.0000 - -0.3121 0 1.0000 - -0.1698 0 3.0000 - -0.1668 1.0000 1.0000 - - -logrank stat for this cutpoint: 7.80151 - ------------------------------------------- - -testing cutpoint: 0.21857 - - ---- view of lincomb & g_node & w_node ---- - - -1.9155 0 1.0000 - -1.7249 0 3.0000 - -1.2802 0 2.0000 - -1.0872 0 1.0000 - -1.0212 0 1.0000 - -0.9921 0 1.0000 - -0.9367 0 3.0000 - -0.6885 0 2.0000 - -0.6510 0 1.0000 - -0.6066 0 3.0000 - -0.6006 0 3.0000 - -0.5753 0 3.0000 - -0.5512 0 2.0000 - -0.4998 0 2.0000 - -0.4709 0 1.0000 - -0.4112 0 1.0000 - -0.3880 0 1.0000 - -0.3121 0 1.0000 - -0.1698 0 3.0000 - -0.1668 0 1.0000 - - -logrank stat for this cutpoint: 14.8738 - ------------------------------------------- - -testing cutpoint: 0.720559 - - ---- view of lincomb & g_node & w_node ---- - - -1.9155 0 1.0000 - -1.7249 0 3.0000 - -1.2802 0 2.0000 - -1.0872 0 1.0000 - -1.0212 0 1.0000 - -0.9921 0 1.0000 - -0.9367 0 3.0000 - -0.6885 0 2.0000 - -0.6510 0 1.0000 - -0.6066 0 3.0000 - -0.6006 0 3.0000 - -0.5753 0 3.0000 - -0.5512 0 2.0000 - -0.4998 0 2.0000 - -0.4709 0 1.0000 - -0.4112 0 1.0000 - -0.3880 0 1.0000 - -0.3121 0 1.0000 - -0.1698 0 3.0000 - -0.1668 0 1.0000 - - -logrank stat for this cutpoint: 9.96186 - ------------------------------------------- - -testing cutpoint: 1.10959 - - ---- view of lincomb & g_node & w_node ---- - - -1.9155 0 1.0000 - -1.7249 0 3.0000 - -1.2802 0 2.0000 - -1.0872 0 1.0000 - -1.0212 0 1.0000 - -0.9921 0 1.0000 - -0.9367 0 3.0000 - -0.6885 0 2.0000 - -0.6510 0 1.0000 - -0.6066 0 3.0000 - -0.6006 0 3.0000 - -0.5753 0 3.0000 - -0.5512 0 2.0000 - -0.4998 0 2.0000 - -0.4709 0 1.0000 - -0.4112 0 1.0000 - -0.3880 0 1.0000 - -0.3121 0 1.0000 - -0.1698 0 3.0000 - -0.1668 0 1.0000 - - -logrank stat for this cutpoint: 25.4082 - ------------------------------------------- - -node assignments: - 9 - 7 - 7 - 7 - 8 - 9 - 5 - 9 - 9 - 9 - 5 - 5 - 7 - 6 - 7 - 5 - 7 - 5 - 10 - 10 - 9 - 10 - 10 - 7 - 6 - 10 - 6 - 7 - 9 - 7 - 6 - 9 - 5 - 5 - 6 - 5 - 7 - 6 - 9 - 10 - 6 - 9 - 9 - 5 - 6 - 6 - -growing node 5 - - ---- view of x_node ---- - - 1.1100e+01 4.8964e+01 1.2730e+03 - 1.4100e+01 6.9377e+01 1.0560e+03 - 1.2100e+01 7.0908e+01 6.2000e+02 - 1.1000e+01 4.1385e+01 7.2770e+03 - 9.8000e+00 4.1374e+01 1.1190e+03 - 1.1100e+01 5.1233e+01 9.7900e+02 - 1.1000e+01 4.9656e+01 2.3740e+03 - 1.0700e+01 5.8335e+01 2.2500e+03 - 1.0600e+01 4.3066e+01 5.1840e+03 - 1.0100e+01 5.8648e+01 1.7680e+03 - 1.0600e+01 6.3630e+01 2.7160e+03 - 1.0600e+01 6.0660e+01 1.1900e+03 - 1.1400e+01 3.4875e+01 1.4060e+03 - 1.1000e+01 6.5763e+01 1.0165e+04 - 9.8000e+00 3.8853e+01 1.2570e+03 - 9.9000e+00 5.2025e+01 3.2280e+03 - 1.1200e+01 4.4140e+01 1.9110e+03 - 1.0200e+01 2.6278e+01 1.1280e+03 - 1.0900e+01 5.2758e+01 2.6560e+03 - 9.6000e+00 4.4830e+01 1.2680e+03 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 8.3700e+02 0 - 9.8000e+02 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2350e+03 1.0000e+00 - 1.2500e+03 0 - 1.3010e+03 0 - 1.3600e+03 1.0000e+00 - 1.4080e+03 0 - 1.4440e+03 1.0000e+00 - 1.5420e+03 0 - 1.5680e+03 0 - 1.6570e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.659067 -- next: -0.628677 -- N events: 0 -- N risk: 1 -current value: -0.628677 -- next: -0.618055 -- N events: 1 -- N risk: 2 -current value: -0.618055 -- next: -0.588458 -- N events: 1 -- N risk: 3 -current value: -0.588458 -- next: -0.582167 -- N events: 1 -- N risk: 4 -current value: -0.582167 -- next: -0.522815 -- N events: 1 -- N risk: 7 - -lower cutpoint: -0.582167 - - n_events, left node: 1 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 1.49369 ---- next value: 0.974872 ---- N events: 1 ---- N risk: 1 -current value: 0.974872 ---- next value: 0.595599 ---- N events: 2 ---- N risk: 2 -current value: 0.595599 ---- next value: 0.51753 ---- N events: 4 ---- N risk: 4 -current value: 0.51753 ---- next value: 0.469815 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 0.469815 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.5822 - 0.0550 - 0.1269 - 0.2904 - 0.4698 - - -testing cutpoint: -0.582167 - - ---- view of lincomb & g_node & w_node ---- - - -0.6591 0 1.0000 - -0.6287 0 1.0000 - -0.6181 0 1.0000 - -0.5885 0 1.0000 - -0.5822 0 3.0000 - -0.5228 1.0000 1.0000 - -0.4726 1.0000 2.0000 - -0.3936 1.0000 2.0000 - -0.3068 1.0000 3.0000 - -0.2594 1.0000 3.0000 - -0.2590 1.0000 1.0000 - -0.2550 1.0000 1.0000 - -0.1294 1.0000 4.0000 - -0.0863 1.0000 4.0000 - -0.0827 1.0000 1.0000 - -0.0807 1.0000 2.0000 - 0.0445 1.0000 1.0000 - 0.0447 1.0000 2.0000 - 0.0550 1.0000 2.0000 - 0.0853 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.842606 - ------------------------------------------- - -testing cutpoint: 0.0549749 - - ---- view of lincomb & g_node & w_node ---- - - -0.6591 0 1.0000 - -0.6287 0 1.0000 - -0.6181 0 1.0000 - -0.5885 0 1.0000 - -0.5822 0 3.0000 - -0.5228 0 1.0000 - -0.4726 0 2.0000 - -0.3936 0 2.0000 - -0.3068 0 3.0000 - -0.2594 0 3.0000 - -0.2590 0 1.0000 - -0.2550 0 1.0000 - -0.1294 0 4.0000 - -0.0863 0 4.0000 - -0.0827 0 1.0000 - -0.0807 0 2.0000 - 0.0445 0 1.0000 - 0.0447 0 2.0000 - 0.0550 0 2.0000 - 0.0853 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.189391 - ------------------------------------------- - -testing cutpoint: 0.126946 - - ---- view of lincomb & g_node & w_node ---- - - -0.6591 0 1.0000 - -0.6287 0 1.0000 - -0.6181 0 1.0000 - -0.5885 0 1.0000 - -0.5822 0 3.0000 - -0.5228 0 1.0000 - -0.4726 0 2.0000 - -0.3936 0 2.0000 - -0.3068 0 3.0000 - -0.2594 0 3.0000 - -0.2590 0 1.0000 - -0.2550 0 1.0000 - -0.1294 0 4.0000 - -0.0863 0 4.0000 - -0.0827 0 1.0000 - -0.0807 0 2.0000 - 0.0445 0 1.0000 - 0.0447 0 2.0000 - 0.0550 0 2.0000 - 0.0853 0 1.0000 - - -logrank stat for this cutpoint: 0.649553 - ------------------------------------------- - -testing cutpoint: 0.290363 - - ---- view of lincomb & g_node & w_node ---- - - -0.6591 0 1.0000 - -0.6287 0 1.0000 - -0.6181 0 1.0000 - -0.5885 0 1.0000 - -0.5822 0 3.0000 - -0.5228 0 1.0000 - -0.4726 0 2.0000 - -0.3936 0 2.0000 - -0.3068 0 3.0000 - -0.2594 0 3.0000 - -0.2590 0 1.0000 - -0.2550 0 1.0000 - -0.1294 0 4.0000 - -0.0863 0 4.0000 - -0.0827 0 1.0000 - -0.0807 0 2.0000 - 0.0445 0 1.0000 - 0.0447 0 2.0000 - 0.0550 0 2.0000 - 0.0853 0 1.0000 - - -logrank stat for this cutpoint: 0.102333 - ------------------------------------------- - -testing cutpoint: 0.469815 - - ---- view of lincomb & g_node & w_node ---- - - -0.6591 0 1.0000 - -0.6287 0 1.0000 - -0.6181 0 1.0000 - -0.5885 0 1.0000 - -0.5822 0 3.0000 - -0.5228 0 1.0000 - -0.4726 0 2.0000 - -0.3936 0 2.0000 - -0.3068 0 3.0000 - -0.2594 0 3.0000 - -0.2590 0 1.0000 - -0.2550 0 1.0000 - -0.1294 0 4.0000 - -0.0863 0 4.0000 - -0.0827 0 1.0000 - -0.0807 0 2.0000 - 0.0445 0 1.0000 - 0.0447 0 2.0000 - 0.0550 0 2.0000 - 0.0853 0 1.0000 - - -logrank stat for this cutpoint: 42.7438 - ------------------------------------------- - -node assignments: - 9 - 6 - 7 - 10 - 6 - 9 - 7 - 7 - 9 - 9 - 9 - 6 - 11 - 9 - 9 - 12 - 10 - 12 - 6 - 6 - 6 - 12 - 9 - 10 - 8 - 10 - 7 - 11 - 7 - 7 - 6 - 9 - 7 - 11 - 11 - 6 - 10 - 6 - -growing node 6 - -sprouting new leaf with node 6 - - ---- view of leaf_data ---- - - 4.1000e+01 9.4444e-01 5.5556e-02 - 5.1000e+01 8.8889e-01 1.1438e-01 - 7.7000e+01 8.3333e-01 1.7688e-01 - 1.3100e+02 7.2222e-01 3.1021e-01 - 2.6400e+02 5.5556e-01 5.4098e-01 - - -growing node 7 - - ---- view of x_node ---- - - 1.0000e+00 1.5810e+02 1.0000e+01 - 1.0000e+00 1.6120e+02 1.0400e+01 - 1.0000e+00 1.1700e+02 1.0500e+01 - 1.0000e+00 1.2700e+02 1.0300e+01 - 1.0000e+00 2.0500e+02 9.9000e+00 - 2.0000e+00 1.9840e+02 1.0000e+01 - 1.0000e+00 7.0000e+01 1.0800e+01 - 1.0000e+00 1.3000e+02 1.0500e+01 - 1.0000e+00 1.4260e+02 1.0100e+01 - 1.0000e+00 4.5000e+01 1.0800e+01 - 1.0000e+00 5.2000e+01 1.0600e+01 - 1.0000e+00 1.5000e+02 1.0800e+01 - 1.0000e+00 9.2000e+01 9.5000e+00 - 1.0000e+00 1.8800e+02 1.0100e+01 - 1.0000e+00 9.3000e+01 9.8000e+00 - 1.0000e+00 1.4200e+02 9.6000e+00 - 1.0000e+00 8.5000e+01 9.5000e+00 - 1.0000e+00 1.8500e+02 9.9000e+00 - 1.0000e+00 5.7000e+01 9.8000e+00 - 2.0000e+00 8.4000e+01 9.8000e+00 - - - ---- view of y_node ---- - - 7.3200e+02 0 - 7.9700e+02 1.0000e+00 - 8.3900e+02 0 - 8.7700e+02 0 - 9.0100e+02 0 - 9.4300e+02 1.0000e+00 - 9.9400e+02 0 - 1.1490e+03 0 - 1.2120e+03 1.0000e+00 - 1.2300e+03 0 - 1.2710e+03 0 - 1.2930e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.3630e+03 0 - 1.4120e+03 0 - 1.4180e+03 0 - 1.4200e+03 0 - 1.4330e+03 0 - 1.4340e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.10282 -- next: -1.09954 -- N events: 0 -- N risk: 1 -current value: -1.09954 -- next: -1.05499 -- N events: 0 -- N risk: 2 -current value: -1.05499 -- next: -1.03336 -- N events: 0 -- N risk: 3 -current value: -1.03336 -- next: -1.02556 -- N events: 1 -- N risk: 4 -current value: -1.02556 -- next: -1.02394 -- N events: 1 -- N risk: 6 - -lower cutpoint: -1.02556 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 22.4159 ---- next value: 21.2925 ---- N events: 1 ---- N risk: 1 -current value: 21.2925 ---- next value: 3.04188 ---- N events: 1 ---- N risk: 2 -current value: 3.04188 ---- next value: 1.74394 ---- N events: 1 ---- N risk: 3 -current value: 1.74394 ---- next value: 0.739669 ---- N events: 2 ---- N risk: 4 -current value: 0.739669 ---- next value: 0.524701 ---- N events: 2 ---- N risk: 8 - -upper cutpoint: 0.524701 - - n_events, right node: 2 - - n_risk, right node: 8 - -Randomly sampled cutpoints: - -1.0239 - -0.5851 - -0.2628 - -0.2467 - 0.3266 - - -testing cutpoint: -1.02394 - - ---- view of lincomb & g_node & w_node ---- - - -1.1028 0 1.0000 - -1.0995 0 1.0000 - -1.0550 0 1.0000 - -1.0334 0 1.0000 - -1.0256 0 2.0000 - -1.0239 0 1.0000 - -1.0085 1.0000 1.0000 - -0.9901 1.0000 1.0000 - -0.9843 1.0000 1.0000 - -0.9835 1.0000 1.0000 - -0.9778 1.0000 1.0000 - -0.9692 1.0000 1.0000 - -0.9362 1.0000 2.0000 - -0.9263 1.0000 2.0000 - -0.9010 1.0000 2.0000 - -0.8990 1.0000 1.0000 - -0.8746 1.0000 1.0000 - -0.8552 1.0000 1.0000 - -0.8328 1.0000 2.0000 - -0.8328 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0606695 - ------------------------------------------- - -testing cutpoint: -0.585129 - - ---- view of lincomb & g_node & w_node ---- - - -1.1028 0 1.0000 - -1.0995 0 1.0000 - -1.0550 0 1.0000 - -1.0334 0 1.0000 - -1.0256 0 2.0000 - -1.0239 0 1.0000 - -1.0085 0 1.0000 - -0.9901 0 1.0000 - -0.9843 0 1.0000 - -0.9835 0 1.0000 - -0.9778 0 1.0000 - -0.9692 0 1.0000 - -0.9362 0 2.0000 - -0.9263 0 2.0000 - -0.9010 0 2.0000 - -0.8990 0 1.0000 - -0.8746 0 1.0000 - -0.8552 0 1.0000 - -0.8328 0 2.0000 - -0.8328 0 1.0000 - - -logrank stat for this cutpoint: 7.37858 - ------------------------------------------- - -testing cutpoint: -0.262766 - - ---- view of lincomb & g_node & w_node ---- - - -1.1028 0 1.0000 - -1.0995 0 1.0000 - -1.0550 0 1.0000 - -1.0334 0 1.0000 - -1.0256 0 2.0000 - -1.0239 0 1.0000 - -1.0085 0 1.0000 - -0.9901 0 1.0000 - -0.9843 0 1.0000 - -0.9835 0 1.0000 - -0.9778 0 1.0000 - -0.9692 0 1.0000 - -0.9362 0 2.0000 - -0.9263 0 2.0000 - -0.9010 0 2.0000 - -0.8990 0 1.0000 - -0.8746 0 1.0000 - -0.8552 0 1.0000 - -0.8328 0 2.0000 - -0.8328 0 1.0000 - - -logrank stat for this cutpoint: 4.59977 - ------------------------------------------- - -testing cutpoint: -0.246715 - - ---- view of lincomb & g_node & w_node ---- - - -1.1028 0 1.0000 - -1.0995 0 1.0000 - -1.0550 0 1.0000 - -1.0334 0 1.0000 - -1.0256 0 2.0000 - -1.0239 0 1.0000 - -1.0085 0 1.0000 - -0.9901 0 1.0000 - -0.9843 0 1.0000 - -0.9835 0 1.0000 - -0.9778 0 1.0000 - -0.9692 0 1.0000 - -0.9362 0 2.0000 - -0.9263 0 2.0000 - -0.9010 0 2.0000 - -0.8990 0 1.0000 - -0.8746 0 1.0000 - -0.8552 0 1.0000 - -0.8328 0 2.0000 - -0.8328 0 1.0000 - - -logrank stat for this cutpoint: 4.76414 - ------------------------------------------- - -testing cutpoint: 0.326639 - - ---- view of lincomb & g_node & w_node ---- - - -1.1028 0 1.0000 - -1.0995 0 1.0000 - -1.0550 0 1.0000 - -1.0334 0 1.0000 - -1.0256 0 2.0000 - -1.0239 0 1.0000 - -1.0085 0 1.0000 - -0.9901 0 1.0000 - -0.9843 0 1.0000 - -0.9835 0 1.0000 - -0.9778 0 1.0000 - -0.9692 0 1.0000 - -0.9362 0 2.0000 - -0.9263 0 2.0000 - -0.9010 0 2.0000 - -0.8990 0 1.0000 - -0.8746 0 1.0000 - -0.8552 0 1.0000 - -0.8328 0 2.0000 - -0.8328 0 1.0000 - - -logrank stat for this cutpoint: 4.53993 - ------------------------------------------- - -node assignments: - 9 - 11 - 13 - 11 - 6 - 6 - 9 - 11 - 9 - 13 - 9 - 9 - 10 - 14 - 12 - 11 - 11 - 12 - 14 - 14 - 13 - 14 - 14 - 9 - 13 - 9 - 9 - 9 - 14 - 14 - 9 - 9 - 13 - 14 - 11 - 10 - 6 - 14 - 11 - 9 - 9 - 9 - 6 - 14 - 11 - 14 - 14 - 14 - 9 - 6 - 14 - 9 - 13 - 14 - 11 - 14 - 10 - 9 - 11 - 11 - 11 - 8 - 9 - 12 - 14 - 6 - 6 - 10 - 6 - 11 - 6 - 9 - 10 - 11 - 14 - 10 - 11 - 6 - 13 - 6 - 9 - 6 - 12 - -growing node 8 - -sprouting new leaf with node 8 - - ---- view of leaf_data ---- - - 1.9800e+02 7.1429e-01 2.8571e-01 - 2.4660e+03 5.7143e-01 4.8571e-01 - 2.6890e+03 0 1.4857e+00 - - -growing node 9 - - ---- view of x_node ---- - - 3.0000e+00 1.0200e+02 1.0000e+00 - 2.0000e+00 4.3000e+02 2.0000e+00 - 1.0000e+00 1.1900e+02 1.0000e+00 - 1.0000e+00 2.4000e+02 1.0000e+00 - 1.0000e+00 2.6800e+02 1.0000e+00 - 1.0000e+00 2.2400e+02 1.0000e+00 - 1.0000e+00 3.6000e+02 1.0000e+00 - 1.0000e+00 1.5600e+02 1.0000e+00 - 1.0000e+00 2.1200e+02 1.0000e+00 - 1.0000e+00 2.9600e+02 1.0000e+00 - 2.0000e+00 1.4900e+02 1.0000e+00 - 1.0000e+00 2.9500e+02 1.0000e+00 - 1.0000e+00 2.4300e+02 1.0000e+00 - 1.0000e+00 2.9900e+02 1.0000e+00 - 1.0000e+00 2.9300e+02 1.0000e+00 - 1.0000e+00 2.9100e+02 1.0000e+00 - 1.0000e+00 3.2200e+02 1.0000e+00 - 1.0000e+00 1.8500e+02 1.0000e+00 - 1.0000e+00 2.5500e+02 1.0000e+00 - 1.0000e+00 2.4800e+02 1.0000e+00 - - - ---- view of y_node ---- - - 2.2300e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 1.0770e+03 1.0000e+00 - 1.0840e+03 0 - 1.1910e+03 1.0000e+00 - 1.2950e+03 0 - 1.3000e+03 0 - 1.3020e+03 0 - 1.3210e+03 0 - 1.3290e+03 0 - 1.3560e+03 1.0000e+00 - 1.4350e+03 0 - 1.4550e+03 0 - 1.6560e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.87597 -- next: -1.33448 -- N events: 1 -- N risk: 1 -current value: -1.33448 -- next: -1.17497 -- N events: 1 -- N risk: 2 -current value: -1.17497 -- next: -1.08379 -- N events: 1 -- N risk: 5 - -lower cutpoint: -1.17497 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 14.2315 ---- next value: 0.849681 ---- N events: 2 ---- N risk: 2 -current value: 0.849681 ---- next value: 0.294075 ---- N events: 4 ---- N risk: 4 -current value: 0.294075 ---- next value: 0.124532 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.124532 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.8632 - -0.7780 - -0.7579 - -0.5222 - -0.1813 - - -testing cutpoint: -0.863185 - - ---- view of lincomb & g_node & w_node ---- - - -1.8760 0 1.0000 - -1.3345 0 1.0000 - -1.1750 0 3.0000 - -1.0838 0 1.0000 - -1.0036 0 3.0000 - -0.8933 0 1.0000 - -0.8632 0 1.0000 - -0.7980 1.0000 3.0000 - -0.7780 1.0000 1.0000 - -0.7629 1.0000 1.0000 - -0.7579 1.0000 2.0000 - -0.7479 1.0000 1.0000 - -0.7378 1.0000 1.0000 - -0.7128 1.0000 1.0000 - -0.6225 1.0000 1.0000 - -0.6075 1.0000 2.0000 - -0.5573 1.0000 2.0000 - -0.5222 1.0000 2.0000 - -0.4972 1.0000 3.0000 - -0.4821 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.33529 - ------------------------------------------- - -testing cutpoint: -0.777951 - - ---- view of lincomb & g_node & w_node ---- - - -1.8760 0 1.0000 - -1.3345 0 1.0000 - -1.1750 0 3.0000 - -1.0838 0 1.0000 - -1.0036 0 3.0000 - -0.8933 0 1.0000 - -0.8632 0 1.0000 - -0.7980 0 3.0000 - -0.7780 0 1.0000 - -0.7629 1.0000 1.0000 - -0.7579 1.0000 2.0000 - -0.7479 1.0000 1.0000 - -0.7378 1.0000 1.0000 - -0.7128 1.0000 1.0000 - -0.6225 1.0000 1.0000 - -0.6075 1.0000 2.0000 - -0.5573 1.0000 2.0000 - -0.5222 1.0000 2.0000 - -0.4972 1.0000 3.0000 - -0.4821 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.03316 - ------------------------------------------- - -testing cutpoint: -0.757896 - - ---- view of lincomb & g_node & w_node ---- - - -1.8760 0 1.0000 - -1.3345 0 1.0000 - -1.1750 0 3.0000 - -1.0838 0 1.0000 - -1.0036 0 3.0000 - -0.8933 0 1.0000 - -0.8632 0 1.0000 - -0.7980 0 3.0000 - -0.7780 0 1.0000 - -0.7629 0 1.0000 - -0.7579 0 2.0000 - -0.7479 1.0000 1.0000 - -0.7378 1.0000 1.0000 - -0.7128 1.0000 1.0000 - -0.6225 1.0000 1.0000 - -0.6075 1.0000 2.0000 - -0.5573 1.0000 2.0000 - -0.5222 1.0000 2.0000 - -0.4972 1.0000 3.0000 - -0.4821 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.06718 - ------------------------------------------- - -testing cutpoint: -0.522247 - - ---- view of lincomb & g_node & w_node ---- - - -1.8760 0 1.0000 - -1.3345 0 1.0000 - -1.1750 0 3.0000 - -1.0838 0 1.0000 - -1.0036 0 3.0000 - -0.8933 0 1.0000 - -0.8632 0 1.0000 - -0.7980 0 3.0000 - -0.7780 0 1.0000 - -0.7629 0 1.0000 - -0.7579 0 2.0000 - -0.7479 0 1.0000 - -0.7378 0 1.0000 - -0.7128 0 1.0000 - -0.6225 0 1.0000 - -0.6075 0 2.0000 - -0.5573 0 2.0000 - -0.5222 0 2.0000 - -0.4972 1.0000 3.0000 - -0.4821 1.0000 1.0000 - - -logrank stat for this cutpoint: 8.44817 - ------------------------------------------- - -testing cutpoint: -0.181309 - - ---- view of lincomb & g_node & w_node ---- - - -1.8760 0 1.0000 - -1.3345 0 1.0000 - -1.1750 0 3.0000 - -1.0838 0 1.0000 - -1.0036 0 3.0000 - -0.8933 0 1.0000 - -0.8632 0 1.0000 - -0.7980 0 3.0000 - -0.7780 0 1.0000 - -0.7629 0 1.0000 - -0.7579 0 2.0000 - -0.7479 0 1.0000 - -0.7378 0 1.0000 - -0.7128 0 1.0000 - -0.6225 0 1.0000 - -0.6075 0 2.0000 - -0.5573 0 2.0000 - -0.5222 0 2.0000 - -0.4972 0 3.0000 - -0.4821 0 1.0000 - - -logrank stat for this cutpoint: 3.73551 - ------------------------------------------- - -node assignments: - 6 - 16 - 15 - 12 - 14 - 16 - 11 - 16 - 10 - 16 - 12 - 10 - 16 - 15 - 6 - 11 - 10 - 6 - 6 - 11 - 14 - 15 - 12 - 8 - 6 - 16 - 16 - 14 - 10 - 10 - 14 - 11 - 14 - 14 - 13 - 6 - 6 - 6 - 6 - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 1.9100e+02 7.5000e-01 2.5000e-01 - 3.3400e+02 6.2500e-01 4.1667e-01 - 3.8800e+02 5.0000e-01 6.1667e-01 - 6.1100e+02 3.7500e-01 8.6667e-01 - 9.3000e+02 2.5000e-01 1.2000e+00 - - -growing node 11 - - ---- view of x_node ---- - - 3.0000 3.6700 2.5000 - 1.0000 3.6200 4.4000 - 1.0000 3.7400 6.7000 - 1.0000 3.1100 6.5000 - 1.0000 1.9600 3.4000 - 1.0000 3.6100 2.9000 - 1.0000 3.4600 6.4000 - 1.0000 3.2200 3.8000 - 1.0000 3.2500 1.0000 - 2.0000 3.5700 1.1000 - 1.0000 3.3600 2.0000 - 1.0000 3.6800 5.2000 - 1.0000 3.1200 3.4000 - 1.0000 3.7400 1.0000 - 1.0000 3.2100 5.0000 - 1.0000 3.2200 3.9000 - 1.0000 3.8500 0.7000 - 1.0000 3.3500 1.1000 - 1.0000 3.4300 0.9000 - 1.0000 3.7900 1.5000 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 8.3700e+02 0 - 9.8000e+02 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2350e+03 1.0000e+00 - 1.2500e+03 0 - 1.3010e+03 0 - 1.4080e+03 0 - 1.4440e+03 1.0000e+00 - 1.5420e+03 0 - 1.5680e+03 0 - 1.6570e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7350e+03 0 - 1.7700e+03 0 - 1.7860e+03 1.0000e+00 - 1.9080e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.73785 -- next: -1.73253 -- N events: 2 -- N risk: 2 -current value: -1.73253 -- next: -1.49003 -- N events: 2 -- N risk: 3 -current value: -1.49003 -- next: -1.27946 -- N events: 2 -- N risk: 4 -current value: -1.27946 -- next: -1.16256 -- N events: 3 -- N risk: 5 - -lower cutpoint: -1.27946 - - n_events, left node: 3 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 3.54228 ---- next value: 2.27383 ---- N events: 1 ---- N risk: 1 -current value: 2.27383 ---- next value: 1.33826 ---- N events: 2 ---- N risk: 2 -current value: 1.33826 ---- next value: 1.16775 ---- N events: 4 ---- N risk: 4 -current value: 1.16775 ---- next value: 0.909247 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 0.909247 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -1.1626 - -0.8347 - 0.0672 - 0.0846 - 0.8997 - - -testing cutpoint: -1.16256 - - ---- view of lincomb & g_node & w_node ---- - - -1.7379 0 2.0000 - -1.7325 0 1.0000 - -1.4900 0 1.0000 - -1.2795 0 1.0000 - -1.1626 0 1.0000 - -1.1255 1.0000 2.0000 - -1.0934 1.0000 1.0000 - -0.8815 1.0000 1.0000 - -0.8347 1.0000 1.0000 - -0.4165 1.0000 2.0000 - -0.3148 1.0000 1.0000 - -0.2837 1.0000 1.0000 - -0.2584 1.0000 4.0000 - -0.1665 1.0000 1.0000 - -0.1419 1.0000 1.0000 - -0.1346 1.0000 3.0000 - -0.1053 1.0000 3.0000 - -0.0701 1.0000 2.0000 - -0.0478 1.0000 4.0000 - 0.0609 1.0000 2.0000 - - -logrank stat for this cutpoint: 12.0369 - ------------------------------------------- - -testing cutpoint: -0.834697 - - ---- view of lincomb & g_node & w_node ---- - - -1.7379 0 2.0000 - -1.7325 0 1.0000 - -1.4900 0 1.0000 - -1.2795 0 1.0000 - -1.1626 0 1.0000 - -1.1255 0 2.0000 - -1.0934 0 1.0000 - -0.8815 0 1.0000 - -0.8347 0 1.0000 - -0.4165 1.0000 2.0000 - -0.3148 1.0000 1.0000 - -0.2837 1.0000 1.0000 - -0.2584 1.0000 4.0000 - -0.1665 1.0000 1.0000 - -0.1419 1.0000 1.0000 - -0.1346 1.0000 3.0000 - -0.1053 1.0000 3.0000 - -0.0701 1.0000 2.0000 - -0.0478 1.0000 4.0000 - 0.0609 1.0000 2.0000 - - -logrank stat for this cutpoint: 18.1663 - ------------------------------------------- - -testing cutpoint: 0.0671826 - - ---- view of lincomb & g_node & w_node ---- - - -1.7379 0 2.0000 - -1.7325 0 1.0000 - -1.4900 0 1.0000 - -1.2795 0 1.0000 - -1.1626 0 1.0000 - -1.1255 0 2.0000 - -1.0934 0 1.0000 - -0.8815 0 1.0000 - -0.8347 0 1.0000 - -0.4165 0 2.0000 - -0.3148 0 1.0000 - -0.2837 0 1.0000 - -0.2584 0 4.0000 - -0.1665 0 1.0000 - -0.1419 0 1.0000 - -0.1346 0 3.0000 - -0.1053 0 3.0000 - -0.0701 0 2.0000 - -0.0478 0 4.0000 - 0.0609 0 2.0000 - - -logrank stat for this cutpoint: 5.79778 - ------------------------------------------- - -testing cutpoint: 0.084642 - - ---- view of lincomb & g_node & w_node ---- - - -1.7379 0 2.0000 - -1.7325 0 1.0000 - -1.4900 0 1.0000 - -1.2795 0 1.0000 - -1.1626 0 1.0000 - -1.1255 0 2.0000 - -1.0934 0 1.0000 - -0.8815 0 1.0000 - -0.8347 0 1.0000 - -0.4165 0 2.0000 - -0.3148 0 1.0000 - -0.2837 0 1.0000 - -0.2584 0 4.0000 - -0.1665 0 1.0000 - -0.1419 0 1.0000 - -0.1346 0 3.0000 - -0.1053 0 3.0000 - -0.0701 0 2.0000 - -0.0478 0 4.0000 - 0.0609 0 2.0000 - - -logrank stat for this cutpoint: 8.00056 - ------------------------------------------- - -testing cutpoint: 0.899661 - - ---- view of lincomb & g_node & w_node ---- - - -1.7379 0 2.0000 - -1.7325 0 1.0000 - -1.4900 0 1.0000 - -1.2795 0 1.0000 - -1.1626 0 1.0000 - -1.1255 0 2.0000 - -1.0934 0 1.0000 - -0.8815 0 1.0000 - -0.8347 0 1.0000 - -0.4165 0 2.0000 - -0.3148 0 1.0000 - -0.2837 0 1.0000 - -0.2584 0 4.0000 - -0.1665 0 1.0000 - -0.1419 0 1.0000 - -0.1346 0 3.0000 - -0.1053 0 3.0000 - -0.0701 0 2.0000 - -0.0478 0 4.0000 - 0.0609 0 2.0000 - - -logrank stat for this cutpoint: 11.2456 - ------------------------------------------- - -node assignments: - 16 - 14 - 6 - 10 - 14 - 16 - 15 - 6 - 10 - 14 - 16 - 12 - 15 - 16 - 10 - 12 - 6 - 6 - 6 - 6 - 16 - 14 - 6 - 8 - 14 - 12 - 10 - 16 - 6 - 10 - 18 - 18 - 14 - 6 - -growing node 12 - -sprouting new leaf with node 12 - - ---- view of leaf_data ---- - - 1.4000e+02 8.3333e-01 1.6667e-01 - 1.7900e+02 5.0000e-01 5.6667e-01 - 3.2100e+02 1.6667e-01 1.2333e+00 - 1.3600e+03 0 2.2333e+00 - - -growing node 13 - -sprouting new leaf with node 13 - - ---- view of leaf_data ---- - - 2.5830e+03 9.6774e-01 3.2258e-02 - - -growing node 14 - - ---- view of x_node ---- - - 41.2211 2.0000 2.8300 - 56.7721 1.0000 3.1900 - 37.9986 1.0000 3.1600 - 35.3511 1.0000 3.8300 - 40.9008 1.0000 3.1800 - 52.2875 2.0000 3.2600 - 30.5736 1.0000 3.5600 - 35.4908 1.0000 4.2200 - 38.0917 1.0000 3.7600 - 38.3162 1.0000 3.7700 - 45.0842 1.0000 3.5000 - 65.9849 1.0000 3.5700 - 46.1547 1.0000 3.6900 - 32.5038 1.0000 3.7000 - 35.0883 1.0000 3.5600 - 50.4723 2.0000 3.5000 - 40.7173 1.0000 3.4300 - 59.9699 2.0000 2.9700 - 51.4880 1.0000 3.4400 - 34.3792 1.0000 3.3500 - - - ---- view of y_node ---- - - 7.3200e+02 0 - 7.9700e+02 1.0000e+00 - 8.3900e+02 0 - 8.7700e+02 0 - 9.0100e+02 0 - 9.4300e+02 1.0000e+00 - 1.1490e+03 0 - 1.2120e+03 1.0000e+00 - 1.2930e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.3630e+03 0 - 1.4120e+03 0 - 1.4200e+03 0 - 1.4340e+03 0 - 1.5690e+03 0 - 1.5920e+03 0 - 1.6150e+03 0 - 1.7020e+03 0 - 1.7760e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.71956 -- next: -1.71295 -- N events: 0 -- N risk: 2 -current value: -1.71295 -- next: -1.70747 -- N events: 0 -- N risk: 3 -current value: -1.70747 -- next: -1.55364 -- N events: 0 -- N risk: 6 -current value: -1.55364 -- next: -1.48469 -- N events: 0 -- N risk: 7 -current value: -1.48469 -- next: -1.47191 -- N events: 0 -- N risk: 8 -current value: -1.47191 -- next: -1.46636 -- N events: 0 -- N risk: 9 -current value: -1.46636 -- next: -1.38681 -- N events: 0 -- N risk: 10 -current value: -1.38681 -- next: -1.25802 -- N events: 0 -- N risk: 11 -current value: -1.25802 -- next: -1.25469 -- N events: 0 -- N risk: 12 -current value: -1.25469 -- next: -0.939663 -- N events: 0 -- N risk: 13 -current value: -0.939663 -- next: -0.909333 -- N events: 0 -- N risk: 15 -current value: -0.909333 -- next: -0.729214 -- N events: 0 -- N risk: 19 -current value: -0.729214 -- next: -0.720262 -- N events: 0 -- N risk: 21 -current value: -0.720262 -- next: -0.674424 -- N events: 0 -- N risk: 22 -current value: -0.674424 -- next: -0.586701 -- N events: 0 -- N risk: 24 -current value: -0.586701 -- next: -0.545735 -- N events: 0 -- N risk: 26 -current value: -0.545735 -- next: -0.374621 -- N events: 0 -- N risk: 27 -current value: -0.374621 -- next: -0.331788 -- N events: 0 -- N risk: 28 -current value: -0.331788 -- next: -0.316989 -- N events: 0 -- N risk: 29 -current value: -0.316989 -- next: -0.294995 -- N events: 0 -- N risk: 31 -current value: -0.294995 -- next: -0.271504 -- N events: 0 -- N risk: 32 -current value: -0.271504 -- next: -0.211358 -- N events: 0 -- N risk: 33 -current value: -0.211358 -- next: -0.201812 -- N events: 0 -- N risk: 35 -current value: -0.201812 -- next: -0.051107 -- N events: 0 -- N risk: 37 -current value: -0.051107 -- next: 0.0107282 -- N events: 0 -- N risk: 38 -current value: 0.0107282 -- next: 0.0856603 -- N events: 1 -- N risk: 39 - -lower cutpoint: 0.0107282 - - n_events, left node: 1 - - n_risk, left node: 39 - ------ finding upper bound for cut-points ----- -current value: 2.29026 ---- next value: 2.2616 ---- N events: 0 ---- N risk: 1 -current value: 2.2616 ---- next value: 2.21129 ---- N events: 2 ---- N risk: 3 -current value: 2.21129 ---- next value: 2.13273 ---- N events: 3 ---- N risk: 4 -current value: 2.13273 ---- next value: 1.87327 ---- N events: 3 ---- N risk: 6 - -upper cutpoint: 1.87327 - - n_events, right node: 3 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - 0.1379 - 0.2118 - 0.5409 - 0.6922 - 1.8364 - - -testing cutpoint: 0.137933 - - ---- view of lincomb & g_node & w_node ---- - - -1.7196 0 2.0000 - -1.7130 0 1.0000 - -1.7075 0 3.0000 - -1.5536 0 1.0000 - -1.4847 0 1.0000 - -1.4719 0 1.0000 - -1.4664 0 1.0000 - -1.3868 0 1.0000 - -1.2580 0 1.0000 - -1.2547 0 1.0000 - -0.9397 0 2.0000 - -0.9093 0 4.0000 - -0.7292 0 2.0000 - -0.7203 0 1.0000 - -0.6744 0 2.0000 - -0.5867 0 2.0000 - -0.5457 0 1.0000 - -0.3746 0 1.0000 - -0.3318 0 1.0000 - -0.3170 0 2.0000 - - -logrank stat for this cutpoint: 14.57 - ------------------------------------------- - -testing cutpoint: 0.211808 - - ---- view of lincomb & g_node & w_node ---- - - -1.7196 0 2.0000 - -1.7130 0 1.0000 - -1.7075 0 3.0000 - -1.5536 0 1.0000 - -1.4847 0 1.0000 - -1.4719 0 1.0000 - -1.4664 0 1.0000 - -1.3868 0 1.0000 - -1.2580 0 1.0000 - -1.2547 0 1.0000 - -0.9397 0 2.0000 - -0.9093 0 4.0000 - -0.7292 0 2.0000 - -0.7203 0 1.0000 - -0.6744 0 2.0000 - -0.5867 0 2.0000 - -0.5457 0 1.0000 - -0.3746 0 1.0000 - -0.3318 0 1.0000 - -0.3170 0 2.0000 - - -logrank stat for this cutpoint: 10.608 - ------------------------------------------- - -testing cutpoint: 0.540911 - - ---- view of lincomb & g_node & w_node ---- - - -1.7196 0 2.0000 - -1.7130 0 1.0000 - -1.7075 0 3.0000 - -1.5536 0 1.0000 - -1.4847 0 1.0000 - -1.4719 0 1.0000 - -1.4664 0 1.0000 - -1.3868 0 1.0000 - -1.2580 0 1.0000 - -1.2547 0 1.0000 - -0.9397 0 2.0000 - -0.9093 0 4.0000 - -0.7292 0 2.0000 - -0.7203 0 1.0000 - -0.6744 0 2.0000 - -0.5867 0 2.0000 - -0.5457 0 1.0000 - -0.3746 0 1.0000 - -0.3318 0 1.0000 - -0.3170 0 2.0000 - - -logrank stat for this cutpoint: 4.62801 - ------------------------------------------- - -testing cutpoint: 0.692179 - - ---- view of lincomb & g_node & w_node ---- - - -1.7196 0 2.0000 - -1.7130 0 1.0000 - -1.7075 0 3.0000 - -1.5536 0 1.0000 - -1.4847 0 1.0000 - -1.4719 0 1.0000 - -1.4664 0 1.0000 - -1.3868 0 1.0000 - -1.2580 0 1.0000 - -1.2547 0 1.0000 - -0.9397 0 2.0000 - -0.9093 0 4.0000 - -0.7292 0 2.0000 - -0.7203 0 1.0000 - -0.6744 0 2.0000 - -0.5867 0 2.0000 - -0.5457 0 1.0000 - -0.3746 0 1.0000 - -0.3318 0 1.0000 - -0.3170 0 2.0000 - - -logrank stat for this cutpoint: 8.04058 - ------------------------------------------- - -testing cutpoint: 1.83638 - - ---- view of lincomb & g_node & w_node ---- - - -1.7196 0 2.0000 - -1.7130 0 1.0000 - -1.7075 0 3.0000 - -1.5536 0 1.0000 - -1.4847 0 1.0000 - -1.4719 0 1.0000 - -1.4664 0 1.0000 - -1.3868 0 1.0000 - -1.2580 0 1.0000 - -1.2547 0 1.0000 - -0.9397 0 2.0000 - -0.9093 0 4.0000 - -0.7292 0 2.0000 - -0.7203 0 1.0000 - -0.6744 0 2.0000 - -0.5867 0 2.0000 - -0.5457 0 1.0000 - -0.3746 0 1.0000 - -0.3318 0 1.0000 - -0.3170 0 2.0000 - - -logrank stat for this cutpoint: 3.84018 - ------------------------------------------- - -node assignments: - 6 - 6 - 12 - 18 - 18 - 19 - 6 - 6 - 10 - 10 - 16 - 18 - 18 - 15 - 18 - 8 - 16 - 6 - 18 - 10 - 6 - 15 - 18 - 15 - 16 - 10 - 6 - 19 - 10 - 6 - 16 - 20 - 19 - 16 - 18 - 13 - 16 - 10 - 19 - 13 - 12 - 16 - 12 - 16 - 6 - 20 - 19 - 19 - -growing node 15 - -sprouting new leaf with node 15 - - ---- view of leaf_data ---- - - 7.3300e+02 9.6429e-01 3.5714e-02 - 8.9000e+02 9.2857e-01 7.2751e-02 - 1.3560e+03 8.8214e-01 1.2275e-01 - 2.2560e+03 7.9393e-01 2.2275e-01 - - -growing node 16 - - ---- view of x_node ---- - - 2.0000e+00 1.5000e+02 3.0000e+00 - 2.0000e+00 1.1000e+02 2.0000e+00 - 2.0000e+00 1.4500e+02 1.0000e+00 - 2.0000e+00 2.2700e+02 1.0000e+00 - 2.0000e+00 1.5900e+02 1.0000e+00 - 2.0000e+00 5.8000e+01 1.0000e+00 - 2.0000e+00 8.0000e+01 1.0000e+00 - 2.0000e+00 1.6000e+01 2.0000e+00 - 2.0000e+00 7.3000e+01 1.0000e+00 - 2.0000e+00 6.3000e+01 1.0000e+00 - 2.0000e+00 2.0000e+02 1.0000e+00 - 2.0000e+00 7.5000e+01 1.0000e+00 - 2.0000e+00 5.0000e+01 1.0000e+00 - 2.0000e+00 1.0500e+02 1.0000e+00 - 2.0000e+00 1.5900e+02 1.0000e+00 - 2.0000e+00 4.3000e+01 1.0000e+00 - 2.0000e+00 2.5000e+01 1.0000e+00 - 1.0000e+00 8.2000e+01 1.0000e+00 - 2.0000e+00 2.3100e+02 2.0000e+00 - 2.0000e+00 1.0500e+02 1.0000e+00 - - - ---- view of y_node ---- - - 2.2300e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 1.0770e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.3000e+03 0 - 1.4350e+03 0 - 1.6820e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7410e+03 1.0000e+00 - 1.8820e+03 0 - 2.1060e+03 0 - 2.5980e+03 1.0000e+00 - 3.0690e+03 0 - 3.1700e+03 1.0000e+00 - 3.2820e+03 1.0000e+00 - 4.1910e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.806467 -- next: -0.638501 -- N events: 0 -- N risk: 3 -current value: -0.638501 -- next: -0.573181 -- N events: 1 -- N risk: 4 -current value: -0.573181 -- next: -0.49853 -- N events: 3 -- N risk: 6 - -lower cutpoint: -0.573181 - - n_events, left node: 3 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.63494 ---- next value: 1.39824 ---- N events: 1 ---- N risk: 1 -current value: 1.39824 ---- next value: 1.07848 ---- N events: 3 ---- N risk: 3 -current value: 1.07848 ---- next value: 0.826531 ---- N events: 4 ---- N risk: 4 -current value: 0.826531 ---- next value: 0.505843 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.505843 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.4985 - -0.3713 - -0.0600 - 0.3133 - 0.5058 - - -testing cutpoint: -0.49853 - - ---- view of lincomb & g_node & w_node ---- - - -0.8065 0 3.0000 - -0.6385 0 1.0000 - -0.5732 0 2.0000 - -0.4985 0 1.0000 - -0.4519 1.0000 1.0000 - -0.3713 1.0000 1.0000 - -0.3586 1.0000 3.0000 - -0.3399 1.0000 1.0000 - -0.2932 1.0000 3.0000 - -0.1567 1.0000 3.0000 - -0.0600 1.0000 1.0000 - -0.0600 1.0000 3.0000 - -0.0182 1.0000 1.0000 - 0.3133 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.5058 1.0000 2.0000 - 0.8265 1.0000 1.0000 - 1.0785 1.0000 1.0000 - 1.3982 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.121159 - ------------------------------------------- - -testing cutpoint: -0.37131 - - ---- view of lincomb & g_node & w_node ---- - - -0.8065 0 3.0000 - -0.6385 0 1.0000 - -0.5732 0 2.0000 - -0.4985 0 1.0000 - -0.4519 0 1.0000 - -0.3713 0 1.0000 - -0.3586 1.0000 3.0000 - -0.3399 1.0000 1.0000 - -0.2932 1.0000 3.0000 - -0.1567 1.0000 3.0000 - -0.0600 1.0000 1.0000 - -0.0600 1.0000 3.0000 - -0.0182 1.0000 1.0000 - 0.3133 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.5058 1.0000 2.0000 - 0.8265 1.0000 1.0000 - 1.0785 1.0000 1.0000 - 1.3982 1.0000 2.0000 - - -logrank stat for this cutpoint: 0.0602573 - ------------------------------------------- - -testing cutpoint: -0.0599534 - - ---- view of lincomb & g_node & w_node ---- - - -0.8065 0 3.0000 - -0.6385 0 1.0000 - -0.5732 0 2.0000 - -0.4985 0 1.0000 - -0.4519 0 1.0000 - -0.3713 0 1.0000 - -0.3586 0 3.0000 - -0.3399 0 1.0000 - -0.2932 0 3.0000 - -0.1567 0 3.0000 - -0.0600 0 1.0000 - -0.0600 0 3.0000 - -0.0182 1.0000 1.0000 - 0.3133 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.5058 1.0000 2.0000 - 0.8265 1.0000 1.0000 - 1.0785 1.0000 1.0000 - 1.3982 1.0000 2.0000 - - -logrank stat for this cutpoint: 11.2319 - ------------------------------------------- - -testing cutpoint: 0.313303 - - ---- view of lincomb & g_node & w_node ---- - - -0.8065 0 3.0000 - -0.6385 0 1.0000 - -0.5732 0 2.0000 - -0.4985 0 1.0000 - -0.4519 0 1.0000 - -0.3713 0 1.0000 - -0.3586 0 3.0000 - -0.3399 0 1.0000 - -0.2932 0 3.0000 - -0.1567 0 3.0000 - -0.0600 0 1.0000 - -0.0600 0 3.0000 - -0.0182 0 1.0000 - 0.3133 0 1.0000 - 0.4439 1.0000 1.0000 - 0.4439 1.0000 1.0000 - 0.5058 1.0000 2.0000 - 0.8265 1.0000 1.0000 - 1.0785 1.0000 1.0000 - 1.3982 1.0000 2.0000 - - -logrank stat for this cutpoint: 10.0847 - ------------------------------------------- - -testing cutpoint: 0.505843 - - ---- view of lincomb & g_node & w_node ---- - - -0.8065 0 3.0000 - -0.6385 0 1.0000 - -0.5732 0 2.0000 - -0.4985 0 1.0000 - -0.4519 0 1.0000 - -0.3713 0 1.0000 - -0.3586 0 3.0000 - -0.3399 0 1.0000 - -0.2932 0 3.0000 - -0.1567 0 3.0000 - -0.0600 0 1.0000 - -0.0600 0 3.0000 - -0.0182 0 1.0000 - 0.3133 0 1.0000 - 0.4439 0 1.0000 - 0.4439 0 1.0000 - 0.5058 0 2.0000 - 0.8265 1.0000 1.0000 - 1.0785 1.0000 1.0000 - 1.3982 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.77617 - ------------------------------------------- - -node assignments: - 22 - 22 - 6 - 12 - 22 - 10 - 8 - 12 - 12 - 19 - 6 - 10 - 22 - 6 - 6 - 10 - 6 - 6 - 18 - 6 - 10 - -growing node 17 - -sprouting new leaf with node 17 - - ---- view of leaf_data ---- - - 3.5740e+03 8.0000e-01 2.0000e-01 - 3.7620e+03 4.0000e-01 7.0000e-01 - 4.0790e+03 2.0000e-01 1.2000e+00 - - -growing node 18 - - ---- view of x_node ---- - - 2.0000e+00 4.0000e+00 1.8800e+02 - 2.0000e+00 4.0000e+00 3.1600e+02 - 2.0000e+00 4.0000e+00 3.7400e+02 - 2.0000e+00 4.0000e+00 9.5000e+02 - 2.0000e+00 4.0000e+00 5.1800e+02 - 2.0000e+00 3.0000e+00 4.2600e+02 - 1.0000e+00 4.0000e+00 3.7300e+02 - 1.0000e+00 2.0000e+00 4.2600e+02 - 2.0000e+00 4.0000e+00 3.7200e+02 - 2.0000e+00 4.0000e+00 4.3200e+02 - 2.0000e+00 3.0000e+00 3.1000e+02 - 2.0000e+00 3.0000e+00 1.1280e+03 - 2.0000e+00 3.0000e+00 3.5600e+02 - 2.0000e+00 3.0000e+00 1.6000e+03 - 1.0000e+00 3.0000e+00 3.5000e+02 - 2.0000e+00 4.0000e+00 2.4600e+02 - 2.0000e+00 3.0000e+00 4.0400e+02 - 2.0000e+00 4.0000e+00 2.4400e+02 - 2.0000e+00 3.0000e+00 4.8600e+02 - 2.0000e+00 3.0000e+00 3.2900e+02 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 8.3700e+02 0 - 9.8000e+02 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2350e+03 1.0000e+00 - 1.2500e+03 0 - 1.3010e+03 0 - 1.4080e+03 0 - 1.4440e+03 1.0000e+00 - 1.5420e+03 0 - 1.6570e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7700e+03 0 - 1.7860e+03 1.0000e+00 - 1.9250e+03 1.0000e+00 - 2.1050e+03 1.0000e+00 - 2.2240e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.864366 -- next: -0.779302 -- N events: 2 -- N risk: 2 -current value: -0.779302 -- next: -0.739008 -- N events: 2 -- N risk: 3 -current value: -0.739008 -- next: -0.734531 -- N events: 3 -- N risk: 4 -current value: -0.734531 -- next: -0.730054 -- N events: 3 -- N risk: 7 - -lower cutpoint: -0.734531 - - n_events, left node: 3 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- -current value: 2.32996 ---- next value: 1.49076 ---- N events: 3 ---- N risk: 3 -current value: 1.49076 ---- next value: 1.30511 ---- N events: 4 ---- N risk: 4 -current value: 1.30511 ---- next value: 1.28713 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 1.28713 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.5152 - -0.3182 - -0.2981 - -0.1256 - 0.8414 - - -testing cutpoint: -0.515227 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 2.0000 - -0.7793 0 1.0000 - -0.7390 0 1.0000 - -0.7345 0 3.0000 - -0.7301 0 2.0000 - -0.5824 0 1.0000 - -0.5778 0 3.0000 - -0.5578 0 1.0000 - -0.5152 0 1.0000 - -0.4548 1.0000 1.0000 - -0.4525 1.0000 2.0000 - -0.4480 1.0000 2.0000 - -0.4279 1.0000 4.0000 - -0.3473 1.0000 1.0000 - -0.3182 1.0000 1.0000 - -0.2981 1.0000 1.0000 - -0.2823 1.0000 2.0000 - -0.1638 1.0000 4.0000 - -0.1256 1.0000 1.0000 - 0.8414 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.52264 - ------------------------------------------- - -testing cutpoint: -0.318162 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 2.0000 - -0.7793 0 1.0000 - -0.7390 0 1.0000 - -0.7345 0 3.0000 - -0.7301 0 2.0000 - -0.5824 0 1.0000 - -0.5778 0 3.0000 - -0.5578 0 1.0000 - -0.5152 0 1.0000 - -0.4548 0 1.0000 - -0.4525 0 2.0000 - -0.4480 0 2.0000 - -0.4279 0 4.0000 - -0.3473 0 1.0000 - -0.3182 0 1.0000 - -0.2981 1.0000 1.0000 - -0.2823 1.0000 2.0000 - -0.1638 1.0000 4.0000 - -0.1256 1.0000 1.0000 - 0.8414 1.0000 2.0000 - - -logrank stat for this cutpoint: 10.4906 - ------------------------------------------- - -testing cutpoint: -0.298089 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 2.0000 - -0.7793 0 1.0000 - -0.7390 0 1.0000 - -0.7345 0 3.0000 - -0.7301 0 2.0000 - -0.5824 0 1.0000 - -0.5778 0 3.0000 - -0.5578 0 1.0000 - -0.5152 0 1.0000 - -0.4548 0 1.0000 - -0.4525 0 2.0000 - -0.4480 0 2.0000 - -0.4279 0 4.0000 - -0.3473 0 1.0000 - -0.3182 0 1.0000 - -0.2981 0 1.0000 - -0.2823 1.0000 2.0000 - -0.1638 1.0000 4.0000 - -0.1256 1.0000 1.0000 - 0.8414 1.0000 2.0000 - - -logrank stat for this cutpoint: 11.0256 - ------------------------------------------- - -testing cutpoint: -0.125648 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 2.0000 - -0.7793 0 1.0000 - -0.7390 0 1.0000 - -0.7345 0 3.0000 - -0.7301 0 2.0000 - -0.5824 0 1.0000 - -0.5778 0 3.0000 - -0.5578 0 1.0000 - -0.5152 0 1.0000 - -0.4548 0 1.0000 - -0.4525 0 2.0000 - -0.4480 0 2.0000 - -0.4279 0 4.0000 - -0.3473 0 1.0000 - -0.3182 0 1.0000 - -0.2981 0 1.0000 - -0.2823 0 2.0000 - -0.1638 0 4.0000 - -0.1256 0 1.0000 - 0.8414 1.0000 2.0000 - - -logrank stat for this cutpoint: 17.6112 - ------------------------------------------- - -testing cutpoint: 0.841401 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 2.0000 - -0.7793 0 1.0000 - -0.7390 0 1.0000 - -0.7345 0 3.0000 - -0.7301 0 2.0000 - -0.5824 0 1.0000 - -0.5778 0 3.0000 - -0.5578 0 1.0000 - -0.5152 0 1.0000 - -0.4548 0 1.0000 - -0.4525 0 2.0000 - -0.4480 0 2.0000 - -0.4279 0 4.0000 - -0.3473 0 1.0000 - -0.3182 0 1.0000 - -0.2981 0 1.0000 - -0.2823 0 2.0000 - -0.1638 0 4.0000 - -0.1256 0 1.0000 - 0.8414 0 2.0000 - - -logrank stat for this cutpoint: 10.2822 - ------------------------------------------- - -node assignments: - 6 - 19 - 22 - 22 - 6 - 20 - 6 - 6 - 6 - 6 - 8 - 6 - 22 - 22 - 22 - 12 - 15 - 10 - 6 - 23 - 12 - 10 - 12 - 10 - 10 - -growing node 19 - -sprouting new leaf with node 19 - - ---- view of leaf_data ---- - - 1.2120e+03 9.7059e-01 2.9412e-02 - - -growing node 20 - - ---- view of x_node ---- - - 2.0000e+00 4.0000e+00 1.6120e+02 - 2.0000e+00 3.0000e+00 1.9840e+02 - 1.0000e+00 3.0000e+00 9.3000e+01 - 2.0000e+00 3.0000e+00 1.1100e+02 - 2.0000e+00 3.0000e+00 1.2500e+02 - 1.0000e+00 1.0000e+00 9.9000e+01 - 1.0000e+00 3.0000e+00 1.9685e+02 - 1.0000e+00 2.0000e+00 1.0230e+02 - 1.0000e+00 1.0000e+00 2.0640e+02 - 1.0000e+00 2.0000e+00 1.2555e+02 - 2.0000e+00 3.0000e+00 9.7650e+01 - 2.0000e+00 2.0000e+00 4.5725e+02 - 2.0000e+00 3.0000e+00 3.2860e+02 - 2.0000e+00 4.0000e+00 1.2865e+02 - 1.0000e+00 2.0000e+00 1.5500e+02 - 1.0000e+00 2.0000e+00 1.2555e+02 - 1.0000e+00 3.0000e+00 1.2771e+02 - 2.0000e+00 2.0000e+00 2.0640e+02 - 2.0000e+00 2.0000e+00 9.9330e+01 - 1.0000e+00 2.0000e+00 1.7050e+02 - - - ---- view of y_node ---- - - 7.9700e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.3630e+03 0 - 1.5690e+03 0 - 1.6150e+03 0 - 1.7020e+03 0 - 1.8100e+03 0 - 2.3650e+03 0 - 2.3860e+03 1.0000e+00 - 2.4490e+03 0 - 2.4560e+03 0 - 2.7210e+03 0 - 2.7690e+03 1.0000e+00 - 2.7960e+03 1.0000e+00 - 2.9900e+03 0 - 3.0500e+03 0 - 3.5840e+03 1.0000e+00 - 3.8390e+03 1.0000e+00 - 3.8530e+03 1.0000e+00 - 3.9330e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.88372 -- next: -1.0474 -- N events: 0 -- N risk: 1 -current value: -1.0474 -- next: -0.958984 -- N events: 2 -- N risk: 3 -current value: -0.958984 -- next: -0.777937 -- N events: 2 -- N risk: 4 -current value: -0.777937 -- next: -0.777937 -- N events: 2 -- N risk: 7 -current value: -0.777937 -- next: -0.65036 -- N events: 2 -- N risk: 8 - -lower cutpoint: -0.777937 - - n_events, left node: 2 - - n_risk, left node: 8 - ------ finding upper bound for cut-points ----- -current value: 2.13674 ---- next value: 2.03399 ---- N events: 0 ---- N risk: 1 -current value: 2.03399 ---- next value: 1.62949 ---- N events: 1 ---- N risk: 2 -current value: 1.62949 ---- next value: 1.37603 ---- N events: 2 ---- N risk: 3 -current value: 1.37603 ---- next value: 1.02013 ---- N events: 3 ---- N risk: 4 -current value: 1.02013 ---- next value: 0.676309 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 0.676309 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.5486 - -0.4279 - -0.1324 - 0.1834 - 0.3396 - - -testing cutpoint: -0.548612 - - ---- view of lincomb & g_node & w_node ---- - - -1.8837 0 1.0000 - -1.0474 0 2.0000 - -0.9590 0 1.0000 - -0.7779 0 3.0000 - -0.7779 0 1.0000 - -0.6504 0 2.0000 - -0.5486 0 1.0000 - -0.4279 1.0000 1.0000 - -0.1324 1.0000 2.0000 - 0.1379 1.0000 2.0000 - 0.1834 1.0000 1.0000 - 0.2356 1.0000 2.0000 - 0.3396 1.0000 1.0000 - 0.4486 1.0000 1.0000 - 0.6763 1.0000 1.0000 - 1.0201 1.0000 1.0000 - 1.3760 1.0000 1.0000 - 1.6295 1.0000 1.0000 - 2.0340 1.0000 1.0000 - 2.1367 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.60792 - ------------------------------------------- - -testing cutpoint: -0.427914 - - ---- view of lincomb & g_node & w_node ---- - - -1.8837 0 1.0000 - -1.0474 0 2.0000 - -0.9590 0 1.0000 - -0.7779 0 3.0000 - -0.7779 0 1.0000 - -0.6504 0 2.0000 - -0.5486 0 1.0000 - -0.4279 0 1.0000 - -0.1324 1.0000 2.0000 - 0.1379 1.0000 2.0000 - 0.1834 1.0000 1.0000 - 0.2356 1.0000 2.0000 - 0.3396 1.0000 1.0000 - 0.4486 1.0000 1.0000 - 0.6763 1.0000 1.0000 - 1.0201 1.0000 1.0000 - 1.3760 1.0000 1.0000 - 1.6295 1.0000 1.0000 - 2.0340 1.0000 1.0000 - 2.1367 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.89673 - ------------------------------------------- - -testing cutpoint: -0.132366 - - ---- view of lincomb & g_node & w_node ---- - - -1.8837 0 1.0000 - -1.0474 0 2.0000 - -0.9590 0 1.0000 - -0.7779 0 3.0000 - -0.7779 0 1.0000 - -0.6504 0 2.0000 - -0.5486 0 1.0000 - -0.4279 0 1.0000 - -0.1324 0 2.0000 - 0.1379 1.0000 2.0000 - 0.1834 1.0000 1.0000 - 0.2356 1.0000 2.0000 - 0.3396 1.0000 1.0000 - 0.4486 1.0000 1.0000 - 0.6763 1.0000 1.0000 - 1.0201 1.0000 1.0000 - 1.3760 1.0000 1.0000 - 1.6295 1.0000 1.0000 - 2.0340 1.0000 1.0000 - 2.1367 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.31899 - ------------------------------------------- - -testing cutpoint: 0.183389 - - ---- view of lincomb & g_node & w_node ---- - - -1.8837 0 1.0000 - -1.0474 0 2.0000 - -0.9590 0 1.0000 - -0.7779 0 3.0000 - -0.7779 0 1.0000 - -0.6504 0 2.0000 - -0.5486 0 1.0000 - -0.4279 0 1.0000 - -0.1324 0 2.0000 - 0.1379 0 2.0000 - 0.1834 0 1.0000 - 0.2356 1.0000 2.0000 - 0.3396 1.0000 1.0000 - 0.4486 1.0000 1.0000 - 0.6763 1.0000 1.0000 - 1.0201 1.0000 1.0000 - 1.3760 1.0000 1.0000 - 1.6295 1.0000 1.0000 - 2.0340 1.0000 1.0000 - 2.1367 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.32971 - ------------------------------------------- - -testing cutpoint: 0.33955 - - ---- view of lincomb & g_node & w_node ---- - - -1.8837 0 1.0000 - -1.0474 0 2.0000 - -0.9590 0 1.0000 - -0.7779 0 3.0000 - -0.7779 0 1.0000 - -0.6504 0 2.0000 - -0.5486 0 1.0000 - -0.4279 0 1.0000 - -0.1324 0 2.0000 - 0.1379 0 2.0000 - 0.1834 0 1.0000 - 0.2356 0 2.0000 - 0.3396 0 1.0000 - 0.4486 1.0000 1.0000 - 0.6763 1.0000 1.0000 - 1.0201 1.0000 1.0000 - 1.3760 1.0000 1.0000 - 1.6295 1.0000 1.0000 - 2.0340 1.0000 1.0000 - 2.1367 1.0000 1.0000 - - -logrank stat for this cutpoint: 9.22859 - ------------------------------------------- - -node assignments: - 12 - 8 - 10 - 22 - 22 - 10 - 10 - 6 - 6 - 22 - 22 - 6 - 23 - 6 - 12 - 6 - 10 - 6 - 6 - 12 - -growing node 21 - -Column 5 was sampled but unique values of column 5 are 1.0000 - - ---- view of x_node ---- - - 1.0000e+00 3.2000e+00 1.3100e+02 - 1.0000e+00 3.4500e+00 1.4200e+02 - 2.0000e+00 2.7500e+00 1.7900e+02 - 1.0000e+00 3.3700e+00 9.3000e+01 - 1.0000e+00 3.7700e+00 3.3000e+01 - 1.0000e+00 3.0200e+00 1.0400e+02 - 1.0000e+00 3.6500e+00 9.8000e+01 - 1.0000e+00 2.9500e+00 1.0800e+02 - 1.0000e+00 3.3600e+00 7.3000e+01 - 1.0000e+00 3.9000e+00 1.0700e+02 - 1.0000e+00 3.7000e+00 1.7100e+02 - 1.0000e+00 3.5600e+00 1.2300e+02 - - - ---- view of y_node ---- - - 9.0400e+02 1.0000e+00 - 1.0770e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.3000e+03 0 - 1.4350e+03 0 - 1.6900e+03 1.0000e+00 - 1.7410e+03 1.0000e+00 - 1.8820e+03 0 - 2.5980e+03 1.0000e+00 - 3.0690e+03 0 - 4.1910e+03 1.0000e+00 - 4.2320e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.56213 -- next: -0.61478 -- N events: 0 -- N risk: 1 -current value: -0.61478 -- next: -0.597599 -- N events: 0 -- N risk: 4 -current value: -0.597599 -- next: -0.509375 -- N events: 1 -- N risk: 5 - -lower cutpoint: -0.597599 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 3.27519 ---- next value: 0.49888 ---- N events: 1 ---- N risk: 1 -current value: 0.49888 ---- next value: 0.391636 ---- N events: 2 ---- N risk: 2 -current value: 0.391636 ---- next value: 0.315146 ---- N events: 3 ---- N risk: 3 -current value: 0.315146 ---- next value: 0.294644 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 0.294644 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.5976 - -0.3179 - -0.0632 - 0.1709 - 0.2946 - - -testing cutpoint: -0.597599 - - ---- view of lincomb & g_node & w_node ---- - - -1.5621 0 1.0000 - -0.6148 0 3.0000 - -0.5976 0 1.0000 - -0.5094 1.0000 2.0000 - -0.3179 1.0000 3.0000 - -0.0632 1.0000 3.0000 - 0.1709 1.0000 1.0000 - 0.2946 1.0000 3.0000 - 0.3151 1.0000 3.0000 - 0.3916 1.0000 1.0000 - 0.4989 1.0000 1.0000 - 3.2752 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.45041 - ------------------------------------------- - -testing cutpoint: -0.31788 - - ---- view of lincomb & g_node & w_node ---- - - -1.5621 0 1.0000 - -0.6148 0 3.0000 - -0.5976 0 1.0000 - -0.5094 0 2.0000 - -0.3179 0 3.0000 - -0.0632 1.0000 3.0000 - 0.1709 1.0000 1.0000 - 0.2946 1.0000 3.0000 - 0.3151 1.0000 3.0000 - 0.3916 1.0000 1.0000 - 0.4989 1.0000 1.0000 - 3.2752 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.653223 - ------------------------------------------- - -testing cutpoint: -0.0631645 - - ---- view of lincomb & g_node & w_node ---- - - -1.5621 0 1.0000 - -0.6148 0 3.0000 - -0.5976 0 1.0000 - -0.5094 0 2.0000 - -0.3179 0 3.0000 - -0.0632 0 3.0000 - 0.1709 1.0000 1.0000 - 0.2946 1.0000 3.0000 - 0.3151 1.0000 3.0000 - 0.3916 1.0000 1.0000 - 0.4989 1.0000 1.0000 - 3.2752 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.63548 - ------------------------------------------- - -testing cutpoint: 0.170871 - - ---- view of lincomb & g_node & w_node ---- - - -1.5621 0 1.0000 - -0.6148 0 3.0000 - -0.5976 0 1.0000 - -0.5094 0 2.0000 - -0.3179 0 3.0000 - -0.0632 0 3.0000 - 0.1709 0 1.0000 - 0.2946 1.0000 3.0000 - 0.3151 1.0000 3.0000 - 0.3916 1.0000 1.0000 - 0.4989 1.0000 1.0000 - 3.2752 1.0000 1.0000 - - -logrank stat for this cutpoint: 4.54564 - ------------------------------------------- - -testing cutpoint: 0.294644 - - ---- view of lincomb & g_node & w_node ---- - - -1.5621 0 1.0000 - -0.6148 0 3.0000 - -0.5976 0 1.0000 - -0.5094 0 2.0000 - -0.3179 0 3.0000 - -0.0632 0 3.0000 - 0.1709 0 1.0000 - 0.2946 0 3.0000 - 0.3151 1.0000 3.0000 - 0.3916 1.0000 1.0000 - 0.4989 1.0000 1.0000 - 3.2752 1.0000 1.0000 - - -logrank stat for this cutpoint: 15.0653 - ------------------------------------------- - -node assignments: - 6 - 22 - 8 - 12 - 23 - 12 - 12 - 10 - 6 - 6 - 6 - 6 - -growing node 22 - -sprouting new leaf with node 22 - - ---- view of leaf_data ---- - - 2.2300e+02 8.1818e-01 1.8182e-01 - 4.6000e+02 6.3636e-01 4.0404e-01 - 5.5200e+02 5.4545e-01 5.4690e-01 - 5.9700e+02 4.5455e-01 7.1356e-01 - 7.6900e+02 3.6364e-01 9.1356e-01 - - -growing node 23 - - ---- view of x_node ---- - - 2.0000e+00 1.0200e+02 1.2730e+03 - 1.0000e+00 3.2200e+02 1.1190e+03 - 1.0000e+00 1.0000e+02 9.7900e+02 - 1.0000e+00 9.0000e+01 2.2500e+03 - 1.0000e+00 1.4400e+02 5.1840e+03 - 1.0000e+00 5.5000e+01 1.1900e+03 - 1.0000e+00 7.7000e+01 1.4060e+03 - 1.0000e+00 1.1800e+02 1.2570e+03 - 1.0000e+00 1.3000e+02 1.9110e+03 - 1.0000e+00 9.0000e+01 9.2400e+02 - 1.0000e+00 2.2400e+02 1.8660e+03 - 1.0000e+00 9.2000e+01 6.1218e+03 - 1.0000e+00 1.0900e+02 1.0520e+03 - 1.0000e+00 1.2400e+02 7.6228e+03 - 1.0000e+00 6.2000e+01 8.1000e+02 - 1.0000e+00 3.1800e+02 1.2180e+03 - 1.0000e+00 1.0600e+02 5.5400e+02 - 1.0000e+00 8.7000e+01 1.2340e+03 - 1.0000e+00 5.0000e+01 1.0290e+03 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 8.3700e+02 0 - 9.8000e+02 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.2500e+03 0 - 1.3010e+03 0 - 1.4080e+03 0 - 1.5420e+03 0 - 1.7700e+03 0 - 1.7860e+03 1.0000e+00 - 1.9250e+03 1.0000e+00 - 2.1050e+03 1.0000e+00 - 2.2240e+03 1.0000e+00 - 2.3630e+03 0 - 2.5400e+03 1.0000e+00 - 2.5560e+03 0 - 3.2440e+03 1.0000e+00 - 3.4280e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.44861 -- next: -1.44035 -- N events: 0 -- N risk: 1 -current value: -1.44035 -- next: -1.38531 -- N events: 1 -- N risk: 2 -current value: -1.38531 -- next: -1.35206 -- N events: 1 -- N risk: 4 -current value: -1.35206 -- next: -1.32297 -- N events: 1 -- N risk: 6 - -lower cutpoint: -1.35206 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 16 ---- next value: 0.350592 ---- N events: 2 ---- N risk: 2 -current value: 0.350592 ---- next value: -0.110791 ---- N events: 3 ---- N risk: 3 -current value: -0.110791 ---- next value: -0.143974 ---- N events: 4 ---- N risk: 4 -current value: -0.143974 ---- next value: -0.446976 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: -0.446976 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.3230 - -1.2748 - -1.1466 - -1.0155 - -0.4558 - - -testing cutpoint: -1.32297 - - ---- view of lincomb & g_node & w_node ---- - - -1.4486 0 1.0000 - -1.4404 0 1.0000 - -1.3853 0 2.0000 - -1.3521 0 2.0000 - -1.3230 0 3.0000 - -1.2748 1.0000 2.0000 - -1.2617 1.0000 4.0000 - -1.2573 1.0000 1.0000 - -1.2260 1.0000 4.0000 - -1.1466 1.0000 1.0000 - -1.0155 1.0000 1.0000 - -0.9524 1.0000 1.0000 - -0.6298 1.0000 1.0000 - -0.4558 1.0000 3.0000 - -0.4470 1.0000 2.0000 - -0.1440 1.0000 1.0000 - -0.1108 1.0000 1.0000 - 0.3506 1.0000 1.0000 - 16.0000 1.0000 2.0000 - - -logrank stat for this cutpoint: 8.53215 - ------------------------------------------- - -testing cutpoint: -1.27479 - - ---- view of lincomb & g_node & w_node ---- - - -1.4486 0 1.0000 - -1.4404 0 1.0000 - -1.3853 0 2.0000 - -1.3521 0 2.0000 - -1.3230 0 3.0000 - -1.2748 0 2.0000 - -1.2617 1.0000 4.0000 - -1.2573 1.0000 1.0000 - -1.2260 1.0000 4.0000 - -1.1466 1.0000 1.0000 - -1.0155 1.0000 1.0000 - -0.9524 1.0000 1.0000 - -0.6298 1.0000 1.0000 - -0.4558 1.0000 3.0000 - -0.4470 1.0000 2.0000 - -0.1440 1.0000 1.0000 - -0.1108 1.0000 1.0000 - 0.3506 1.0000 1.0000 - 16.0000 1.0000 2.0000 - - -logrank stat for this cutpoint: 3.40279 - ------------------------------------------- - -testing cutpoint: -1.14656 - - ---- view of lincomb & g_node & w_node ---- - - -1.4486 0 1.0000 - -1.4404 0 1.0000 - -1.3853 0 2.0000 - -1.3521 0 2.0000 - -1.3230 0 3.0000 - -1.2748 0 2.0000 - -1.2617 0 4.0000 - -1.2573 0 1.0000 - -1.2260 0 4.0000 - -1.1466 0 1.0000 - -1.0155 1.0000 1.0000 - -0.9524 1.0000 1.0000 - -0.6298 1.0000 1.0000 - -0.4558 1.0000 3.0000 - -0.4470 1.0000 2.0000 - -0.1440 1.0000 1.0000 - -0.1108 1.0000 1.0000 - 0.3506 1.0000 1.0000 - 16.0000 1.0000 2.0000 - - -logrank stat for this cutpoint: 7.6367 - ------------------------------------------- - -testing cutpoint: -1.01554 - - ---- view of lincomb & g_node & w_node ---- - - -1.4486 0 1.0000 - -1.4404 0 1.0000 - -1.3853 0 2.0000 - -1.3521 0 2.0000 - -1.3230 0 3.0000 - -1.2748 0 2.0000 - -1.2617 0 4.0000 - -1.2573 0 1.0000 - -1.2260 0 4.0000 - -1.1466 0 1.0000 - -1.0155 0 1.0000 - -0.9524 1.0000 1.0000 - -0.6298 1.0000 1.0000 - -0.4558 1.0000 3.0000 - -0.4470 1.0000 2.0000 - -0.1440 1.0000 1.0000 - -0.1108 1.0000 1.0000 - 0.3506 1.0000 1.0000 - 16.0000 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.10529 - ------------------------------------------- - -testing cutpoint: -0.455756 - - ---- view of lincomb & g_node & w_node ---- - - -1.4486 0 1.0000 - -1.4404 0 1.0000 - -1.3853 0 2.0000 - -1.3521 0 2.0000 - -1.3230 0 3.0000 - -1.2748 0 2.0000 - -1.2617 0 4.0000 - -1.2573 0 1.0000 - -1.2260 0 4.0000 - -1.1466 0 1.0000 - -1.0155 0 1.0000 - -0.9524 0 1.0000 - -0.6298 0 1.0000 - -0.4558 0 3.0000 - -0.4470 1.0000 2.0000 - -0.1440 1.0000 1.0000 - -0.1108 1.0000 1.0000 - 0.3506 1.0000 1.0000 - 16.0000 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.41651 - ------------------------------------------- - -node assignments: - 10 - 10 - 12 - 22 - 22 - 6 - 22 - 12 - 6 - 10 - 30 - 8 - 6 - 6 - 22 - 6 - 12 - 10 - 6 - -growing node 24 - -sprouting new leaf with node 24 - - ---- view of leaf_data ---- - - 1.0830e+03 8.1818e-01 1.8182e-01 - 1.2350e+03 7.1591e-01 3.0682e-01 - 1.4440e+03 4.0909e-01 7.3539e-01 - 1.6570e+03 1.0227e-01 1.4854e+00 - 1.6900e+03 0 2.4854e+00 - - -growing node 25 - -sprouting new leaf with node 25 - - ---- view of leaf_data ---- - - 2.3860e+03 8.6667e-01 1.3333e-01 - 3.5840e+03 5.7778e-01 4.6667e-01 - 3.8390e+03 4.3333e-01 7.1667e-01 - 3.8530e+03 1.4444e-01 1.3833e+00 - - -growing node 26 - -sprouting new leaf with node 26 - - ---- view of leaf_data ---- - - 7.9700e+02 8.5714e-01 1.4286e-01 - 9.4300e+02 7.1429e-01 3.0952e-01 - 2.7690e+03 3.5714e-01 8.0952e-01 - 2.7960e+03 0 1.8095e+00 - - -growing node 27 - -sprouting new leaf with node 27 - - ---- view of leaf_data ---- - - 1.6900e+03 9.2308e-01 7.6923e-02 - 1.7410e+03 7.6923e-01 2.4359e-01 - 2.5980e+03 6.5934e-01 3.8645e-01 - - -growing node 28 - -sprouting new leaf with node 28 - - ---- view of leaf_data ---- - - 9.0400e+02 8.3333e-01 1.6667e-01 - 1.0770e+03 3.3333e-01 7.6667e-01 - 1.1910e+03 1.6667e-01 1.2667e+00 - 4.1910e+03 0 2.2667e+00 - - -growing node 29 - -sprouting new leaf with node 29 - - ---- view of leaf_data ---- - - 3.4280e+03 0 1.0000e+00 - - -growing node 30 - -Column 4 was sampled but unique values of column 4 are 2.0000 - - ---- view of x_node ---- - - 5.7000e+01 2.0000e+00 3.6700e+00 - 3.0800e+02 1.0000e+00 3.6200e+00 - 1.0300e+02 1.0000e+00 3.7400e+00 - 1.1500e+02 1.0000e+00 1.9600e+00 - 7.3000e+01 1.0000e+00 3.6100e+00 - 4.5000e+01 1.0000e+00 3.5700e+00 - 7.0000e+01 1.0000e+00 3.3600e+00 - 1.8800e+02 1.0000e+00 3.1200e+00 - 3.4000e+01 1.0000e+00 3.4300e+00 - 6.4000e+01 1.0000e+00 2.5400e+00 - 7.4000e+01 1.0000e+00 3.5400e+00 - 4.9000e+01 1.0000e+00 3.5000e+00 - 3.4000e+01 1.0000e+00 3.6500e+00 - 1.0200e+02 1.0000e+00 3.5300e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 8.3700e+02 0 - 9.8000e+02 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.4080e+03 0 - 1.5420e+03 0 - 1.7860e+03 1.0000e+00 - 1.9250e+03 1.0000e+00 - 2.1050e+03 1.0000e+00 - 2.2240e+03 1.0000e+00 - 2.5400e+03 1.0000e+00 - 3.2440e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -2.29461 -- next: -1.50136 -- N events: 0 -- N risk: 3 -current value: -1.50136 -- next: -1.1259 -- N events: 2 -- N risk: 5 - -lower cutpoint: -1.50136 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 11.5 ---- next value: 1.58071 ---- N events: 2 ---- N risk: 2 -current value: 1.58071 ---- next value: 0.807297 ---- N events: 3 ---- N risk: 3 -current value: 0.807297 ---- next value: -0.616078 ---- N events: 4 ---- N risk: 4 -current value: -0.616078 ---- next value: -0.669047 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: -0.669047 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.5014 - -1.1259 - -1.1249 - -1.0043 - -0.8131 - - -testing cutpoint: -1.50136 - - ---- view of lincomb & g_node & w_node ---- - - -2.2946 0 3.0000 - -1.5014 0 2.0000 - -1.1259 1.0000 4.0000 - -1.1249 1.0000 1.0000 - -1.0063 1.0000 4.0000 - -1.0043 1.0000 2.0000 - -0.9170 1.0000 1.0000 - -0.8240 1.0000 1.0000 - -0.8131 1.0000 1.0000 - -0.6690 1.0000 1.0000 - -0.6161 1.0000 1.0000 - 0.8073 1.0000 1.0000 - 1.5807 1.0000 1.0000 - 11.5000 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.10735 - ------------------------------------------- - -testing cutpoint: -1.1259 - - ---- view of lincomb & g_node & w_node ---- - - -2.2946 0 3.0000 - -1.5014 0 2.0000 - -1.1259 0 4.0000 - -1.1249 1.0000 1.0000 - -1.0063 1.0000 4.0000 - -1.0043 1.0000 2.0000 - -0.9170 1.0000 1.0000 - -0.8240 1.0000 1.0000 - -0.8131 1.0000 1.0000 - -0.6690 1.0000 1.0000 - -0.6161 1.0000 1.0000 - 0.8073 1.0000 1.0000 - 1.5807 1.0000 1.0000 - 11.5000 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.655 - ------------------------------------------- - -testing cutpoint: -1.12489 - - ---- view of lincomb & g_node & w_node ---- - - -2.2946 0 3.0000 - -1.5014 0 2.0000 - -1.1259 0 4.0000 - -1.1249 0 1.0000 - -1.0063 1.0000 4.0000 - -1.0043 1.0000 2.0000 - -0.9170 1.0000 1.0000 - -0.8240 1.0000 1.0000 - -0.8131 1.0000 1.0000 - -0.6690 1.0000 1.0000 - -0.6161 1.0000 1.0000 - 0.8073 1.0000 1.0000 - 1.5807 1.0000 1.0000 - 11.5000 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.14328 - ------------------------------------------- - -testing cutpoint: -1.00428 - - ---- view of lincomb & g_node & w_node ---- - - -2.2946 0 3.0000 - -1.5014 0 2.0000 - -1.1259 0 4.0000 - -1.1249 0 1.0000 - -1.0063 0 4.0000 - -1.0043 0 2.0000 - -0.9170 1.0000 1.0000 - -0.8240 1.0000 1.0000 - -0.8131 1.0000 1.0000 - -0.6690 1.0000 1.0000 - -0.6161 1.0000 1.0000 - 0.8073 1.0000 1.0000 - 1.5807 1.0000 1.0000 - 11.5000 1.0000 2.0000 - - -logrank stat for this cutpoint: 6.06862 - ------------------------------------------- - -testing cutpoint: -0.813132 - - ---- view of lincomb & g_node & w_node ---- - - -2.2946 0 3.0000 - -1.5014 0 2.0000 - -1.1259 0 4.0000 - -1.1249 0 1.0000 - -1.0063 0 4.0000 - -1.0043 0 2.0000 - -0.9170 0 1.0000 - -0.8240 0 1.0000 - -0.8131 0 1.0000 - -0.6690 1.0000 1.0000 - -0.6161 1.0000 1.0000 - 0.8073 1.0000 1.0000 - 1.5807 1.0000 1.0000 - 11.5000 1.0000 2.0000 - - -logrank stat for this cutpoint: 12.9824 - ------------------------------------------- - -node assignments: - 6 - 6 - 10 - 6 - 6 - 6 - 12 - 10 - 12 - 12 - 8 - 22 - 32 - 6 - -growing node 31 - -sprouting new leaf with node 31 - - ---- view of leaf_data ---- - - 9.8000e+02 8.7500e-01 1.2500e-01 - 2.1050e+03 5.5682e-01 4.8864e-01 - 2.2240e+03 4.7727e-01 6.3149e-01 - 2.5400e+03 3.1818e-01 9.6483e-01 - 3.2440e+03 0 1.9648e+00 - - -growing node 32 - -sprouting new leaf with node 32 - - ---- view of leaf_data ---- - - 1.1000e+02 6.6667e-01 3.3333e-01 - 1.1650e+03 5.0000e-01 5.8333e-01 - 1.7860e+03 2.5000e-01 1.0833e+00 - 1.9250e+03 0 2.0833e+00 - - -Effective sample size: 276 -Effective number of events: 119 -Number of unique rows in x: 174 - -Max number of nodes for this tree: 237 -Max number of leaves for this tree: 119 - -growing node 0 - - ---- view of x_node ---- - - 3.6974e+03 1.7500e+02 1.2000e+01 - 1.2730e+03 1.8800e+02 1.1100e+01 - 9.6100e+02 1.7800e+02 1.2400e+01 - 6.2000e+02 2.2200e+02 1.2100e+01 - 1.8600e+03 3.4500e+02 1.0700e+01 - 3.7400e+03 1.0920e+03 1.5200e+01 - 6.9312e+03 3.3400e+02 1.2000e+01 - 6.0648e+03 3.9500e+02 1.1700e+01 - 5.9100e+02 2.3600e+02 1.3600e+01 - 7.2770e+03 2.6000e+02 1.1000e+01 - 1.8190e+03 2.4400e+02 1.2100e+01 - 1.8330e+03 4.4800e+02 1.1000e+01 - 1.6260e+03 2.0600e+02 1.2200e+01 - 2.4600e+03 3.2500e+02 1.1900e+01 - 9.4400e+02 6.3600e+02 9.5000e+00 - 1.1420e+03 2.7500e+02 1.1300e+01 - 1.9750e+03 2.2200e+02 1.3000e+01 - 7.4600e+02 1.7800e+02 1.2000e+01 - 2.3100e+03 3.7200e+02 1.2400e+01 - 3.1960e+03 4.2000e+02 1.1400e+01 - - - ---- view of y_node ---- - - 7.7000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.1435 -- next: -1.11656 -- N events: 0 -- N risk: 1 -current value: -1.11656 -- next: -1.09059 -- N events: 0 -- N risk: 2 -current value: -1.09059 -- next: -1.08222 -- N events: 0 -- N risk: 4 -current value: -1.08222 -- next: -1.07074 -- N events: 0 -- N risk: 5 -current value: -1.07074 -- next: -1.03376 -- N events: 0 -- N risk: 6 -current value: -1.03376 -- next: -1.00891 -- N events: 0 -- N risk: 7 -current value: -1.00891 -- next: -0.990904 -- N events: 0 -- N risk: 8 -current value: -0.990904 -- next: -0.968808 -- N events: 0 -- N risk: 10 -current value: -0.968808 -- next: -0.966499 -- N events: 0 -- N risk: 13 -current value: -0.966499 -- next: -0.962723 -- N events: 0 -- N risk: 14 -current value: -0.962723 -- next: -0.90763 -- N events: 0 -- N risk: 15 -current value: -0.90763 -- next: -0.899905 -- N events: 0 -- N risk: 17 -current value: -0.899905 -- next: -0.894962 -- N events: 0 -- N risk: 18 -current value: -0.894962 -- next: -0.885182 -- N events: 1 -- N risk: 19 - -lower cutpoint: -0.894962 - - n_events, left node: 1 - - n_risk, left node: 19 - ------ finding upper bound for cut-points ----- -current value: 4.21455 ---- next value: 3.73802 ---- N events: 1 ---- N risk: 1 -current value: 3.73802 ---- next value: 2.2995 ---- N events: 1 ---- N risk: 2 -current value: 2.2995 ---- next value: 2.15834 ---- N events: 3 ---- N risk: 4 -current value: 2.15834 ---- next value: 1.8489 ---- N events: 6 ---- N risk: 7 - -upper cutpoint: 1.8489 - - n_events, right node: 6 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -0.2043 - 0.2623 - 0.2975 - 0.6551 - 0.7145 - - -testing cutpoint: -0.204261 - - ---- view of lincomb & g_node & w_node ---- - - -1.1435 0 1.0000 - -1.1166 0 1.0000 - -1.0906 0 2.0000 - -1.0822 0 1.0000 - -1.0707 0 1.0000 - -1.0338 0 1.0000 - -1.0089 0 1.0000 - -0.9909 0 2.0000 - -0.9688 0 3.0000 - -0.9665 0 1.0000 - -0.9627 0 1.0000 - -0.9076 0 2.0000 - -0.8999 0 1.0000 - -0.8950 0 1.0000 - -0.8852 0 1.0000 - -0.8617 0 1.0000 - -0.8517 0 1.0000 - -0.8516 0 1.0000 - -0.8413 0 2.0000 - -0.8408 0 1.0000 - - -logrank stat for this cutpoint: 46.0432 - ------------------------------------------- - -testing cutpoint: 0.262282 - - ---- view of lincomb & g_node & w_node ---- - - -1.1435 0 1.0000 - -1.1166 0 1.0000 - -1.0906 0 2.0000 - -1.0822 0 1.0000 - -1.0707 0 1.0000 - -1.0338 0 1.0000 - -1.0089 0 1.0000 - -0.9909 0 2.0000 - -0.9688 0 3.0000 - -0.9665 0 1.0000 - -0.9627 0 1.0000 - -0.9076 0 2.0000 - -0.8999 0 1.0000 - -0.8950 0 1.0000 - -0.8852 0 1.0000 - -0.8617 0 1.0000 - -0.8517 0 1.0000 - -0.8516 0 1.0000 - -0.8413 0 2.0000 - -0.8408 0 1.0000 - - -logrank stat for this cutpoint: 82.5068 - ------------------------------------------- - -testing cutpoint: 0.297522 - - ---- view of lincomb & g_node & w_node ---- - - -1.1435 0 1.0000 - -1.1166 0 1.0000 - -1.0906 0 2.0000 - -1.0822 0 1.0000 - -1.0707 0 1.0000 - -1.0338 0 1.0000 - -1.0089 0 1.0000 - -0.9909 0 2.0000 - -0.9688 0 3.0000 - -0.9665 0 1.0000 - -0.9627 0 1.0000 - -0.9076 0 2.0000 - -0.8999 0 1.0000 - -0.8950 0 1.0000 - -0.8852 0 1.0000 - -0.8617 0 1.0000 - -0.8517 0 1.0000 - -0.8516 0 1.0000 - -0.8413 0 2.0000 - -0.8408 0 1.0000 - - -logrank stat for this cutpoint: 79.358 - ------------------------------------------- - -testing cutpoint: 0.655103 - - ---- view of lincomb & g_node & w_node ---- - - -1.1435 0 1.0000 - -1.1166 0 1.0000 - -1.0906 0 2.0000 - -1.0822 0 1.0000 - -1.0707 0 1.0000 - -1.0338 0 1.0000 - -1.0089 0 1.0000 - -0.9909 0 2.0000 - -0.9688 0 3.0000 - -0.9665 0 1.0000 - -0.9627 0 1.0000 - -0.9076 0 2.0000 - -0.8999 0 1.0000 - -0.8950 0 1.0000 - -0.8852 0 1.0000 - -0.8617 0 1.0000 - -0.8517 0 1.0000 - -0.8516 0 1.0000 - -0.8413 0 2.0000 - -0.8408 0 1.0000 - - -logrank stat for this cutpoint: 58.1529 - ------------------------------------------- - -testing cutpoint: 0.714497 - - ---- view of lincomb & g_node & w_node ---- - - -1.1435 0 1.0000 - -1.1166 0 1.0000 - -1.0906 0 2.0000 - -1.0822 0 1.0000 - -1.0707 0 1.0000 - -1.0338 0 1.0000 - -1.0089 0 1.0000 - -0.9909 0 2.0000 - -0.9688 0 3.0000 - -0.9665 0 1.0000 - -0.9627 0 1.0000 - -0.9076 0 2.0000 - -0.8999 0 1.0000 - -0.8950 0 1.0000 - -0.8852 0 1.0000 - -0.8617 0 1.0000 - -0.8517 0 1.0000 - -0.8516 0 1.0000 - -0.8413 0 2.0000 - -0.8408 0 1.0000 - - -logrank stat for this cutpoint: 42.7762 - ------------------------------------------- - -node assignments: - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 1 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - 2 - -growing node 1 - - ---- view of x_node ---- - - 1.0200e+02 2.0000e+00 2.0000e+00 - 7.2000e+01 1.0000e+00 2.0000e+00 - 1.1400e+02 1.0000e+00 2.0000e+00 - 9.1000e+01 1.0000e+00 1.0000e+00 - 9.9000e+01 1.0000e+00 2.0000e+00 - 1.2800e+02 1.0000e+00 2.0000e+00 - 2.4200e+02 1.0000e+00 1.0000e+00 - 3.2200e+02 1.0000e+00 2.0000e+00 - 8.8000e+01 1.0000e+00 2.0000e+00 - 9.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7100e+02 1.0000e+00 2.0000e+00 - 1.0000e+02 1.0000e+00 2.0000e+00 - 8.2000e+01 1.0000e+00 2.0000e+00 - 6.3000e+01 1.0000e+00 1.0000e+00 - 1.1300e+02 1.0000e+00 2.0000e+00 - 2.4200e+02 1.0000e+00 2.0000e+00 - 1.4200e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 2.0000e+00 2.0000e+00 - 6.4000e+01 1.0000e+00 2.0000e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 6.9400e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 8.3900e+02 0 - 8.9000e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 9.9400e+02 0 - 9.9900e+02 1.0000e+00 - 1.0300e+03 0 - 1.0670e+03 0 - 1.0770e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.2160e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -0.611112 -- next: -0.582137 -- N events: 0 -- N risk: 1 -current value: -0.582137 -- next: -0.568764 -- N events: 0 -- N risk: 2 -current value: -0.568764 -- next: -0.568764 -- N events: 0 -- N risk: 4 -current value: -0.568764 -- next: -0.566535 -- N events: 0 -- N risk: 5 -current value: -0.566535 -- next: -0.562077 -- N events: 4 -- N risk: 9 - -lower cutpoint: -0.566535 - - n_events, left node: 4 - - n_risk, left node: 9 - ------ finding upper bound for cut-points ----- -current value: 13.8767 ---- next value: 13.7051 ---- N events: 1 ---- N risk: 1 -current value: 13.7051 ---- next value: 1.66224 ---- N events: 2 ---- N risk: 2 -current value: 1.66224 ---- next value: 1.60875 ---- N events: 3 ---- N risk: 3 -current value: 1.60875 ---- next value: 1.59092 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 1.59092 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.4774 - -0.4596 - -0.4506 - -0.3793 - -0.3659 - - -testing cutpoint: -0.477382 - - ---- view of lincomb & g_node & w_node ---- - - -0.6111 0 1.0000 - -0.5821 0 1.0000 - -0.5688 0 2.0000 - -0.5688 0 1.0000 - -0.5665 0 4.0000 - -0.5621 0 1.0000 - -0.5621 0 4.0000 - -0.5598 0 2.0000 - -0.5598 0 1.0000 - -0.5576 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 3.0000 - -0.5420 0 1.0000 - -0.5420 0 1.0000 - -0.5376 0 2.0000 - -0.5353 0 1.0000 - -0.5331 0 1.0000 - -0.5331 0 1.0000 - -0.5309 0 1.0000 - - -logrank stat for this cutpoint: 7.65157 - ------------------------------------------- - -testing cutpoint: -0.459551 - - ---- view of lincomb & g_node & w_node ---- - - -0.6111 0 1.0000 - -0.5821 0 1.0000 - -0.5688 0 2.0000 - -0.5688 0 1.0000 - -0.5665 0 4.0000 - -0.5621 0 1.0000 - -0.5621 0 4.0000 - -0.5598 0 2.0000 - -0.5598 0 1.0000 - -0.5576 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 3.0000 - -0.5420 0 1.0000 - -0.5420 0 1.0000 - -0.5376 0 2.0000 - -0.5353 0 1.0000 - -0.5331 0 1.0000 - -0.5331 0 1.0000 - -0.5309 0 1.0000 - - -logrank stat for this cutpoint: 6.08527 - ------------------------------------------- - -testing cutpoint: -0.450636 - - ---- view of lincomb & g_node & w_node ---- - - -0.6111 0 1.0000 - -0.5821 0 1.0000 - -0.5688 0 2.0000 - -0.5688 0 1.0000 - -0.5665 0 4.0000 - -0.5621 0 1.0000 - -0.5621 0 4.0000 - -0.5598 0 2.0000 - -0.5598 0 1.0000 - -0.5576 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 3.0000 - -0.5420 0 1.0000 - -0.5420 0 1.0000 - -0.5376 0 2.0000 - -0.5353 0 1.0000 - -0.5331 0 1.0000 - -0.5331 0 1.0000 - -0.5309 0 1.0000 - - -logrank stat for this cutpoint: 7.18604 - ------------------------------------------- - -testing cutpoint: -0.379313 - - ---- view of lincomb & g_node & w_node ---- - - -0.6111 0 1.0000 - -0.5821 0 1.0000 - -0.5688 0 2.0000 - -0.5688 0 1.0000 - -0.5665 0 4.0000 - -0.5621 0 1.0000 - -0.5621 0 4.0000 - -0.5598 0 2.0000 - -0.5598 0 1.0000 - -0.5576 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 3.0000 - -0.5420 0 1.0000 - -0.5420 0 1.0000 - -0.5376 0 2.0000 - -0.5353 0 1.0000 - -0.5331 0 1.0000 - -0.5331 0 1.0000 - -0.5309 0 1.0000 - - -logrank stat for this cutpoint: 5.75962 - ------------------------------------------- - -testing cutpoint: -0.36594 - - ---- view of lincomb & g_node & w_node ---- - - -0.6111 0 1.0000 - -0.5821 0 1.0000 - -0.5688 0 2.0000 - -0.5688 0 1.0000 - -0.5665 0 4.0000 - -0.5621 0 1.0000 - -0.5621 0 4.0000 - -0.5598 0 2.0000 - -0.5598 0 1.0000 - -0.5576 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 1.0000 - -0.5554 0 3.0000 - -0.5420 0 1.0000 - -0.5420 0 1.0000 - -0.5376 0 2.0000 - -0.5353 0 1.0000 - -0.5331 0 1.0000 - -0.5331 0 1.0000 - -0.5309 0 1.0000 - - -logrank stat for this cutpoint: 5.47046 - ------------------------------------------- - -node assignments: - 4 - 3 - 4 - 3 - 4 - 3 - 2 - 4 - 2 - 4 - 2 - 3 - 4 - 2 - 2 - 3 - 4 - 4 - 3 - 3 - 2 - 4 - 3 - 4 - 2 - 4 - 2 - 4 - 4 - 2 - 2 - 4 - 4 - 4 - 3 - 4 - 2 - 3 - 2 - 4 - 2 - 3 - 2 - 3 - 2 - 4 - 4 - 3 - 3 - 2 - 2 - 4 - 2 - 2 - 2 - 4 - 4 - 2 - 3 - 3 - 4 - 4 - 2 - 4 - 4 - 4 - 4 - 3 - 4 - 4 - 2 - 2 - 3 - 4 - 2 - 3 - 3 - 4 - 4 - 2 - 3 - 3 - 4 - 3 - 2 - 4 - 4 - 4 - 4 - 4 - 2 - 4 - 2 - 2 - 3 - 4 - 3 - 2 - 2 - 3 - 4 - 3 - 4 - 2 - 2 - 4 - 3 - 4 - 2 - 2 - 2 - 4 - 3 - 3 - 2 - 2 - 2 - 2 - -growing node 2 - - ---- view of x_node ---- - - 2.0000e+00 8.0000e+01 2.0000e+00 - 1.0000e+00 2.8300e+02 2.0000e+00 - 2.0000e+00 1.9500e+02 2.0000e+00 - 2.0000e+00 3.9900e+02 2.0000e+00 - 2.0000e+00 1.0200e+02 1.0000e+00 - 2.0000e+00 2.1400e+02 2.0000e+00 - 1.0000e+00 7.1000e+01 2.0000e+00 - 1.0000e+00 1.2400e+02 2.0000e+00 - 1.0000e+00 1.3200e+02 2.0000e+00 - 2.0000e+00 2.1000e+02 1.0000e+00 - 2.0000e+00 1.4500e+02 1.0000e+00 - 1.0000e+00 4.3000e+02 2.0000e+00 - 2.0000e+00 1.4400e+02 2.0000e+00 - 1.0000e+00 1.1900e+02 1.0000e+00 - 1.0000e+00 2.4000e+02 1.0000e+00 - 1.0000e+00 3.4400e+02 1.0000e+00 - 1.0000e+00 1.7300e+02 2.0000e+00 - 1.0000e+00 2.9700e+02 1.0000e+00 - 1.0000e+00 2.6800e+02 1.0000e+00 - 1.0000e+00 2.0000e+02 2.0000e+00 - - - ---- view of y_node ---- - - 7.7000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.7900e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.3300e+02 1.0000e+00 - 7.8800e+02 0 - - ------ finding lower bound for cut-points ----- -current value: -1.3825 -- next: -1.19832 -- N events: 2 -- N risk: 2 -current value: -1.19832 -- next: -1.15809 -- N events: 3 -- N risk: 3 -current value: -1.15809 -- next: -1.15386 -- N events: 4 -- N risk: 4 -current value: -1.15386 -- next: -1.05224 -- N events: 4 -- N risk: 5 - -lower cutpoint: -1.15386 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.55954 ---- next value: 2.42405 ---- N events: 1 ---- N risk: 1 -current value: 2.42405 ---- next value: 2.31608 ---- N events: 3 ---- N risk: 3 -current value: 2.31608 ---- next value: 2.27586 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 2.27586 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.1539 - -0.7326 - -0.1667 - 0.1276 - 2.1615 - - -testing cutpoint: -1.15386 - - ---- view of lincomb & g_node & w_node ---- - - -1.3825 0 2.0000 - -1.1983 0 1.0000 - -1.1581 0 1.0000 - -1.1539 0 1.0000 - -1.0522 1.0000 1.0000 - -1.0141 1.0000 1.0000 - -0.9993 1.0000 1.0000 - -0.9676 1.0000 1.0000 - -0.9549 1.0000 1.0000 - -0.9485 1.0000 1.0000 - -0.9189 1.0000 3.0000 - -0.9146 1.0000 1.0000 - -0.9104 1.0000 1.0000 - -0.9019 1.0000 2.0000 - -0.8532 1.0000 1.0000 - -0.8532 1.0000 2.0000 - -0.7940 1.0000 1.0000 - -0.7432 1.0000 2.0000 - -0.7326 1.0000 1.0000 - -0.7093 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.03495 - ------------------------------------------- - -testing cutpoint: -0.732566 - - ---- view of lincomb & g_node & w_node ---- - - -1.3825 0 2.0000 - -1.1983 0 1.0000 - -1.1581 0 1.0000 - -1.1539 0 1.0000 - -1.0522 0 1.0000 - -1.0141 0 1.0000 - -0.9993 0 1.0000 - -0.9676 0 1.0000 - -0.9549 0 1.0000 - -0.9485 0 1.0000 - -0.9189 0 3.0000 - -0.9146 0 1.0000 - -0.9104 0 1.0000 - -0.9019 0 2.0000 - -0.8532 0 1.0000 - -0.8532 0 2.0000 - -0.7940 0 1.0000 - -0.7432 0 2.0000 - -0.7326 0 1.0000 - -0.7093 1.0000 1.0000 - - -logrank stat for this cutpoint: 12.1298 - ------------------------------------------- - -testing cutpoint: -0.166664 - - ---- view of lincomb & g_node & w_node ---- - - -1.3825 0 2.0000 - -1.1983 0 1.0000 - -1.1581 0 1.0000 - -1.1539 0 1.0000 - -1.0522 0 1.0000 - -1.0141 0 1.0000 - -0.9993 0 1.0000 - -0.9676 0 1.0000 - -0.9549 0 1.0000 - -0.9485 0 1.0000 - -0.9189 0 3.0000 - -0.9146 0 1.0000 - -0.9104 0 1.0000 - -0.9019 0 2.0000 - -0.8532 0 1.0000 - -0.8532 0 2.0000 - -0.7940 0 1.0000 - -0.7432 0 2.0000 - -0.7326 0 1.0000 - -0.7093 0 1.0000 - - -logrank stat for this cutpoint: 13.363 - ------------------------------------------- - -testing cutpoint: 0.127605 - - ---- view of lincomb & g_node & w_node ---- - - -1.3825 0 2.0000 - -1.1983 0 1.0000 - -1.1581 0 1.0000 - -1.1539 0 1.0000 - -1.0522 0 1.0000 - -1.0141 0 1.0000 - -0.9993 0 1.0000 - -0.9676 0 1.0000 - -0.9549 0 1.0000 - -0.9485 0 1.0000 - -0.9189 0 3.0000 - -0.9146 0 1.0000 - -0.9104 0 1.0000 - -0.9019 0 2.0000 - -0.8532 0 1.0000 - -0.8532 0 2.0000 - -0.7940 0 1.0000 - -0.7432 0 2.0000 - -0.7326 0 1.0000 - -0.7093 0 1.0000 - - -logrank stat for this cutpoint: 45.2918 - ------------------------------------------- - -testing cutpoint: 2.16154 - - ---- view of lincomb & g_node & w_node ---- - - -1.3825 0 2.0000 - -1.1983 0 1.0000 - -1.1581 0 1.0000 - -1.1539 0 1.0000 - -1.0522 0 1.0000 - -1.0141 0 1.0000 - -0.9993 0 1.0000 - -0.9676 0 1.0000 - -0.9549 0 1.0000 - -0.9485 0 1.0000 - -0.9189 0 3.0000 - -0.9146 0 1.0000 - -0.9104 0 1.0000 - -0.9019 0 2.0000 - -0.8532 0 1.0000 - -0.8532 0 2.0000 - -0.7940 0 1.0000 - -0.7432 0 2.0000 - -0.7326 0 1.0000 - -0.7093 0 1.0000 - - -logrank stat for this cutpoint: 37.1502 - ------------------------------------------- - -node assignments: - 4 - 4 - 3 - 5 - 4 - 4 - 6 - 4 - 3 - 5 - 3 - 5 - 4 - 5 - 3 - 5 - 4 - 5 - 5 - 3 - 4 - 5 - 5 - 4 - 4 - 5 - 6 - 4 - 3 - 5 - 4 - 5 - 4 - 4 - 4 - 4 - 4 - 5 - 4 - 6 - 4 - 4 - 6 - 6 - 5 - 6 - 5 - 6 - 6 - 3 - 6 - 5 - 6 - 5 - 6 - 6 - -growing node 3 - -Column 2 was sampled but unique values of column 2 are 2.0000 - - ---- view of x_node ---- - - 4.4000 1.0000 1.0000 - 3.1600 1.0000 1.0000 - 2.7500 1.0000 1.0000 - 3.4500 2.0000 1.0000 - 3.9300 1.0000 1.0000 - 3.2500 2.0000 1.0000 - 3.3700 2.0000 1.0000 - 3.5700 1.0000 1.0000 - 3.4800 1.0000 1.0000 - 3.7700 1.0000 1.0000 - 3.7700 2.0000 1.0000 - 3.5300 2.0000 1.0000 - 2.9300 1.0000 1.0000 - 3.3600 2.0000 1.0000 - 3.3500 2.0000 1.0000 - 3.2000 1.0000 1.0000 - 2.5400 2.0000 2.0000 - 3.3500 1.0000 1.0000 - 4.0800 1.0000 1.0000 - 4.1700 1.0000 1.0000 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 8.3900e+02 0 - 9.9400e+02 0 - 1.2160e+03 0 - 1.2300e+03 0 - 1.2500e+03 0 - 1.3000e+03 0 - 1.3630e+03 0 - 1.4010e+03 0 - 1.4330e+03 0 - 1.4350e+03 0 - 1.5040e+03 0 - 1.5250e+03 0 - 1.7690e+03 0 - 1.7700e+03 0 - 1.7830e+03 0 - 1.9250e+03 1.0000e+00 - 1.9670e+03 0 - 2.0550e+03 1.0000e+00 - 2.1570e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -1.27754 -- next: -1.11051 -- N events: 1 -- N risk: 1 -current value: -1.11051 -- next: -1.10292 -- N events: 1 -- N risk: 2 -current value: -1.10292 -- next: -1.07255 -- N events: 1 -- N risk: 4 -current value: -1.07255 -- next: -1.04978 -- N events: 1 -- N risk: 5 - -lower cutpoint: -1.07255 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 24.4786 ---- next value: 0.554227 ---- N events: 1 ---- N risk: 1 -current value: 0.554227 ---- next value: 0.516266 ---- N events: 1 ---- N risk: 2 -current value: 0.516266 ---- next value: 0.478305 ---- N events: 1 ---- N risk: 6 - -upper cutpoint: 0.478305 - - n_events, right node: 1 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -1.0726 - -1.0422 - -0.7005 - -0.6778 - -0.6702 - - -testing cutpoint: -1.07255 - - ---- view of lincomb & g_node & w_node ---- - - -1.2775 0 1.0000 - -1.1105 0 1.0000 - -1.1029 0 2.0000 - -1.0726 0 1.0000 - -1.0498 1.0000 2.0000 - -1.0422 1.0000 1.0000 - -1.0346 1.0000 1.0000 - -1.0270 1.0000 1.0000 - -0.9511 1.0000 1.0000 - -0.9207 1.0000 2.0000 - -0.8220 1.0000 1.0000 - -0.8068 1.0000 1.0000 - -0.7992 1.0000 2.0000 - -0.7461 1.0000 1.0000 - -0.7157 1.0000 1.0000 - -0.7005 1.0000 4.0000 - -0.6778 1.0000 1.0000 - -0.6778 1.0000 2.0000 - -0.6702 1.0000 1.0000 - -0.6474 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.174358 - ------------------------------------------- - -testing cutpoint: -1.04218 - - ---- view of lincomb & g_node & w_node ---- - - -1.2775 0 1.0000 - -1.1105 0 1.0000 - -1.1029 0 2.0000 - -1.0726 0 1.0000 - -1.0498 0 2.0000 - -1.0422 0 1.0000 - -1.0346 1.0000 1.0000 - -1.0270 1.0000 1.0000 - -0.9511 1.0000 1.0000 - -0.9207 1.0000 2.0000 - -0.8220 1.0000 1.0000 - -0.8068 1.0000 1.0000 - -0.7992 1.0000 2.0000 - -0.7461 1.0000 1.0000 - -0.7157 1.0000 1.0000 - -0.7005 1.0000 4.0000 - -0.6778 1.0000 1.0000 - -0.6778 1.0000 2.0000 - -0.6702 1.0000 1.0000 - -0.6474 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.641141 - ------------------------------------------- - -testing cutpoint: -0.700535 - - ---- view of lincomb & g_node & w_node ---- - - -1.2775 0 1.0000 - -1.1105 0 1.0000 - -1.1029 0 2.0000 - -1.0726 0 1.0000 - -1.0498 0 2.0000 - -1.0422 0 1.0000 - -1.0346 0 1.0000 - -1.0270 0 1.0000 - -0.9511 0 1.0000 - -0.9207 0 2.0000 - -0.8220 0 1.0000 - -0.8068 0 1.0000 - -0.7992 0 2.0000 - -0.7461 0 1.0000 - -0.7157 0 1.0000 - -0.7005 0 4.0000 - -0.6778 1.0000 1.0000 - -0.6778 1.0000 2.0000 - -0.6702 1.0000 1.0000 - -0.6474 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0319407 - ------------------------------------------- - -testing cutpoint: -0.677758 - - ---- view of lincomb & g_node & w_node ---- - - -1.2775 0 1.0000 - -1.1105 0 1.0000 - -1.1029 0 2.0000 - -1.0726 0 1.0000 - -1.0498 0 2.0000 - -1.0422 0 1.0000 - -1.0346 0 1.0000 - -1.0270 0 1.0000 - -0.9511 0 1.0000 - -0.9207 0 2.0000 - -0.8220 0 1.0000 - -0.8068 0 1.0000 - -0.7992 0 2.0000 - -0.7461 0 1.0000 - -0.7157 0 1.0000 - -0.7005 0 4.0000 - -0.6778 0 1.0000 - -0.6778 0 2.0000 - -0.6702 1.0000 1.0000 - -0.6474 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0184077 - ------------------------------------------- - -testing cutpoint: -0.670166 - - ---- view of lincomb & g_node & w_node ---- - - -1.2775 0 1.0000 - -1.1105 0 1.0000 - -1.1029 0 2.0000 - -1.0726 0 1.0000 - -1.0498 0 2.0000 - -1.0422 0 1.0000 - -1.0346 0 1.0000 - -1.0270 0 1.0000 - -0.9511 0 1.0000 - -0.9207 0 2.0000 - -0.8220 0 1.0000 - -0.8068 0 1.0000 - -0.7992 0 2.0000 - -0.7461 0 1.0000 - -0.7157 0 1.0000 - -0.7005 0 4.0000 - -0.6778 0 1.0000 - -0.6778 0 2.0000 - -0.6702 0 1.0000 - -0.6474 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.17501 - ------------------------------------------- - -best split stat, 0.641141, was < split_min_stat, 3.84 -sprouting new leaf with node 3 - - ---- view of leaf_data ---- - - 1.9800e+02 9.8507e-01 1.4925e-02 - 1.9250e+03 9.6105e-01 3.9316e-02 - 2.0550e+03 9.3641e-01 6.4957e-02 - 2.2880e+03 9.0620e-01 9.7215e-02 - 2.4190e+03 8.7135e-01 1.3568e-01 - - -growing node 4 - - ---- view of x_node ---- - - 1.0200e+02 1.1935e+02 2.0000e+00 - 1.1400e+02 9.7650e+01 2.0000e+00 - 9.1000e+01 7.5000e+01 1.0000e+00 - 9.9000e+01 1.3020e+02 2.0000e+00 - 1.2800e+02 1.1780e+02 1.0000e+00 - 2.4200e+02 8.6000e+01 1.0000e+00 - 3.2200e+02 1.1470e+02 2.0000e+00 - 9.1000e+01 1.7670e+02 1.0000e+00 - 1.3100e+02 1.5345e+02 1.0000e+00 - 1.7100e+02 1.9840e+02 1.0000e+00 - 1.0000e+02 1.2865e+02 2.0000e+00 - 6.3000e+01 1.7980e+02 1.0000e+00 - 1.1300e+02 9.1000e+01 1.0000e+00 - 2.4200e+02 1.1700e+02 1.0000e+00 - 1.4200e+02 1.3330e+02 1.0000e+00 - 1.7900e+02 8.2000e+01 1.0000e+00 - 1.1300e+02 2.1080e+02 2.0000e+00 - 1.0400e+02 5.2000e+01 1.0000e+00 - 1.2700e+02 1.5000e+02 1.0000e+00 - 2.1800e+02 1.4570e+02 1.0000e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 5.3300e+02 0 - 6.9400e+02 1.0000e+00 - 7.6900e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 8.9000e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 9.9900e+02 1.0000e+00 - 1.0300e+03 0 - 1.0670e+03 0 - 1.0770e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.2350e+03 1.0000e+00 - 1.2710e+03 0 - 1.2930e+03 0 - 1.2970e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.4879 -- next: -1.37919 -- N events: 0 -- N risk: 1 -current value: -1.37919 -- next: -1.21799 -- N events: 0 -- N risk: 2 -current value: -1.21799 -- next: -1.2001 -- N events: 1 -- N risk: 3 -current value: -1.2001 -- next: -1.11645 -- N events: 2 -- N risk: 4 -current value: -1.11645 -- next: -1.11071 -- N events: 2 -- N risk: 6 - -lower cutpoint: -1.11645 - - n_events, left node: 2 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 2.37619 ---- next value: 2.34193 ---- N events: 2 ---- N risk: 2 -current value: 2.34193 ---- next value: 2.27584 ---- N events: 4 ---- N risk: 4 -current value: 2.27584 ---- next value: 1.29422 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 1.29422 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.4263 - 0.1462 - 0.3785 - 0.7433 - 1.2942 - - -testing cutpoint: -0.426288 - - ---- view of lincomb & g_node & w_node ---- - - -1.4879 0 1.0000 - -1.3792 0 1.0000 - -1.2180 0 1.0000 - -1.2001 0 1.0000 - -1.1165 0 2.0000 - -1.1107 0 1.0000 - -0.9503 0 5.0000 - -0.8880 0 1.0000 - -0.8863 0 1.0000 - -0.8255 0 2.0000 - -0.8185 0 3.0000 - -0.8127 0 1.0000 - -0.8076 0 1.0000 - -0.7730 0 1.0000 - -0.7506 0 1.0000 - -0.7415 0 1.0000 - -0.7111 0 2.0000 - -0.5875 0 4.0000 - -0.5675 0 1.0000 - -0.5128 0 1.0000 - - -logrank stat for this cutpoint: 6.83914 - ------------------------------------------- - -testing cutpoint: 0.146212 - - ---- view of lincomb & g_node & w_node ---- - - -1.4879 0 1.0000 - -1.3792 0 1.0000 - -1.2180 0 1.0000 - -1.2001 0 1.0000 - -1.1165 0 2.0000 - -1.1107 0 1.0000 - -0.9503 0 5.0000 - -0.8880 0 1.0000 - -0.8863 0 1.0000 - -0.8255 0 2.0000 - -0.8185 0 3.0000 - -0.8127 0 1.0000 - -0.8076 0 1.0000 - -0.7730 0 1.0000 - -0.7506 0 1.0000 - -0.7415 0 1.0000 - -0.7111 0 2.0000 - -0.5875 0 4.0000 - -0.5675 0 1.0000 - -0.5128 0 1.0000 - - -logrank stat for this cutpoint: 7.13281 - ------------------------------------------- - -testing cutpoint: 0.378511 - - ---- view of lincomb & g_node & w_node ---- - - -1.4879 0 1.0000 - -1.3792 0 1.0000 - -1.2180 0 1.0000 - -1.2001 0 1.0000 - -1.1165 0 2.0000 - -1.1107 0 1.0000 - -0.9503 0 5.0000 - -0.8880 0 1.0000 - -0.8863 0 1.0000 - -0.8255 0 2.0000 - -0.8185 0 3.0000 - -0.8127 0 1.0000 - -0.8076 0 1.0000 - -0.7730 0 1.0000 - -0.7506 0 1.0000 - -0.7415 0 1.0000 - -0.7111 0 2.0000 - -0.5875 0 4.0000 - -0.5675 0 1.0000 - -0.5128 0 1.0000 - - -logrank stat for this cutpoint: 19.5715 - ------------------------------------------- - -testing cutpoint: 0.743345 - - ---- view of lincomb & g_node & w_node ---- - - -1.4879 0 1.0000 - -1.3792 0 1.0000 - -1.2180 0 1.0000 - -1.2001 0 1.0000 - -1.1165 0 2.0000 - -1.1107 0 1.0000 - -0.9503 0 5.0000 - -0.8880 0 1.0000 - -0.8863 0 1.0000 - -0.8255 0 2.0000 - -0.8185 0 3.0000 - -0.8127 0 1.0000 - -0.8076 0 1.0000 - -0.7730 0 1.0000 - -0.7506 0 1.0000 - -0.7415 0 1.0000 - -0.7111 0 2.0000 - -0.5875 0 4.0000 - -0.5675 0 1.0000 - -0.5128 0 1.0000 - - -logrank stat for this cutpoint: 58.1308 - ------------------------------------------- - -testing cutpoint: 1.29422 - - ---- view of lincomb & g_node & w_node ---- - - -1.4879 0 1.0000 - -1.3792 0 1.0000 - -1.2180 0 1.0000 - -1.2001 0 1.0000 - -1.1165 0 2.0000 - -1.1107 0 1.0000 - -0.9503 0 5.0000 - -0.8880 0 1.0000 - -0.8863 0 1.0000 - -0.8255 0 2.0000 - -0.8185 0 3.0000 - -0.8127 0 1.0000 - -0.8076 0 1.0000 - -0.7730 0 1.0000 - -0.7506 0 1.0000 - -0.7415 0 1.0000 - -0.7111 0 2.0000 - -0.5875 0 4.0000 - -0.5675 0 1.0000 - -0.5128 0 1.0000 - - -logrank stat for this cutpoint: 6.0287 - ------------------------------------------- - -node assignments: - 5 - 7 - 6 - 8 - 7 - 5 - 5 - 3 - 7 - 5 - 3 - 5 - 5 - 5 - 7 - 7 - 8 - 8 - 6 - 5 - 5 - 7 - 5 - 5 - 7 - 8 - 7 - 3 - 6 - 5 - 5 - 3 - 5 - 6 - 6 - 5 - 3 - 3 - 5 - 7 - 8 - 8 - 3 - 7 - 3 - 3 - 5 - 3 - 7 - 5 - 6 - 3 - 7 - 3 - 3 - 7 - 5 - 5 - 7 - 6 - 7 - 8 - 7 - 6 - 6 - 6 - 6 - 6 - 6 - 7 - 7 - -growing node 5 - - ---- view of x_node ---- - - 9.6100e+02 2.0000e+00 1.1400e+01 - 2.4600e+03 2.0000e+00 5.0000e+00 - 7.4600e+02 1.0000e+00 2.3000e+00 - 2.3100e+03 1.0000e+00 4.5000e+00 - 3.1960e+03 1.0000e+00 2.0000e+00 - 1.3760e+03 2.0000e+00 3.4000e+00 - 3.6810e+03 1.0000e+00 6.1000e+00 - 2.8700e+03 1.0000e+00 1.4000e+01 - 2.1150e+03 2.0000e+00 6.4000e+00 - 2.4680e+03 1.0000e+00 2.5500e+01 - 5.3960e+03 2.0000e+00 2.2500e+01 - 5.1600e+02 1.0000e+00 1.4000e+00 - 1.2040e+03 1.0000e+00 5.9000e+00 - 2.3740e+03 2.0000e+00 6.5000e+00 - 5.1840e+03 2.0000e+00 2.9000e+00 - 1.4060e+03 2.0000e+00 1.1000e+00 - 3.1500e+03 1.0000e+00 6.6000e+00 - 1.0700e+03 1.0000e+00 8.6000e+00 - 1.9190e+03 1.0000e+00 5.1000e+00 - 3.2280e+03 2.0000e+00 5.2000e+00 - - - ---- view of y_node ---- - - 1.3100e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.3300e+02 1.0000e+00 - 7.8800e+02 0 - 8.5300e+02 1.0000e+00 - 8.5900e+02 1.0000e+00 - 1.0120e+03 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.3020e+03 0 - 1.3290e+03 0 - 1.3560e+03 1.0000e+00 - 1.4440e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.01086 -- next: -0.984864 -- N events: 1 -- N risk: 1 -current value: -0.984864 -- next: -0.800968 -- N events: 2 -- N risk: 2 -current value: -0.800968 -- next: -0.799776 -- N events: 2 -- N risk: 3 -current value: -0.799776 -- next: -0.755734 -- N events: 2 -- N risk: 4 -current value: -0.755734 -- next: -0.745969 -- N events: 2 -- N risk: 5 - -lower cutpoint: -0.755734 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.66493 ---- next value: 2.59746 ---- N events: 1 ---- N risk: 1 -current value: 2.59746 ---- next value: 1.56096 ---- N events: 3 ---- N risk: 3 -current value: 1.56096 ---- next value: 1.14434 ---- N events: 4 ---- N risk: 4 -current value: 1.14434 ---- next value: 1.0327 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 1.0327 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.5197 - -0.4582 - -0.1808 - -0.1617 - 0.4098 - - -testing cutpoint: -0.519739 - - ---- view of lincomb & g_node & w_node ---- - - -1.0109 0 1.0000 - -0.9849 0 1.0000 - -0.8010 0 1.0000 - -0.7998 0 1.0000 - -0.7557 0 1.0000 - -0.7460 0 1.0000 - -0.7147 0 1.0000 - -0.6906 0 1.0000 - -0.6848 0 3.0000 - -0.6681 0 1.0000 - -0.6145 0 1.0000 - -0.5637 0 4.0000 - -0.5197 0 1.0000 - -0.4582 1.0000 1.0000 - -0.4442 1.0000 1.0000 - -0.4253 1.0000 1.0000 - -0.4118 1.0000 1.0000 - -0.3582 1.0000 2.0000 - -0.3197 1.0000 2.0000 - -0.2930 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.49936 - ------------------------------------------- - -testing cutpoint: -0.458205 - - ---- view of lincomb & g_node & w_node ---- - - -1.0109 0 1.0000 - -0.9849 0 1.0000 - -0.8010 0 1.0000 - -0.7998 0 1.0000 - -0.7557 0 1.0000 - -0.7460 0 1.0000 - -0.7147 0 1.0000 - -0.6906 0 1.0000 - -0.6848 0 3.0000 - -0.6681 0 1.0000 - -0.6145 0 1.0000 - -0.5637 0 4.0000 - -0.5197 0 1.0000 - -0.4582 0 1.0000 - -0.4442 1.0000 1.0000 - -0.4253 1.0000 1.0000 - -0.4118 1.0000 1.0000 - -0.3582 1.0000 2.0000 - -0.3197 1.0000 2.0000 - -0.2930 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.74995 - ------------------------------------------- - -testing cutpoint: -0.180789 - - ---- view of lincomb & g_node & w_node ---- - - -1.0109 0 1.0000 - -0.9849 0 1.0000 - -0.8010 0 1.0000 - -0.7998 0 1.0000 - -0.7557 0 1.0000 - -0.7460 0 1.0000 - -0.7147 0 1.0000 - -0.6906 0 1.0000 - -0.6848 0 3.0000 - -0.6681 0 1.0000 - -0.6145 0 1.0000 - -0.5637 0 4.0000 - -0.5197 0 1.0000 - -0.4582 0 1.0000 - -0.4442 0 1.0000 - -0.4253 0 1.0000 - -0.4118 0 1.0000 - -0.3582 0 2.0000 - -0.3197 0 2.0000 - -0.2930 0 1.0000 - - -logrank stat for this cutpoint: 8.52166 - ------------------------------------------- - -testing cutpoint: -0.161678 - - ---- view of lincomb & g_node & w_node ---- - - -1.0109 0 1.0000 - -0.9849 0 1.0000 - -0.8010 0 1.0000 - -0.7998 0 1.0000 - -0.7557 0 1.0000 - -0.7460 0 1.0000 - -0.7147 0 1.0000 - -0.6906 0 1.0000 - -0.6848 0 3.0000 - -0.6681 0 1.0000 - -0.6145 0 1.0000 - -0.5637 0 4.0000 - -0.5197 0 1.0000 - -0.4582 0 1.0000 - -0.4442 0 1.0000 - -0.4253 0 1.0000 - -0.4118 0 1.0000 - -0.3582 0 2.0000 - -0.3197 0 2.0000 - -0.2930 0 1.0000 - - -logrank stat for this cutpoint: 11.8701 - ------------------------------------------- - -testing cutpoint: 0.409834 - - ---- view of lincomb & g_node & w_node ---- - - -1.0109 0 1.0000 - -0.9849 0 1.0000 - -0.8010 0 1.0000 - -0.7998 0 1.0000 - -0.7557 0 1.0000 - -0.7460 0 1.0000 - -0.7147 0 1.0000 - -0.6906 0 1.0000 - -0.6848 0 3.0000 - -0.6681 0 1.0000 - -0.6145 0 1.0000 - -0.5637 0 4.0000 - -0.5197 0 1.0000 - -0.4582 0 1.0000 - -0.4442 0 1.0000 - -0.4253 0 1.0000 - -0.4118 0 1.0000 - -0.3582 0 2.0000 - -0.3197 0 2.0000 - -0.2930 0 1.0000 - - -logrank stat for this cutpoint: 14.9227 - ------------------------------------------- - -node assignments: - 8 - 8 - 7 - 9 - 7 - 10 - 7 - 10 - 6 - 3 - 9 - 10 - 7 - 7 - 7 - 3 - 7 - 9 - 7 - 6 - 3 - 9 - 9 - 9 - 8 - 8 - 7 - 6 - 6 - 6 - 6 - 8 - 8 - 9 - 9 - 6 - 9 - 6 - 6 - 10 - 6 - 6 - -growing node 6 - - ---- view of x_node ---- - - 4.0000e+00 8.0000e+01 2.0000e+00 - 4.0000e+00 1.9500e+02 1.0000e+00 - 4.0000e+00 3.9900e+02 2.0000e+00 - 4.0000e+00 1.0200e+02 1.0000e+00 - 4.0000e+00 2.1400e+02 2.0000e+00 - 4.0000e+00 7.1000e+01 2.0000e+00 - 4.0000e+00 1.2400e+02 2.0000e+00 - 3.0000e+00 1.3200e+02 2.0000e+00 - 4.0000e+00 2.1000e+02 1.0000e+00 - 4.0000e+00 1.4500e+02 1.0000e+00 - 4.0000e+00 1.4400e+02 2.0000e+00 - 4.0000e+00 2.6800e+02 1.0000e+00 - 4.0000e+00 1.2200e+02 2.0000e+00 - 4.0000e+00 3.2900e+02 2.0000e+00 - - - ---- view of y_node ---- - - 7.7000e+01 1.0000e+00 - 1.7900e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.2300e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.0400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.3200e+03 0 - 3.0900e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.13388 -- next: -0.82911 -- N events: 1 -- N risk: 1 -current value: -0.82911 -- next: -0.328415 -- N events: 2 -- N risk: 2 -current value: -0.328415 -- next: -0.291233 -- N events: 4 -- N risk: 4 -current value: -0.291233 -- next: -0.0387092 -- N events: 6 -- N risk: 6 - -lower cutpoint: -0.291233 - - n_events, left node: 6 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 0.431508 ---- next value: 0.294187 ---- N events: 2 ---- N risk: 2 -current value: 0.294187 ---- next value: 0.255002 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: 0.255002 - - n_events, right node: 6 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.2912 - -0.0387 - 0.0721 - 0.2443 - 0.2550 - - -testing cutpoint: -0.291233 - - ---- view of lincomb & g_node & w_node ---- - - -1.1339 0 1.0000 - -0.8291 0 1.0000 - -0.3284 0 2.0000 - -0.2912 0 2.0000 - -0.0387 1.0000 2.0000 - -0.0236 1.0000 2.0000 - 0.0266 1.0000 2.0000 - 0.0634 1.0000 1.0000 - 0.0721 1.0000 1.0000 - 0.1774 1.0000 2.0000 - 0.2443 1.0000 2.0000 - 0.2550 1.0000 1.0000 - 0.2942 1.0000 4.0000 - 0.4315 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.3705 - ------------------------------------------- - -testing cutpoint: -0.0387092 - - ---- view of lincomb & g_node & w_node ---- - - -1.1339 0 1.0000 - -0.8291 0 1.0000 - -0.3284 0 2.0000 - -0.2912 0 2.0000 - -0.0387 0 2.0000 - -0.0236 1.0000 2.0000 - 0.0266 1.0000 2.0000 - 0.0634 1.0000 1.0000 - 0.0721 1.0000 1.0000 - 0.1774 1.0000 2.0000 - 0.2443 1.0000 2.0000 - 0.2550 1.0000 1.0000 - 0.2942 1.0000 4.0000 - 0.4315 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.2543 - ------------------------------------------- - -testing cutpoint: 0.0721398 - - ---- view of lincomb & g_node & w_node ---- - - -1.1339 0 1.0000 - -0.8291 0 1.0000 - -0.3284 0 2.0000 - -0.2912 0 2.0000 - -0.0387 0 2.0000 - -0.0236 0 2.0000 - 0.0266 0 2.0000 - 0.0634 0 1.0000 - 0.0721 0 1.0000 - 0.1774 1.0000 2.0000 - 0.2443 1.0000 2.0000 - 0.2550 1.0000 1.0000 - 0.2942 1.0000 4.0000 - 0.4315 1.0000 2.0000 - - -logrank stat for this cutpoint: 3.52629 - ------------------------------------------- - -testing cutpoint: 0.244292 - - ---- view of lincomb & g_node & w_node ---- - - -1.1339 0 1.0000 - -0.8291 0 1.0000 - -0.3284 0 2.0000 - -0.2912 0 2.0000 - -0.0387 0 2.0000 - -0.0236 0 2.0000 - 0.0266 0 2.0000 - 0.0634 0 1.0000 - 0.0721 0 1.0000 - 0.1774 0 2.0000 - 0.2443 0 2.0000 - 0.2550 1.0000 1.0000 - 0.2942 1.0000 4.0000 - 0.4315 1.0000 2.0000 - - -logrank stat for this cutpoint: 7.87687 - ------------------------------------------- - -testing cutpoint: 0.255002 - - ---- view of lincomb & g_node & w_node ---- - - -1.1339 0 1.0000 - -0.8291 0 1.0000 - -0.3284 0 2.0000 - -0.2912 0 2.0000 - -0.0387 0 2.0000 - -0.0236 0 2.0000 - 0.0266 0 2.0000 - 0.0634 0 1.0000 - 0.0721 0 1.0000 - 0.1774 0 2.0000 - 0.2443 0 2.0000 - 0.2550 0 1.0000 - 0.2942 1.0000 4.0000 - 0.4315 1.0000 2.0000 - - -logrank stat for this cutpoint: 4.60264 - ------------------------------------------- - -node assignments: - 10 - 9 - 3 - 11 - 12 - 11 - 8 - 12 - 11 - 11 - 11 - 12 - 11 - 11 - -growing node 7 - - ---- view of x_node ---- - - 7.5000e+01 4.0000e+00 9.1000e+01 - 1.1780e+02 4.0000e+00 1.2800e+02 - 8.6000e+01 2.0000e+00 2.4200e+02 - 1.1470e+02 4.0000e+00 3.2200e+02 - 1.5345e+02 4.0000e+00 1.3100e+02 - 1.9840e+02 3.0000e+00 1.7100e+02 - 9.1000e+01 4.0000e+00 1.1300e+02 - 1.1700e+02 2.0000e+00 2.4200e+02 - 1.3330e+02 4.0000e+00 1.4200e+02 - 8.2000e+01 4.0000e+00 1.7900e+02 - 5.2000e+01 2.0000e+00 1.0400e+02 - 1.5000e+02 3.0000e+00 1.2700e+02 - 1.4570e+02 3.0000e+00 2.1800e+02 - 9.2000e+01 4.0000e+00 1.1400e+02 - 1.4200e+02 3.0000e+00 1.4000e+02 - 8.3000e+01 2.0000e+00 1.2000e+02 - 1.5035e+02 3.0000e+00 1.8800e+02 - 1.3020e+02 3.0000e+00 1.4000e+02 - 8.7000e+01 3.0000e+00 1.1600e+02 - 7.1000e+01 3.0000e+00 1.1700e+02 - - - ---- view of y_node ---- - - 5.3300e+02 0 - 7.6900e+02 1.0000e+00 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 9.0400e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.0300e+03 0 - 1.0670e+03 0 - 1.0770e+03 1.0000e+00 - 1.1910e+03 1.0000e+00 - 1.2710e+03 0 - 1.2930e+03 0 - 1.2970e+03 1.0000e+00 - 1.3490e+03 0 - 1.4120e+03 0 - 1.4570e+03 0 - 1.4870e+03 1.0000e+00 - 1.5360e+03 1.0000e+00 - 1.5580e+03 0 - 1.5680e+03 0 - - ------ finding lower bound for cut-points ----- -current value: -2.39152 -- next: -2.33992 -- N events: 0 -- N risk: 2 -current value: -2.33992 -- next: -1.66032 -- N events: 0 -- N risk: 4 -current value: -1.66032 -- next: -1.63017 -- N events: 0 -- N risk: 6 -current value: -1.63017 -- next: -1.44632 -- N events: 0 -- N risk: 7 -current value: -1.44632 -- next: -1.37009 -- N events: 0 -- N risk: 8 -current value: -1.37009 -- next: -1.34908 -- N events: 0 -- N risk: 9 -current value: -1.34908 -- next: -1.30979 -- N events: 0 -- N risk: 10 -current value: -1.30979 -- next: -1.19299 -- N events: 0 -- N risk: 12 -current value: -1.19299 -- next: -1.11223 -- N events: 1 -- N risk: 13 - -lower cutpoint: -1.19299 - - n_events, left node: 1 - - n_risk, left node: 13 - ------ finding upper bound for cut-points ----- -current value: 2.03314 ---- next value: 1.93758 ---- N events: 1 ---- N risk: 1 -current value: 1.93758 ---- next value: 1.82794 ---- N events: 2 ---- N risk: 2 -current value: 1.82794 ---- next value: 1.79833 ---- N events: 2 ---- N risk: 4 -current value: 1.79833 ---- next value: 1.74941 ---- N events: 3 ---- N risk: 5 - -upper cutpoint: 1.74941 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -1.1122 - -0.6730 - -0.2349 - -0.1736 - 0.6985 - - -testing cutpoint: -1.11223 - - ---- view of lincomb & g_node & w_node ---- - - -2.3915 0 2.0000 - -2.3399 0 2.0000 - -1.6603 0 2.0000 - -1.6302 0 1.0000 - -1.4463 0 1.0000 - -1.3701 0 1.0000 - -1.3491 0 1.0000 - -1.3098 0 2.0000 - -1.1930 0 1.0000 - -1.1122 0 2.0000 - -1.0381 1.0000 1.0000 - -0.9458 1.0000 1.0000 - -0.9282 1.0000 1.0000 - -0.8920 1.0000 1.0000 - -0.8846 1.0000 1.0000 - -0.8824 1.0000 1.0000 - -0.7846 1.0000 1.0000 - -0.7289 1.0000 1.0000 - -0.6988 1.0000 2.0000 - -0.6730 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.5068 - ------------------------------------------- - -testing cutpoint: -0.672969 - - ---- view of lincomb & g_node & w_node ---- - - -2.3915 0 2.0000 - -2.3399 0 2.0000 - -1.6603 0 2.0000 - -1.6302 0 1.0000 - -1.4463 0 1.0000 - -1.3701 0 1.0000 - -1.3491 0 1.0000 - -1.3098 0 2.0000 - -1.1930 0 1.0000 - -1.1122 0 2.0000 - -1.0381 0 1.0000 - -0.9458 0 1.0000 - -0.9282 0 1.0000 - -0.8920 0 1.0000 - -0.8846 0 1.0000 - -0.8824 0 1.0000 - -0.7846 0 1.0000 - -0.7289 0 1.0000 - -0.6988 0 2.0000 - -0.6730 0 1.0000 - - -logrank stat for this cutpoint: 3.88765 - ------------------------------------------- - -testing cutpoint: -0.234862 - - ---- view of lincomb & g_node & w_node ---- - - -2.3915 0 2.0000 - -2.3399 0 2.0000 - -1.6603 0 2.0000 - -1.6302 0 1.0000 - -1.4463 0 1.0000 - -1.3701 0 1.0000 - -1.3491 0 1.0000 - -1.3098 0 2.0000 - -1.1930 0 1.0000 - -1.1122 0 2.0000 - -1.0381 0 1.0000 - -0.9458 0 1.0000 - -0.9282 0 1.0000 - -0.8920 0 1.0000 - -0.8846 0 1.0000 - -0.8824 0 1.0000 - -0.7846 0 1.0000 - -0.7289 0 1.0000 - -0.6988 0 2.0000 - -0.6730 0 1.0000 - - -logrank stat for this cutpoint: 9.49079 - ------------------------------------------- - -testing cutpoint: -0.173562 - - ---- view of lincomb & g_node & w_node ---- - - -2.3915 0 2.0000 - -2.3399 0 2.0000 - -1.6603 0 2.0000 - -1.6302 0 1.0000 - -1.4463 0 1.0000 - -1.3701 0 1.0000 - -1.3491 0 1.0000 - -1.3098 0 2.0000 - -1.1930 0 1.0000 - -1.1122 0 2.0000 - -1.0381 0 1.0000 - -0.9458 0 1.0000 - -0.9282 0 1.0000 - -0.8920 0 1.0000 - -0.8846 0 1.0000 - -0.8824 0 1.0000 - -0.7846 0 1.0000 - -0.7289 0 1.0000 - -0.6988 0 2.0000 - -0.6730 0 1.0000 - - -logrank stat for this cutpoint: 12.2095 - ------------------------------------------- - -testing cutpoint: 0.698541 - - ---- view of lincomb & g_node & w_node ---- - - -2.3915 0 2.0000 - -2.3399 0 2.0000 - -1.6603 0 2.0000 - -1.6302 0 1.0000 - -1.4463 0 1.0000 - -1.3701 0 1.0000 - -1.3491 0 1.0000 - -1.3098 0 2.0000 - -1.1930 0 1.0000 - -1.1122 0 2.0000 - -1.0381 0 1.0000 - -0.9458 0 1.0000 - -0.9282 0 1.0000 - -0.8920 0 1.0000 - -0.8846 0 1.0000 - -0.8824 0 1.0000 - -0.7846 0 1.0000 - -0.7289 0 1.0000 - -0.6988 0 2.0000 - -0.6730 0 1.0000 - - -logrank stat for this cutpoint: 35.9367 - ------------------------------------------- - -node assignments: - 10 - 11 - 14 - 13 - 9 - 13 - 9 - 9 - 11 - 9 - 10 - 3 - 9 - 14 - 10 - 14 - 13 - 10 - 13 - 8 - 9 - 8 - 9 - 13 - 11 - 3 - 3 - 3 - 13 - 10 - 3 - 12 - 9 - 9 - 9 - 12 - 3 - 9 - 14 - 3 - 11 - 8 - 9 - 8 - 14 - 11 - 14 - 11 - 8 - 11 - 11 - 9 - 12 - 8 - 13 - 14 - 8 - 3 - 11 - 11 - 9 - -growing node 8 - - ---- view of x_node ---- - - 4.0000 2.5000 3.0000 - 3.0000 0.6000 1.0000 - 4.0000 0.8000 1.0000 - 4.0000 7.2000 1.0000 - 4.0000 6.7000 1.0000 - 2.0000 2.3000 1.0000 - 2.0000 3.8000 1.0000 - 3.0000 3.9000 1.0000 - 3.0000 1.9000 1.0000 - 3.0000 1.1000 1.0000 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 5.1500e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 8.9000e+02 1.0000e+00 - 9.8000e+02 1.0000e+00 - 9.9900e+02 1.0000e+00 - 1.2350e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.8100e+03 0 - 2.7690e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.26281 -- next: -1.24839 -- N events: 3 -- N risk: 3 -current value: -1.24839 -- next: -1.19662 -- N events: 8 -- N risk: 8 - -lower cutpoint: -1.24839 - - n_events, left node: 8 - - n_risk, left node: 8 - ------ finding upper bound for cut-points ----- -current value: 19 ---- next value: -0.17841 ---- N events: 1 ---- N risk: 1 -current value: -0.17841 ---- next value: -0.244605 ---- N events: 2 ---- N risk: 2 -current value: -0.244605 ---- next value: -0.825929 ---- N events: 4 ---- N risk: 4 -current value: -0.825929 ---- next value: -1.0257 ---- N events: 6 ---- N risk: 6 - -upper cutpoint: -1.0257 - - n_events, right node: 6 - - n_risk, right node: 6 - -testing cutpoint: -1.24839 - - ---- view of lincomb & g_node & w_node ---- - - -1.2628 0 3.0000 - -1.2484 0 5.0000 - -1.1966 1.0000 2.0000 - -1.0907 1.0000 2.0000 - -1.0498 1.0000 1.0000 - -1.0257 1.0000 1.0000 - -0.8259 1.0000 2.0000 - -0.2446 1.0000 2.0000 - -0.1784 1.0000 1.0000 - 19.0000 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.3164 - ------------------------------------------- - -testing cutpoint: -1.19662 - - ---- view of lincomb & g_node & w_node ---- - - -1.2628 0 3.0000 - -1.2484 0 5.0000 - -1.1966 0 2.0000 - -1.0907 1.0000 2.0000 - -1.0498 1.0000 1.0000 - -1.0257 1.0000 1.0000 - -0.8259 1.0000 2.0000 - -0.2446 1.0000 2.0000 - -0.1784 1.0000 1.0000 - 19.0000 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.00682081 - ------------------------------------------- - -testing cutpoint: -1.09071 - - ---- view of lincomb & g_node & w_node ---- - - -1.2628 0 3.0000 - -1.2484 0 5.0000 - -1.1966 0 2.0000 - -1.0907 0 2.0000 - -1.0498 1.0000 1.0000 - -1.0257 1.0000 1.0000 - -0.8259 1.0000 2.0000 - -0.2446 1.0000 2.0000 - -0.1784 1.0000 1.0000 - 19.0000 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.27401 - ------------------------------------------- - -testing cutpoint: -1.0498 - - ---- view of lincomb & g_node & w_node ---- - - -1.2628 0 3.0000 - -1.2484 0 5.0000 - -1.1966 0 2.0000 - -1.0907 0 2.0000 - -1.0498 0 1.0000 - -1.0257 1.0000 1.0000 - -0.8259 1.0000 2.0000 - -0.2446 1.0000 2.0000 - -0.1784 1.0000 1.0000 - 19.0000 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.63571 - ------------------------------------------- - -testing cutpoint: -1.0257 - - ---- view of lincomb & g_node & w_node ---- - - -1.2628 0 3.0000 - -1.2484 0 5.0000 - -1.1966 0 2.0000 - -1.0907 0 2.0000 - -1.0498 0 1.0000 - -1.0257 0 1.0000 - -0.8259 1.0000 2.0000 - -0.2446 1.0000 2.0000 - -0.1784 1.0000 1.0000 - 19.0000 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.43119 - ------------------------------------------- - -best split stat, 3.3164, was < split_min_stat, 3.84 -sprouting new leaf with node 8 - - ---- view of leaf_data ---- - - 1.1000e+02 9.5000e-01 5.0000e-02 - 5.1500e+02 8.0000e-01 2.0789e-01 - 6.9400e+02 7.5000e-01 2.7039e-01 - 8.9000e+02 7.0000e-01 3.3706e-01 - 9.8000e+02 6.0000e-01 4.7992e-01 - - -growing node 9 - -Column 3 was sampled but unique values of column 3 are 1.0000 - - ---- view of x_node ---- - - 2.0000e+00 2.4645e+02 2.0000e+00 - 1.0000e+00 1.7825e+02 2.0000e+00 - 1.0000e+00 1.6740e+02 2.0000e+00 - 1.0000e+00 7.7500e+01 2.0000e+00 - 2.0000e+00 1.2090e+02 1.0000e+00 - 1.0000e+00 1.5810e+02 1.0000e+00 - 2.0000e+00 1.3600e+02 2.0000e+00 - 1.0000e+00 9.6100e+01 1.0000e+00 - 1.0000e+00 2.0305e+02 2.0000e+00 - 2.0000e+00 2.8800e+02 2.0000e+00 - 2.0000e+00 1.9000e+02 2.0000e+00 - 1.0000e+00 1.9300e+02 1.0000e+00 - 1.0000e+00 1.2700e+02 2.0000e+00 - 1.0000e+00 1.2245e+02 2.0000e+00 - 2.0000e+00 1.6585e+02 2.0000e+00 - 2.0000e+00 6.9750e+01 1.0000e+00 - 2.0000e+00 8.2150e+01 1.0000e+00 - 1.0000e+00 1.1005e+02 1.0000e+00 - 1.0000e+00 9.4550e+01 2.0000e+00 - 2.0000e+00 1.2642e+02 1.0000e+00 - - - ---- view of y_node ---- - - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.8800e+02 0 - 1.0120e+03 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.3020e+03 0 - 1.3290e+03 0 - 1.3560e+03 1.0000e+00 - 1.4440e+03 1.0000e+00 - 1.5760e+03 1.0000e+00 - 1.6570e+03 1.0000e+00 - 1.7410e+03 1.0000e+00 - 2.1060e+03 0 - 2.2240e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.702165 -- next: -0.641812 -- N events: 0 -- N risk: 1 -current value: -0.641812 -- next: -0.636583 -- N events: 0 -- N risk: 2 -current value: -0.636583 -- next: -0.607325 -- N events: 1 -- N risk: 3 -current value: -0.607325 -- next: -0.568853 -- N events: 2 -- N risk: 4 -current value: -0.568853 -- next: -0.512484 -- N events: 2 -- N risk: 5 - -lower cutpoint: -0.568853 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 1.15825 ---- next value: 0.927128 ---- N events: 0 ---- N risk: 1 -current value: 0.927128 ---- next value: 0.651227 ---- N events: 2 ---- N risk: 3 -current value: 0.651227 ---- next value: 0.613124 ---- N events: 3 ---- N risk: 4 -current value: 0.613124 ---- next value: 0.47879 ---- N events: 3 ---- N risk: 6 - -upper cutpoint: 0.47879 - - n_events, right node: 3 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - -0.5125 - -0.2551 - -0.1073 - 0.3324 - 0.4788 - - -testing cutpoint: -0.512484 - - ---- view of lincomb & g_node & w_node ---- - - -0.7022 0 1.0000 - -0.6418 0 1.0000 - -0.6366 0 1.0000 - -0.6073 0 1.0000 - -0.5689 0 1.0000 - -0.5125 0 1.0000 - -0.4309 1.0000 3.0000 - -0.4263 1.0000 1.0000 - -0.3659 1.0000 1.0000 - -0.3573 1.0000 1.0000 - -0.3533 1.0000 1.0000 - -0.3320 1.0000 2.0000 - -0.3188 1.0000 1.0000 - -0.3102 1.0000 1.0000 - -0.2551 1.0000 1.0000 - -0.2048 1.0000 2.0000 - -0.1205 1.0000 1.0000 - -0.1073 1.0000 1.0000 - -0.0860 1.0000 1.0000 - -0.0469 1.0000 4.0000 - - -logrank stat for this cutpoint: 5.15002 - ------------------------------------------- - -testing cutpoint: -0.255072 - - ---- view of lincomb & g_node & w_node ---- - - -0.7022 0 1.0000 - -0.6418 0 1.0000 - -0.6366 0 1.0000 - -0.6073 0 1.0000 - -0.5689 0 1.0000 - -0.5125 0 1.0000 - -0.4309 0 3.0000 - -0.4263 0 1.0000 - -0.3659 0 1.0000 - -0.3573 0 1.0000 - -0.3533 0 1.0000 - -0.3320 0 2.0000 - -0.3188 0 1.0000 - -0.3102 0 1.0000 - -0.2551 0 1.0000 - -0.2048 1.0000 2.0000 - -0.1205 1.0000 1.0000 - -0.1073 1.0000 1.0000 - -0.0860 1.0000 1.0000 - -0.0469 1.0000 4.0000 - - -logrank stat for this cutpoint: 6.07408 - ------------------------------------------- - -testing cutpoint: -0.107255 - - ---- view of lincomb & g_node & w_node ---- - - -0.7022 0 1.0000 - -0.6418 0 1.0000 - -0.6366 0 1.0000 - -0.6073 0 1.0000 - -0.5689 0 1.0000 - -0.5125 0 1.0000 - -0.4309 0 3.0000 - -0.4263 0 1.0000 - -0.3659 0 1.0000 - -0.3573 0 1.0000 - -0.3533 0 1.0000 - -0.3320 0 2.0000 - -0.3188 0 1.0000 - -0.3102 0 1.0000 - -0.2551 0 1.0000 - -0.2048 0 2.0000 - -0.1205 0 1.0000 - -0.1073 0 1.0000 - -0.0860 1.0000 1.0000 - -0.0469 1.0000 4.0000 - - -logrank stat for this cutpoint: 4.22853 - ------------------------------------------- - -testing cutpoint: 0.332419 - - ---- view of lincomb & g_node & w_node ---- - - -0.7022 0 1.0000 - -0.6418 0 1.0000 - -0.6366 0 1.0000 - -0.6073 0 1.0000 - -0.5689 0 1.0000 - -0.5125 0 1.0000 - -0.4309 0 3.0000 - -0.4263 0 1.0000 - -0.3659 0 1.0000 - -0.3573 0 1.0000 - -0.3533 0 1.0000 - -0.3320 0 2.0000 - -0.3188 0 1.0000 - -0.3102 0 1.0000 - -0.2551 0 1.0000 - -0.2048 0 2.0000 - -0.1205 0 1.0000 - -0.1073 0 1.0000 - -0.0860 0 1.0000 - -0.0469 0 4.0000 - - -logrank stat for this cutpoint: 1.73915 - ------------------------------------------- - -testing cutpoint: 0.47879 - - ---- view of lincomb & g_node & w_node ---- - - -0.7022 0 1.0000 - -0.6418 0 1.0000 - -0.6366 0 1.0000 - -0.6073 0 1.0000 - -0.5689 0 1.0000 - -0.5125 0 1.0000 - -0.4309 0 3.0000 - -0.4263 0 1.0000 - -0.3659 0 1.0000 - -0.3573 0 1.0000 - -0.3533 0 1.0000 - -0.3320 0 2.0000 - -0.3188 0 1.0000 - -0.3102 0 1.0000 - -0.2551 0 1.0000 - -0.2048 0 2.0000 - -0.1205 0 1.0000 - -0.1073 0 1.0000 - -0.0860 0 1.0000 - -0.0469 0 4.0000 - - -logrank stat for this cutpoint: 0.218549 - ------------------------------------------- - -node assignments: - 3 - 13 - 16 - 11 - 14 - 16 - 11 - 14 - 8 - 16 - 16 - 11 - 10 - 10 - 10 - 16 - 14 - 10 - 11 - 8 - 8 - 13 - 11 - 12 - 11 - 14 - 16 - 8 - 3 - 12 - 15 - 8 - 11 - 3 - 12 - 11 - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 1.3100e+02 8.0000e-01 2.0000e-01 - 7.3300e+02 6.0000e-01 4.5000e-01 - 8.5300e+02 5.0000e-01 6.1667e-01 - 8.5900e+02 3.0000e-01 1.0167e+00 - 1.0830e+03 1.0000e-01 1.6833e+00 - - -growing node 11 - -sprouting new leaf with node 11 - - ---- view of leaf_data ---- - - 1.7900e+02 8.8889e-01 1.1111e-01 - 2.1600e+02 8.3333e-01 1.7361e-01 - 2.6400e+02 7.2222e-01 3.0694e-01 - 3.2100e+02 6.6667e-01 3.8387e-01 - 3.2600e+02 5.5556e-01 5.5053e-01 - - -growing node 12 - -sprouting new leaf with node 12 - - ---- view of leaf_data ---- - - 7.7000e+01 8.5714e-01 1.4286e-01 - 2.2300e+02 5.7143e-01 4.7619e-01 - 3.0400e+02 0 1.4762e+00 - - -growing node 13 - -sprouting new leaf with node 13 - - ---- view of leaf_data ---- - - 7.9900e+02 9.8649e-01 1.3514e-02 - 1.1910e+03 9.7259e-01 2.7598e-02 - 1.5360e+03 9.5763e-01 4.2983e-02 - 1.6820e+03 9.2080e-01 8.1444e-02 - 1.7860e+03 9.0121e-01 1.0272e-01 - - -growing node 14 - -Column 3 was sampled but unique values of column 3 are 1.0000 - - ---- view of x_node ---- - - 1.0500e+01 2.7400e+02 1.5330e+03 - 9.8000e+00 3.1600e+02 1.1190e+03 - 1.0000e+01 3.9600e+02 1.4400e+03 - 1.0000e+01 5.5600e+02 3.8960e+03 - 1.1300e+01 1.9600e+02 2.4960e+03 - 1.0800e+01 3.4200e+02 1.6530e+03 - 1.0500e+01 4.2600e+02 2.4240e+03 - 1.1000e+01 3.7300e+02 1.0090e+03 - 1.0200e+01 3.9200e+02 1.3950e+03 - 1.0600e+01 4.3600e+02 2.1760e+03 - 1.0000e+01 3.1600e+02 1.1620e+03 - 1.0100e+01 3.3100e+02 5.7700e+02 - 1.0000e+01 2.9000e+02 2.1200e+03 - 9.9000e+00 4.5800e+02 1.5880e+03 - 1.0400e+01 4.0000e+02 1.6890e+03 - 1.1000e+01 4.2700e+02 1.9090e+03 - - - ---- view of y_node ---- - - 7.6900e+02 1.0000e+00 - 8.3700e+02 0 - 9.0400e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.0770e+03 1.0000e+00 - 1.2930e+03 0 - 1.2970e+03 1.0000e+00 - 1.4870e+03 1.0000e+00 - 1.5920e+03 0 - 1.6900e+03 1.0000e+00 - 2.4680e+03 0 - 2.7960e+03 1.0000e+00 - 3.0590e+03 0 - 3.3360e+03 0 - 3.5810e+03 0 - 4.1910e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -1.05465 -- next: -0.831449 -- N events: 0 -- N risk: 1 -current value: -0.831449 -- next: -0.698635 -- N events: 1 -- N risk: 2 -current value: -0.698635 -- next: -0.601171 -- N events: 2 -- N risk: 3 -current value: -0.601171 -- next: -0.542179 -- N events: 2 -- N risk: 5 - -lower cutpoint: -0.601171 - - n_events, left node: 2 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- -current value: 2.33862 ---- next value: 0.522989 ---- N events: 1 ---- N risk: 1 -current value: 0.522989 ---- next value: 0.438272 ---- N events: 4 ---- N risk: 4 -current value: 0.438272 ---- next value: 0.431745 ---- N events: 4 ---- N risk: 5 - -upper cutpoint: 0.431745 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.5422 - -0.2186 - 0.2257 - 0.2641 - 0.4317 - - -testing cutpoint: -0.542179 - - ---- view of lincomb & g_node & w_node ---- - - -1.0547 0 1.0000 - -0.8314 0 1.0000 - -0.6986 0 1.0000 - -0.6012 0 2.0000 - -0.5422 0 2.0000 - -0.4067 1.0000 1.0000 - -0.2186 1.0000 1.0000 - -0.0441 1.0000 3.0000 - 0.0653 1.0000 1.0000 - 0.0707 1.0000 1.0000 - 0.2257 1.0000 2.0000 - 0.2641 1.0000 1.0000 - 0.4317 1.0000 1.0000 - 0.4383 1.0000 1.0000 - 0.5230 1.0000 3.0000 - 2.3386 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.48799 - ------------------------------------------- - -testing cutpoint: -0.218621 - - ---- view of lincomb & g_node & w_node ---- - - -1.0547 0 1.0000 - -0.8314 0 1.0000 - -0.6986 0 1.0000 - -0.6012 0 2.0000 - -0.5422 0 2.0000 - -0.4067 0 1.0000 - -0.2186 0 1.0000 - -0.0441 1.0000 3.0000 - 0.0653 1.0000 1.0000 - 0.0707 1.0000 1.0000 - 0.2257 1.0000 2.0000 - 0.2641 1.0000 1.0000 - 0.4317 1.0000 1.0000 - 0.4383 1.0000 1.0000 - 0.5230 1.0000 3.0000 - 2.3386 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.02892 - ------------------------------------------- - -testing cutpoint: 0.225748 - - ---- view of lincomb & g_node & w_node ---- - - -1.0547 0 1.0000 - -0.8314 0 1.0000 - -0.6986 0 1.0000 - -0.6012 0 2.0000 - -0.5422 0 2.0000 - -0.4067 0 1.0000 - -0.2186 0 1.0000 - -0.0441 0 3.0000 - 0.0653 0 1.0000 - 0.0707 0 1.0000 - 0.2257 0 2.0000 - 0.2641 1.0000 1.0000 - 0.4317 1.0000 1.0000 - 0.4383 1.0000 1.0000 - 0.5230 1.0000 3.0000 - 2.3386 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.387311 - ------------------------------------------- - -testing cutpoint: 0.264133 - - ---- view of lincomb & g_node & w_node ---- - - -1.0547 0 1.0000 - -0.8314 0 1.0000 - -0.6986 0 1.0000 - -0.6012 0 2.0000 - -0.5422 0 2.0000 - -0.4067 0 1.0000 - -0.2186 0 1.0000 - -0.0441 0 3.0000 - 0.0653 0 1.0000 - 0.0707 0 1.0000 - 0.2257 0 2.0000 - 0.2641 0 1.0000 - 0.4317 1.0000 1.0000 - 0.4383 1.0000 1.0000 - 0.5230 1.0000 3.0000 - 2.3386 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.44822 - ------------------------------------------- - -testing cutpoint: 0.431745 - - ---- view of lincomb & g_node & w_node ---- - - -1.0547 0 1.0000 - -0.8314 0 1.0000 - -0.6986 0 1.0000 - -0.6012 0 2.0000 - -0.5422 0 2.0000 - -0.4067 0 1.0000 - -0.2186 0 1.0000 - -0.0441 0 3.0000 - 0.0653 0 1.0000 - 0.0707 0 1.0000 - 0.2257 0 2.0000 - 0.2641 0 1.0000 - 0.4317 0 1.0000 - 0.4383 1.0000 1.0000 - 0.5230 1.0000 3.0000 - 2.3386 1.0000 1.0000 - - -logrank stat for this cutpoint: 11.553 - ------------------------------------------- - -node assignments: - 16 - 11 - 10 - 8 - 12 - 11 - 8 - 11 - 11 - 11 - 12 - 13 - 11 - 11 - 12 - 3 - -growing node 15 - -sprouting new leaf with node 15 - - ---- view of leaf_data ---- - - 6.1100e+02 9.4444e-01 5.5556e-02 - 1.0120e+03 7.7778e-01 2.3203e-01 - 1.3560e+03 7.1296e-01 3.1536e-01 - 1.7410e+03 6.4815e-01 4.0627e-01 - 2.8470e+03 5.6713e-01 5.3127e-01 - - -growing node 16 - - ---- view of x_node ---- - - 2.0000e+00 3.2500e+02 1.1000e+02 - 1.0000e+00 1.7800e+02 1.4500e+02 - 1.0000e+00 3.7200e+02 2.2700e+02 - 2.0000e+00 2.7100e+02 4.6400e+02 - 1.0000e+00 1.7120e+03 8.9000e+01 - 2.0000e+00 5.7600e+02 1.8600e+02 - 1.0000e+00 1.2760e+03 1.4100e+02 - 2.0000e+00 4.2600e+02 7.3000e+01 - 2.0000e+00 4.3200e+02 4.5000e+01 - 1.0000e+00 1.0000e+03 8.8000e+01 - 2.0000e+00 1.1280e+03 5.3000e+01 - 2.0000e+00 2.2500e+02 5.1000e+01 - 2.0000e+00 1.6000e+03 7.5000e+01 - 2.0000e+00 3.2900e+02 4.9000e+01 - 1.0000e+00 4.8200e+02 1.6100e+02 - 1.0000e+00 3.4700e+02 7.6000e+01 - 1.0000e+00 6.1400e+02 1.5800e+02 - 1.0000e+00 6.6000e+02 9.4000e+01 - 2.0000e+00 2.6700e+02 8.9000e+01 - 2.0000e+00 2.5900e+02 4.6000e+01 - - - ---- view of y_node ---- - - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.8800e+02 0 - 1.0800e+03 1.0000e+00 - 1.2160e+03 0 - 1.3010e+03 0 - 1.3020e+03 0 - 1.4440e+03 1.0000e+00 - 1.5760e+03 1.0000e+00 - 1.6570e+03 1.0000e+00 - 2.2240e+03 1.0000e+00 - 2.2560e+03 1.0000e+00 - 2.3300e+03 0 - 2.3860e+03 1.0000e+00 - 2.6890e+03 1.0000e+00 - 3.4450e+03 1.0000e+00 - 3.7620e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.86439 -- next: -0.574959 -- N events: 0 -- N risk: 1 -current value: -0.574959 -- next: -0.559851 -- N events: 1 -- N risk: 2 -current value: -0.559851 -- next: -0.535404 -- N events: 2 -- N risk: 3 -current value: -0.535404 -- next: -0.520978 -- N events: 3 -- N risk: 4 -current value: -0.520978 -- next: -0.517561 -- N events: 3 -- N risk: 6 - -lower cutpoint: -0.520978 - - n_events, left node: 3 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 3.79481 ---- next value: 1.00515 ---- N events: 1 ---- N risk: 1 -current value: 1.00515 ---- next value: 0.72186 ---- N events: 1 ---- N risk: 3 -current value: 0.72186 ---- next value: 0.227275 ---- N events: 2 ---- N risk: 4 -current value: 0.227275 ---- next value: 0.160378 ---- N events: 5 ---- N risk: 7 - -upper cutpoint: 0.160378 - - n_events, right node: 5 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - -0.4865 - -0.1782 - -0.1229 - 0.0736 - 0.1180 - - -testing cutpoint: -0.486536 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 1.0000 - -0.5750 0 1.0000 - -0.5599 0 1.0000 - -0.5354 0 1.0000 - -0.5210 0 2.0000 - -0.5176 0 1.0000 - -0.4959 0 3.0000 - -0.4865 0 1.0000 - -0.2308 1.0000 1.0000 - -0.2203 1.0000 1.0000 - -0.2067 1.0000 4.0000 - -0.1782 1.0000 3.0000 - -0.1229 1.0000 1.0000 - 0.0736 1.0000 2.0000 - 0.0914 1.0000 1.0000 - 0.1180 1.0000 2.0000 - 0.1604 1.0000 2.0000 - 0.2273 1.0000 3.0000 - 0.7219 1.0000 1.0000 - 1.0052 1.0000 2.0000 - - -logrank stat for this cutpoint: 10.0629 - ------------------------------------------- - -testing cutpoint: -0.178247 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 1.0000 - -0.5750 0 1.0000 - -0.5599 0 1.0000 - -0.5354 0 1.0000 - -0.5210 0 2.0000 - -0.5176 0 1.0000 - -0.4959 0 3.0000 - -0.4865 0 1.0000 - -0.2308 0 1.0000 - -0.2203 0 1.0000 - -0.2067 0 4.0000 - -0.1782 0 3.0000 - -0.1229 1.0000 1.0000 - 0.0736 1.0000 2.0000 - 0.0914 1.0000 1.0000 - 0.1180 1.0000 2.0000 - 0.1604 1.0000 2.0000 - 0.2273 1.0000 3.0000 - 0.7219 1.0000 1.0000 - 1.0052 1.0000 2.0000 - - -logrank stat for this cutpoint: 1.66488 - ------------------------------------------- - -testing cutpoint: -0.122917 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 1.0000 - -0.5750 0 1.0000 - -0.5599 0 1.0000 - -0.5354 0 1.0000 - -0.5210 0 2.0000 - -0.5176 0 1.0000 - -0.4959 0 3.0000 - -0.4865 0 1.0000 - -0.2308 0 1.0000 - -0.2203 0 1.0000 - -0.2067 0 4.0000 - -0.1782 0 3.0000 - -0.1229 0 1.0000 - 0.0736 1.0000 2.0000 - 0.0914 1.0000 1.0000 - 0.1180 1.0000 2.0000 - 0.1604 1.0000 2.0000 - 0.2273 1.0000 3.0000 - 0.7219 1.0000 1.0000 - 1.0052 1.0000 2.0000 - - -logrank stat for this cutpoint: 3.40933 - ------------------------------------------- - -testing cutpoint: 0.0735647 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 1.0000 - -0.5750 0 1.0000 - -0.5599 0 1.0000 - -0.5354 0 1.0000 - -0.5210 0 2.0000 - -0.5176 0 1.0000 - -0.4959 0 3.0000 - -0.4865 0 1.0000 - -0.2308 0 1.0000 - -0.2203 0 1.0000 - -0.2067 0 4.0000 - -0.1782 0 3.0000 - -0.1229 0 1.0000 - 0.0736 0 2.0000 - 0.0914 1.0000 1.0000 - 0.1180 1.0000 2.0000 - 0.1604 1.0000 2.0000 - 0.2273 1.0000 3.0000 - 0.7219 1.0000 1.0000 - 1.0052 1.0000 2.0000 - - -logrank stat for this cutpoint: 5.03994 - ------------------------------------------- - -testing cutpoint: 0.117991 - - ---- view of lincomb & g_node & w_node ---- - - -0.8644 0 1.0000 - -0.5750 0 1.0000 - -0.5599 0 1.0000 - -0.5354 0 1.0000 - -0.5210 0 2.0000 - -0.5176 0 1.0000 - -0.4959 0 3.0000 - -0.4865 0 1.0000 - -0.2308 0 1.0000 - -0.2203 0 1.0000 - -0.2067 0 4.0000 - -0.1782 0 3.0000 - -0.1229 0 1.0000 - 0.0736 0 2.0000 - 0.0914 0 1.0000 - 0.1180 0 2.0000 - 0.1604 1.0000 2.0000 - 0.2273 1.0000 3.0000 - 0.7219 1.0000 1.0000 - 1.0052 1.0000 2.0000 - - -logrank stat for this cutpoint: 2.82046 - ------------------------------------------- - -node assignments: - 13 - 15 - 20 - 11 - 12 - 20 - 11 - 20 - 11 - 3 - 8 - 11 - 20 - 8 - 11 - 12 - 12 - 11 - 10 - 11 - 11 - -growing node 17 - -sprouting new leaf with node 17 - - ---- view of leaf_data ---- - - 9.0400e+02 9.3750e-01 6.2500e-02 - 9.4300e+02 8.7500e-01 1.2917e-01 - 1.2970e+03 7.5000e-01 2.7202e-01 - 1.4870e+03 5.6250e-01 5.2202e-01 - 1.6900e+03 4.8214e-01 6.6488e-01 - - -growing node 18 - -sprouting new leaf with node 18 - - ---- view of leaf_data ---- - - 7.6900e+02 4.0000e-01 6.0000e-01 - 1.0770e+03 2.0000e-01 1.1000e+00 - - -growing node 19 - -sprouting new leaf with node 19 - - ---- view of leaf_data ---- - - 1.5760e+03 8.3333e-01 1.6667e-01 - 2.2240e+03 6.6667e-01 3.6667e-01 - 2.6890e+03 4.4444e-01 7.0000e-01 - 3.7620e+03 2.2222e-01 1.2000e+00 - 3.8390e+03 0 2.2000e+00 - - -growing node 20 - - ---- view of x_node ---- - - 1.1000e+02 2.4645e+02 3.2500e+02 - 1.4500e+02 1.7825e+02 1.7800e+02 - 2.2700e+02 1.6740e+02 3.7200e+02 - 4.6400e+02 1.2090e+02 2.7100e+02 - 8.9000e+01 1.5810e+02 1.7120e+03 - 1.8600e+02 1.3600e+02 5.7600e+02 - 1.4100e+02 2.0305e+02 1.2760e+03 - 7.3000e+01 2.8800e+02 4.2600e+02 - 5.3000e+01 1.6585e+02 1.1280e+03 - 7.5000e+01 8.2150e+01 1.6000e+03 - 1.6100e+02 1.3674e+02 4.8200e+02 - 1.5800e+02 2.0640e+02 6.1400e+02 - 8.9000e+01 1.9685e+02 2.6700e+02 - - - ---- view of y_node ---- - - 4.6000e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.7300e+02 1.0000e+00 - 7.3200e+02 0 - 7.8800e+02 0 - 1.0800e+03 1.0000e+00 - 1.2160e+03 0 - 1.4440e+03 1.0000e+00 - 1.6570e+03 1.0000e+00 - 2.2560e+03 1.0000e+00 - 2.3860e+03 1.0000e+00 - 3.4450e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- -current value: -0.503301 -- next: -0.314249 -- N events: 3 -- N risk: 3 -current value: -0.314249 -- next: -0.204435 -- N events: 6 -- N risk: 6 - -lower cutpoint: -0.314249 - - n_events, left node: 6 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- -current value: 1.22552 ---- next value: 0.340417 ---- N events: 1 ---- N risk: 1 -current value: 0.340417 ---- next value: 0.330231 ---- N events: 2 ---- N risk: 2 -current value: 0.330231 ---- next value: 0.262044 ---- N events: 4 ---- N risk: 4 -current value: 0.262044 ---- next value: 0.209042 ---- N events: 5 ---- N risk: 5 - -upper cutpoint: 0.209042 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - -0.2044 - -0.1010 - -0.0324 - 0.1563 - 0.2090 - - -testing cutpoint: -0.204435 - - ---- view of lincomb & g_node & w_node ---- - - -0.5033 0 3.0000 - -0.3142 0 3.0000 - -0.2044 0 1.0000 - -0.1010 1.0000 2.0000 - -0.0493 1.0000 4.0000 - -0.0324 1.0000 1.0000 - 0.0393 1.0000 2.0000 - 0.1563 1.0000 2.0000 - 0.2090 1.0000 1.0000 - 0.2620 1.0000 1.0000 - 0.3302 1.0000 2.0000 - 0.3404 1.0000 1.0000 - 1.2255 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.82649 - ------------------------------------------- - -testing cutpoint: -0.100987 - - ---- view of lincomb & g_node & w_node ---- - - -0.5033 0 3.0000 - -0.3142 0 3.0000 - -0.2044 0 1.0000 - -0.1010 0 2.0000 - -0.0493 1.0000 4.0000 - -0.0324 1.0000 1.0000 - 0.0393 1.0000 2.0000 - 0.1563 1.0000 2.0000 - 0.2090 1.0000 1.0000 - 0.2620 1.0000 1.0000 - 0.3302 1.0000 2.0000 - 0.3404 1.0000 1.0000 - 1.2255 1.0000 1.0000 - - -logrank stat for this cutpoint: 5.31104 - ------------------------------------------- - -testing cutpoint: -0.0324224 - - ---- view of lincomb & g_node & w_node ---- - - -0.5033 0 3.0000 - -0.3142 0 3.0000 - -0.2044 0 1.0000 - -0.1010 0 2.0000 - -0.0493 0 4.0000 - -0.0324 0 1.0000 - 0.0393 1.0000 2.0000 - 0.1563 1.0000 2.0000 - 0.2090 1.0000 1.0000 - 0.2620 1.0000 1.0000 - 0.3302 1.0000 2.0000 - 0.3404 1.0000 1.0000 - 1.2255 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.73911 - ------------------------------------------- - -testing cutpoint: 0.156318 - - ---- view of lincomb & g_node & w_node ---- - - -0.5033 0 3.0000 - -0.3142 0 3.0000 - -0.2044 0 1.0000 - -0.1010 0 2.0000 - -0.0493 0 4.0000 - -0.0324 0 1.0000 - 0.0393 0 2.0000 - 0.1563 0 2.0000 - 0.2090 1.0000 1.0000 - 0.2620 1.0000 1.0000 - 0.3302 1.0000 2.0000 - 0.3404 1.0000 1.0000 - 1.2255 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.0680763 - ------------------------------------------- - -testing cutpoint: 0.209042 - - ---- view of lincomb & g_node & w_node ---- - - -0.5033 0 3.0000 - -0.3142 0 3.0000 - -0.2044 0 1.0000 - -0.1010 0 2.0000 - -0.0493 0 4.0000 - -0.0324 0 1.0000 - 0.0393 0 2.0000 - 0.1563 0 2.0000 - 0.2090 0 1.0000 - 0.2620 1.0000 1.0000 - 0.3302 1.0000 2.0000 - 0.3404 1.0000 1.0000 - 1.2255 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.365696 - ------------------------------------------- - -node assignments: - 11 - 12 - 11 - 11 - 8 - 3 - 11 - 12 - 11 - 11 - 12 - 10 - 11 - -growing node 21 - -sprouting new leaf with node 21 - - ---- view of leaf_data ---- - - 1.4440e+03 6.6667e-01 3.3333e-01 - 1.6570e+03 3.3333e-01 8.3333e-01 - 2.2560e+03 1.1111e-01 1.5000e+00 - 3.4450e+03 0 2.5000e+00 - - -growing node 22 - -sprouting new leaf with node 22 - - ---- view of leaf_data ---- - - 4.6000e+02 8.6667e-01 1.3333e-01 - 5.5200e+02 6.0000e-01 4.4103e-01 - 5.9700e+02 5.3333e-01 5.5214e-01 - 6.7300e+02 4.6667e-01 6.7714e-01 - 1.0800e+03 2.3333e-01 1.1771e+00 - - From ccf41eba083978aaf31c8249a5a73040551419ea Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 24 Aug 2023 21:45:19 -0400 Subject: [PATCH 043/103] ignore debug log --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 40a563e7..c7a757fb 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ inst/doc docs src-i386 +^orsf\\_output\\.txt$ ^cran-comments\.md$ Rmd/*_cache/ Rmd/figure* From 05b089ff2c43ea01e01d45778723bfd351218637 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 24 Aug 2023 21:45:50 -0400 Subject: [PATCH 044/103] ignore debug log take 2 --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index c7a757fb..af218c88 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ inst/doc docs src-i386 -^orsf\\_output\\.txt$ +^orsf_output\.txt$ ^cran-comments\.md$ Rmd/*_cache/ Rmd/figure* From 027ec57dfc1223889f6cadae20281cd617f21f42 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 24 Aug 2023 21:46:12 -0400 Subject: [PATCH 045/103] retries included --- src/Tree.cpp | 142 +++++++++++++++++++++++++++++++-------------------- 1 file changed, 88 insertions(+), 54 deletions(-) diff --git a/src/Tree.cpp b/src/Tree.cpp index c8b9a5bb..1adb32d6 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -777,91 +777,125 @@ } - sample_cols(); + uword n_retry = 0; - x_node = x_inbag(rows_node, cols_node); + // determines if a node is split or sprouted + // (split means two new nodes are created) + // (sprouted means the node becomes a leaf) + for(; ;){ - if(VERBOSITY > 1) { - print_mat(x_node, "x_node", 20, 20); - print_mat(y_node, "y_node", 20, 20); - } + // repeat until all the retries are spent. + n_retry++; - lincomb.zeros(x_node.n_rows); + if(VERBOSITY > 1){ - std::vector cph = coxph_fit(x_node, - y_node, - w_node, - lincomb, - lincomb_scale, - lincomb_ties_method, - lincomb_eps, - lincomb_iter_max); + Rcout << "beginning try no. " << n_retry; + Rcout << std::endl << std::endl; + + } - vec beta_est = cph[0]; - vec beta_var = cph[1]; + sample_cols(); - double pvalue; + x_node = x_inbag(rows_node, cols_node); - if(vi_type == VI_ANOVA){ + if(VERBOSITY > 1) { + print_mat(x_node, "x_node", 20, 20); + print_mat(y_node, "y_node", 20, 20); + } - for(uword i = 0; i < beta_est.size(); ++i){ + // beta holds estimates (first item) and variance (second) + // for the regression coefficients that created lincomb. + // the variances are optional (only used for VI_ANOVA) + std::vector beta; - (*vi_denom)[cols_node[i]]++; + lincomb.zeros(x_node.n_rows); - if(beta_est[i] != 0){ + switch (lincomb_type) { - pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); + case NEWTON_RAPHSON: + beta = coxph_fit(x_node, y_node, w_node, + lincomb, lincomb_scale, lincomb_ties_method, + lincomb_eps, lincomb_iter_max); + break; - if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } + case R_FUNCTION: - } + break; } - } + // linear combination was created by coxph_fit + lincomb_sort = sort_index(lincomb); - // pull linear combination data (XB) from Cox model - lincomb_sort = sort_index(lincomb); + // find all valid cutpoints for lincomb + cuts_all = find_cutpoints(); - cuts_all = find_cutpoints(); + // empty cuts_all => no valid cutpoints => make leaf or retry + if(!cuts_all.is_empty()){ - // empty cuts_all => no valid cutpoints => make leaf or retry - if(!cuts_all.is_empty()){ + double cut_point = node_split(cuts_all); - double cut_point = node_split(cuts_all); + if(cut_point < R_PosInf){ - if(cut_point < R_PosInf){ + // only do variable importance when split is guaranteed + vec beta_est = beta[0]; + vec beta_var = beta[1]; - // make new nodes if a valid cutpoint was found - node_left = n_nodes + 1; - n_nodes += 2; - // update tree parameters - cutpoint[*node] = cut_point; - coef_values[*node] = beta_est; - coef_indices[*node] = cols_node; - child_left[*node] = node_left; - // re-assign observations in the current node - // (note that g_node is 0 if left, 1 if right) - node_assignments.elem(rows_node) = node_left + g_node; + double pvalue; - if(VERBOSITY > 1){ - Rcout << "node assignments: "; - Rcout << std::endl; - Rcout << node_assignments(lincomb_sort); - Rcout << std::endl; - } + if(vi_type == VI_ANOVA){ - nodes_queued.push_back(node_left); - nodes_queued.push_back(node_left + 1); + for(uword i = 0; i < beta_est.size(); ++i){ - } else { + (*vi_denom)[cols_node[i]]++; - node_sprout(*node); + if(beta_est[i] != 0){ + + pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); + + if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } + + } + + } + + } + + // make new nodes if a valid cutpoint was found + node_left = n_nodes + 1; + n_nodes += 2; + // update tree parameters + cutpoint[*node] = cut_point; + coef_values[*node] = beta_est; + coef_indices[*node] = cols_node; + child_left[*node] = node_left; + // re-assign observations in the current node + // (note that g_node is 0 if left, 1 if right) + node_assignments.elem(rows_node) = node_left + g_node; + + if(VERBOSITY > 1){ + Rcout << "Split successful: unique node assignments: "; + Rcout << std::endl; + Rcout << unique(node_assignments).t(); + Rcout << std::endl; + } + + nodes_queued.push_back(node_left); + nodes_queued.push_back(node_left + 1); + break; + + } } + if(n_retry == split_max_retry){ + node_sprout(*node); + break; + } + } + } nodes_open = nodes_queued; From 42bd613198561635b19cb2fafcbfbcf9ee2210bb Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 25 Aug 2023 09:03:07 -0400 Subject: [PATCH 046/103] try to ignore output txt file again --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index af218c88..b9324035 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,7 @@ inst/doc docs src-i386 -^orsf_output\.txt$ +^orsf_output ^cran-comments\.md$ Rmd/*_cache/ Rmd/figure* From 61fd7c007be97c236439836c8b8aba8cb7374db7 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 25 Aug 2023 13:21:27 -0400 Subject: [PATCH 047/103] showprogress and check interrupts --- .gitignore | 2 +- src/Coxph.cpp | 23 ++++++-------- src/Coxph.h | 16 +++++----- src/Forest.cpp | 77 +++++++++++++++++++++++++++++++++++---------- src/Forest.h | 22 ++++++++++++- src/RcppExports.cpp | 6 ++-- src/Tree.cpp | 22 ++++++++++--- src/Tree.h | 7 ++++- src/globals.h | 4 +++ src/orsf_oop.cpp | 24 +++++++------- src/utility.cpp | 39 +++++++++++++++++++++++ src/utility.h | 21 +++++++++++++ 12 files changed, 202 insertions(+), 61 deletions(-) diff --git a/.gitignore b/.gitignore index b9324035..cc36ec21 100644 --- a/.gitignore +++ b/.gitignore @@ -6,8 +6,8 @@ inst/doc docs src-i386 -^orsf_output ^cran-comments\.md$ +^orsf-output\.txt$ Rmd/*_cache/ Rmd/figure* Rmd/*.html diff --git a/src/Coxph.cpp b/src/Coxph.cpp index 90b7552c..a55b341b 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -168,14 +168,14 @@ } - std::vector coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max){ + arma::mat coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max){ uword person, @@ -668,12 +668,7 @@ } - std::vector result; - - result.push_back(beta_current); - result.push_back(vmat.diag()); - - return(result); + return(join_horiz(beta_current, vmat.diag())); } diff --git a/src/Coxph.h b/src/Coxph.h index 7d1153fb..c63d7bea 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -58,14 +58,14 @@ // of the Cox model. All inputs are described above // in newtraph_cph_iter() // - std::vector coxph_fit(arma::mat& x_node, - arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - bool do_scale, - int ties_method, - double epsilon, - arma::uword iter_max); + arma::mat coxph_fit(arma::mat& x_node, + arma::mat& y_node, + arma::vec& w_node, + arma::vec& XB, + bool do_scale, + int ties_method, + double epsilon, + arma::uword iter_max); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 81c04af0..c5595fd3 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -91,7 +91,7 @@ void Forest::plant() { } -void Forest::grow(Function& lincomb_R_function){ +void Forest::grow(Function lincomb_R_function){ // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); @@ -121,28 +121,29 @@ void Forest::grow(Function& lincomb_R_function){ } + aborted = false; + aborted_threads = 0; + progress = 0; + std::vector threads; threads.reserve(n_thread); - // Initialize importance per thread - std::vector vi_numer_threads; - std::vector vi_denom_threads; - - for (uint i = 0; i < n_thread; ++i) { - // vi_numer_threads[i].zeros(data->get_n_cols()); - // vi_denom_threads[i].zeros(data->get_n_cols()); - threads.emplace_back(&Forest::grow_in_threads, this, i); } + showProgress("Growing trees..", n_tree); for (auto &thread : threads) { thread.join(); } + if (aborted_threads > 0) { + throw std::runtime_error("User interrupt."); + } + } void Forest::grow_in_threads(uint thread_idx) { @@ -159,17 +160,17 @@ void Forest::grow_in_threads(uint thread_idx) { trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - // // Check for user interrupt - // if (aborted) { - // std::unique_lock lock(mutex); - // ++aborted_threads; - // condition_variable.notify_one(); - // return; - // } + // Check for user interrupt + if (aborted) { + std::unique_lock lock(mutex); + ++aborted_threads; + condition_variable.notify_one(); + return; + } // Increase progress by 1 tree std::unique_lock lock(mutex); - // ++progress; + ++progress; condition_variable.notify_one(); } @@ -189,5 +190,47 @@ void Forest::grow_in_threads(uint thread_idx) { void Forest::run(){ } +void Forest::showProgress(std::string operation, size_t max_progress) { + + using std::chrono::steady_clock; + using std::chrono::duration_cast; + using std::chrono::seconds; + + steady_clock::time_point start_time = steady_clock::now(); + steady_clock::time_point last_time = steady_clock::now(); + std::unique_lock lock(mutex); + + // Wait for message from threads and show output if enough time elapsed + while (progress < max_progress) { + condition_variable.wait(lock); + seconds elapsed_time = duration_cast(steady_clock::now() - last_time); + + // Check for user interrupt + if (!aborted && checkInterrupt()) { + aborted = true; + } + if (aborted && aborted_threads >= n_thread) { + return; + } + + if (progress > 0 && elapsed_time.count() > STATUS_INTERVAL) { + + double relative_progress = (double) progress / (double) max_progress; + seconds time_from_start = duration_cast(steady_clock::now() - start_time); + uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); + + Rcout << operation << " Progress: "; + Rcout << round(100 * relative_progress) << "%. "; + Rcout << "Estimated remaining time: "; + Rcout << beautifyTime(remaining_time) << "."; + Rcout << std::endl; + + last_time = steady_clock::now(); + + } + } } +} + + diff --git a/src/Forest.h b/src/Forest.h index 050b0080..2efcfff2 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -65,12 +65,14 @@ class Forest { // Grow or predict void run(); - void grow(Function& lincomb_R_function); + void grow(Function lincomb_R_function); void grow_in_threads(uint thread_idx); void plant(); + void showProgress(std::string operation, size_t max_progress); + std::vector> get_coef_indices() { @@ -86,6 +88,20 @@ class Forest { } + std::vector> get_coef_values() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_coef_values()); + } + + return result; + + } + std::vector> get_leaf_pred_horizon() { std::vector> result; @@ -181,6 +197,10 @@ class Forest { std::mutex mutex; std::condition_variable condition_variable; + size_t progress; + size_t aborted_threads; + bool aborted; + }; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 1b8822e9..4e202447 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -70,7 +70,7 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function& lincomb_R_function, Rcpp::Function& oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function lincomb_R_function, Rcpp::Function oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; @@ -79,8 +79,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< Rcpp::Function& >::type lincomb_R_function(lincomb_R_functionSEXP); - Rcpp::traits::input_parameter< Rcpp::Function& >::type oobag_R_function(oobag_R_functionSEXP); + Rcpp::traits::input_parameter< Rcpp::Function >::type lincomb_R_function(lincomb_R_functionSEXP); + Rcpp::traits::input_parameter< Rcpp::Function >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); diff --git a/src/Tree.cpp b/src/Tree.cpp index 1adb32d6..0b115cb4 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -666,7 +666,8 @@ } - void Tree::grow(arma::vec* vi_numer, arma::uvec* vi_denom){ + void Tree::grow(arma::vec* vi_numer, + arma::uvec* vi_denom){ this->vi_numer = vi_numer; this->vi_denom = vi_denom; @@ -806,20 +807,33 @@ // beta holds estimates (first item) and variance (second) // for the regression coefficients that created lincomb. // the variances are optional (only used for VI_ANOVA) - std::vector beta; + mat beta; lincomb.zeros(x_node.n_rows); switch (lincomb_type) { case NEWTON_RAPHSON: + beta = coxph_fit(x_node, y_node, w_node, lincomb, lincomb_scale, lincomb_ties_method, lincomb_eps, lincomb_iter_max); + break; case R_FUNCTION: + // NumericMatrix xx = wrap(x_node); + // NumericMatrix yy = wrap(y_node); + // NumericVector ww = wrap(w_node); + // + // NumericMatrix beta_R = f_beta(xx, yy, ww); + // + // beta = mat(beta_placeholder.begin(), + // beta_placeholder.nrow(), + // beta_placeholder.ncol(), + // false); + break; } @@ -838,8 +852,8 @@ if(cut_point < R_PosInf){ // only do variable importance when split is guaranteed - vec beta_est = beta[0]; - vec beta_var = beta[1]; + vec beta_est = beta.unsafe_col(0); + vec beta_var = beta.unsafe_col(1); double pvalue; diff --git a/src/Tree.h b/src/Tree.h index ec8355f6..933ff3c5 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -64,7 +64,8 @@ void node_sprout(arma::uword node_id); - void grow(arma::vec* vi_numer, arma::uvec* vi_denom); + void grow(arma::vec* vi_numer, + arma::uvec* vi_denom); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); @@ -72,6 +73,10 @@ return(coef_indices); } + std::vector& get_coef_values() { + return(coef_values); + } + std::vector& get_leaf_pred_horizon(){ return(leaf_pred_horizon); } diff --git a/src/globals.h b/src/globals.h index 2b8d3517..85eda84e 100644 --- a/src/globals.h +++ b/src/globals.h @@ -76,6 +76,10 @@ const int VERBOSITY = 0; + // Interval to print progress in seconds + const double STATUS_INTERVAL = 1.0; + + } // namespace aorsf #endif /* GLOBALS_H_ */ diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f2ac8d8f..f1cc98b4 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -50,18 +50,18 @@ arma::uvec cols_node=regspace(0, x_node.n_cols-1); arma::vec lincomb(x_node.n_rows, arma::fill::zeros); - std::vector out = coxph_fit(x_node, - y_node, - w_node, - lincomb, - true, - method, - cph_eps, - cph_iter_max); + arma::mat out = coxph_fit(x_node, + y_node, + w_node, + lincomb, + true, + method, + cph_eps, + cph_iter_max); List result; - result.push_back(out[0], "beta"); - result.push_back(out[1], "var"); + result.push_back(out.col(0), "beta"); + result.push_back(out.col(1), "var"); return(result); @@ -134,8 +134,8 @@ arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, - Rcpp::Function& lincomb_R_function, - Rcpp::Function& oobag_R_function, + Rcpp::Function lincomb_R_function, + Rcpp::Function oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, diff --git a/src/utility.cpp b/src/utility.cpp index 9c0a2c28..25686f82 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -6,6 +6,7 @@ #include #include "Utility.h" +#include "globals.h" using namespace arma; using namespace Rcpp; @@ -89,5 +90,43 @@ } } + std::string uintToString(uint number) { + return std::to_string(number); + } + + std::string beautifyTime(uint seconds) { + + std::string result; + + // Add seconds, minutes, hours, days if larger than zero + uint out_seconds = (uint) seconds % 60; + result = uintToString(out_seconds) + " seconds"; + uint out_minutes = (seconds / 60) % 60; + if (seconds / 60 == 0) { + return result; + } else if (out_minutes == 1) { + result = "1 minute, " + result; + } else { + result = uintToString(out_minutes) + " minutes, " + result; + } + uint out_hours = (seconds / 3600) % 24; + if (seconds / 3600 == 0) { + return result; + } else if (out_hours == 1) { + result = "1 hour, " + result; + } else { + result = uintToString(out_hours) + " hours, " + result; + } + uint out_days = (seconds / 86400); + if (out_days == 0) { + return result; + } else if (out_days == 1) { + result = "1 day, " + result; + } else { + result = uintToString(out_days) + " days, " + result; + } + return result; + } + } diff --git a/src/utility.h b/src/utility.h index cf697b94..48ac1988 100644 --- a/src/utility.h +++ b/src/utility.h @@ -38,6 +38,27 @@ aorsf may be modified and distributed under the terms of the MIT license. std::string label, arma::uword max_elem); + /** + * Convert a unsigned integer to string + * @param number Number to convert + * @return Converted number as string + */ + std::string uintToString(uint number); + + /** + * Beautify output of time. + * @param seconds Time in seconds + * @return Time in days, hours, minutes and seconds as string + */ + std::string beautifyTime(uint seconds); + + static void chkIntFn(void *dummy) { + R_CheckUserInterrupt(); + } + + inline bool checkInterrupt() { + return (R_ToplevelExec(chkIntFn, NULL) == FALSE); + } } From f231894d201b5b2d238a2e9ca961cd29255e86da Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 26 Aug 2023 16:17:28 -0400 Subject: [PATCH 048/103] R functions from trees thx to RObjects --- .gitignore | 1 - src/Forest.cpp | 52 ++++++++++++++++++---------------- src/Forest.h | 23 +++++++++------ src/RcppExports.cpp | 6 ++-- src/Tree.cpp | 69 +++++++++++++++++++++++++++++++++------------ src/Tree.h | 22 ++++++++------- src/globals.h | 7 +++-- src/orsf_oop.cpp | 24 +++++++--------- 8 files changed, 123 insertions(+), 81 deletions(-) diff --git a/.gitignore b/.gitignore index cc36ec21..40a563e7 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,6 @@ inst/doc docs src-i386 ^cran-comments\.md$ -^orsf-output\.txt$ Rmd/*_cache/ Rmd/figure* Rmd/*.html diff --git a/src/Forest.cpp b/src/Forest.cpp index c5595fd3..8baf3a1e 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -17,26 +17,32 @@ void Forest::init(std::unique_ptr input_data, arma::uword mtry, VariableImportance vi_type, double vi_max_pvalue, + // leaves double leaf_min_events, double leaf_min_obs, + // node splitting SplitRule split_rule, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, + // linear combinations LinearCombo lincomb_type, double lincomb_eps, arma::uword lincomb_iter_max, - bool lincomb_scale, + bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, + RObject lincomb_R_function, + // predictions PredType pred_type, - bool pred_mode, + bool pred_mode, double pred_horizon, - bool oobag_pred, + bool oobag_pred, arma::uword oobag_eval_every, + Rcpp::RObject oobag_R_function, uint n_thread){ this->data = std::move(input_data); @@ -59,10 +65,12 @@ void Forest::init(std::unique_ptr input_data, this->lincomb_alpha = lincomb_alpha; this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; + this->lincomb_R_function = lincomb_R_function; this->pred_type = pred_type; this->pred_horizon = pred_horizon; this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; + this->oobag_R_function = oobag_R_function; this->n_thread = n_thread; if(vi_type != VI_NONE){ @@ -91,10 +99,7 @@ void Forest::plant() { } -void Forest::grow(Function lincomb_R_function){ - - // Create thread ranges - equalSplit(thread_ranges, 0, n_tree - 1, n_thread); +void Forest::init_trees(){ for(uword i = 0; i < n_tree; ++i){ @@ -117,24 +122,33 @@ void Forest::grow(Function lincomb_R_function){ lincomb_scale, lincomb_alpha, lincomb_df_target, - lincomb_ties_method); + lincomb_ties_method, + lincomb_R_function); } +} + +void Forest::grow(){ + + init_trees(); + + // Create thread ranges + equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + // catch interrupts from threads aborted = false; aborted_threads = 0; + // show progress from threads progress = 0; std::vector threads; threads.reserve(n_thread); for (uint i = 0; i < n_thread; ++i) { - threads.emplace_back(&Forest::grow_in_threads, this, i); - } - showProgress("Growing trees..", n_tree); + showProgress("Growing trees...", n_tree); for (auto &thread : threads) { thread.join(); @@ -144,13 +158,12 @@ void Forest::grow(Function lincomb_R_function){ throw std::runtime_error("User interrupt."); } + + } void Forest::grow_in_threads(uint thread_idx) { - // vec vi_numer(data->get_n_cols(), fill::zeros); - // uvec vi_denom(data->get_n_cols(), fill::zeros); - vec* vi_numer_ptr = &this->vi_numer; uvec* vi_denom_ptr = &this->vi_denom; @@ -177,15 +190,6 @@ void Forest::grow_in_threads(uint thread_idx) { } - // if(VERBOSITY > 1){ - // - // Rcout << "-- test VI numerator ---" << std::endl; - // Rcout << vi_numer << std::endl << std::endl; - // Rcout << "-- test VI denominator ---" << std::endl; - // Rcout << vi_denom << std::endl << std::endl; - // - // } - } void Forest::run(){ } @@ -219,7 +223,7 @@ void Forest::showProgress(std::string operation, size_t max_progress) { seconds time_from_start = duration_cast(steady_clock::now() - start_time); uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); - Rcout << operation << " Progress: "; + Rcout << operation << "Progress: "; Rcout << round(100 * relative_progress) << "%. "; Rcout << "Estimated remaining time: "; Rcout << beautifyTime(remaining_time) << "."; diff --git a/src/Forest.h b/src/Forest.h index 2efcfff2..55542458 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -54,18 +54,22 @@ class Forest { double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, + RObject lincomb_R_function, // predictions PredType pred_type, bool pred_mode, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, + Rcpp::RObject oobag_R_function, uint n_thread); // Grow or predict void run(); - void grow(Function lincomb_R_function); + void init_trees(); + + void grow(); void grow_in_threads(uint thread_idx); @@ -149,8 +153,6 @@ class Forest { arma::uword n_tree; arma::uword mtry; - - Rcpp::IntegerVector tree_seeds; std::vector> trees; @@ -169,10 +171,10 @@ class Forest { double leaf_min_obs; // node splitting - SplitRule split_rule; - double split_min_events; - double split_min_obs; - double split_min_stat; + SplitRule split_rule; + double split_min_events; + double split_min_obs; + double split_min_stat; arma::uword split_max_cuts; arma::uword split_max_retry; @@ -184,12 +186,17 @@ class Forest { arma::uword lincomb_iter_max; arma::uword lincomb_df_target; arma::uword lincomb_ties_method; + RObject lincomb_R_function; // predictions PredType pred_type; double pred_horizon; - bool oobag_pred; + + // out-of-bag + bool oobag_pred; arma::uword oobag_eval_every; + RObject oobag_R_function; + // multi-threading uint n_thread; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 4e202447..cfe8a5aa 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -70,7 +70,7 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::Function lincomb_R_function, Rcpp::Function oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; @@ -79,8 +79,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type lincomb_R_function(lincomb_R_functionSEXP); - Rcpp::traits::input_parameter< Rcpp::Function >::type oobag_R_function(oobag_R_functionSEXP); + Rcpp::traits::input_parameter< Rcpp::RObject >::type lincomb_R_function(lincomb_R_functionSEXP); + Rcpp::traits::input_parameter< Rcpp::RObject >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); diff --git a/src/Tree.cpp b/src/Tree.cpp index 0b115cb4..64518985 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -35,7 +35,8 @@ bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, - arma::uword lincomb_ties_method){ + arma::uword lincomb_ties_method, + RObject lincomb_R_function){ this->data = data; @@ -61,6 +62,7 @@ this->lincomb_alpha = lincomb_alpha; this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; + this->lincomb_R_function = lincomb_R_function; } @@ -813,31 +815,60 @@ switch (lincomb_type) { - case NEWTON_RAPHSON: + case NEWTON_RAPHSON: { beta = coxph_fit(x_node, y_node, w_node, lincomb, lincomb_scale, lincomb_ties_method, lincomb_eps, lincomb_iter_max); + // dont need to create lincomb (coxph_fit did so already) + + break; + + } + + case RANDOM_COEFS: { + + beta.set_size(x_node.n_cols, 1); + + std::uniform_real_distribution unif_coef(0.0, 1.0); + + for(uword i = 0; i < x_node.n_cols; ++i){ + beta.at(i, 0) = unif_coef(random_number_generator); + } + + lincomb = x_node * beta; + break; - case R_FUNCTION: + } + + case R_FUNCTION: { + + // NumericMatrix xx = ; + // NumericMatrix yy = ; + // NumericVector ww = ; + + // initialize function from tree object + // (Functions can't be stored in C++ classes, but RObjects can) + Function f_beta = as(lincomb_R_function); - // NumericMatrix xx = wrap(x_node); - // NumericMatrix yy = wrap(y_node); - // NumericVector ww = wrap(w_node); - // - // NumericMatrix beta_R = f_beta(xx, yy, ww); - // - // beta = mat(beta_placeholder.begin(), - // beta_placeholder.nrow(), - // beta_placeholder.ncol(), - // false); + NumericMatrix beta_R = f_beta(wrap(x_node), + wrap(y_node), + wrap(w_node)); + + beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); + + lincomb = x_node * beta; break; } + } // switch lincomb_type + + vec beta_est = beta.unsafe_col(0); + // linear combination was created by coxph_fit lincomb_sort = sort_index(lincomb); @@ -851,13 +882,15 @@ if(cut_point < R_PosInf){ - // only do variable importance when split is guaranteed - vec beta_est = beta.unsafe_col(0); - vec beta_var = beta.unsafe_col(1); + if(vi_type == VI_ANOVA && lincomb_type == NEWTON_RAPHSON){ + + // only do ANOVA variable importance when + // 1. a split of the node is guaranteed + // 2. the method used for lincombs allows it - double pvalue; + vec beta_var = beta.unsafe_col(1); - if(vi_type == VI_ANOVA){ + double pvalue; for(uword i = 0; i < beta_est.size(); ++i){ diff --git a/src/Tree.h b/src/Tree.h index 933ff3c5..ef84bbc9 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -44,7 +44,8 @@ bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, - arma::uword lincomb_ties_method); + arma::uword lincomb_ties_method, + Rcpp::RObject lincomb_R_function); @@ -161,15 +162,16 @@ arma::uword split_max_retry; // linear combination members - LinearCombo lincomb_type; - arma::vec lincomb; - arma::uvec lincomb_sort; - double lincomb_eps; - arma::uword lincomb_iter_max; - bool lincomb_scale; - double lincomb_alpha; - arma::uword lincomb_df_target; - arma::uword lincomb_ties_method; + LinearCombo lincomb_type; + arma::vec lincomb; + arma::uvec lincomb_sort; + double lincomb_eps; + arma::uword lincomb_iter_max; + bool lincomb_scale; + double lincomb_alpha; + arma::uword lincomb_df_target; + arma::uword lincomb_ties_method; + Rcpp::RObject lincomb_R_function; // prediction members double pred_horizon; diff --git a/src/globals.h b/src/globals.h index 85eda84e..fa6edde0 100644 --- a/src/globals.h +++ b/src/globals.h @@ -38,7 +38,8 @@ // Linear combination method enum LinearCombo { NEWTON_RAPHSON = 1, - R_FUNCTION = 2 + RANDOM_COEFS = 2, + R_FUNCTION = 3 }; // Prediction type @@ -74,10 +75,10 @@ const PredType DEFAULT_PRED_TYPE = RISK; const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 0; + const int VERBOSITY = 2; // Interval to print progress in seconds - const double STATUS_INTERVAL = 1.0; + const double STATUS_INTERVAL = 15.0; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f1cc98b4..998ced83 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -134,8 +134,8 @@ arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, - Rcpp::Function lincomb_R_function, - Rcpp::Function oobag_R_function, + Rcpp::RObject lincomb_R_function, + Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, @@ -162,17 +162,6 @@ arma::uword oobag_eval_every, unsigned int n_thread){ - // int mtry = 2; - // int leaf_min_obs = DEFAULT_LEAF_MIN_OBS_SURVIVAL; - // VariableImportance variable_importance = static_cast(vi); - // SplitRule split_rule = static_cast(sr); - // PredType pred_type = static_cast(pt); - - // VariableImportance vi_type = static_cast(vi_type_R); - // SplitRule split_rule = static_cast(split_rule_r) ; - // LinearCombo lincomb_type = static_cast(lincomb_type_R); - // PredType pred_type = static_cast(pred_type_R); - List result, forest_out; std::unique_ptr forest { }; @@ -180,11 +169,16 @@ data = std::make_unique(x, y, w); + // re-cast integer inputs from R into enumerations + // see globals.h for definitions. VariableImportance vi_type = (VariableImportance) vi_type_R; SplitRule split_rule = (SplitRule) split_rule_R; LinearCombo lincomb_type = (LinearCombo) lincomb_type_R; PredType pred_type = (PredType) pred_type_R; + // R functions cannot be called from multiple threads + if(lincomb_type == R_FUNCTION){ n_thread = 1; } + forest = std::make_unique(); forest->init(std::move(data), @@ -208,16 +202,18 @@ lincomb_alpha, lincomb_df_target, lincomb_ties_method, + lincomb_R_function, pred_type, pred_mode, pred_horizon, oobag_pred, oobag_eval_every, + oobag_R_function, n_thread); forest->plant(); - forest->grow(lincomb_R_function); + forest->grow(); forest_out.push_back(forest->get_coef_indices(), "coef_indices"); forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); From 4c362b65065ccef6446deb6aa9d16c25d8be711f Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 26 Aug 2023 21:43:23 -0400 Subject: [PATCH 049/103] prep for prediction --- R/RcppExports.R | 4 +- orsf-output.txt | 4104 +++++++++++++++++++++++++++++++++++++++++++ src/Forest.cpp | 49 + src/Forest.h | 42 +- src/RcppExports.cpp | 9 +- src/Tree.cpp | 130 +- src/Tree.h | 17 +- src/globals.h | 30 +- src/orsf_oop.cpp | 41 +- 9 files changed, 4392 insertions(+), 34 deletions(-) create mode 100644 orsf-output.txt diff --git a/R/RcppExports.R b/R/RcppExports.R index 13f9be89..f59dd702 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -17,7 +17,7 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -orsf_cpp <- function(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) +orsf_cpp <- function(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) } diff --git a/orsf-output.txt b/orsf-output.txt new file mode 100644 index 00000000..eee3118c --- /dev/null +++ b/orsf-output.txt @@ -0,0 +1,4104 @@ +------------ input data dimensions ------------ +N obs total: 276 +N columns total: 21 +----------------------------------------------- + +Effective sample size: 276 +Effective number of events: 111 +Number of unique rows in x: 176 + +Max number of nodes for this tree: 221 +Max number of leaves for this tree: 111 + +growing node 0 + +beginning try no. 1 + + ---- view of x_node ---- + + 0 7.0500e+02 3.3800e+02 1.0000e+00 1.7900e+01 + 1.0000e+00 3.6974e+03 1.0191e+02 1.0000e+00 2.1600e+01 + 1.0000e+00 1.2730e+03 1.1935e+02 1.0000e+00 2.5000e+00 + 1.0000e+00 9.6100e+02 2.8055e+02 1.0000e+00 1.1400e+01 + 1.0000e+00 1.0560e+03 1.2090e+02 0 2.4000e+00 + 1.0000e+00 8.1500e+02 1.2710e+02 1.0000e+00 3.2000e+00 + 0 1.8600e+03 2.1855e+02 0 1.1000e+00 + 1.0000e+00 3.7400e+03 1.4725e+02 1.0000e+00 2.4500e+01 + 1.0000e+00 6.0648e+03 2.2704e+02 1.0000e+00 1.7400e+01 + 1.0000e+00 7.2770e+03 1.2126e+02 1.0000e+00 3.6000e+00 + 1.0000e+00 1.8190e+03 1.7050e+02 0 6.6000e+00 + 0 1.8330e+03 1.3400e+02 1.0000e+00 1.4100e+01 + 0 1.6260e+03 8.6800e+01 1.0000e+00 1.4000e+00 + 1.0000e+00 1.7180e+03 1.3795e+02 1.0000e+00 1.4500e+01 + 1.0000e+00 2.4600e+03 2.4645e+02 1.0000e+00 5.0000e+00 + 0 1.1420e+03 7.5000e+01 1.0000e+00 1.2000e+00 + 1.0000e+00 1.9750e+03 1.8910e+02 1.0000e+00 1.7200e+01 + 0 7.4600e+02 1.7825e+02 1.0000e+00 2.3000e+00 + 0 2.3100e+03 1.6740e+02 0 4.5000e+00 + 0 3.1960e+03 7.7500e+01 0 2.0000e+00 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 7.7000e+01 1.0000e+00 + 1.1000e+02 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.3300e+02 0 + 5.4900e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 177.723 + - n_events, left node: 3 + - n_risk, left node: 20 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 1442.37 + - n_events, right node: 7 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + 2.7675e+02 + 3.1657e+02 + 3.6903e+02 + 7.7318e+02 + 1.2478e+03 + + +testing cutpoint: 276.751 + + ---- view of lincomb & g_node & w_node ---- + + 1.1697e+02 0 2.0000e+00 + 1.2323e+02 0 1.0000e+00 + 1.2525e+02 0 1.0000e+00 + 1.3517e+02 0 1.0000e+00 + 1.3702e+02 0 1.0000e+00 + 1.4017e+02 0 1.0000e+00 + 1.4962e+02 0 1.0000e+00 + 1.6378e+02 0 3.0000e+00 + 1.6968e+02 0 3.0000e+00 + 1.7574e+02 0 2.0000e+00 + 1.7765e+02 0 1.0000e+00 + 1.7772e+02 0 3.0000e+00 + 1.7925e+02 0 1.0000e+00 + 1.7948e+02 0 2.0000e+00 + 1.8022e+02 0 1.0000e+00 + 1.8812e+02 0 1.0000e+00 + 1.9496e+02 0 1.0000e+00 + 1.9530e+02 0 1.0000e+00 + 1.9647e+02 0 1.0000e+00 + 2.0814e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 9.61757 + ------------------------------------------- + +testing cutpoint: 316.572 + + ---- view of lincomb & g_node & w_node ---- + + 1.1697e+02 0 2.0000e+00 + 1.2323e+02 0 1.0000e+00 + 1.2525e+02 0 1.0000e+00 + 1.3517e+02 0 1.0000e+00 + 1.3702e+02 0 1.0000e+00 + 1.4017e+02 0 1.0000e+00 + 1.4962e+02 0 1.0000e+00 + 1.6378e+02 0 3.0000e+00 + 1.6968e+02 0 3.0000e+00 + 1.7574e+02 0 2.0000e+00 + 1.7765e+02 0 1.0000e+00 + 1.7772e+02 0 3.0000e+00 + 1.7925e+02 0 1.0000e+00 + 1.7948e+02 0 2.0000e+00 + 1.8022e+02 0 1.0000e+00 + 1.8812e+02 0 1.0000e+00 + 1.9496e+02 0 1.0000e+00 + 1.9530e+02 0 1.0000e+00 + 1.9647e+02 0 1.0000e+00 + 2.0814e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 14.9891 + ------------------------------------------- + +testing cutpoint: 369.027 + + ---- view of lincomb & g_node & w_node ---- + + 1.1697e+02 0 2.0000e+00 + 1.2323e+02 0 1.0000e+00 + 1.2525e+02 0 1.0000e+00 + 1.3517e+02 0 1.0000e+00 + 1.3702e+02 0 1.0000e+00 + 1.4017e+02 0 1.0000e+00 + 1.4962e+02 0 1.0000e+00 + 1.6378e+02 0 3.0000e+00 + 1.6968e+02 0 3.0000e+00 + 1.7574e+02 0 2.0000e+00 + 1.7765e+02 0 1.0000e+00 + 1.7772e+02 0 3.0000e+00 + 1.7925e+02 0 1.0000e+00 + 1.7948e+02 0 2.0000e+00 + 1.8022e+02 0 1.0000e+00 + 1.8812e+02 0 1.0000e+00 + 1.9496e+02 0 1.0000e+00 + 1.9530e+02 0 1.0000e+00 + 1.9647e+02 0 1.0000e+00 + 2.0814e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 22.2132 + ------------------------------------------- + +testing cutpoint: 773.18 + + ---- view of lincomb & g_node & w_node ---- + + 1.1697e+02 0 2.0000e+00 + 1.2323e+02 0 1.0000e+00 + 1.2525e+02 0 1.0000e+00 + 1.3517e+02 0 1.0000e+00 + 1.3702e+02 0 1.0000e+00 + 1.4017e+02 0 1.0000e+00 + 1.4962e+02 0 1.0000e+00 + 1.6378e+02 0 3.0000e+00 + 1.6968e+02 0 3.0000e+00 + 1.7574e+02 0 2.0000e+00 + 1.7765e+02 0 1.0000e+00 + 1.7772e+02 0 3.0000e+00 + 1.7925e+02 0 1.0000e+00 + 1.7948e+02 0 2.0000e+00 + 1.8022e+02 0 1.0000e+00 + 1.8812e+02 0 1.0000e+00 + 1.9496e+02 0 1.0000e+00 + 1.9530e+02 0 1.0000e+00 + 1.9647e+02 0 1.0000e+00 + 2.0814e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 3.32396 + ------------------------------------------- + +testing cutpoint: 1247.8 + + ---- view of lincomb & g_node & w_node ---- + + 1.1697e+02 0 2.0000e+00 + 1.2323e+02 0 1.0000e+00 + 1.2525e+02 0 1.0000e+00 + 1.3517e+02 0 1.0000e+00 + 1.3702e+02 0 1.0000e+00 + 1.4017e+02 0 1.0000e+00 + 1.4962e+02 0 1.0000e+00 + 1.6378e+02 0 3.0000e+00 + 1.6968e+02 0 3.0000e+00 + 1.7574e+02 0 2.0000e+00 + 1.7765e+02 0 1.0000e+00 + 1.7772e+02 0 3.0000e+00 + 1.7925e+02 0 1.0000e+00 + 1.7948e+02 0 2.0000e+00 + 1.8022e+02 0 1.0000e+00 + 1.8812e+02 0 1.0000e+00 + 1.9496e+02 0 1.0000e+00 + 1.9530e+02 0 1.0000e+00 + 1.9647e+02 0 1.0000e+00 + 2.0814e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 5.19007 + ------------------------------------------- + +Split successful: unique node assignments: + 1 2 + +growing node 1 + +beginning try no. 1 + + ---- view of x_node ---- + + 1.1100e+01 0 4.8964e+01 1.1935e+02 1.0000e+00 + 1.4100e+01 0 6.9377e+01 1.2090e+02 0 + 1.2000e+01 0 5.8817e+01 1.2710e+02 1.0000e+00 + 1.1300e+01 0 5.5986e+01 7.5000e+01 1.0000e+00 + 1.2000e+01 0 5.1469e+01 1.7825e+02 1.0000e+00 + 1.0000e+01 0 3.9858e+01 1.1000e+02 1.0000e+00 + 9.8000e+00 1.0000e+00 6.7573e+01 8.6000e+01 1.0000e+00 + 9.8000e+00 0 4.1374e+01 1.1470e+02 1.0000e+00 + 1.0800e+01 1.0000e+00 5.8300e+01 7.0000e+01 0 + 1.2000e+01 0 7.0073e+01 9.6100e+01 0 + 9.6000e+00 0 6.2861e+01 9.1000e+01 0 + 1.0000e+01 0 4.6382e+01 1.2000e+02 1.0000e+00 + 1.0500e+01 1.0000e+00 3.0574e+01 1.3000e+02 0 + 1.0400e+01 1.0000e+00 6.1183e+01 9.1000e+01 1.0000e+00 + 1.0800e+01 0 3.5535e+01 4.5000e+01 0 + 1.0600e+01 1.0000e+00 3.7799e+01 5.2000e+01 0 + 1.0500e+01 0 4.5210e+01 7.4000e+01 0 + 1.2300e+01 0 5.7196e+01 1.6300e+02 1.0000e+00 + 1.0000e+01 0 4.6349e+01 5.7000e+01 0 + 9.5000e+00 0 4.8564e+01 8.5000e+01 0 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 5.3300e+02 0 + 5.5200e+02 1.0000e+00 + 7.3700e+02 0 + 7.9900e+02 1.0000e+00 + 8.3700e+02 0 + 9.9400e+02 0 + 1.0120e+03 1.0000e+00 + 1.0300e+03 0 + 1.0840e+03 0 + 1.1490e+03 0 + 1.1530e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.2950e+03 0 + 1.3200e+03 0 + 1.4010e+03 0 + 1.4180e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 76.1181 + - n_events, left node: 1 + - n_risk, left node: 12 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 149.817 + - n_events, right node: 4 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + 7.6118e+01 + 8.6043e+01 + 8.7464e+01 + 1.1902e+02 + 1.2285e+02 + + +testing cutpoint: 76.1181 + + ---- view of lincomb & g_node & w_node ---- + + 63.6724 0 3.0000 + 69.1539 0 1.0000 + 69.9226 0 1.0000 + 70.6135 0 3.0000 + 71.0883 0 1.0000 + 73.4943 0 1.0000 + 75.5135 0 1.0000 + 76.1181 0 1.0000 + 78.9271 1.0000 1.0000 + 79.5172 1.0000 1.0000 + 80.3322 1.0000 2.0000 + 82.4804 1.0000 1.0000 + 84.2278 1.0000 1.0000 + 84.9945 1.0000 1.0000 + 86.0430 1.0000 1.0000 + 87.4643 1.0000 2.0000 + 88.1858 1.0000 1.0000 + 89.0251 1.0000 1.0000 + 90.6352 1.0000 3.0000 + 91.3406 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.33029 + ------------------------------------------- + +testing cutpoint: 86.043 + + ---- view of lincomb & g_node & w_node ---- + + 63.6724 0 3.0000 + 69.1539 0 1.0000 + 69.9226 0 1.0000 + 70.6135 0 3.0000 + 71.0883 0 1.0000 + 73.4943 0 1.0000 + 75.5135 0 1.0000 + 76.1181 0 1.0000 + 78.9271 0 1.0000 + 79.5172 0 1.0000 + 80.3322 0 2.0000 + 82.4804 0 1.0000 + 84.2278 0 1.0000 + 84.9945 0 1.0000 + 86.0430 0 1.0000 + 87.4643 1.0000 2.0000 + 88.1858 1.0000 1.0000 + 89.0251 1.0000 1.0000 + 90.6352 1.0000 3.0000 + 91.3406 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.04653 + ------------------------------------------- + +testing cutpoint: 87.4643 + + ---- view of lincomb & g_node & w_node ---- + + 63.6724 0 3.0000 + 69.1539 0 1.0000 + 69.9226 0 1.0000 + 70.6135 0 3.0000 + 71.0883 0 1.0000 + 73.4943 0 1.0000 + 75.5135 0 1.0000 + 76.1181 0 1.0000 + 78.9271 0 1.0000 + 79.5172 0 1.0000 + 80.3322 0 2.0000 + 82.4804 0 1.0000 + 84.2278 0 1.0000 + 84.9945 0 1.0000 + 86.0430 0 1.0000 + 87.4643 0 2.0000 + 88.1858 1.0000 1.0000 + 89.0251 1.0000 1.0000 + 90.6352 1.0000 3.0000 + 91.3406 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.44104 + ------------------------------------------- + +testing cutpoint: 119.021 + + ---- view of lincomb & g_node & w_node ---- + + 63.6724 0 3.0000 + 69.1539 0 1.0000 + 69.9226 0 1.0000 + 70.6135 0 3.0000 + 71.0883 0 1.0000 + 73.4943 0 1.0000 + 75.5135 0 1.0000 + 76.1181 0 1.0000 + 78.9271 0 1.0000 + 79.5172 0 1.0000 + 80.3322 0 2.0000 + 82.4804 0 1.0000 + 84.2278 0 1.0000 + 84.9945 0 1.0000 + 86.0430 0 1.0000 + 87.4643 0 2.0000 + 88.1858 0 1.0000 + 89.0251 0 1.0000 + 90.6352 0 3.0000 + 91.3406 0 1.0000 + + +logrank stat for this cutpoint: 17.6173 + ------------------------------------------- + +testing cutpoint: 122.852 + + ---- view of lincomb & g_node & w_node ---- + + 63.6724 0 3.0000 + 69.1539 0 1.0000 + 69.9226 0 1.0000 + 70.6135 0 3.0000 + 71.0883 0 1.0000 + 73.4943 0 1.0000 + 75.5135 0 1.0000 + 76.1181 0 1.0000 + 78.9271 0 1.0000 + 79.5172 0 1.0000 + 80.3322 0 2.0000 + 82.4804 0 1.0000 + 84.2278 0 1.0000 + 84.9945 0 1.0000 + 86.0430 0 1.0000 + 87.4643 0 2.0000 + 88.1858 0 1.0000 + 89.0251 0 1.0000 + 90.6352 0 3.0000 + 91.3406 0 1.0000 + + +logrank stat for this cutpoint: 15.635 + ------------------------------------------- + +Split successful: unique node assignments: + 2 3 4 + +growing node 2 + +beginning try no. 1 + + ---- view of x_node ---- + + 0 1.7500e+02 1.0000e+00 0 6.2000e+01 + 0 1.7500e+02 1.0000e+00 1.0000e+00 8.0000e+01 + 0 1.7800e+02 0 0 2.8300e+02 + 1.0000e+00 3.4500e+02 0 0 4.4700e+02 + 0 1.0920e+03 1.0000e+00 0 3.9900e+02 + 0 3.9500e+02 1.0000e+00 0 2.1400e+02 + 0 2.6000e+02 0 0 1.2400e+02 + 1.0000e+00 2.4400e+02 0 1.0000e+00 1.3200e+02 + 0 4.4800e+02 1.0000e+00 0 2.1000e+02 + 0 2.0600e+02 1.0000e+00 0 1.4500e+02 + 0 2.6100e+02 1.0000e+00 0 1.9000e+02 + 0 3.2500e+02 0 1.0000e+00 4.3000e+02 + 0 2.2200e+02 1.0000e+00 0 1.4400e+02 + 1.0000e+00 3.7200e+02 0 0 2.4000e+02 + 1.0000e+00 4.2000e+02 0 1.0000e+00 3.4400e+02 + 0 3.0000e+02 0 0 3.1900e+02 + 1.0000e+00 8.0800e+02 0 0 2.6800e+02 + 0 2.5700e+02 0 1.0000e+00 1.4000e+02 + 0 3.3200e+02 0 0 2.7700e+02 + 0 5.7600e+02 0 0 2.0000e+02 + + + ---- view of y_node ---- + + 4.1000e+01 1.0000e+00 + 7.7000e+01 1.0000e+00 + 1.3100e+02 1.0000e+00 + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.2100e+02 1.0000e+00 + 3.2600e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 3.8800e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.4900e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 172.122 + - n_events, left node: 6 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 795.884 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 1.9807e+02 + 2.6428e+02 + 3.0848e+02 + 3.4117e+02 + 3.4667e+02 + + +testing cutpoint: 198.069 + + ---- view of lincomb & g_node & w_node ---- + + 1.2779e+02 0 1.0000e+00 + 1.3399e+02 0 3.0000e+00 + 1.7212e+02 0 2.0000e+00 + 1.8169e+02 0 1.0000e+00 + 1.9193e+02 0 2.0000e+00 + 1.9577e+02 0 3.0000e+00 + 1.9807e+02 0 2.0000e+00 + 2.0181e+02 1.0000e+00 1.0000e+00 + 2.0431e+02 1.0000e+00 2.0000e+00 + 2.0853e+02 1.0000e+00 1.0000e+00 + 2.1423e+02 1.0000e+00 1.0000e+00 + 2.1780e+02 1.0000e+00 1.0000e+00 + 2.1972e+02 1.0000e+00 1.0000e+00 + 2.2998e+02 1.0000e+00 1.0000e+00 + 2.3092e+02 1.0000e+00 1.0000e+00 + 2.3268e+02 1.0000e+00 1.0000e+00 + 2.4184e+02 1.0000e+00 1.0000e+00 + 2.4700e+02 1.0000e+00 2.0000e+00 + 2.5320e+02 1.0000e+00 1.0000e+00 + 2.5401e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 150.737 + ------------------------------------------- + +testing cutpoint: 264.279 + + ---- view of lincomb & g_node & w_node ---- + + 1.2779e+02 0 1.0000e+00 + 1.3399e+02 0 3.0000e+00 + 1.7212e+02 0 2.0000e+00 + 1.8169e+02 0 1.0000e+00 + 1.9193e+02 0 2.0000e+00 + 1.9577e+02 0 3.0000e+00 + 1.9807e+02 0 2.0000e+00 + 2.0181e+02 0 1.0000e+00 + 2.0431e+02 0 2.0000e+00 + 2.0853e+02 0 1.0000e+00 + 2.1423e+02 0 1.0000e+00 + 2.1780e+02 0 1.0000e+00 + 2.1972e+02 0 1.0000e+00 + 2.2998e+02 0 1.0000e+00 + 2.3092e+02 0 1.0000e+00 + 2.3268e+02 0 1.0000e+00 + 2.4184e+02 0 1.0000e+00 + 2.4700e+02 0 2.0000e+00 + 2.5320e+02 0 1.0000e+00 + 2.5401e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.91762 + ------------------------------------------- + +testing cutpoint: 308.484 + + ---- view of lincomb & g_node & w_node ---- + + 1.2779e+02 0 1.0000e+00 + 1.3399e+02 0 3.0000e+00 + 1.7212e+02 0 2.0000e+00 + 1.8169e+02 0 1.0000e+00 + 1.9193e+02 0 2.0000e+00 + 1.9577e+02 0 3.0000e+00 + 1.9807e+02 0 2.0000e+00 + 2.0181e+02 0 1.0000e+00 + 2.0431e+02 0 2.0000e+00 + 2.0853e+02 0 1.0000e+00 + 2.1423e+02 0 1.0000e+00 + 2.1780e+02 0 1.0000e+00 + 2.1972e+02 0 1.0000e+00 + 2.2998e+02 0 1.0000e+00 + 2.3092e+02 0 1.0000e+00 + 2.3268e+02 0 1.0000e+00 + 2.4184e+02 0 1.0000e+00 + 2.4700e+02 0 2.0000e+00 + 2.5320e+02 0 1.0000e+00 + 2.5401e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.42141 + ------------------------------------------- + +testing cutpoint: 341.166 + + ---- view of lincomb & g_node & w_node ---- + + 1.2779e+02 0 1.0000e+00 + 1.3399e+02 0 3.0000e+00 + 1.7212e+02 0 2.0000e+00 + 1.8169e+02 0 1.0000e+00 + 1.9193e+02 0 2.0000e+00 + 1.9577e+02 0 3.0000e+00 + 1.9807e+02 0 2.0000e+00 + 2.0181e+02 0 1.0000e+00 + 2.0431e+02 0 2.0000e+00 + 2.0853e+02 0 1.0000e+00 + 2.1423e+02 0 1.0000e+00 + 2.1780e+02 0 1.0000e+00 + 2.1972e+02 0 1.0000e+00 + 2.2998e+02 0 1.0000e+00 + 2.3092e+02 0 1.0000e+00 + 2.3268e+02 0 1.0000e+00 + 2.4184e+02 0 1.0000e+00 + 2.4700e+02 0 2.0000e+00 + 2.5320e+02 0 1.0000e+00 + 2.5401e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 7.02763 + ------------------------------------------- + +testing cutpoint: 346.665 + + ---- view of lincomb & g_node & w_node ---- + + 1.2779e+02 0 1.0000e+00 + 1.3399e+02 0 3.0000e+00 + 1.7212e+02 0 2.0000e+00 + 1.8169e+02 0 1.0000e+00 + 1.9193e+02 0 2.0000e+00 + 1.9577e+02 0 3.0000e+00 + 1.9807e+02 0 2.0000e+00 + 2.0181e+02 0 1.0000e+00 + 2.0431e+02 0 2.0000e+00 + 2.0853e+02 0 1.0000e+00 + 2.1423e+02 0 1.0000e+00 + 2.1780e+02 0 1.0000e+00 + 2.1972e+02 0 1.0000e+00 + 2.2998e+02 0 1.0000e+00 + 2.3092e+02 0 1.0000e+00 + 2.3268e+02 0 1.0000e+00 + 2.4184e+02 0 1.0000e+00 + 2.4700e+02 0 2.0000e+00 + 2.5320e+02 0 1.0000e+00 + 2.5401e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 6.59639 + ------------------------------------------- + +Split successful: unique node assignments: + 3 4 5 6 + +growing node 3 + +beginning try no. 1 + +Column 8 was sampled but unique values of column 8 are 0 + +Column 4 was sampled but unique values of column 4 are 0 + + ---- view of x_node ---- + + 1.0000e+00 9.1000e+01 7.5000e+01 2.7500e+02 2.1700e+02 + 1.0000e+00 9.1000e+01 1.1000e+02 2.2700e+02 2.6400e+02 + 1.0000e+00 2.4200e+02 8.6000e+01 4.1600e+02 2.6900e+02 + 0 8.2000e+01 7.0000e+01 2.6000e+02 2.3100e+02 + 0 1.1300e+02 9.1000e+01 4.1200e+02 4.2200e+02 + 1.0000e+00 1.1300e+02 9.1000e+01 2.4600e+02 2.8800e+02 + 0 7.5000e+01 4.5000e+01 2.1900e+02 2.4600e+02 + 0 1.0400e+02 5.2000e+01 3.3500e+02 2.6800e+02 + 0 1.0300e+02 7.4000e+01 3.9300e+02 2.9500e+02 + 0 8.0000e+01 5.7000e+01 2.5300e+02 2.5200e+02 + 0 1.9500e+02 8.5000e+01 2.9100e+02 2.5100e+02 + 0 5.6000e+01 5.7000e+01 1.9800e+02 2.8000e+02 + 1.0000e+00 1.6900e+02 7.1000e+01 3.0400e+02 2.5500e+02 + 1.0000e+00 7.2000e+01 1.1315e+02 2.7900e+02 1.3600e+02 + 0 6.2000e+01 6.9750e+01 2.2500e+02 2.0000e+02 + 0 1.4600e+02 5.6000e+01 2.8000e+02 2.2700e+02 + 0 2.6000e+02 7.0000e+01 3.1800e+02 2.7900e+02 + 1.0000e+00 1.5400e+02 8.3700e+01 3.7600e+02 2.3800e+02 + 0 5.5000e+01 9.9000e+01 4.1400e+02 2.7100e+02 + 1.0000e+00 1.1800e+02 5.3000e+01 1.9300e+02 1.5600e+02 + + + ---- view of y_node ---- + + 5.3300e+02 0 + 7.3700e+02 0 + 7.9900e+02 1.0000e+00 + 9.9400e+02 0 + 1.0300e+03 0 + 1.1530e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.2950e+03 0 + 1.4010e+03 0 + 1.4180e+03 0 + 1.4330e+03 0 + 1.4550e+03 0 + 1.5040e+03 0 + 1.5760e+03 1.0000e+00 + 1.6140e+03 0 + 1.6140e+03 0 + 1.6820e+03 1.0000e+00 + 1.7020e+03 0 + 1.7350e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 195.26 + - n_events, left node: 1 + - n_risk, left node: 9 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 370.846 + - n_events, right node: 1 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 2.4650e+02 + 2.4741e+02 + 3.4294e+02 + 3.5494e+02 + 3.7085e+02 + + +testing cutpoint: 246.498 + + ---- view of lincomb & g_node & w_node ---- + + 1.5352e+02 0 1.0000e+00 + 1.6551e+02 0 3.0000e+00 + 1.8551e+02 0 1.0000e+00 + 1.8814e+02 0 1.0000e+00 + 1.9075e+02 0 1.0000e+00 + 1.9451e+02 0 1.0000e+00 + 1.9526e+02 0 1.0000e+00 + 1.9549e+02 0 2.0000e+00 + 2.0985e+02 0 3.0000e+00 + 2.1049e+02 0 1.0000e+00 + 2.1051e+02 0 1.0000e+00 + 2.1776e+02 0 1.0000e+00 + 2.1784e+02 0 1.0000e+00 + 2.2525e+02 0 1.0000e+00 + 2.2687e+02 0 1.0000e+00 + 2.2735e+02 0 2.0000e+00 + 2.2764e+02 0 2.0000e+00 + 2.2895e+02 0 1.0000e+00 + 2.2986e+02 0 1.0000e+00 + 2.3576e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 0.677928 + ------------------------------------------- + +testing cutpoint: 247.409 + + ---- view of lincomb & g_node & w_node ---- + + 1.5352e+02 0 1.0000e+00 + 1.6551e+02 0 3.0000e+00 + 1.8551e+02 0 1.0000e+00 + 1.8814e+02 0 1.0000e+00 + 1.9075e+02 0 1.0000e+00 + 1.9451e+02 0 1.0000e+00 + 1.9526e+02 0 1.0000e+00 + 1.9549e+02 0 2.0000e+00 + 2.0985e+02 0 3.0000e+00 + 2.1049e+02 0 1.0000e+00 + 2.1051e+02 0 1.0000e+00 + 2.1776e+02 0 1.0000e+00 + 2.1784e+02 0 1.0000e+00 + 2.2525e+02 0 1.0000e+00 + 2.2687e+02 0 1.0000e+00 + 2.2735e+02 0 2.0000e+00 + 2.2764e+02 0 2.0000e+00 + 2.2895e+02 0 1.0000e+00 + 2.2986e+02 0 1.0000e+00 + 2.3576e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 0.910392 + ------------------------------------------- + +testing cutpoint: 342.943 + + ---- view of lincomb & g_node & w_node ---- + + 1.5352e+02 0 1.0000e+00 + 1.6551e+02 0 3.0000e+00 + 1.8551e+02 0 1.0000e+00 + 1.8814e+02 0 1.0000e+00 + 1.9075e+02 0 1.0000e+00 + 1.9451e+02 0 1.0000e+00 + 1.9526e+02 0 1.0000e+00 + 1.9549e+02 0 2.0000e+00 + 2.0985e+02 0 3.0000e+00 + 2.1049e+02 0 1.0000e+00 + 2.1051e+02 0 1.0000e+00 + 2.1776e+02 0 1.0000e+00 + 2.1784e+02 0 1.0000e+00 + 2.2525e+02 0 1.0000e+00 + 2.2687e+02 0 1.0000e+00 + 2.2735e+02 0 2.0000e+00 + 2.2764e+02 0 2.0000e+00 + 2.2895e+02 0 1.0000e+00 + 2.2986e+02 0 1.0000e+00 + 2.3576e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 0.0660325 + ------------------------------------------- + +testing cutpoint: 354.94 + + ---- view of lincomb & g_node & w_node ---- + + 1.5352e+02 0 1.0000e+00 + 1.6551e+02 0 3.0000e+00 + 1.8551e+02 0 1.0000e+00 + 1.8814e+02 0 1.0000e+00 + 1.9075e+02 0 1.0000e+00 + 1.9451e+02 0 1.0000e+00 + 1.9526e+02 0 1.0000e+00 + 1.9549e+02 0 2.0000e+00 + 2.0985e+02 0 3.0000e+00 + 2.1049e+02 0 1.0000e+00 + 2.1051e+02 0 1.0000e+00 + 2.1776e+02 0 1.0000e+00 + 2.1784e+02 0 1.0000e+00 + 2.2525e+02 0 1.0000e+00 + 2.2687e+02 0 1.0000e+00 + 2.2735e+02 0 2.0000e+00 + 2.2764e+02 0 2.0000e+00 + 2.2895e+02 0 1.0000e+00 + 2.2986e+02 0 1.0000e+00 + 2.3576e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 0.34682 + ------------------------------------------- + +testing cutpoint: 370.846 + + ---- view of lincomb & g_node & w_node ---- + + 1.5352e+02 0 1.0000e+00 + 1.6551e+02 0 3.0000e+00 + 1.8551e+02 0 1.0000e+00 + 1.8814e+02 0 1.0000e+00 + 1.9075e+02 0 1.0000e+00 + 1.9451e+02 0 1.0000e+00 + 1.9526e+02 0 1.0000e+00 + 1.9549e+02 0 2.0000e+00 + 2.0985e+02 0 3.0000e+00 + 2.1049e+02 0 1.0000e+00 + 2.1051e+02 0 1.0000e+00 + 2.1776e+02 0 1.0000e+00 + 2.1784e+02 0 1.0000e+00 + 2.2525e+02 0 1.0000e+00 + 2.2687e+02 0 1.0000e+00 + 2.2735e+02 0 2.0000e+00 + 2.2764e+02 0 2.0000e+00 + 2.2895e+02 0 1.0000e+00 + 2.2986e+02 0 1.0000e+00 + 2.3576e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 3.06838 + ------------------------------------------- + +best split stat, 3.06838, was < split_min_stat, 3.84 +beginning try no. 2 + + ---- view of x_node ---- + + 1.1420e+03 0 9.1000e+01 0 2.7500e+02 + 1.1360e+03 0 9.1000e+01 1.0000e+00 2.2700e+02 + 9.6000e+02 0 2.4200e+02 0 4.1600e+02 + 1.1660e+03 1.0000e+00 8.2000e+01 1.0000e+00 2.6000e+02 + 1.2930e+03 1.0000e+00 1.1300e+02 1.0000e+00 4.1200e+02 + 7.9700e+02 0 1.1300e+02 1.0000e+00 2.4600e+02 + 6.6300e+02 0 7.5000e+01 1.0000e+00 2.1900e+02 + 6.5700e+02 0 1.0400e+02 1.0000e+00 3.3500e+02 + 1.3070e+03 1.0000e+00 1.0300e+02 1.0000e+00 3.9300e+02 + 6.8800e+02 0 8.0000e+01 1.0000e+00 2.5300e+02 + 1.0820e+03 1.0000e+00 1.9500e+02 1.0000e+00 2.9100e+02 + 9.1100e+02 1.0000e+00 5.6000e+01 1.0000e+00 1.9800e+02 + 1.6220e+03 1.0000e+00 1.6900e+02 1.0000e+00 3.0400e+02 + 6.7100e+02 1.0000e+00 7.2000e+01 1.0000e+00 2.7900e+02 + 9.3300e+02 0 6.2000e+01 1.0000e+00 2.2500e+02 + 3.7700e+02 0 1.4600e+02 1.0000e+00 2.8000e+02 + 6.1300e+02 0 2.6000e+02 1.0000e+00 3.1800e+02 + 1.0150e+03 0 1.5400e+02 0 3.7600e+02 + 1.0030e+03 0 5.5000e+01 1.0000e+00 4.1400e+02 + 4.6600e+02 1.0000e+00 1.1800e+02 1.0000e+00 1.9300e+02 + + + ---- view of y_node ---- + + 5.3300e+02 0 + 7.3700e+02 0 + 7.9900e+02 1.0000e+00 + 9.9400e+02 0 + 1.0300e+03 0 + 1.1530e+03 0 + 1.2300e+03 0 + 1.2710e+03 0 + 1.2950e+03 0 + 1.4010e+03 0 + 1.4180e+03 0 + 1.4330e+03 0 + 1.4550e+03 0 + 1.5040e+03 0 + 1.5760e+03 1.0000e+00 + 1.6140e+03 0 + 1.6140e+03 0 + 1.6820e+03 1.0000e+00 + 1.7020e+03 0 + 1.7350e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 451.451 + - n_events, left node: 3 + - n_risk, left node: 16 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 800.365 + - n_events, right node: 2 + - n_risk, right node: 10 + +Randomly sampled cutpoints: + 6.7283e+02 + 6.9008e+02 + 7.1415e+02 + 7.6112e+02 + 8.0037e+02 + + +testing cutpoint: 672.833 + + ---- view of lincomb & g_node & w_node ---- + + 2.8429e+02 0 1.0000e+00 + 3.5147e+02 0 2.0000e+00 + 3.5552e+02 0 1.0000e+00 + 3.5622e+02 0 1.0000e+00 + 3.7077e+02 0 1.0000e+00 + 3.8967e+02 0 1.0000e+00 + 3.9702e+02 0 1.0000e+00 + 4.2374e+02 0 2.0000e+00 + 4.3820e+02 0 2.0000e+00 + 4.5103e+02 0 1.0000e+00 + 4.5145e+02 0 3.0000e+00 + 4.5530e+02 0 3.0000e+00 + 4.7426e+02 0 1.0000e+00 + 4.9053e+02 0 1.0000e+00 + 4.9519e+02 0 1.0000e+00 + 5.1179e+02 0 1.0000e+00 + 5.1928e+02 0 3.0000e+00 + 5.2440e+02 0 2.0000e+00 + 5.2457e+02 0 2.0000e+00 + 5.3137e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.37313 + ------------------------------------------- + +testing cutpoint: 690.084 + + ---- view of lincomb & g_node & w_node ---- + + 2.8429e+02 0 1.0000e+00 + 3.5147e+02 0 2.0000e+00 + 3.5552e+02 0 1.0000e+00 + 3.5622e+02 0 1.0000e+00 + 3.7077e+02 0 1.0000e+00 + 3.8967e+02 0 1.0000e+00 + 3.9702e+02 0 1.0000e+00 + 4.2374e+02 0 2.0000e+00 + 4.3820e+02 0 2.0000e+00 + 4.5103e+02 0 1.0000e+00 + 4.5145e+02 0 3.0000e+00 + 4.5530e+02 0 3.0000e+00 + 4.7426e+02 0 1.0000e+00 + 4.9053e+02 0 1.0000e+00 + 4.9519e+02 0 1.0000e+00 + 5.1179e+02 0 1.0000e+00 + 5.1928e+02 0 3.0000e+00 + 5.2440e+02 0 2.0000e+00 + 5.2457e+02 0 2.0000e+00 + 5.3137e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.40373 + ------------------------------------------- + +testing cutpoint: 714.151 + + ---- view of lincomb & g_node & w_node ---- + + 2.8429e+02 0 1.0000e+00 + 3.5147e+02 0 2.0000e+00 + 3.5552e+02 0 1.0000e+00 + 3.5622e+02 0 1.0000e+00 + 3.7077e+02 0 1.0000e+00 + 3.8967e+02 0 1.0000e+00 + 3.9702e+02 0 1.0000e+00 + 4.2374e+02 0 2.0000e+00 + 4.3820e+02 0 2.0000e+00 + 4.5103e+02 0 1.0000e+00 + 4.5145e+02 0 3.0000e+00 + 4.5530e+02 0 3.0000e+00 + 4.7426e+02 0 1.0000e+00 + 4.9053e+02 0 1.0000e+00 + 4.9519e+02 0 1.0000e+00 + 5.1179e+02 0 1.0000e+00 + 5.1928e+02 0 3.0000e+00 + 5.2440e+02 0 2.0000e+00 + 5.2457e+02 0 2.0000e+00 + 5.3137e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 4.81935 + ------------------------------------------- + +testing cutpoint: 761.117 + + ---- view of lincomb & g_node & w_node ---- + + 2.8429e+02 0 1.0000e+00 + 3.5147e+02 0 2.0000e+00 + 3.5552e+02 0 1.0000e+00 + 3.5622e+02 0 1.0000e+00 + 3.7077e+02 0 1.0000e+00 + 3.8967e+02 0 1.0000e+00 + 3.9702e+02 0 1.0000e+00 + 4.2374e+02 0 2.0000e+00 + 4.3820e+02 0 2.0000e+00 + 4.5103e+02 0 1.0000e+00 + 4.5145e+02 0 3.0000e+00 + 4.5530e+02 0 3.0000e+00 + 4.7426e+02 0 1.0000e+00 + 4.9053e+02 0 1.0000e+00 + 4.9519e+02 0 1.0000e+00 + 5.1179e+02 0 1.0000e+00 + 5.1928e+02 0 3.0000e+00 + 5.2440e+02 0 2.0000e+00 + 5.2457e+02 0 2.0000e+00 + 5.3137e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 0.0872877 + ------------------------------------------- + +testing cutpoint: 800.365 + + ---- view of lincomb & g_node & w_node ---- + + 2.8429e+02 0 1.0000e+00 + 3.5147e+02 0 2.0000e+00 + 3.5552e+02 0 1.0000e+00 + 3.5622e+02 0 1.0000e+00 + 3.7077e+02 0 1.0000e+00 + 3.8967e+02 0 1.0000e+00 + 3.9702e+02 0 1.0000e+00 + 4.2374e+02 0 2.0000e+00 + 4.3820e+02 0 2.0000e+00 + 4.5103e+02 0 1.0000e+00 + 4.5145e+02 0 3.0000e+00 + 4.5530e+02 0 3.0000e+00 + 4.7426e+02 0 1.0000e+00 + 4.9053e+02 0 1.0000e+00 + 4.9519e+02 0 1.0000e+00 + 5.1179e+02 0 1.0000e+00 + 5.1928e+02 0 3.0000e+00 + 5.2440e+02 0 2.0000e+00 + 5.2457e+02 0 2.0000e+00 + 5.3137e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.64608 + ------------------------------------------- + +Split successful: unique node assignments: + 4 5 6 7 8 + +growing node 4 + +beginning try no. 1 + + ---- view of x_node ---- + + 0 2.5000e+00 5.7000e+01 1.0000e+00 1.0000e+00 + 0 2.4000e+00 2.2500e+02 0 0 + 0 3.2000e+00 9.1000e+01 0 1.0000e+00 + 0 2.3000e+00 1.4500e+02 0 1.0000e+00 + 0 4.4000e+00 3.0800e+02 0 1.0000e+00 + 0 1.4000e+00 2.1000e+02 0 1.0000e+00 + 0 3.5000e+00 1.2100e+02 0 1.0000e+00 + 1.0000e+00 8.0000e-01 5.2000e+01 0 0 + 0 8.5000e+00 1.9600e+02 0 1.0000e+00 + 0 2.1000e+00 5.2000e+01 0 0 + 0 2.5000e+00 2.1700e+02 0 0 + 0 1.0000e+00 9.4000e+01 0 0 + 1.0000e+00 2.0000e+00 5.0000e+01 0 0 + 0 7.1000e+00 3.8000e+02 1.0000e+00 1.0000e+00 + 0 1.1000e+00 1.1600e+02 0 1.0000e+00 + 0 1.5000e+00 6.7000e+01 0 0 + 0 3.5000e+00 4.4400e+02 0 0 + 0 1.6000e+00 6.7000e+01 0 0 + 1.0000e+00 9.0000e-01 8.1000e+01 0 0 + 0 7.0000e-01 4.1000e+01 0 1.0000e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.4000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 5.5200e+02 1.0000e+00 + 8.3700e+02 0 + 1.0120e+03 1.0000e+00 + 1.0840e+03 0 + 1.1490e+03 0 + 1.3200e+03 0 + 1.4870e+03 1.0000e+00 + 1.5360e+03 1.0000e+00 + 1.5690e+03 0 + 1.7410e+03 1.0000e+00 + 1.7650e+03 0 + 1.7700e+03 0 + 1.9080e+03 0 + 2.0330e+03 0 + 2.1570e+03 0 + 2.2240e+03 0 + 2.3320e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 33.0019 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 197.708 + - n_events, right node: 3 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + 6.1870e+01 + 6.9304e+01 + 1.1288e+02 + 1.2114e+02 + 1.9771e+02 + + +testing cutpoint: 61.8698 + + ---- view of lincomb & g_node & w_node ---- + + 1.3728e+01 0 3.0000e+00 + 1.9812e+01 0 1.0000e+00 + 3.3002e+01 0 1.0000e+00 + 3.8119e+01 0 2.0000e+00 + 4.0317e+01 0 2.0000e+00 + 4.7798e+01 0 3.0000e+00 + 4.8400e+01 0 2.0000e+00 + 4.8875e+01 0 2.0000e+00 + 5.4797e+01 0 2.0000e+00 + 5.5146e+01 0 1.0000e+00 + 5.5872e+01 0 2.0000e+00 + 6.1770e+01 0 2.0000e+00 + 6.1870e+01 0 1.0000e+00 + 6.9304e+01 1.0000e+00 2.0000e+00 + 7.4588e+01 1.0000e+00 2.0000e+00 + 8.2597e+01 1.0000e+00 1.0000e+00 + 8.5560e+01 1.0000e+00 2.0000e+00 + 8.5594e+01 1.0000e+00 1.0000e+00 + 1.0599e+02 1.0000e+00 2.0000e+00 + 1.1288e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 0.0761819 + ------------------------------------------- + +testing cutpoint: 69.3042 + + ---- view of lincomb & g_node & w_node ---- + + 1.3728e+01 0 3.0000e+00 + 1.9812e+01 0 1.0000e+00 + 3.3002e+01 0 1.0000e+00 + 3.8119e+01 0 2.0000e+00 + 4.0317e+01 0 2.0000e+00 + 4.7798e+01 0 3.0000e+00 + 4.8400e+01 0 2.0000e+00 + 4.8875e+01 0 2.0000e+00 + 5.4797e+01 0 2.0000e+00 + 5.5146e+01 0 1.0000e+00 + 5.5872e+01 0 2.0000e+00 + 6.1770e+01 0 2.0000e+00 + 6.1870e+01 0 1.0000e+00 + 6.9304e+01 0 2.0000e+00 + 7.4588e+01 1.0000e+00 2.0000e+00 + 8.2597e+01 1.0000e+00 1.0000e+00 + 8.5560e+01 1.0000e+00 2.0000e+00 + 8.5594e+01 1.0000e+00 1.0000e+00 + 1.0599e+02 1.0000e+00 2.0000e+00 + 1.1288e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 0.0141435 + ------------------------------------------- + +testing cutpoint: 112.881 + + ---- view of lincomb & g_node & w_node ---- + + 1.3728e+01 0 3.0000e+00 + 1.9812e+01 0 1.0000e+00 + 3.3002e+01 0 1.0000e+00 + 3.8119e+01 0 2.0000e+00 + 4.0317e+01 0 2.0000e+00 + 4.7798e+01 0 3.0000e+00 + 4.8400e+01 0 2.0000e+00 + 4.8875e+01 0 2.0000e+00 + 5.4797e+01 0 2.0000e+00 + 5.5146e+01 0 1.0000e+00 + 5.5872e+01 0 2.0000e+00 + 6.1770e+01 0 2.0000e+00 + 6.1870e+01 0 1.0000e+00 + 6.9304e+01 0 2.0000e+00 + 7.4588e+01 0 2.0000e+00 + 8.2597e+01 0 1.0000e+00 + 8.5560e+01 0 2.0000e+00 + 8.5594e+01 0 1.0000e+00 + 1.0599e+02 0 2.0000e+00 + 1.1288e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 2.78764 + ------------------------------------------- + +testing cutpoint: 121.141 + + ---- view of lincomb & g_node & w_node ---- + + 1.3728e+01 0 3.0000e+00 + 1.9812e+01 0 1.0000e+00 + 3.3002e+01 0 1.0000e+00 + 3.8119e+01 0 2.0000e+00 + 4.0317e+01 0 2.0000e+00 + 4.7798e+01 0 3.0000e+00 + 4.8400e+01 0 2.0000e+00 + 4.8875e+01 0 2.0000e+00 + 5.4797e+01 0 2.0000e+00 + 5.5146e+01 0 1.0000e+00 + 5.5872e+01 0 2.0000e+00 + 6.1770e+01 0 2.0000e+00 + 6.1870e+01 0 1.0000e+00 + 6.9304e+01 0 2.0000e+00 + 7.4588e+01 0 2.0000e+00 + 8.2597e+01 0 1.0000e+00 + 8.5560e+01 0 2.0000e+00 + 8.5594e+01 0 1.0000e+00 + 1.0599e+02 0 2.0000e+00 + 1.1288e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 5.53915 + ------------------------------------------- + +testing cutpoint: 197.708 + + ---- view of lincomb & g_node & w_node ---- + + 1.3728e+01 0 3.0000e+00 + 1.9812e+01 0 1.0000e+00 + 3.3002e+01 0 1.0000e+00 + 3.8119e+01 0 2.0000e+00 + 4.0317e+01 0 2.0000e+00 + 4.7798e+01 0 3.0000e+00 + 4.8400e+01 0 2.0000e+00 + 4.8875e+01 0 2.0000e+00 + 5.4797e+01 0 2.0000e+00 + 5.5146e+01 0 1.0000e+00 + 5.5872e+01 0 2.0000e+00 + 6.1770e+01 0 2.0000e+00 + 6.1870e+01 0 1.0000e+00 + 6.9304e+01 0 2.0000e+00 + 7.4588e+01 0 2.0000e+00 + 8.2597e+01 0 1.0000e+00 + 8.5560e+01 0 2.0000e+00 + 8.5594e+01 0 1.0000e+00 + 1.0599e+02 0 2.0000e+00 + 1.1288e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 2.15263 + ------------------------------------------- + +Split successful: unique node assignments: + 5 6 7 8 9 10 + +growing node 5 + +sprouting new leaf with node 5 + + ---- view of leaf_data ---- + + 4.1000e+01 9.2857e-01 7.1429e-02 + 7.7000e+01 7.1429e-01 3.0220e-01 + 1.3100e+02 5.0000e-01 6.0220e-01 + 3.2100e+02 3.5714e-01 8.8791e-01 + 3.2600e+02 2.1429e-01 1.2879e+00 + + +growing node 6 + +beginning try no. 1 + + ---- view of x_node ---- + + 0 1.0000e+00 0 0 7.2000e+01 + 0 0 0 0 4.3200e+02 + 1.0000e+00 0 0 0 1.9100e+02 + 1.0000e+00 0 0 0 1.5500e+02 + 1.0000e+00 0 0 0 1.7200e+02 + 0 0 0 1.0000e+00 5.6000e+01 + 0 1.0000e+00 0 0 1.3500e+02 + 0 1.0000e+00 0 1.0000e+00 9.1000e+01 + 0 0 0 0 9.9000e+01 + 0 1.0000e+00 0 0 1.3700e+02 + 0 0 0 1.0000e+00 1.1200e+02 + 0 0 0 0 1.0300e+02 + 0 0 1.0000e+00 0 1.4900e+02 + 0 0 0 0 2.1000e+02 + 0 0 0 0 1.5700e+02 + 0 0 1.0000e+00 0 2.0500e+02 + 0 0 0 0 1.3100e+02 + 0 0 0 0 1.3900e+02 + 0 0 1.0000e+00 0 1.0000e+02 + 0 1.0000e+00 0 1.0000e+00 1.7100e+02 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.3900e+02 0 + 9.4300e+02 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 37.1724 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 149.199 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 3.8812e+01 + 7.1575e+01 + 7.2705e+01 + 8.6334e+01 + 1.1270e+02 + + +testing cutpoint: 38.8124 + + ---- view of lincomb & g_node & w_node ---- + + 18.0395 0 1.0000 + 24.1427 0 1.0000 + 31.4636 0 1.0000 + 36.6257 0 1.0000 + 37.1724 0 2.0000 + 37.2624 0 1.0000 + 38.7755 0 1.0000 + 38.8124 0 1.0000 + 39.3222 1.0000 1.0000 + 39.8688 1.0000 1.0000 + 40.9621 1.0000 1.0000 + 44.5833 1.0000 1.0000 + 45.9188 1.0000 1.0000 + 46.4655 1.0000 2.0000 + 47.1021 1.0000 1.0000 + 48.6153 1.0000 1.0000 + 48.7421 1.0000 1.0000 + 49.1988 1.0000 1.0000 + 50.8387 1.0000 2.0000 + 51.1063 1.0000 1.0000 + + +logrank stat for this cutpoint: 3.69967 + ------------------------------------------- + +testing cutpoint: 71.5747 + + ---- view of lincomb & g_node & w_node ---- + + 18.0395 0 1.0000 + 24.1427 0 1.0000 + 31.4636 0 1.0000 + 36.6257 0 1.0000 + 37.1724 0 2.0000 + 37.2624 0 1.0000 + 38.7755 0 1.0000 + 38.8124 0 1.0000 + 39.3222 0 1.0000 + 39.8688 0 1.0000 + 40.9621 0 1.0000 + 44.5833 0 1.0000 + 45.9188 0 1.0000 + 46.4655 0 2.0000 + 47.1021 0 1.0000 + 48.6153 0 1.0000 + 48.7421 0 1.0000 + 49.1988 0 1.0000 + 50.8387 0 2.0000 + 51.1063 0 1.0000 + + +logrank stat for this cutpoint: 9.54929 + ------------------------------------------- + +testing cutpoint: 72.7048 + + ---- view of lincomb & g_node & w_node ---- + + 18.0395 0 1.0000 + 24.1427 0 1.0000 + 31.4636 0 1.0000 + 36.6257 0 1.0000 + 37.1724 0 2.0000 + 37.2624 0 1.0000 + 38.7755 0 1.0000 + 38.8124 0 1.0000 + 39.3222 0 1.0000 + 39.8688 0 1.0000 + 40.9621 0 1.0000 + 44.5833 0 1.0000 + 45.9188 0 1.0000 + 46.4655 0 2.0000 + 47.1021 0 1.0000 + 48.6153 0 1.0000 + 48.7421 0 1.0000 + 49.1988 0 1.0000 + 50.8387 0 2.0000 + 51.1063 0 1.0000 + + +logrank stat for this cutpoint: 11.0554 + ------------------------------------------- + +testing cutpoint: 86.3343 + + ---- view of lincomb & g_node & w_node ---- + + 18.0395 0 1.0000 + 24.1427 0 1.0000 + 31.4636 0 1.0000 + 36.6257 0 1.0000 + 37.1724 0 2.0000 + 37.2624 0 1.0000 + 38.7755 0 1.0000 + 38.8124 0 1.0000 + 39.3222 0 1.0000 + 39.8688 0 1.0000 + 40.9621 0 1.0000 + 44.5833 0 1.0000 + 45.9188 0 1.0000 + 46.4655 0 2.0000 + 47.1021 0 1.0000 + 48.6153 0 1.0000 + 48.7421 0 1.0000 + 49.1988 0 1.0000 + 50.8387 0 2.0000 + 51.1063 0 1.0000 + + +logrank stat for this cutpoint: 10.1842 + ------------------------------------------- + +testing cutpoint: 112.701 + + ---- view of lincomb & g_node & w_node ---- + + 18.0395 0 1.0000 + 24.1427 0 1.0000 + 31.4636 0 1.0000 + 36.6257 0 1.0000 + 37.1724 0 2.0000 + 37.2624 0 1.0000 + 38.7755 0 1.0000 + 38.8124 0 1.0000 + 39.3222 0 1.0000 + 39.8688 0 1.0000 + 40.9621 0 1.0000 + 44.5833 0 1.0000 + 45.9188 0 1.0000 + 46.4655 0 2.0000 + 47.1021 0 1.0000 + 48.6153 0 1.0000 + 48.7421 0 1.0000 + 49.1988 0 1.0000 + 50.8387 0 2.0000 + 51.1063 0 1.0000 + + +logrank stat for this cutpoint: 7.54068 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 9 10 11 12 + +growing node 7 + +sprouting new leaf with node 7 + + ---- view of leaf_data ---- + + 1.5760e+03 9.8113e-01 1.8868e-02 + 2.0550e+03 9.0566e-01 9.5791e-02 + 2.0900e+03 8.8050e-01 1.2357e-01 + 2.5830e+03 8.2871e-01 1.8239e-01 + 3.7620e+03 4.7355e-01 6.1096e-01 + + +growing node 8 + +sprouting new leaf with node 8 + + ---- view of leaf_data ---- + + 7.9900e+02 9.6667e-01 3.3333e-02 + 1.6820e+03 8.0556e-01 2.0000e-01 + 2.1050e+03 6.5909e-01 3.8182e-01 + + +growing node 9 + +beginning try no. 1 + +Column 7 was sampled but unique values of column 7 are 0 + + ---- view of x_node ---- + + 1.1000e+02 3.6700e+00 1.0000e+00 4.8964e+01 1.0200e+02 + 1.6000e+02 3.1900e+00 0 5.8817e+01 1.0100e+02 + 2.9600e+02 3.2000e+00 0 4.6382e+01 1.4600e+02 + 3.4400e+02 3.5600e+00 0 3.0574e+01 5.9000e+01 + 1.7800e+02 3.5000e+00 0 6.2908e+01 1.8800e+02 + 2.8900e+02 3.5000e+00 0 5.0472e+01 1.7700e+02 + 2.0000e+02 3.6500e+00 0 5.2444e+01 9.8000e+01 + 3.1700e+02 3.3500e+00 0 6.8463e+01 9.0000e+01 + 3.4100e+02 3.7900e+00 0 3.8382e+01 1.0600e+02 + 1.7600e+02 4.1700e+00 0 4.2713e+01 8.5000e+01 + 2.9800e+02 3.3700e+00 0 4.9763e+01 9.0000e+01 + 1.6400e+02 3.4800e+00 0 6.2623e+01 9.8000e+01 + 2.8300e+02 3.4800e+00 0 5.5726e+01 8.8000e+01 + 2.3800e+02 3.5100e+00 0 4.7181e+01 1.3700e+02 + 3.1300e+02 3.3700e+00 0 3.6493e+01 1.1800e+02 + 1.2800e+02 3.3600e+00 0 5.3509e+01 7.3000e+01 + 1.6500e+02 3.9500e+00 0 6.2645e+01 9.9000e+01 + 1.8100e+02 3.8300e+00 0 4.0553e+01 1.7500e+02 + 3.3600e+02 3.7700e+00 0 4.7036e+01 5.6000e+01 + 1.9900e+02 3.5500e+00 1.0000e+00 3.7582e+01 5.0000e+01 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.0840e+03 0 + 1.1490e+03 0 + 1.4870e+03 1.0000e+00 + 1.5690e+03 0 + 1.7410e+03 1.0000e+00 + 1.7700e+03 0 + 1.9080e+03 0 + 2.1570e+03 0 + 2.2240e+03 0 + 2.3320e+03 0 + 2.4190e+03 1.0000e+00 + 2.4680e+03 0 + 2.4750e+03 0 + 2.5980e+03 1.0000e+00 + 2.7960e+03 1.0000e+00 + 2.9440e+03 0 + 3.0500e+03 0 + 3.4280e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 112.85 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 174.237 + - n_events, right node: 2 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 1.2128e+02 + 1.2759e+02 + 1.2866e+02 + 1.3940e+02 + 1.7424e+02 + + +testing cutpoint: 121.279 + + ---- view of lincomb & g_node & w_node ---- + + 8.8584e+01 0 1.0000e+00 + 9.8528e+01 0 2.0000e+00 + 1.1115e+02 0 1.0000e+00 + 1.1285e+02 0 1.0000e+00 + 1.1410e+02 0 1.0000e+00 + 1.1762e+02 0 2.0000e+00 + 1.2128e+02 0 2.0000e+00 + 1.2620e+02 1.0000e+00 1.0000e+00 + 1.2655e+02 1.0000e+00 2.0000e+00 + 1.2759e+02 1.0000e+00 3.0000e+00 + 1.2866e+02 1.0000e+00 3.0000e+00 + 1.3792e+02 1.0000e+00 1.0000e+00 + 1.3940e+02 1.0000e+00 2.0000e+00 + 1.5092e+02 1.0000e+00 2.0000e+00 + 1.5356e+02 1.0000e+00 2.0000e+00 + 1.5601e+02 1.0000e+00 1.0000e+00 + 1.6056e+02 1.0000e+00 2.0000e+00 + 1.7424e+02 1.0000e+00 2.0000e+00 + 1.7687e+02 1.0000e+00 1.0000e+00 + 1.9243e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 1.00808 + ------------------------------------------- + +testing cutpoint: 127.588 + + ---- view of lincomb & g_node & w_node ---- + + 8.8584e+01 0 1.0000e+00 + 9.8528e+01 0 2.0000e+00 + 1.1115e+02 0 1.0000e+00 + 1.1285e+02 0 1.0000e+00 + 1.1410e+02 0 1.0000e+00 + 1.1762e+02 0 2.0000e+00 + 1.2128e+02 0 2.0000e+00 + 1.2620e+02 0 1.0000e+00 + 1.2655e+02 0 2.0000e+00 + 1.2759e+02 0 3.0000e+00 + 1.2866e+02 1.0000e+00 3.0000e+00 + 1.3792e+02 1.0000e+00 1.0000e+00 + 1.3940e+02 1.0000e+00 2.0000e+00 + 1.5092e+02 1.0000e+00 2.0000e+00 + 1.5356e+02 1.0000e+00 2.0000e+00 + 1.5601e+02 1.0000e+00 1.0000e+00 + 1.6056e+02 1.0000e+00 2.0000e+00 + 1.7424e+02 1.0000e+00 2.0000e+00 + 1.7687e+02 1.0000e+00 1.0000e+00 + 1.9243e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 0.119626 + ------------------------------------------- + +testing cutpoint: 128.657 + + ---- view of lincomb & g_node & w_node ---- + + 8.8584e+01 0 1.0000e+00 + 9.8528e+01 0 2.0000e+00 + 1.1115e+02 0 1.0000e+00 + 1.1285e+02 0 1.0000e+00 + 1.1410e+02 0 1.0000e+00 + 1.1762e+02 0 2.0000e+00 + 1.2128e+02 0 2.0000e+00 + 1.2620e+02 0 1.0000e+00 + 1.2655e+02 0 2.0000e+00 + 1.2759e+02 0 3.0000e+00 + 1.2866e+02 0 3.0000e+00 + 1.3792e+02 1.0000e+00 1.0000e+00 + 1.3940e+02 1.0000e+00 2.0000e+00 + 1.5092e+02 1.0000e+00 2.0000e+00 + 1.5356e+02 1.0000e+00 2.0000e+00 + 1.5601e+02 1.0000e+00 1.0000e+00 + 1.6056e+02 1.0000e+00 2.0000e+00 + 1.7424e+02 1.0000e+00 2.0000e+00 + 1.7687e+02 1.0000e+00 1.0000e+00 + 1.9243e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 1.20047 + ------------------------------------------- + +testing cutpoint: 139.399 + + ---- view of lincomb & g_node & w_node ---- + + 8.8584e+01 0 1.0000e+00 + 9.8528e+01 0 2.0000e+00 + 1.1115e+02 0 1.0000e+00 + 1.1285e+02 0 1.0000e+00 + 1.1410e+02 0 1.0000e+00 + 1.1762e+02 0 2.0000e+00 + 1.2128e+02 0 2.0000e+00 + 1.2620e+02 0 1.0000e+00 + 1.2655e+02 0 2.0000e+00 + 1.2759e+02 0 3.0000e+00 + 1.2866e+02 0 3.0000e+00 + 1.3792e+02 0 1.0000e+00 + 1.3940e+02 0 2.0000e+00 + 1.5092e+02 1.0000e+00 2.0000e+00 + 1.5356e+02 1.0000e+00 2.0000e+00 + 1.5601e+02 1.0000e+00 1.0000e+00 + 1.6056e+02 1.0000e+00 2.0000e+00 + 1.7424e+02 1.0000e+00 2.0000e+00 + 1.7687e+02 1.0000e+00 1.0000e+00 + 1.9243e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 1.62323 + ------------------------------------------- + +testing cutpoint: 174.237 + + ---- view of lincomb & g_node & w_node ---- + + 8.8584e+01 0 1.0000e+00 + 9.8528e+01 0 2.0000e+00 + 1.1115e+02 0 1.0000e+00 + 1.1285e+02 0 1.0000e+00 + 1.1410e+02 0 1.0000e+00 + 1.1762e+02 0 2.0000e+00 + 1.2128e+02 0 2.0000e+00 + 1.2620e+02 0 1.0000e+00 + 1.2655e+02 0 2.0000e+00 + 1.2759e+02 0 3.0000e+00 + 1.2866e+02 0 3.0000e+00 + 1.3792e+02 0 1.0000e+00 + 1.3940e+02 0 2.0000e+00 + 1.5092e+02 0 2.0000e+00 + 1.5356e+02 0 2.0000e+00 + 1.5601e+02 0 1.0000e+00 + 1.6056e+02 0 2.0000e+00 + 1.7424e+02 0 2.0000e+00 + 1.7687e+02 1.0000e+00 1.0000e+00 + 1.9243e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 4.64196 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 11 12 13 14 + +growing node 10 + +sprouting new leaf with node 10 + + ---- view of leaf_data ---- + + 1.4000e+02 7.5000e-01 2.5000e-01 + 5.5200e+02 6.6667e-01 3.6111e-01 + 1.0120e+03 5.7143e-01 5.0397e-01 + 1.5360e+03 4.5714e-01 7.0397e-01 + 3.3950e+03 0 1.7040e+00 + + +growing node 11 + +beginning try no. 1 + + ---- view of x_node ---- + + 0 0 0 2.1855e+02 4.4000e+00 + 1.0000e+00 1.0000e+00 0 2.4645e+02 3.4700e+00 + 1.0000e+00 0 0 7.7500e+01 3.2600e+00 + 1.0000e+00 1.0000e+00 0 1.3020e+02 2.9400e+00 + 1.0000e+00 1.0000e+00 0 1.0230e+02 3.7900e+00 + 1.0000e+00 1.0000e+00 0 1.3485e+02 3.6000e+00 + 1.0000e+00 1.0000e+00 0 1.5345e+02 3.2000e+00 + 0 0 0 1.7100e+02 3.3500e+00 + 1.0000e+00 1.0000e+00 0 2.0305e+02 1.9600e+00 + 0 0 0 1.5000e+02 3.7600e+00 + 1.0000e+00 1.0000e+00 0 1.9300e+02 3.0700e+00 + 0 1.0000e+00 0 9.2000e+01 3.7700e+00 + 0 0 0 1.8800e+02 3.5000e+00 + 1.0000e+00 0 0 1.6585e+02 3.4300e+00 + 1.0000e+00 1.0000e+00 1.0000e+00 7.3530e+01 3.4000e+00 + 0 0 0 8.4000e+01 3.5600e+00 + 1.0000e+00 1.0000e+00 0 1.5035e+02 3.7700e+00 + 1.0000e+00 0 0 9.2000e+01 3.1200e+00 + 0 0 0 8.7000e+01 3.4600e+00 + 1.0000e+00 1.0000e+00 0 2.2010e+02 3.3600e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3900e+02 0 + 1.1650e+03 1.0000e+00 + 1.2930e+03 0 + 1.3020e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.4130e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.4340e+03 0 + 1.4350e+03 0 + 1.5420e+03 0 + 1.5580e+03 0 + 1.7690e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 56.5261 + - n_events, left node: 3 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 157.41 + - n_events, right node: 2 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 6.9972e+01 + 7.9406e+01 + 1.0498e+02 + 1.2681e+02 + 1.3053e+02 + + +testing cutpoint: 69.9717 + + ---- view of lincomb & g_node & w_node ---- + + 4.4300e+01 0 2.0000e+00 + 5.1532e+01 0 1.0000e+00 + 5.6434e+01 0 1.0000e+00 + 5.6526e+01 0 3.0000e+00 + 5.8098e+01 0 1.0000e+00 + 6.0114e+01 0 1.0000e+00 + 6.4277e+01 0 4.0000e+00 + 6.6516e+01 0 3.0000e+00 + 6.9972e+01 0 1.0000e+00 + 7.0813e+01 1.0000e+00 1.0000e+00 + 7.1018e+01 1.0000e+00 1.0000e+00 + 7.9406e+01 1.0000e+00 1.0000e+00 + 7.9416e+01 1.0000e+00 2.0000e+00 + 8.2709e+01 1.0000e+00 2.0000e+00 + 8.2764e+01 1.0000e+00 1.0000e+00 + 8.7513e+01 1.0000e+00 1.0000e+00 + 9.7334e+01 1.0000e+00 1.0000e+00 + 1.0024e+02 1.0000e+00 1.0000e+00 + 1.0392e+02 1.0000e+00 2.0000e+00 + 1.0498e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 0.0366863 + ------------------------------------------- + +testing cutpoint: 79.4056 + + ---- view of lincomb & g_node & w_node ---- + + 4.4300e+01 0 2.0000e+00 + 5.1532e+01 0 1.0000e+00 + 5.6434e+01 0 1.0000e+00 + 5.6526e+01 0 3.0000e+00 + 5.8098e+01 0 1.0000e+00 + 6.0114e+01 0 1.0000e+00 + 6.4277e+01 0 4.0000e+00 + 6.6516e+01 0 3.0000e+00 + 6.9972e+01 0 1.0000e+00 + 7.0813e+01 0 1.0000e+00 + 7.1018e+01 0 1.0000e+00 + 7.9406e+01 0 1.0000e+00 + 7.9416e+01 1.0000e+00 2.0000e+00 + 8.2709e+01 1.0000e+00 2.0000e+00 + 8.2764e+01 1.0000e+00 1.0000e+00 + 8.7513e+01 1.0000e+00 1.0000e+00 + 9.7334e+01 1.0000e+00 1.0000e+00 + 1.0024e+02 1.0000e+00 1.0000e+00 + 1.0392e+02 1.0000e+00 2.0000e+00 + 1.0498e+02 1.0000e+00 2.0000e+00 + + +logrank stat for this cutpoint: 0.196808 + ------------------------------------------- + +testing cutpoint: 104.978 + + ---- view of lincomb & g_node & w_node ---- + + 4.4300e+01 0 2.0000e+00 + 5.1532e+01 0 1.0000e+00 + 5.6434e+01 0 1.0000e+00 + 5.6526e+01 0 3.0000e+00 + 5.8098e+01 0 1.0000e+00 + 6.0114e+01 0 1.0000e+00 + 6.4277e+01 0 4.0000e+00 + 6.6516e+01 0 3.0000e+00 + 6.9972e+01 0 1.0000e+00 + 7.0813e+01 0 1.0000e+00 + 7.1018e+01 0 1.0000e+00 + 7.9406e+01 0 1.0000e+00 + 7.9416e+01 0 2.0000e+00 + 8.2709e+01 0 2.0000e+00 + 8.2764e+01 0 1.0000e+00 + 8.7513e+01 0 1.0000e+00 + 9.7334e+01 0 1.0000e+00 + 1.0024e+02 0 1.0000e+00 + 1.0392e+02 0 2.0000e+00 + 1.0498e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 0.00933041 + ------------------------------------------- + +testing cutpoint: 126.814 + + ---- view of lincomb & g_node & w_node ---- + + 4.4300e+01 0 2.0000e+00 + 5.1532e+01 0 1.0000e+00 + 5.6434e+01 0 1.0000e+00 + 5.6526e+01 0 3.0000e+00 + 5.8098e+01 0 1.0000e+00 + 6.0114e+01 0 1.0000e+00 + 6.4277e+01 0 4.0000e+00 + 6.6516e+01 0 3.0000e+00 + 6.9972e+01 0 1.0000e+00 + 7.0813e+01 0 1.0000e+00 + 7.1018e+01 0 1.0000e+00 + 7.9406e+01 0 1.0000e+00 + 7.9416e+01 0 2.0000e+00 + 8.2709e+01 0 2.0000e+00 + 8.2764e+01 0 1.0000e+00 + 8.7513e+01 0 1.0000e+00 + 9.7334e+01 0 1.0000e+00 + 1.0024e+02 0 1.0000e+00 + 1.0392e+02 0 2.0000e+00 + 1.0498e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 0.119684 + ------------------------------------------- + +testing cutpoint: 130.527 + + ---- view of lincomb & g_node & w_node ---- + + 4.4300e+01 0 2.0000e+00 + 5.1532e+01 0 1.0000e+00 + 5.6434e+01 0 1.0000e+00 + 5.6526e+01 0 3.0000e+00 + 5.8098e+01 0 1.0000e+00 + 6.0114e+01 0 1.0000e+00 + 6.4277e+01 0 4.0000e+00 + 6.6516e+01 0 3.0000e+00 + 6.9972e+01 0 1.0000e+00 + 7.0813e+01 0 1.0000e+00 + 7.1018e+01 0 1.0000e+00 + 7.9406e+01 0 1.0000e+00 + 7.9416e+01 0 2.0000e+00 + 8.2709e+01 0 2.0000e+00 + 8.2764e+01 0 1.0000e+00 + 8.7513e+01 0 1.0000e+00 + 9.7334e+01 0 1.0000e+00 + 1.0024e+02 0 1.0000e+00 + 1.0392e+02 0 2.0000e+00 + 1.0498e+02 0 2.0000e+00 + + +logrank stat for this cutpoint: 0.829171 + ------------------------------------------- + +best split stat, 0.829171, was < split_min_stat, 3.84 +beginning try no. 2 + + ---- view of x_node ---- + + 3.4500e+02 1.0000e+00 0 0 0 + 3.2500e+02 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 + 4.2000e+02 0 1.0000e+00 1.0000e+00 1.0000e+00 + 3.0000e+02 1.0000e+00 0 1.0000e+00 0 + 2.5700e+02 0 1.0000e+00 1.0000e+00 0 + 3.3200e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 + 3.9600e+02 1.0000e+00 0 1.0000e+00 0 + 4.3400e+02 1.0000e+00 0 0 0 + 5.1800e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 + 3.4200e+02 1.0000e+00 0 0 0 + 1.0000e+03 0 0 1.0000e+00 0 + 5.7200e+02 1.0000e+00 0 0 0 + 3.7400e+02 1.0000e+00 0 0 1.0000e+00 + 1.7750e+03 1.0000e+00 0 1.0000e+00 1.0000e+00 + 2.8800e+02 1.0000e+00 0 1.0000e+00 0 + 3.1700e+02 1.0000e+00 1.0000e+00 0 1.0000e+00 + 3.8700e+02 1.0000e+00 0 1.0000e+00 0 + 3.5600e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 + 3.2800e+02 1.0000e+00 0 0 1.0000e+00 + 2.9900e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3900e+02 0 + 1.1650e+03 1.0000e+00 + 1.2930e+03 0 + 1.3020e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.4130e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.4340e+03 0 + 1.4350e+03 0 + 1.5420e+03 0 + 1.5580e+03 0 + 1.7690e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 69.7837 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 153.018 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 6.9784e+01 + 9.3237e+01 + 9.6754e+01 + 1.0634e+02 + 1.0907e+02 + + +testing cutpoint: 69.7837 + + ---- view of lincomb & g_node & w_node ---- + + 62.9475 0 2.0000 + 66.0535 0 1.0000 + 68.2244 0 1.0000 + 69.7837 0 2.0000 + 70.0532 1.0000 1.0000 + 71.4492 1.0000 1.0000 + 76.3026 1.0000 1.0000 + 77.6990 1.0000 1.0000 + 77.9685 1.0000 1.0000 + 83.7383 1.0000 3.0000 + 85.4972 1.0000 1.0000 + 87.9360 1.0000 1.0000 + 88.8155 1.0000 2.0000 + 89.0151 1.0000 1.0000 + 89.6015 1.0000 1.0000 + 91.0909 1.0000 1.0000 + 93.2366 1.0000 1.0000 + 93.4125 1.0000 1.0000 + 93.9274 1.0000 4.0000 + 96.7545 1.0000 3.0000 + + +logrank stat for this cutpoint: 0.894327 + ------------------------------------------- + +testing cutpoint: 93.2366 + + ---- view of lincomb & g_node & w_node ---- + + 62.9475 0 2.0000 + 66.0535 0 1.0000 + 68.2244 0 1.0000 + 69.7837 0 2.0000 + 70.0532 0 1.0000 + 71.4492 0 1.0000 + 76.3026 0 1.0000 + 77.6990 0 1.0000 + 77.9685 0 1.0000 + 83.7383 0 3.0000 + 85.4972 0 1.0000 + 87.9360 0 1.0000 + 88.8155 0 2.0000 + 89.0151 0 1.0000 + 89.6015 0 1.0000 + 91.0909 0 1.0000 + 93.2366 0 1.0000 + 93.4125 1.0000 1.0000 + 93.9274 1.0000 4.0000 + 96.7545 1.0000 3.0000 + + +logrank stat for this cutpoint: 0.0612366 + ------------------------------------------- + +testing cutpoint: 96.7545 + + ---- view of lincomb & g_node & w_node ---- + + 62.9475 0 2.0000 + 66.0535 0 1.0000 + 68.2244 0 1.0000 + 69.7837 0 2.0000 + 70.0532 0 1.0000 + 71.4492 0 1.0000 + 76.3026 0 1.0000 + 77.6990 0 1.0000 + 77.9685 0 1.0000 + 83.7383 0 3.0000 + 85.4972 0 1.0000 + 87.9360 0 1.0000 + 88.8155 0 2.0000 + 89.0151 0 1.0000 + 89.6015 0 1.0000 + 91.0909 0 1.0000 + 93.2366 0 1.0000 + 93.4125 0 1.0000 + 93.9274 0 4.0000 + 96.7545 0 3.0000 + + +logrank stat for this cutpoint: 0.656067 + ------------------------------------------- + +testing cutpoint: 106.335 + + ---- view of lincomb & g_node & w_node ---- + + 62.9475 0 2.0000 + 66.0535 0 1.0000 + 68.2244 0 1.0000 + 69.7837 0 2.0000 + 70.0532 0 1.0000 + 71.4492 0 1.0000 + 76.3026 0 1.0000 + 77.6990 0 1.0000 + 77.9685 0 1.0000 + 83.7383 0 3.0000 + 85.4972 0 1.0000 + 87.9360 0 1.0000 + 88.8155 0 2.0000 + 89.0151 0 1.0000 + 89.6015 0 1.0000 + 91.0909 0 1.0000 + 93.2366 0 1.0000 + 93.4125 0 1.0000 + 93.9274 0 4.0000 + 96.7545 0 3.0000 + + +logrank stat for this cutpoint: 0.0202529 + ------------------------------------------- + +testing cutpoint: 109.067 + + ---- view of lincomb & g_node & w_node ---- + + 62.9475 0 2.0000 + 66.0535 0 1.0000 + 68.2244 0 1.0000 + 69.7837 0 2.0000 + 70.0532 0 1.0000 + 71.4492 0 1.0000 + 76.3026 0 1.0000 + 77.6990 0 1.0000 + 77.9685 0 1.0000 + 83.7383 0 3.0000 + 85.4972 0 1.0000 + 87.9360 0 1.0000 + 88.8155 0 2.0000 + 89.0151 0 1.0000 + 89.6015 0 1.0000 + 91.0909 0 1.0000 + 93.2366 0 1.0000 + 93.4125 0 1.0000 + 93.9274 0 4.0000 + 96.7545 0 3.0000 + + +logrank stat for this cutpoint: 0.363328 + ------------------------------------------- + +best split stat, 0.894327, was < split_min_stat, 3.84 +beginning try no. 3 + + ---- view of x_node ---- + + 4.4000e+00 1.0700e+01 0 1.8600e+03 0 + 3.4700e+00 1.1900e+01 1.0000e+00 2.4600e+03 1.0000e+00 + 3.2600e+00 1.1400e+01 0 3.1960e+03 0 + 2.9400e+00 1.1200e+01 1.0000e+00 1.7940e+03 1.0000e+00 + 3.7900e+00 9.9000e+00 1.0000e+00 1.6640e+03 1.0000e+00 + 3.6000e+00 1.1000e+01 0 1.4920e+03 1.0000e+00 + 3.2000e+00 1.0000e+01 0 1.4400e+03 1.0000e+00 + 3.3500e+00 1.0200e+01 0 1.7130e+03 0 + 1.9600e+00 1.0700e+01 1.0000e+00 2.2500e+03 1.0000e+00 + 3.7600e+00 1.0800e+01 0 1.6530e+03 0 + 3.0700e+00 1.0900e+01 0 3.1500e+03 1.0000e+00 + 3.7700e+00 9.5000e+00 0 2.5200e+03 1.0000e+00 + 3.5000e+00 1.0100e+01 0 1.4280e+03 0 + 3.4300e+00 1.1500e+01 1.0000e+00 2.0650e+03 0 + 3.4000e+00 1.1000e+01 1.0000e+00 5.4872e+03 1.0000e+00 + 3.5600e+00 9.8000e+00 0 1.6360e+03 0 + 3.7700e+00 1.0100e+01 0 1.6130e+03 1.0000e+00 + 3.1200e+00 1.1200e+01 1.0000e+00 1.9110e+03 0 + 3.4600e+00 9.6000e+00 1.0000e+00 1.6770e+03 0 + 3.3600e+00 1.0900e+01 0 2.7690e+03 1.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 7.6200e+02 1.0000e+00 + 7.8600e+02 1.0000e+00 + 9.0400e+02 1.0000e+00 + 9.3900e+02 0 + 1.1650e+03 1.0000e+00 + 1.2930e+03 0 + 1.3020e+03 0 + 1.3490e+03 0 + 1.3630e+03 0 + 1.4130e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.4340e+03 0 + 1.4350e+03 0 + 1.5420e+03 0 + 1.5580e+03 0 + 1.7690e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 1210.22 + - n_events, left node: 1 + - n_risk, left node: 6 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 6168.08 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 1.3621e+03 + 1.3728e+03 + 1.4756e+03 + 1.5606e+03 + 1.7153e+03 + + +testing cutpoint: 1362.09 + + ---- view of lincomb & g_node & w_node ---- + + 1.0215e+03 0 1.0000e+00 + 1.1319e+03 0 1.0000e+00 + 1.1698e+03 0 2.0000e+00 + 1.1999e+03 0 1.0000e+00 + 1.2102e+03 0 1.0000e+00 + 1.2365e+03 0 2.0000e+00 + 1.2547e+03 0 2.0000e+00 + 1.3082e+03 0 1.0000e+00 + 1.3547e+03 0 1.0000e+00 + 1.3621e+03 0 1.0000e+00 + 1.3728e+03 1.0000e+00 4.0000e+00 + 1.3751e+03 1.0000e+00 1.0000e+00 + 1.3879e+03 1.0000e+00 2.0000e+00 + 1.3979e+03 1.0000e+00 1.0000e+00 + 1.4076e+03 1.0000e+00 3.0000e+00 + 1.4371e+03 1.0000e+00 2.0000e+00 + 1.4394e+03 1.0000e+00 1.0000e+00 + 1.4756e+03 1.0000e+00 1.0000e+00 + 1.5066e+03 1.0000e+00 1.0000e+00 + 1.5606e+03 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 0.789924 + ------------------------------------------- + +testing cutpoint: 1372.77 + + ---- view of lincomb & g_node & w_node ---- + + 1.0215e+03 0 1.0000e+00 + 1.1319e+03 0 1.0000e+00 + 1.1698e+03 0 2.0000e+00 + 1.1999e+03 0 1.0000e+00 + 1.2102e+03 0 1.0000e+00 + 1.2365e+03 0 2.0000e+00 + 1.2547e+03 0 2.0000e+00 + 1.3082e+03 0 1.0000e+00 + 1.3547e+03 0 1.0000e+00 + 1.3621e+03 0 1.0000e+00 + 1.3728e+03 0 4.0000e+00 + 1.3751e+03 1.0000e+00 1.0000e+00 + 1.3879e+03 1.0000e+00 2.0000e+00 + 1.3979e+03 1.0000e+00 1.0000e+00 + 1.4076e+03 1.0000e+00 3.0000e+00 + 1.4371e+03 1.0000e+00 2.0000e+00 + 1.4394e+03 1.0000e+00 1.0000e+00 + 1.4756e+03 1.0000e+00 1.0000e+00 + 1.5066e+03 1.0000e+00 1.0000e+00 + 1.5606e+03 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 1.6949 + ------------------------------------------- + +testing cutpoint: 1475.59 + + ---- view of lincomb & g_node & w_node ---- + + 1.0215e+03 0 1.0000e+00 + 1.1319e+03 0 1.0000e+00 + 1.1698e+03 0 2.0000e+00 + 1.1999e+03 0 1.0000e+00 + 1.2102e+03 0 1.0000e+00 + 1.2365e+03 0 2.0000e+00 + 1.2547e+03 0 2.0000e+00 + 1.3082e+03 0 1.0000e+00 + 1.3547e+03 0 1.0000e+00 + 1.3621e+03 0 1.0000e+00 + 1.3728e+03 0 4.0000e+00 + 1.3751e+03 0 1.0000e+00 + 1.3879e+03 0 2.0000e+00 + 1.3979e+03 0 1.0000e+00 + 1.4076e+03 0 3.0000e+00 + 1.4371e+03 0 2.0000e+00 + 1.4394e+03 0 1.0000e+00 + 1.4756e+03 0 1.0000e+00 + 1.5066e+03 1.0000e+00 1.0000e+00 + 1.5606e+03 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 4.26215 + ------------------------------------------- + +testing cutpoint: 1560.61 + + ---- view of lincomb & g_node & w_node ---- + + 1.0215e+03 0 1.0000e+00 + 1.1319e+03 0 1.0000e+00 + 1.1698e+03 0 2.0000e+00 + 1.1999e+03 0 1.0000e+00 + 1.2102e+03 0 1.0000e+00 + 1.2365e+03 0 2.0000e+00 + 1.2547e+03 0 2.0000e+00 + 1.3082e+03 0 1.0000e+00 + 1.3547e+03 0 1.0000e+00 + 1.3621e+03 0 1.0000e+00 + 1.3728e+03 0 4.0000e+00 + 1.3751e+03 0 1.0000e+00 + 1.3879e+03 0 2.0000e+00 + 1.3979e+03 0 1.0000e+00 + 1.4076e+03 0 3.0000e+00 + 1.4371e+03 0 2.0000e+00 + 1.4394e+03 0 1.0000e+00 + 1.4756e+03 0 1.0000e+00 + 1.5066e+03 0 1.0000e+00 + 1.5606e+03 0 1.0000e+00 + + +logrank stat for this cutpoint: 1.33452 + ------------------------------------------- + +testing cutpoint: 1715.29 + + ---- view of lincomb & g_node & w_node ---- + + 1.0215e+03 0 1.0000e+00 + 1.1319e+03 0 1.0000e+00 + 1.1698e+03 0 2.0000e+00 + 1.1999e+03 0 1.0000e+00 + 1.2102e+03 0 1.0000e+00 + 1.2365e+03 0 2.0000e+00 + 1.2547e+03 0 2.0000e+00 + 1.3082e+03 0 1.0000e+00 + 1.3547e+03 0 1.0000e+00 + 1.3621e+03 0 1.0000e+00 + 1.3728e+03 0 4.0000e+00 + 1.3751e+03 0 1.0000e+00 + 1.3879e+03 0 2.0000e+00 + 1.3979e+03 0 1.0000e+00 + 1.4076e+03 0 3.0000e+00 + 1.4371e+03 0 2.0000e+00 + 1.4394e+03 0 1.0000e+00 + 1.4756e+03 0 1.0000e+00 + 1.5066e+03 0 1.0000e+00 + 1.5606e+03 0 1.0000e+00 + + +logrank stat for this cutpoint: 2.05802 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 12 13 14 15 16 + +growing node 12 + +beginning try no. 1 + + ---- view of x_node ---- + + 1.0000e+00 0 0 1.4725e+02 1.0000e+00 + 1.0000e+00 0 0 2.2704e+02 1.0000e+00 + 1.0000e+00 1.0000e+00 0 1.3400e+02 1.0000e+00 + 1.0000e+00 1.0000e+00 0 1.3795e+02 1.0000e+00 + 0 0 0 1.6740e+02 0 + 0 0 0 1.5345e+02 0 + 0 0 0 1.3600e+02 0 + 0 0 0 1.5190e+02 1.0000e+00 + 0 0 0 1.6120e+02 1.0000e+00 + 0 0 0 2.0150e+02 0 + 0 0 0 1.9840e+02 1.0000e+00 + 0 0 1.0000e+00 1.9840e+02 0 + 0 0 0 2.0305e+02 0 + 0 1.0000e+00 0 1.7050e+02 1.0000e+00 + 0 1.0000e+00 1.0000e+00 2.1545e+02 0 + 0 0 0 1.4260e+02 0 + 0 0 0 2.8800e+02 0 + 0 1.0000e+00 0 1.2000e+02 1.0000e+00 + 0 1.0000e+00 0 1.4570e+02 0 + 0 0 0 1.2245e+02 1.0000e+00 + + + ---- view of y_node ---- + + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1700e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2970e+03 1.0000e+00 + 1.3560e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 42.2766 + - n_events, left node: 3 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 118.636 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 7.7324e+01 + 7.9449e+01 + 8.5067e+01 + 8.6672e+01 + 1.0513e+02 + + +testing cutpoint: 77.3243 + + ---- view of lincomb & g_node & w_node ---- + + 40.1258 0 2.0000 + 40.9283 0 2.0000 + 42.2766 0 1.0000 + 43.4002 0 1.0000 + 49.4246 0 1.0000 + 50.5585 0 1.0000 + 51.4283 0 1.0000 + 56.9655 0 1.0000 + 57.7812 0 2.0000 + 61.8580 0 1.0000 + 63.0968 0 2.0000 + 63.4985 0 1.0000 + 70.4143 0 2.0000 + 71.3309 0 1.0000 + 73.3760 0 1.0000 + 73.8315 0 2.0000 + 76.3033 0 1.0000 + 77.3243 0 1.0000 + 78.7463 1.0000 2.0000 + 79.4491 1.0000 1.0000 + + +logrank stat for this cutpoint: 0.463015 + ------------------------------------------- + +testing cutpoint: 79.4491 + + ---- view of lincomb & g_node & w_node ---- + + 40.1258 0 2.0000 + 40.9283 0 2.0000 + 42.2766 0 1.0000 + 43.4002 0 1.0000 + 49.4246 0 1.0000 + 50.5585 0 1.0000 + 51.4283 0 1.0000 + 56.9655 0 1.0000 + 57.7812 0 2.0000 + 61.8580 0 1.0000 + 63.0968 0 2.0000 + 63.4985 0 1.0000 + 70.4143 0 2.0000 + 71.3309 0 1.0000 + 73.3760 0 1.0000 + 73.8315 0 2.0000 + 76.3033 0 1.0000 + 77.3243 0 1.0000 + 78.7463 0 2.0000 + 79.4491 0 1.0000 + + +logrank stat for this cutpoint: 0.0285243 + ------------------------------------------- + +testing cutpoint: 85.0667 + + ---- view of lincomb & g_node & w_node ---- + + 40.1258 0 2.0000 + 40.9283 0 2.0000 + 42.2766 0 1.0000 + 43.4002 0 1.0000 + 49.4246 0 1.0000 + 50.5585 0 1.0000 + 51.4283 0 1.0000 + 56.9655 0 1.0000 + 57.7812 0 2.0000 + 61.8580 0 1.0000 + 63.0968 0 2.0000 + 63.4985 0 1.0000 + 70.4143 0 2.0000 + 71.3309 0 1.0000 + 73.3760 0 1.0000 + 73.8315 0 2.0000 + 76.3033 0 1.0000 + 77.3243 0 1.0000 + 78.7463 0 2.0000 + 79.4491 0 1.0000 + + +logrank stat for this cutpoint: 0.0106478 + ------------------------------------------- + +testing cutpoint: 86.6717 + + ---- view of lincomb & g_node & w_node ---- + + 40.1258 0 2.0000 + 40.9283 0 2.0000 + 42.2766 0 1.0000 + 43.4002 0 1.0000 + 49.4246 0 1.0000 + 50.5585 0 1.0000 + 51.4283 0 1.0000 + 56.9655 0 1.0000 + 57.7812 0 2.0000 + 61.8580 0 1.0000 + 63.0968 0 2.0000 + 63.4985 0 1.0000 + 70.4143 0 2.0000 + 71.3309 0 1.0000 + 73.3760 0 1.0000 + 73.8315 0 2.0000 + 76.3033 0 1.0000 + 77.3243 0 1.0000 + 78.7463 0 2.0000 + 79.4491 0 1.0000 + + +logrank stat for this cutpoint: 0.101652 + ------------------------------------------- + +testing cutpoint: 105.13 + + ---- view of lincomb & g_node & w_node ---- + + 40.1258 0 2.0000 + 40.9283 0 2.0000 + 42.2766 0 1.0000 + 43.4002 0 1.0000 + 49.4246 0 1.0000 + 50.5585 0 1.0000 + 51.4283 0 1.0000 + 56.9655 0 1.0000 + 57.7812 0 2.0000 + 61.8580 0 1.0000 + 63.0968 0 2.0000 + 63.4985 0 1.0000 + 70.4143 0 2.0000 + 71.3309 0 1.0000 + 73.3760 0 1.0000 + 73.8315 0 2.0000 + 76.3033 0 1.0000 + 77.3243 0 1.0000 + 78.7463 0 2.0000 + 79.4491 0 1.0000 + + +logrank stat for this cutpoint: 0.306614 + ------------------------------------------- + +best split stat, 0.463015, was < split_min_stat, 3.84 +beginning try no. 2 + + ---- view of x_node ---- + + 0 1.0000 1.0000 3.3500 24.5000 + 0 1.0000 1.0000 2.9400 17.4000 + 0 0 0 2.4300 14.1000 + 0 1.0000 0 2.6000 14.5000 + 0 0 1.0000 3.3800 4.5000 + 0 0 1.0000 3.4300 14.0000 + 0 1.0000 1.0000 3.7900 6.4000 + 0 0 1.0000 3.3100 11.4000 + 0 0 1.0000 3.1900 10.8000 + 0 0 1.0000 3.5200 25.5000 + 0 0 1.0000 2.8100 8.0000 + 1.0000 0 1.0000 3.2600 28.0000 + 0 0 1.0000 3.8500 5.9000 + 0 1.0000 0 3.1100 6.5000 + 1.0000 1.0000 0 3.4600 20.0000 + 0 0 1.0000 4.2200 1.3000 + 0 1.0000 1.0000 3.6100 2.9000 + 0 1.0000 0 3.4600 6.4000 + 0 0 0 3.9300 7.3000 + 0 0 1.0000 3.5100 5.1000 + + + ---- view of y_node ---- + + 2.1600e+02 1.0000e+00 + 2.6400e+02 1.0000e+00 + 3.3400e+02 1.0000e+00 + 4.0000e+02 1.0000e+00 + 5.9700e+02 1.0000e+00 + 7.3300e+02 1.0000e+00 + 7.8800e+02 0 + 7.9000e+02 1.0000e+00 + 7.9700e+02 1.0000e+00 + 8.5300e+02 1.0000e+00 + 9.3000e+02 1.0000e+00 + 9.4300e+02 1.0000e+00 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.1700e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2970e+03 1.0000e+00 + 1.3560e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 2.99079 + - n_events, left node: 1 + - n_risk, left node: 7 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 19.5462 + - n_events, right node: 5 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 3.4142 + 6.1410 + 9.0478 + 9.3620 + 15.9268 + + +testing cutpoint: 3.41424 + + ---- view of lincomb & g_node & w_node ---- + + 2.6582 0 1.0000 + 2.7815 0 2.0000 + 2.8763 0 3.0000 + 2.9908 0 1.0000 + 3.0536 0 1.0000 + 3.0740 0 2.0000 + 3.1461 0 3.0000 + 3.1496 0 1.0000 + 3.4142 0 2.0000 + 3.4817 1.0000 1.0000 + 3.5471 1.0000 1.0000 + 3.7965 1.0000 1.0000 + 3.8096 1.0000 2.0000 + 4.0667 1.0000 2.0000 + 4.2772 1.0000 1.0000 + 5.6545 1.0000 1.0000 + 5.9211 1.0000 2.0000 + 6.0243 1.0000 3.0000 + 6.1410 1.0000 1.0000 + 6.5085 1.0000 1.0000 + + +logrank stat for this cutpoint: 18.624 + ------------------------------------------- + +testing cutpoint: 6.14104 + + ---- view of lincomb & g_node & w_node ---- + + 2.6582 0 1.0000 + 2.7815 0 2.0000 + 2.8763 0 3.0000 + 2.9908 0 1.0000 + 3.0536 0 1.0000 + 3.0740 0 2.0000 + 3.1461 0 3.0000 + 3.1496 0 1.0000 + 3.4142 0 2.0000 + 3.4817 0 1.0000 + 3.5471 0 1.0000 + 3.7965 0 1.0000 + 3.8096 0 2.0000 + 4.0667 0 2.0000 + 4.2772 0 1.0000 + 5.6545 0 1.0000 + 5.9211 0 2.0000 + 6.0243 0 3.0000 + 6.1410 0 1.0000 + 6.5085 1.0000 1.0000 + + +logrank stat for this cutpoint: 52.7353 + ------------------------------------------- + +testing cutpoint: 9.04776 + + ---- view of lincomb & g_node & w_node ---- + + 2.6582 0 1.0000 + 2.7815 0 2.0000 + 2.8763 0 3.0000 + 2.9908 0 1.0000 + 3.0536 0 1.0000 + 3.0740 0 2.0000 + 3.1461 0 3.0000 + 3.1496 0 1.0000 + 3.4142 0 2.0000 + 3.4817 0 1.0000 + 3.5471 0 1.0000 + 3.7965 0 1.0000 + 3.8096 0 2.0000 + 4.0667 0 2.0000 + 4.2772 0 1.0000 + 5.6545 0 1.0000 + 5.9211 0 2.0000 + 6.0243 0 3.0000 + 6.1410 0 1.0000 + 6.5085 0 1.0000 + + +logrank stat for this cutpoint: 67.2397 + ------------------------------------------- + +testing cutpoint: 9.36197 + + ---- view of lincomb & g_node & w_node ---- + + 2.6582 0 1.0000 + 2.7815 0 2.0000 + 2.8763 0 3.0000 + 2.9908 0 1.0000 + 3.0536 0 1.0000 + 3.0740 0 2.0000 + 3.1461 0 3.0000 + 3.1496 0 1.0000 + 3.4142 0 2.0000 + 3.4817 0 1.0000 + 3.5471 0 1.0000 + 3.7965 0 1.0000 + 3.8096 0 2.0000 + 4.0667 0 2.0000 + 4.2772 0 1.0000 + 5.6545 0 1.0000 + 5.9211 0 2.0000 + 6.0243 0 3.0000 + 6.1410 0 1.0000 + 6.5085 0 1.0000 + + +logrank stat for this cutpoint: 74.3978 + ------------------------------------------- + +testing cutpoint: 15.9268 + + ---- view of lincomb & g_node & w_node ---- + + 2.6582 0 1.0000 + 2.7815 0 2.0000 + 2.8763 0 3.0000 + 2.9908 0 1.0000 + 3.0536 0 1.0000 + 3.0740 0 2.0000 + 3.1461 0 3.0000 + 3.1496 0 1.0000 + 3.4142 0 2.0000 + 3.4817 0 1.0000 + 3.5471 0 1.0000 + 3.7965 0 1.0000 + 3.8096 0 2.0000 + 4.0667 0 2.0000 + 4.2772 0 1.0000 + 5.6545 0 1.0000 + 5.9211 0 2.0000 + 6.0243 0 3.0000 + 6.1410 0 1.0000 + 6.5085 0 1.0000 + + +logrank stat for this cutpoint: 27.1866 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 13 14 15 16 17 18 + +growing node 13 + +beginning try no. 1 + +Column 7 was sampled but unique values of column 7 are 0 + + ---- view of x_node ---- + + 5.7000e+01 2.5000e+00 0 1.0000e+00 1.0000e+00 + 9.1000e+01 3.2000e+00 0 1.0000e+00 1.0000e+00 + 5.2000e+01 8.0000e-01 1.0000e+00 1.0000e+00 0 + 5.0000e+01 2.0000e+00 1.0000e+00 0 0 + 1.1600e+02 1.1000e+00 0 0 1.0000e+00 + 6.7000e+01 1.5000e+00 0 0 1.0000e+00 + 6.7000e+01 1.6000e+00 0 1.0000e+00 0 + 8.1000e+01 9.0000e-01 1.0000e+00 1.0000e+00 0 + 4.1000e+01 7.0000e-01 0 0 0 + 2.0000e+01 1.0000e+00 1.0000e+00 1.0000e+00 0 + 7.5000e+01 1.3000e+00 0 1.0000e+00 0 + 3.2000e+01 3.4000e+00 1.0000e+00 0 0 + 4.3000e+01 1.1000e+00 0 0 0 + 1.3000e+01 1.5000e+00 0 1.0000e+00 0 + 6.0000e+01 1.9000e+00 0 0 0 + 5.9000e+01 9.0000e-01 1.0000e+00 0 0 + 1.3100e+02 3.3000e+00 0 1.0000e+00 1.0000e+00 + 8.9000e+01 2.0000e+00 0 1.0000e+00 1.0000e+00 + + + ---- view of y_node ---- + + 1.1000e+02 1.0000e+00 + 1.8600e+02 1.0000e+00 + 1.1490e+03 0 + 1.7410e+03 1.0000e+00 + 1.7700e+03 0 + 1.9080e+03 0 + 2.1570e+03 0 + 2.2240e+03 0 + 2.3320e+03 0 + 2.4190e+03 1.0000e+00 + 2.4680e+03 0 + 2.4750e+03 0 + 2.5980e+03 1.0000e+00 + 2.7960e+03 1.0000e+00 + 2.9440e+03 0 + 3.0500e+03 0 + 3.4280e+03 1.0000e+00 + 3.4450e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 20.4989 + - n_events, left node: 4 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 48.9173 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 31.6370 + 35.9598 + 40.8042 + 41.1752 + 45.4365 + + +testing cutpoint: 31.637 + + ---- view of lincomb & g_node & w_node ---- + + 8.6626 0 3.0000 + 12.6967 0 1.0000 + 20.4989 0 1.0000 + 24.6604 0 2.0000 + 26.0137 0 2.0000 + 30.6235 0 3.0000 + 31.6370 0 2.0000 + 35.5213 1.0000 2.0000 + 35.9598 1.0000 1.0000 + 36.4484 1.0000 2.0000 + 40.8042 1.0000 1.0000 + 41.1752 1.0000 2.0000 + 45.4365 1.0000 2.0000 + 48.9173 1.0000 2.0000 + 54.7767 1.0000 1.0000 + 56.4590 1.0000 1.0000 + 70.1390 1.0000 2.0000 + 80.2783 1.0000 1.0000 + + +logrank stat for this cutpoint: 8.04886 + ------------------------------------------- + +testing cutpoint: 35.9598 + + ---- view of lincomb & g_node & w_node ---- + + 8.6626 0 3.0000 + 12.6967 0 1.0000 + 20.4989 0 1.0000 + 24.6604 0 2.0000 + 26.0137 0 2.0000 + 30.6235 0 3.0000 + 31.6370 0 2.0000 + 35.5213 0 2.0000 + 35.9598 0 1.0000 + 36.4484 1.0000 2.0000 + 40.8042 1.0000 1.0000 + 41.1752 1.0000 2.0000 + 45.4365 1.0000 2.0000 + 48.9173 1.0000 2.0000 + 54.7767 1.0000 1.0000 + 56.4590 1.0000 1.0000 + 70.1390 1.0000 2.0000 + 80.2783 1.0000 1.0000 + + +logrank stat for this cutpoint: 6.0908 + ------------------------------------------- + +testing cutpoint: 40.8042 + + ---- view of lincomb & g_node & w_node ---- + + 8.6626 0 3.0000 + 12.6967 0 1.0000 + 20.4989 0 1.0000 + 24.6604 0 2.0000 + 26.0137 0 2.0000 + 30.6235 0 3.0000 + 31.6370 0 2.0000 + 35.5213 0 2.0000 + 35.9598 0 1.0000 + 36.4484 0 2.0000 + 40.8042 0 1.0000 + 41.1752 1.0000 2.0000 + 45.4365 1.0000 2.0000 + 48.9173 1.0000 2.0000 + 54.7767 1.0000 1.0000 + 56.4590 1.0000 1.0000 + 70.1390 1.0000 2.0000 + 80.2783 1.0000 1.0000 + + +logrank stat for this cutpoint: 2.31486 + ------------------------------------------- + +testing cutpoint: 41.1752 + + ---- view of lincomb & g_node & w_node ---- + + 8.6626 0 3.0000 + 12.6967 0 1.0000 + 20.4989 0 1.0000 + 24.6604 0 2.0000 + 26.0137 0 2.0000 + 30.6235 0 3.0000 + 31.6370 0 2.0000 + 35.5213 0 2.0000 + 35.9598 0 1.0000 + 36.4484 0 2.0000 + 40.8042 0 1.0000 + 41.1752 0 2.0000 + 45.4365 1.0000 2.0000 + 48.9173 1.0000 2.0000 + 54.7767 1.0000 1.0000 + 56.4590 1.0000 1.0000 + 70.1390 1.0000 2.0000 + 80.2783 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.70933 + ------------------------------------------- + +testing cutpoint: 45.4365 + + ---- view of lincomb & g_node & w_node ---- + + 8.6626 0 3.0000 + 12.6967 0 1.0000 + 20.4989 0 1.0000 + 24.6604 0 2.0000 + 26.0137 0 2.0000 + 30.6235 0 3.0000 + 31.6370 0 2.0000 + 35.5213 0 2.0000 + 35.9598 0 1.0000 + 36.4484 0 2.0000 + 40.8042 0 1.0000 + 41.1752 0 2.0000 + 45.4365 0 2.0000 + 48.9173 1.0000 2.0000 + 54.7767 1.0000 1.0000 + 56.4590 1.0000 1.0000 + 70.1390 1.0000 2.0000 + 80.2783 1.0000 1.0000 + + +logrank stat for this cutpoint: 1.03622 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 14 15 16 17 18 19 20 + +growing node 14 + +sprouting new leaf with node 14 + + ---- view of leaf_data ---- + + 1.4870e+03 5.0000e-01 5.0000e-01 + + +growing node 15 + +sprouting new leaf with node 15 + + ---- view of leaf_data ---- + + 7.6200e+02 9.6429e-01 3.5714e-02 + 7.8600e+02 8.9286e-01 1.0979e-01 + 9.0400e+02 8.5714e-01 1.4979e-01 + + +growing node 16 + +beginning try no. 1 + + ---- view of x_node ---- + + 4.4000e+00 7.5000e+01 0 0 0 + 3.4700e+00 1.1000e+02 1.0000e+00 0 1.0000e+00 + 3.2600e+00 6.2000e+01 0 0 1.0000e+00 + 2.9400e+00 2.3100e+02 1.0000e+00 0 1.0000e+00 + 1.9600e+00 1.1500e+02 1.0000e+00 0 1.0000e+00 + 3.0700e+00 8.8000e+01 1.0000e+00 0 1.0000e+00 + 3.7700e+00 7.7000e+01 1.0000e+00 0 0 + 3.4300e+00 2.0500e+02 0 0 1.0000e+00 + 3.4000e+00 2.6200e+02 1.0000e+00 1.0000e+00 1.0000e+00 + 3.1200e+00 1.8800e+02 0 0 1.0000e+00 + 3.3600e+00 2.3000e+01 1.0000e+00 0 1.0000e+00 + 4.0700e+00 1.2000e+01 0 0 0 + 3.0000e+00 5.2000e+01 1.0000e+00 0 1.0000e+00 + 3.7000e+00 1.5800e+02 0 0 0 + 3.8300e+00 3.9000e+01 1.0000e+00 0 1.0000e+00 + 3.4800e+00 5.8000e+01 1.0000e+00 0 1.0000e+00 + 3.8700e+00 1.7300e+02 0 0 0 + 3.4400e+00 1.1400e+02 0 0 1.0000e+00 + 3.6700e+00 7.3000e+01 0 0 0 + 4.1400e+00 5.4000e+01 0 0 1.0000e+00 + + + ---- view of y_node ---- + + 1.9800e+02 1.0000e+00 + 4.6000e+02 1.0000e+00 + 6.1100e+02 1.0000e+00 + 6.9400e+02 1.0000e+00 + 1.1650e+03 1.0000e+00 + 1.3020e+03 0 + 1.3490e+03 0 + 1.4130e+03 1.0000e+00 + 1.4340e+03 1.0000e+00 + 1.5420e+03 0 + 1.7690e+03 0 + 2.2550e+03 0 + 2.2970e+03 1.0000e+00 + 2.3860e+03 1.0000e+00 + 2.5730e+03 0 + 3.3580e+03 1.0000e+00 + 3.5840e+03 1.0000e+00 + 3.8390e+03 1.0000e+00 + 3.9130e+03 0 + 4.5000e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 51.829 + - n_events, left node: 3 + - n_risk, left node: 11 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 150.166 + - n_events, right node: 4 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 5.1829e+01 + 5.4416e+01 + 1.0615e+02 + 1.0943e+02 + 1.0953e+02 + + +testing cutpoint: 51.829 + + ---- view of lincomb & g_node & w_node ---- + + 1.4840e+01 0 2.0000e+00 + 2.5209e+01 0 2.0000e+00 + 2.5727e+01 0 1.0000e+00 + 3.6751e+01 0 1.0000e+00 + 4.0502e+01 0 2.0000e+00 + 5.1829e+01 0 3.0000e+00 + 5.4416e+01 1.0000e+00 1.0000e+00 + 5.7839e+01 1.0000e+00 1.0000e+00 + 6.1052e+01 1.0000e+00 1.0000e+00 + 7.1158e+01 1.0000e+00 1.0000e+00 + 7.3678e+01 1.0000e+00 1.0000e+00 + 7.5270e+01 1.0000e+00 1.0000e+00 + 8.5343e+01 1.0000e+00 1.0000e+00 + 1.0615e+02 1.0000e+00 1.0000e+00 + 1.0943e+02 1.0000e+00 1.0000e+00 + 1.0953e+02 1.0000e+00 1.0000e+00 + 1.5017e+02 1.0000e+00 2.0000e+00 + 1.6426e+02 1.0000e+00 1.0000e+00 + 1.7800e+02 1.0000e+00 1.0000e+00 + 1.9408e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 3.45056 + ------------------------------------------- + +testing cutpoint: 54.416 + + ---- view of lincomb & g_node & w_node ---- + + 1.4840e+01 0 2.0000e+00 + 2.5209e+01 0 2.0000e+00 + 2.5727e+01 0 1.0000e+00 + 3.6751e+01 0 1.0000e+00 + 4.0502e+01 0 2.0000e+00 + 5.1829e+01 0 3.0000e+00 + 5.4416e+01 0 1.0000e+00 + 5.7839e+01 1.0000e+00 1.0000e+00 + 6.1052e+01 1.0000e+00 1.0000e+00 + 7.1158e+01 1.0000e+00 1.0000e+00 + 7.3678e+01 1.0000e+00 1.0000e+00 + 7.5270e+01 1.0000e+00 1.0000e+00 + 8.5343e+01 1.0000e+00 1.0000e+00 + 1.0615e+02 1.0000e+00 1.0000e+00 + 1.0943e+02 1.0000e+00 1.0000e+00 + 1.0953e+02 1.0000e+00 1.0000e+00 + 1.5017e+02 1.0000e+00 2.0000e+00 + 1.6426e+02 1.0000e+00 1.0000e+00 + 1.7800e+02 1.0000e+00 1.0000e+00 + 1.9408e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 6.09762 + ------------------------------------------- + +testing cutpoint: 106.148 + + ---- view of lincomb & g_node & w_node ---- + + 1.4840e+01 0 2.0000e+00 + 2.5209e+01 0 2.0000e+00 + 2.5727e+01 0 1.0000e+00 + 3.6751e+01 0 1.0000e+00 + 4.0502e+01 0 2.0000e+00 + 5.1829e+01 0 3.0000e+00 + 5.4416e+01 0 1.0000e+00 + 5.7839e+01 0 1.0000e+00 + 6.1052e+01 0 1.0000e+00 + 7.1158e+01 0 1.0000e+00 + 7.3678e+01 0 1.0000e+00 + 7.5270e+01 0 1.0000e+00 + 8.5343e+01 0 1.0000e+00 + 1.0615e+02 0 1.0000e+00 + 1.0943e+02 1.0000e+00 1.0000e+00 + 1.0953e+02 1.0000e+00 1.0000e+00 + 1.5017e+02 1.0000e+00 2.0000e+00 + 1.6426e+02 1.0000e+00 1.0000e+00 + 1.7800e+02 1.0000e+00 1.0000e+00 + 1.9408e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 3.47809 + ------------------------------------------- + +testing cutpoint: 109.425 + + ---- view of lincomb & g_node & w_node ---- + + 1.4840e+01 0 2.0000e+00 + 2.5209e+01 0 2.0000e+00 + 2.5727e+01 0 1.0000e+00 + 3.6751e+01 0 1.0000e+00 + 4.0502e+01 0 2.0000e+00 + 5.1829e+01 0 3.0000e+00 + 5.4416e+01 0 1.0000e+00 + 5.7839e+01 0 1.0000e+00 + 6.1052e+01 0 1.0000e+00 + 7.1158e+01 0 1.0000e+00 + 7.3678e+01 0 1.0000e+00 + 7.5270e+01 0 1.0000e+00 + 8.5343e+01 0 1.0000e+00 + 1.0615e+02 0 1.0000e+00 + 1.0943e+02 0 1.0000e+00 + 1.0953e+02 1.0000e+00 1.0000e+00 + 1.5017e+02 1.0000e+00 2.0000e+00 + 1.6426e+02 1.0000e+00 1.0000e+00 + 1.7800e+02 1.0000e+00 1.0000e+00 + 1.9408e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.01825 + ------------------------------------------- + +testing cutpoint: 109.533 + + ---- view of lincomb & g_node & w_node ---- + + 1.4840e+01 0 2.0000e+00 + 2.5209e+01 0 2.0000e+00 + 2.5727e+01 0 1.0000e+00 + 3.6751e+01 0 1.0000e+00 + 4.0502e+01 0 2.0000e+00 + 5.1829e+01 0 3.0000e+00 + 5.4416e+01 0 1.0000e+00 + 5.7839e+01 0 1.0000e+00 + 6.1052e+01 0 1.0000e+00 + 7.1158e+01 0 1.0000e+00 + 7.3678e+01 0 1.0000e+00 + 7.5270e+01 0 1.0000e+00 + 8.5343e+01 0 1.0000e+00 + 1.0615e+02 0 1.0000e+00 + 1.0943e+02 0 1.0000e+00 + 1.0953e+02 0 1.0000e+00 + 1.5017e+02 1.0000e+00 2.0000e+00 + 1.6426e+02 1.0000e+00 1.0000e+00 + 1.7800e+02 1.0000e+00 1.0000e+00 + 1.9408e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.9403 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 14 15 17 18 19 20 21 22 + +growing node 17 + +beginning try no. 1 + +Column 4 was sampled but unique values of column 4 are 0 + + ---- view of x_node ---- + + 2.2700e+02 1.2400e+01 0 1.0000e+00 4.6264e+01 + 1.8600e+02 1.0800e+01 0 1.0000e+00 3.3153e+01 + 1.4100e+02 1.0700e+01 0 1.0000e+00 4.1169e+01 + 1.1100e+02 1.1000e+01 1.0000e+00 0 4.9656e+01 + 6.7000e+01 1.0100e+01 0 1.0000e+00 3.5491e+01 + 7.3000e+01 1.0600e+01 0 1.0000e+00 4.3066e+01 + 1.5500e+02 1.0100e+01 1.0000e+00 0 5.8648e+01 + 2.6200e+02 1.0500e+01 0 0 5.1250e+01 + 1.4000e+02 1.3000e+01 1.0000e+00 1.0000e+00 5.9953e+01 + 1.2100e+02 1.1000e+01 0 0 6.5763e+01 + 2.4700e+02 9.8000e+00 0 1.0000e+00 3.0864e+01 + 5.3000e+01 9.9000e+00 0 1.0000e+00 5.2025e+01 + 7.5000e+01 1.0900e+01 0 0 5.2758e+01 + 1.2100e+02 9.6000e+00 0 0 4.4830e+01 + 3.4000e+01 9.9000e+00 0 1.0000e+00 6.9347e+01 + 8.6000e+01 9.9000e+00 0 0 6.4572e+01 + 8.8000e+01 1.0600e+01 0 1.0000e+00 3.3618e+01 + 5.2000e+01 9.9000e+00 0 1.0000e+00 5.0648e+01 + 9.4000e+01 1.1000e+01 0 0 3.3476e+01 + 3.4000e+01 1.0000e+01 0 1.0000e+00 4.8758e+01 + + + ---- view of y_node ---- + + 5.9700e+02 1.0000e+00 + 7.8800e+02 0 + 1.0800e+03 1.0000e+00 + 1.0830e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.2340e+03 0 + 1.2970e+03 1.0000e+00 + 1.3560e+03 1.0000e+00 + 1.3600e+03 1.0000e+00 + 1.4270e+03 1.0000e+00 + 1.4440e+03 1.0000e+00 + 1.6570e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7860e+03 1.0000e+00 + 1.8100e+03 0 + 1.8470e+03 1.0000e+00 + 2.4560e+03 0 + 2.6890e+03 1.0000e+00 + 2.8350e+03 0 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 85.5722 + - n_events, left node: 2 + - n_risk, left node: 8 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 194.808 + - n_events, right node: 4 + - n_risk, right node: 6 + +Randomly sampled cutpoints: + 9.1860e+01 + 1.1277e+02 + 1.1283e+02 + 1.4870e+02 + 1.5153e+02 + + +testing cutpoint: 91.8598 + + ---- view of lincomb & g_node & w_node ---- + + 6.7605e+01 0 1.0000e+00 + 7.2431e+01 0 2.0000e+00 + 7.8910e+01 0 3.0000e+00 + 8.5572e+01 0 2.0000e+00 + 9.0058e+01 0 1.0000e+00 + 9.1860e+01 0 1.0000e+00 + 9.3469e+01 1.0000e+00 1.0000e+00 + 9.4256e+01 1.0000e+00 2.0000e+00 + 1.0509e+02 1.0000e+00 2.0000e+00 + 1.1187e+02 1.0000e+00 2.0000e+00 + 1.1277e+02 1.0000e+00 1.0000e+00 + 1.1283e+02 1.0000e+00 1.0000e+00 + 1.1632e+02 1.0000e+00 1.0000e+00 + 1.1795e+02 1.0000e+00 2.0000e+00 + 1.2225e+02 1.0000e+00 1.0000e+00 + 1.2958e+02 1.0000e+00 3.0000e+00 + 1.3638e+02 1.0000e+00 1.0000e+00 + 1.4493e+02 1.0000e+00 1.0000e+00 + 1.4870e+02 1.0000e+00 3.0000e+00 + 1.5153e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 3.38925 + ------------------------------------------- + +testing cutpoint: 112.773 + + ---- view of lincomb & g_node & w_node ---- + + 6.7605e+01 0 1.0000e+00 + 7.2431e+01 0 2.0000e+00 + 7.8910e+01 0 3.0000e+00 + 8.5572e+01 0 2.0000e+00 + 9.0058e+01 0 1.0000e+00 + 9.1860e+01 0 1.0000e+00 + 9.3469e+01 0 1.0000e+00 + 9.4256e+01 0 2.0000e+00 + 1.0509e+02 0 2.0000e+00 + 1.1187e+02 0 2.0000e+00 + 1.1277e+02 0 1.0000e+00 + 1.1283e+02 1.0000e+00 1.0000e+00 + 1.1632e+02 1.0000e+00 1.0000e+00 + 1.1795e+02 1.0000e+00 2.0000e+00 + 1.2225e+02 1.0000e+00 1.0000e+00 + 1.2958e+02 1.0000e+00 3.0000e+00 + 1.3638e+02 1.0000e+00 1.0000e+00 + 1.4493e+02 1.0000e+00 1.0000e+00 + 1.4870e+02 1.0000e+00 3.0000e+00 + 1.5153e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.85598 + ------------------------------------------- + +testing cutpoint: 112.829 + + ---- view of lincomb & g_node & w_node ---- + + 6.7605e+01 0 1.0000e+00 + 7.2431e+01 0 2.0000e+00 + 7.8910e+01 0 3.0000e+00 + 8.5572e+01 0 2.0000e+00 + 9.0058e+01 0 1.0000e+00 + 9.1860e+01 0 1.0000e+00 + 9.3469e+01 0 1.0000e+00 + 9.4256e+01 0 2.0000e+00 + 1.0509e+02 0 2.0000e+00 + 1.1187e+02 0 2.0000e+00 + 1.1277e+02 0 1.0000e+00 + 1.1283e+02 0 1.0000e+00 + 1.1632e+02 1.0000e+00 1.0000e+00 + 1.1795e+02 1.0000e+00 2.0000e+00 + 1.2225e+02 1.0000e+00 1.0000e+00 + 1.2958e+02 1.0000e+00 3.0000e+00 + 1.3638e+02 1.0000e+00 1.0000e+00 + 1.4493e+02 1.0000e+00 1.0000e+00 + 1.4870e+02 1.0000e+00 3.0000e+00 + 1.5153e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.02192 + ------------------------------------------- + +testing cutpoint: 148.702 + + ---- view of lincomb & g_node & w_node ---- + + 6.7605e+01 0 1.0000e+00 + 7.2431e+01 0 2.0000e+00 + 7.8910e+01 0 3.0000e+00 + 8.5572e+01 0 2.0000e+00 + 9.0058e+01 0 1.0000e+00 + 9.1860e+01 0 1.0000e+00 + 9.3469e+01 0 1.0000e+00 + 9.4256e+01 0 2.0000e+00 + 1.0509e+02 0 2.0000e+00 + 1.1187e+02 0 2.0000e+00 + 1.1277e+02 0 1.0000e+00 + 1.1283e+02 0 1.0000e+00 + 1.1632e+02 0 1.0000e+00 + 1.1795e+02 0 2.0000e+00 + 1.2225e+02 0 1.0000e+00 + 1.2958e+02 0 3.0000e+00 + 1.3638e+02 0 1.0000e+00 + 1.4493e+02 0 1.0000e+00 + 1.4870e+02 0 3.0000e+00 + 1.5153e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 9.22391 + ------------------------------------------- + +testing cutpoint: 151.533 + + ---- view of lincomb & g_node & w_node ---- + + 6.7605e+01 0 1.0000e+00 + 7.2431e+01 0 2.0000e+00 + 7.8910e+01 0 3.0000e+00 + 8.5572e+01 0 2.0000e+00 + 9.0058e+01 0 1.0000e+00 + 9.1860e+01 0 1.0000e+00 + 9.3469e+01 0 1.0000e+00 + 9.4256e+01 0 2.0000e+00 + 1.0509e+02 0 2.0000e+00 + 1.1187e+02 0 2.0000e+00 + 1.1277e+02 0 1.0000e+00 + 1.1283e+02 0 1.0000e+00 + 1.1632e+02 0 1.0000e+00 + 1.1795e+02 0 2.0000e+00 + 1.2225e+02 0 1.0000e+00 + 1.2958e+02 0 3.0000e+00 + 1.3638e+02 0 1.0000e+00 + 1.4493e+02 0 1.0000e+00 + 1.4870e+02 0 3.0000e+00 + 1.5153e+02 0 1.0000e+00 + + +logrank stat for this cutpoint: 18.2418 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 14 15 18 19 20 21 22 23 24 + +growing node 18 + +sprouting new leaf with node 18 + + ---- view of leaf_data ---- + + 2.1600e+02 9.3333e-01 6.6667e-02 + 2.6400e+02 8.0000e-01 2.0952e-01 + 3.3400e+02 7.3333e-01 2.9286e-01 + 4.0000e+02 6.6667e-01 3.8377e-01 + 7.3300e+02 6.0000e-01 4.8377e-01 + + +growing node 19 + +sprouting new leaf with node 19 + + ---- view of leaf_data ---- + + 1.7410e+03 7.5000e-01 2.5000e-01 + 2.4190e+03 6.4286e-01 3.9286e-01 + 2.5980e+03 3.8571e-01 7.9286e-01 + 2.7960e+03 0 1.7929e+00 + + +growing node 20 + +sprouting new leaf with node 20 + + ---- view of leaf_data ---- + + 1.1000e+02 9.4118e-01 5.8824e-02 + 1.8600e+02 8.8235e-01 1.2132e-01 + 3.4280e+03 4.4118e-01 6.2132e-01 + 3.4450e+03 0 1.6213e+00 + + +growing node 21 + +sprouting new leaf with node 21 + + ---- view of leaf_data ---- + + 2.2970e+03 6.2500e-01 3.7500e-01 + + +growing node 22 + +sprouting new leaf with node 22 + + ---- view of leaf_data ---- + + 1.9800e+02 9.3750e-01 6.2500e-02 + 4.6000e+02 8.7500e-01 1.2917e-01 + 6.1100e+02 8.1250e-01 2.0060e-01 + 6.9400e+02 7.5000e-01 2.7752e-01 + 1.1650e+03 6.8750e-01 3.6085e-01 + + +growing node 23 + +beginning try no. 1 + +Column 4 was sampled but unique values of column 4 are 0 + + ---- view of x_node ---- + + 4.9656e+01 1.0000e+00 1.7050e+02 9.5000e+02 6.5000e+00 + 3.5491e+01 0 1.4260e+02 4.0800e+02 1.3000e+00 + 4.3066e+01 0 2.8800e+02 4.2600e+02 2.9000e+00 + 5.2025e+01 0 1.6585e+02 1.1280e+03 5.2000e+00 + 5.2758e+01 0 8.2150e+01 1.6000e+03 5.0000e+00 + 4.4830e+01 0 2.7280e+02 3.5000e+02 3.9000e+00 + 6.9347e+01 0 7.9050e+01 4.0400e+02 9.0000e-01 + 6.4572e+01 0 1.9685e+02 3.5400e+02 1.9000e+00 + 3.3618e+01 0 9.5460e+01 4.9800e+02 1.1000e+00 + 5.0648e+01 0 9.7650e+01 3.6000e+02 1.3000e+00 + 3.3476e+01 0 1.5190e+02 6.6000e+02 1.6000e+00 + 4.8758e+01 0 7.7500e+01 2.8600e+02 6.0000e-01 + 6.2861e+01 0 1.5500e+02 3.9900e+02 1.1000e+00 + 5.4075e+01 0 1.8600e+02 2.9000e+02 1.1000e+00 + 6.1070e+01 0 1.0695e+02 4.5800e+02 3.0000e+00 + 4.2639e+01 0 1.1160e+02 3.0300e+02 7.0000e-01 + 4.4950e+01 0 1.6430e+02 4.0000e+02 9.0000e-01 + 5.2088e+01 0 9.9330e+01 2.7600e+02 8.0000e-01 + 4.4520e+01 0 2.2188e+02 4.5600e+02 2.1000e+00 + 4.6453e+01 0 1.8290e+02 4.2700e+02 1.4000e+00 + + + ---- view of y_node ---- + + 1.0830e+03 1.0000e+00 + 1.2120e+03 1.0000e+00 + 1.2160e+03 0 + 1.4440e+03 1.0000e+00 + 1.6570e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7860e+03 1.0000e+00 + 1.8100e+03 0 + 1.8470e+03 1.0000e+00 + 2.4560e+03 0 + 2.6890e+03 1.0000e+00 + 2.8350e+03 0 + 2.9900e+03 0 + 3.0590e+03 0 + 3.3360e+03 0 + 3.4220e+03 0 + 3.5810e+03 0 + 3.8530e+03 1.0000e+00 + 4.0790e+03 1.0000e+00 + 4.1910e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 154.732 + - n_events, left node: 1 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 261.056 + - n_events, right node: 3 + - n_risk, right node: 5 + +Randomly sampled cutpoints: + 1.7433e+02 + 2.0490e+02 + 2.1396e+02 + 2.3196e+02 + 2.6106e+02 + + +testing cutpoint: 174.333 + + ---- view of lincomb & g_node & w_node ---- + + 1.3681e+02 0 2.0000e+00 + 1.5041e+02 0 1.0000e+00 + 1.5473e+02 0 2.0000e+00 + 1.6418e+02 0 1.0000e+00 + 1.7433e+02 0 1.0000e+00 + 1.7618e+02 1.0000e+00 2.0000e+00 + 1.8667e+02 1.0000e+00 2.0000e+00 + 1.9757e+02 1.0000e+00 1.0000e+00 + 2.0475e+02 1.0000e+00 3.0000e+00 + 2.0490e+02 1.0000e+00 1.0000e+00 + 2.1396e+02 1.0000e+00 1.0000e+00 + 2.2225e+02 1.0000e+00 1.0000e+00 + 2.3196e+02 1.0000e+00 3.0000e+00 + 2.3689e+02 1.0000e+00 2.0000e+00 + 2.4914e+02 1.0000e+00 1.0000e+00 + 2.6106e+02 1.0000e+00 3.0000e+00 + 2.8132e+02 1.0000e+00 2.0000e+00 + 3.1942e+02 1.0000e+00 1.0000e+00 + 3.4919e+02 1.0000e+00 1.0000e+00 + 3.8793e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 1.58819 + ------------------------------------------- + +testing cutpoint: 204.896 + + ---- view of lincomb & g_node & w_node ---- + + 1.3681e+02 0 2.0000e+00 + 1.5041e+02 0 1.0000e+00 + 1.5473e+02 0 2.0000e+00 + 1.6418e+02 0 1.0000e+00 + 1.7433e+02 0 1.0000e+00 + 1.7618e+02 0 2.0000e+00 + 1.8667e+02 0 2.0000e+00 + 1.9757e+02 0 1.0000e+00 + 2.0475e+02 0 3.0000e+00 + 2.0490e+02 0 1.0000e+00 + 2.1396e+02 1.0000e+00 1.0000e+00 + 2.2225e+02 1.0000e+00 1.0000e+00 + 2.3196e+02 1.0000e+00 3.0000e+00 + 2.3689e+02 1.0000e+00 2.0000e+00 + 2.4914e+02 1.0000e+00 1.0000e+00 + 2.6106e+02 1.0000e+00 3.0000e+00 + 2.8132e+02 1.0000e+00 2.0000e+00 + 3.1942e+02 1.0000e+00 1.0000e+00 + 3.4919e+02 1.0000e+00 1.0000e+00 + 3.8793e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 1.14833 + ------------------------------------------- + +testing cutpoint: 213.956 + + ---- view of lincomb & g_node & w_node ---- + + 1.3681e+02 0 2.0000e+00 + 1.5041e+02 0 1.0000e+00 + 1.5473e+02 0 2.0000e+00 + 1.6418e+02 0 1.0000e+00 + 1.7433e+02 0 1.0000e+00 + 1.7618e+02 0 2.0000e+00 + 1.8667e+02 0 2.0000e+00 + 1.9757e+02 0 1.0000e+00 + 2.0475e+02 0 3.0000e+00 + 2.0490e+02 0 1.0000e+00 + 2.1396e+02 0 1.0000e+00 + 2.2225e+02 1.0000e+00 1.0000e+00 + 2.3196e+02 1.0000e+00 3.0000e+00 + 2.3689e+02 1.0000e+00 2.0000e+00 + 2.4914e+02 1.0000e+00 1.0000e+00 + 2.6106e+02 1.0000e+00 3.0000e+00 + 2.8132e+02 1.0000e+00 2.0000e+00 + 3.1942e+02 1.0000e+00 1.0000e+00 + 3.4919e+02 1.0000e+00 1.0000e+00 + 3.8793e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.02603 + ------------------------------------------- + +testing cutpoint: 231.962 + + ---- view of lincomb & g_node & w_node ---- + + 1.3681e+02 0 2.0000e+00 + 1.5041e+02 0 1.0000e+00 + 1.5473e+02 0 2.0000e+00 + 1.6418e+02 0 1.0000e+00 + 1.7433e+02 0 1.0000e+00 + 1.7618e+02 0 2.0000e+00 + 1.8667e+02 0 2.0000e+00 + 1.9757e+02 0 1.0000e+00 + 2.0475e+02 0 3.0000e+00 + 2.0490e+02 0 1.0000e+00 + 2.1396e+02 0 1.0000e+00 + 2.2225e+02 0 1.0000e+00 + 2.3196e+02 0 3.0000e+00 + 2.3689e+02 1.0000e+00 2.0000e+00 + 2.4914e+02 1.0000e+00 1.0000e+00 + 2.6106e+02 1.0000e+00 3.0000e+00 + 2.8132e+02 1.0000e+00 2.0000e+00 + 3.1942e+02 1.0000e+00 1.0000e+00 + 3.4919e+02 1.0000e+00 1.0000e+00 + 3.8793e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 9.44055 + ------------------------------------------- + +testing cutpoint: 261.056 + + ---- view of lincomb & g_node & w_node ---- + + 1.3681e+02 0 2.0000e+00 + 1.5041e+02 0 1.0000e+00 + 1.5473e+02 0 2.0000e+00 + 1.6418e+02 0 1.0000e+00 + 1.7433e+02 0 1.0000e+00 + 1.7618e+02 0 2.0000e+00 + 1.8667e+02 0 2.0000e+00 + 1.9757e+02 0 1.0000e+00 + 2.0475e+02 0 3.0000e+00 + 2.0490e+02 0 1.0000e+00 + 2.1396e+02 0 1.0000e+00 + 2.2225e+02 0 1.0000e+00 + 2.3196e+02 0 3.0000e+00 + 2.3689e+02 0 2.0000e+00 + 2.4914e+02 0 1.0000e+00 + 2.6106e+02 0 3.0000e+00 + 2.8132e+02 1.0000e+00 2.0000e+00 + 3.1942e+02 1.0000e+00 1.0000e+00 + 3.4919e+02 1.0000e+00 1.0000e+00 + 3.8793e+02 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 13.4523 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 14 15 18 19 20 21 22 24 25 26 + +growing node 24 + +sprouting new leaf with node 24 + + ---- view of leaf_data ---- + + 5.9700e+02 9.2308e-01 7.6923e-02 + 1.0800e+03 7.3846e-01 2.7692e-01 + 1.2970e+03 6.1538e-01 4.4359e-01 + 1.3560e+03 4.9231e-01 6.4359e-01 + 1.3600e+03 3.6923e-01 8.9359e-01 + + +growing node 25 + +beginning try no. 1 + +Column 4 was sampled but unique values of column 4 are 0 + + ---- view of x_node ---- + + 2.9500e+02 0 1.3870e+03 0 6.7000e+01 + 2.7000e+02 1.0000e+00 1.2680e+03 0 1.2100e+02 + 2.3600e+02 0 1.8660e+03 0 3.4000e+01 + 2.7700e+02 0 1.5530e+03 0 8.6000e+01 + 3.6500e+02 1.0000e+00 1.3862e+04 1.0000e+00 8.8000e+01 + 2.5600e+02 0 1.8120e+03 0 5.2000e+01 + 3.3700e+02 0 1.8570e+03 1.0000e+00 9.4000e+01 + 4.8700e+02 0 1.8680e+03 1.0000e+00 3.4000e+01 + 3.4400e+02 0 3.4720e+03 1.0000e+00 7.9000e+01 + 3.1800e+02 0 2.1200e+03 0 3.8000e+01 + 4.3800e+02 1.0000e+00 1.5880e+03 0 7.4000e+01 + 3.0700e+02 1.0000e+00 1.5840e+03 0 8.1000e+01 + 3.2700e+02 0 1.6890e+03 0 3.1000e+01 + 2.7300e+02 0 4.3320e+03 1.0000e+00 5.4000e+01 + 7.0000e+01 0 5.7190e+03 1.0000e+00 1.2400e+02 + 1.2300e+02 0 1.9090e+03 0 1.0500e+02 + + + ---- view of y_node ---- + + 1.2120e+03 1.0000e+00 + 1.6900e+03 1.0000e+00 + 1.7860e+03 1.0000e+00 + 1.8100e+03 0 + 1.8470e+03 1.0000e+00 + 2.4560e+03 0 + 2.6890e+03 1.0000e+00 + 2.8350e+03 0 + 2.9900e+03 0 + 3.0590e+03 0 + 3.3360e+03 0 + 3.4220e+03 0 + 3.5810e+03 0 + 3.8530e+03 1.0000e+00 + 4.0790e+03 1.0000e+00 + 4.1910e+03 1.0000e+00 + + +----- finding lower bound for cut-points ----- + +lower cutpoint: 1403.32 + - n_events, left node: 5 + - n_risk, left node: 5 + +----- finding upper bound for cut-points ----- + +upper cutpoint: 1920.17 + - n_events, right node: 3 + - n_risk, right node: 7 + +Randomly sampled cutpoints: + 1.4033e+03 + 1.5853e+03 + 1.6721e+03 + 1.7282e+03 + 1.8433e+03 + + +testing cutpoint: 1403.32 + + ---- view of lincomb & g_node & w_node ---- + + 1.3153e+03 0 3.0000e+00 + 1.4033e+03 0 2.0000e+00 + 1.5417e+03 1.0000e+00 3.0000e+00 + 1.5853e+03 1.0000e+00 2.0000e+00 + 1.6603e+03 1.0000e+00 1.0000e+00 + 1.6721e+03 1.0000e+00 1.0000e+00 + 1.7282e+03 1.0000e+00 1.0000e+00 + 1.7500e+03 1.0000e+00 1.0000e+00 + 1.7508e+03 1.0000e+00 2.0000e+00 + 1.8433e+03 1.0000e+00 2.0000e+00 + 1.9202e+03 1.0000e+00 2.0000e+00 + 2.0219e+03 1.0000e+00 3.0000e+00 + 3.2035e+03 1.0000e+00 1.0000e+00 + 3.8689e+03 1.0000e+00 1.0000e+00 + 4.9425e+03 1.0000e+00 1.0000e+00 + 1.1995e+04 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 31.3994 + ------------------------------------------- + +testing cutpoint: 1585.28 + + ---- view of lincomb & g_node & w_node ---- + + 1.3153e+03 0 3.0000e+00 + 1.4033e+03 0 2.0000e+00 + 1.5417e+03 0 3.0000e+00 + 1.5853e+03 0 2.0000e+00 + 1.6603e+03 1.0000e+00 1.0000e+00 + 1.6721e+03 1.0000e+00 1.0000e+00 + 1.7282e+03 1.0000e+00 1.0000e+00 + 1.7500e+03 1.0000e+00 1.0000e+00 + 1.7508e+03 1.0000e+00 2.0000e+00 + 1.8433e+03 1.0000e+00 2.0000e+00 + 1.9202e+03 1.0000e+00 2.0000e+00 + 2.0219e+03 1.0000e+00 3.0000e+00 + 3.2035e+03 1.0000e+00 1.0000e+00 + 3.8689e+03 1.0000e+00 1.0000e+00 + 4.9425e+03 1.0000e+00 1.0000e+00 + 1.1995e+04 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 3.56139 + ------------------------------------------- + +testing cutpoint: 1672.06 + + ---- view of lincomb & g_node & w_node ---- + + 1.3153e+03 0 3.0000e+00 + 1.4033e+03 0 2.0000e+00 + 1.5417e+03 0 3.0000e+00 + 1.5853e+03 0 2.0000e+00 + 1.6603e+03 0 1.0000e+00 + 1.6721e+03 0 1.0000e+00 + 1.7282e+03 1.0000e+00 1.0000e+00 + 1.7500e+03 1.0000e+00 1.0000e+00 + 1.7508e+03 1.0000e+00 2.0000e+00 + 1.8433e+03 1.0000e+00 2.0000e+00 + 1.9202e+03 1.0000e+00 2.0000e+00 + 2.0219e+03 1.0000e+00 3.0000e+00 + 3.2035e+03 1.0000e+00 1.0000e+00 + 3.8689e+03 1.0000e+00 1.0000e+00 + 4.9425e+03 1.0000e+00 1.0000e+00 + 1.1995e+04 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 1.08475 + ------------------------------------------- + +testing cutpoint: 1728.15 + + ---- view of lincomb & g_node & w_node ---- + + 1.3153e+03 0 3.0000e+00 + 1.4033e+03 0 2.0000e+00 + 1.5417e+03 0 3.0000e+00 + 1.5853e+03 0 2.0000e+00 + 1.6603e+03 0 1.0000e+00 + 1.6721e+03 0 1.0000e+00 + 1.7282e+03 0 1.0000e+00 + 1.7500e+03 1.0000e+00 1.0000e+00 + 1.7508e+03 1.0000e+00 2.0000e+00 + 1.8433e+03 1.0000e+00 2.0000e+00 + 1.9202e+03 1.0000e+00 2.0000e+00 + 2.0219e+03 1.0000e+00 3.0000e+00 + 3.2035e+03 1.0000e+00 1.0000e+00 + 3.8689e+03 1.0000e+00 1.0000e+00 + 4.9425e+03 1.0000e+00 1.0000e+00 + 1.1995e+04 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 0.622778 + ------------------------------------------- + +testing cutpoint: 1843.29 + + ---- view of lincomb & g_node & w_node ---- + + 1.3153e+03 0 3.0000e+00 + 1.4033e+03 0 2.0000e+00 + 1.5417e+03 0 3.0000e+00 + 1.5853e+03 0 2.0000e+00 + 1.6603e+03 0 1.0000e+00 + 1.6721e+03 0 1.0000e+00 + 1.7282e+03 0 1.0000e+00 + 1.7500e+03 0 1.0000e+00 + 1.7508e+03 0 2.0000e+00 + 1.8433e+03 0 2.0000e+00 + 1.9202e+03 1.0000e+00 2.0000e+00 + 2.0219e+03 1.0000e+00 3.0000e+00 + 3.2035e+03 1.0000e+00 1.0000e+00 + 3.8689e+03 1.0000e+00 1.0000e+00 + 4.9425e+03 1.0000e+00 1.0000e+00 + 1.1995e+04 1.0000e+00 1.0000e+00 + + +logrank stat for this cutpoint: 2.00286 + ------------------------------------------- + +Split successful: unique node assignments: + 5 7 8 10 14 15 18 19 20 21 22 24 26 27 28 + +growing node 26 + +sprouting new leaf with node 26 + + ---- view of leaf_data ---- + + 1.0830e+03 8.0000e-01 2.0000e-01 + 1.4440e+03 4.0000e-01 7.0000e-01 + 1.6570e+03 0 1.7000e+00 + + +growing node 27 + +sprouting new leaf with node 27 + + ---- view of leaf_data ---- + + 1.2120e+03 6.0000e-01 4.0000e-01 + 1.6900e+03 0 1.4000e+00 + + +growing node 28 + +sprouting new leaf with node 28 + + ---- view of leaf_data ---- + + 1.7860e+03 9.0909e-01 9.0909e-02 + 1.8470e+03 8.5561e-01 1.4973e-01 + 2.6890e+03 7.4153e-01 2.8307e-01 + 3.8530e+03 4.9436e-01 6.1640e-01 + 4.0790e+03 2.4718e-01 1.1164e+00 + + diff --git a/src/Forest.cpp b/src/Forest.cpp index 8baf3a1e..6785d860 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -11,6 +11,37 @@ namespace aorsf { Forest::Forest(){ } +void Forest::load(arma::uword n_tree, + std::vector>& forest_cutpoint, + std::vector>& forest_child_left, + std::vector>& forest_coef_values, + std::vector>& forest_coef_indices, + std::vector>& forest_leaf_pred_horizon, + std::vector>& forest_leaf_pred_surv, + std::vector>& forest_leaf_pred_chf) { + + this->n_tree = n_tree; + + // Create trees + trees.reserve(n_tree); + + for (uword i = 0; i < n_tree; ++i) { + trees.push_back( + std::make_unique(forest_cutpoint[i], + forest_child_left[i], + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_horizon[i], + forest_leaf_pred_surv[i], + forest_leaf_pred_chf[i]) + ); + } + + // Create thread ranges + equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + +} + void Forest::init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, @@ -133,6 +164,24 @@ void Forest::grow(){ init_trees(); + // if multi-threading isn't required + if(n_thread == 1){ + + vec* vi_numer_ptr = &this->vi_numer; + uvec* vi_denom_ptr = &this->vi_denom; + + for(uint i = 0; i < n_tree; ++i){ + + // Abort if user has pressed Ctrl + C or Escape in R. + checkUserInterrupt(); + trees[i]->grow(vi_numer_ptr, vi_denom_ptr); + + } + + return; + + } + // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); // catch interrupts from threads diff --git a/src/Forest.h b/src/Forest.h index 55542458..dc6b4112 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -30,6 +30,15 @@ class Forest { // Methods + void load(arma::uword n_tree, + std::vector>& forest_cutpoint, + std::vector>& forest_child_left, + std::vector>& forest_coef_values, + std::vector>& forest_coef_indices, + std::vector>& forest_leaf_pred_horizon, + std::vector>& forest_leaf_pred_surv, + std::vector>& forest_leaf_pred_chf); + void init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, @@ -77,15 +86,28 @@ class Forest { void showProgress(std::string operation, size_t max_progress); + std::vector> get_cutpoint() { - std::vector> get_coef_indices() { + std::vector> result; - std::vector> result; + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_cutpoint()); + } + + return result; + + } + + std::vector> get_child_left() { + + std::vector> result; result.reserve(n_tree); for (auto& tree : trees) { - result.push_back(tree->get_coef_indices()); + result.push_back(tree->get_child_left()); } return result; @@ -105,7 +127,19 @@ class Forest { return result; } + std::vector> get_coef_indices() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_coef_indices()); + } + + return result; + } std::vector> get_leaf_pred_horizon() { std::vector> result; @@ -119,7 +153,6 @@ class Forest { return result; } - std::vector> get_leaf_pred_surv() { std::vector> result; @@ -133,7 +166,6 @@ class Forest { return result; } - std::vector> get_leaf_pred_chf() { std::vector> result; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index cfe8a5aa..372f26d4 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -70,8 +70,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -79,6 +79,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); + Rcpp::traits::input_parameter< Rcpp::List >::type loaded_forest(loaded_forestSEXP); Rcpp::traits::input_parameter< Rcpp::RObject >::type lincomb_R_function(lincomb_R_functionSEXP); Rcpp::traits::input_parameter< Rcpp::RObject >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); @@ -106,7 +107,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread)); return rcpp_result_gen; END_RCPP } @@ -116,7 +117,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 31}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 32}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 64518985..c5f5333c 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -14,7 +14,73 @@ namespace aorsf { - Tree::Tree(){ } + Tree::Tree() : + data(0), + n_cols_total(0), + n_rows_total(0), + seed(0), + mtry(0), + vi_type(VI_NONE), + vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), + leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), + leaf_min_obs(DEFAULT_LEAF_MIN_OBS), + split_rule(DEFAULT_SPLITRULE), + split_min_events(DEFAULT_SPLIT_MIN_EVENTS), + split_min_obs(DEFAULT_SPLIT_MIN_OBS), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + split_max_cuts(DEFAULT_SPLIT_MAX_CUTS), + split_max_retry(DEFAULT_SPLIT_MAX_RETRY), + lincomb_type(DEFAULT_LINCOMB), + lincomb_eps(DEFAULT_LINCOMB_EPS), + lincomb_iter_max(DEFAULT_LINCOMB_ITER_MAX), + lincomb_scale(DEFAULT_LINCOMB_SCALE), + lincomb_alpha(DEFAULT_LINCOMB_ALPHA), + lincomb_df_target(0), + lincomb_ties_method(DEFAULT_LINCOMB_TIES_METHOD), + lincomb_R_function(0) { + + } + + Tree::Tree(std::vector& cutpoint, + std::vector& child_left, + std::vector& coef_values, + std::vector& coef_indices, + std::vector& leaf_pred_horizon, + std::vector& leaf_pred_surv, + std::vector& leaf_pred_chf) : + data(0), + n_cols_total(0), + n_rows_total(0), + seed(0), + mtry(0), + vi_type(VI_NONE), + vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), + leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), + leaf_min_obs(DEFAULT_LEAF_MIN_OBS), + split_rule(DEFAULT_SPLITRULE), + split_min_events(DEFAULT_SPLIT_MIN_EVENTS), + split_min_obs(DEFAULT_SPLIT_MIN_OBS), + split_min_stat(DEFAULT_SPLIT_MIN_STAT), + split_max_cuts(DEFAULT_SPLIT_MAX_CUTS), + split_max_retry(DEFAULT_SPLIT_MAX_RETRY), + lincomb_type(DEFAULT_LINCOMB), + lincomb_eps(DEFAULT_LINCOMB_EPS), + lincomb_iter_max(DEFAULT_LINCOMB_ITER_MAX), + lincomb_scale(DEFAULT_LINCOMB_SCALE), + lincomb_alpha(DEFAULT_LINCOMB_ALPHA), + lincomb_df_target(0), + lincomb_ties_method(DEFAULT_LINCOMB_TIES_METHOD), + lincomb_R_function(0), + cutpoint(cutpoint), + child_left(child_left), + coef_values(coef_values), + coef_indices(coef_indices), + leaf_pred_horizon(leaf_pred_horizon), + leaf_pred_surv(leaf_pred_surv), + leaf_pred_chf(leaf_pred_chf) { + + } + void Tree::init(Data* data, int seed, @@ -42,7 +108,6 @@ this->data = data; this->n_cols_total = data->n_cols; this->n_rows_total = data->n_rows; - this->seed = seed; this->mtry = mtry; this->leaf_min_events = leaf_min_events; @@ -960,5 +1025,66 @@ } // Tree::grow + void Tree::predict_leaf(){ + + uvec result(data->get_n_rows()), obs_in_node; + arma::uvec::iterator it; + uword i, j; + + + for(i = 0; i < coef_values.size(); i++){ + + // if child_left == 0, it's a leaf + if(child_left[i] != 0){ + + if(i == 0){ + obs_in_node = regspace(0, 1, result.size()-1); + } else { + obs_in_node = find(result == i); + } + + + if(obs_in_node.size() > 0){ + + lincomb = data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; + + it = obs_in_node.begin(); + + for(j = 0; j < lincomb.size(); ++j, ++it){ + + if(lincomb[j] <= cutpoint[i]) { + + result[*it] = child_left[i]; + + } else { + + result[*it] = child_left[i]+1; + + } + + } + + if(VERBOSITY > 0){ + + uvec in_left = find(result == child_left[i]); + uvec in_right = find(result == child_left[i]+1); + + Rcout << "N to node_" << child_left[i] << ": "; + Rcout << in_left.size() << "; "; + Rcout << "N to node_" << child_left[i]+1 << ": "; + Rcout << in_right.size() << std::endl; + + } + + } + + } + + } + + } + + + } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index ef84bbc9..959f3fb4 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -20,6 +20,15 @@ Tree(); + // Create from loaded forest + Tree(std::vector& cutpoint, + std::vector& child_left, + std::vector& coef_values, + std::vector& coef_indices, + std::vector& leaf_pred_horizon, + std::vector& leaf_pred_surv, + std::vector& leaf_pred_chf); + // deleting the copy constructor Tree(const Tree&) = delete; // deleting the copy assignment operator @@ -68,6 +77,8 @@ void grow(arma::vec* vi_numer, arma::uvec* vi_denom); + void predict_leaf(); + // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); std::vector& get_coef_indices() { @@ -114,7 +125,6 @@ double n_obs_inbag; double n_events_inbag; - int seed; // views of data arma::mat x_inbag; @@ -141,6 +151,10 @@ arma::uvec rows_node; arma::uvec cols_node; + int seed; + + arma::uword mtry; + // variable importance VariableImportance vi_type; double vi_max_pvalue; @@ -149,7 +163,6 @@ std::mt19937_64 random_number_generator; // tree growing members - arma::uword mtry; double leaf_min_events; double leaf_min_obs; diff --git a/src/globals.h b/src/globals.h index fa6edde0..1b23fc48 100644 --- a/src/globals.h +++ b/src/globals.h @@ -60,22 +60,32 @@ const VariableImportance DEFAULT_IMPORTANCE = VI_NONE; - const int DEFAULT_LEAF_MIN_OBS_CLASSIFICATION = 1; - const int DEFAULT_LEAF_MIN_OBS_REGRESSION = 5; - const int DEFAULT_LEAF_MIN_OBS_SURVIVAL = 10; - const int DEFAULT_LEAF_MIN_OBS_PROBABILITY = 10; + const double DEFAULT_SPLIT_MAX_RETRY = 1; - const int DEFAULT_MAX_RETRY = 3; - const double DEFAULT_SPLIT_MIN_STAT = 3.84; - const int DEFAULT_SPLIT_MIN_OBS = 10; + const double DEFAULT_LEAF_MIN_EVENTS = 1; + const double DEFAULT_LEAF_MIN_OBS = 5; - const SplitRule DEFAULT_SPLITRULE_SURVIVAL = SPLIT_LOGRANK; + const SplitRule DEFAULT_SPLITRULE = SPLIT_LOGRANK; + const double DEFAULT_SPLIT_MIN_EVENTS = 5; + const double DEFAULT_SPLIT_MIN_OBS = 10; + const double DEFAULT_SPLIT_MIN_STAT = 3.84; + + const arma::uword DEFAULT_SPLIT_MAX_CUTS = 5; + const arma::uword DEFAULT_MAX_RETRY = 3; + + const LinearCombo DEFAULT_LINCOMB = NEWTON_RAPHSON; + const double DEFAULT_LINCOMB_EPS = 1e-9; + const arma::uword DEFAULT_LINCOMB_ITER_MAX = 20; + const bool DEFAULT_LINCOMB_SCALE = true; + const double DEFAULT_LINCOMB_ALPHA = 0.5; + const arma::uword DEFAULT_LINCOMB_TIES_METHOD = 1; + + const double DEFAULT_ANOVA_VI_PVALUE = 0.01; const PredType DEFAULT_PRED_TYPE = RISK; - const int DEFAULT_N_SPLIT = 5; - const int VERBOSITY = 2; + const int VERBOSITY = 0; // Interval to print progress in seconds const double STATUS_INTERVAL = 15.0; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 998ced83..2e5faf2d 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -134,6 +134,7 @@ arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, + Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, @@ -211,19 +212,41 @@ oobag_R_function, n_thread); - forest->plant(); + // Load forest object if in prediction mode + if(pred_mode){ - forest->grow(); + std::vector> cutpoint = loaded_forest["cutpoint"]; + std::vector> child_left = loaded_forest["child_left"]; + std::vector> coef_values = loaded_forest["coef_values"]; + std::vector> coef_indices = loaded_forest["coef_indices"]; + std::vector> leaf_pred_horizon = loaded_forest["leaf_pred_horizon"]; + std::vector> leaf_pred_surv = loaded_forest["leaf_pred_surv"]; + std::vector> leaf_pred_chf = loaded_forest["leaf_pred_chf"]; - forest_out.push_back(forest->get_coef_indices(), "coef_indices"); - forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); - forest_out.push_back(forest->get_leaf_pred_surv(), "leaf_pred_surv"); - forest_out.push_back(forest->get_leaf_pred_chf(), "leaf_pred_chf"); + forest->load(n_tree, cutpoint, child_left, coef_values, coef_indices, + leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf); + } else { - result.push_back(forest_out, "forest"); - result.push_back(forest->vi_numer, "vi_numer"); - result.push_back(forest->vi_denom, "vi_denom"); + forest->plant(); + + forest->grow(); + + forest_out.push_back(forest->get_cutpoint(), "cutpoint"); + forest_out.push_back(forest->get_child_left(), "child_left"); + forest_out.push_back(forest->get_coef_indices(), "coef_indices"); + forest_out.push_back(forest->get_coef_values(), "coef_values"); + forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); + forest_out.push_back(forest->get_leaf_pred_surv(), "leaf_pred_surv"); + forest_out.push_back(forest->get_leaf_pred_chf(), "leaf_pred_chf"); + + + result.push_back(forest_out, "forest"); + result.push_back(forest->vi_numer, "vi_numer"); + result.push_back(forest->vi_denom, "vi_denom"); + + + } return(result); From dae3d3a425bf53e7ed2333cb22ddcef416b10db1 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 27 Aug 2023 17:48:53 -0400 Subject: [PATCH 050/103] prediction progress; not quite there --- orsf-output.txt | 4104 ------------------------------------------- src/Coxph.cpp | 23 +- src/Coxph.h | 1 - src/Forest.cpp | 53 +- src/Forest.h | 6 +- src/RcppExports.cpp | 4 +- src/Tree.cpp | 180 +- src/Tree.h | 14 +- src/orsf_oop.cpp | 8 +- 9 files changed, 228 insertions(+), 4165 deletions(-) delete mode 100644 orsf-output.txt diff --git a/orsf-output.txt b/orsf-output.txt deleted file mode 100644 index eee3118c..00000000 --- a/orsf-output.txt +++ /dev/null @@ -1,4104 +0,0 @@ ------------- input data dimensions ------------ -N obs total: 276 -N columns total: 21 ------------------------------------------------ - -Effective sample size: 276 -Effective number of events: 111 -Number of unique rows in x: 176 - -Max number of nodes for this tree: 221 -Max number of leaves for this tree: 111 - -growing node 0 - -beginning try no. 1 - - ---- view of x_node ---- - - 0 7.0500e+02 3.3800e+02 1.0000e+00 1.7900e+01 - 1.0000e+00 3.6974e+03 1.0191e+02 1.0000e+00 2.1600e+01 - 1.0000e+00 1.2730e+03 1.1935e+02 1.0000e+00 2.5000e+00 - 1.0000e+00 9.6100e+02 2.8055e+02 1.0000e+00 1.1400e+01 - 1.0000e+00 1.0560e+03 1.2090e+02 0 2.4000e+00 - 1.0000e+00 8.1500e+02 1.2710e+02 1.0000e+00 3.2000e+00 - 0 1.8600e+03 2.1855e+02 0 1.1000e+00 - 1.0000e+00 3.7400e+03 1.4725e+02 1.0000e+00 2.4500e+01 - 1.0000e+00 6.0648e+03 2.2704e+02 1.0000e+00 1.7400e+01 - 1.0000e+00 7.2770e+03 1.2126e+02 1.0000e+00 3.6000e+00 - 1.0000e+00 1.8190e+03 1.7050e+02 0 6.6000e+00 - 0 1.8330e+03 1.3400e+02 1.0000e+00 1.4100e+01 - 0 1.6260e+03 8.6800e+01 1.0000e+00 1.4000e+00 - 1.0000e+00 1.7180e+03 1.3795e+02 1.0000e+00 1.4500e+01 - 1.0000e+00 2.4600e+03 2.4645e+02 1.0000e+00 5.0000e+00 - 0 1.1420e+03 7.5000e+01 1.0000e+00 1.2000e+00 - 1.0000e+00 1.9750e+03 1.8910e+02 1.0000e+00 1.7200e+01 - 0 7.4600e+02 1.7825e+02 1.0000e+00 2.3000e+00 - 0 2.3100e+03 1.6740e+02 0 4.5000e+00 - 0 3.1960e+03 7.7500e+01 0 2.0000e+00 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 7.7000e+01 1.0000e+00 - 1.1000e+02 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.3300e+02 0 - 5.4900e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 177.723 - - n_events, left node: 3 - - n_risk, left node: 20 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 1442.37 - - n_events, right node: 7 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - 2.7675e+02 - 3.1657e+02 - 3.6903e+02 - 7.7318e+02 - 1.2478e+03 - - -testing cutpoint: 276.751 - - ---- view of lincomb & g_node & w_node ---- - - 1.1697e+02 0 2.0000e+00 - 1.2323e+02 0 1.0000e+00 - 1.2525e+02 0 1.0000e+00 - 1.3517e+02 0 1.0000e+00 - 1.3702e+02 0 1.0000e+00 - 1.4017e+02 0 1.0000e+00 - 1.4962e+02 0 1.0000e+00 - 1.6378e+02 0 3.0000e+00 - 1.6968e+02 0 3.0000e+00 - 1.7574e+02 0 2.0000e+00 - 1.7765e+02 0 1.0000e+00 - 1.7772e+02 0 3.0000e+00 - 1.7925e+02 0 1.0000e+00 - 1.7948e+02 0 2.0000e+00 - 1.8022e+02 0 1.0000e+00 - 1.8812e+02 0 1.0000e+00 - 1.9496e+02 0 1.0000e+00 - 1.9530e+02 0 1.0000e+00 - 1.9647e+02 0 1.0000e+00 - 2.0814e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 9.61757 - ------------------------------------------- - -testing cutpoint: 316.572 - - ---- view of lincomb & g_node & w_node ---- - - 1.1697e+02 0 2.0000e+00 - 1.2323e+02 0 1.0000e+00 - 1.2525e+02 0 1.0000e+00 - 1.3517e+02 0 1.0000e+00 - 1.3702e+02 0 1.0000e+00 - 1.4017e+02 0 1.0000e+00 - 1.4962e+02 0 1.0000e+00 - 1.6378e+02 0 3.0000e+00 - 1.6968e+02 0 3.0000e+00 - 1.7574e+02 0 2.0000e+00 - 1.7765e+02 0 1.0000e+00 - 1.7772e+02 0 3.0000e+00 - 1.7925e+02 0 1.0000e+00 - 1.7948e+02 0 2.0000e+00 - 1.8022e+02 0 1.0000e+00 - 1.8812e+02 0 1.0000e+00 - 1.9496e+02 0 1.0000e+00 - 1.9530e+02 0 1.0000e+00 - 1.9647e+02 0 1.0000e+00 - 2.0814e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 14.9891 - ------------------------------------------- - -testing cutpoint: 369.027 - - ---- view of lincomb & g_node & w_node ---- - - 1.1697e+02 0 2.0000e+00 - 1.2323e+02 0 1.0000e+00 - 1.2525e+02 0 1.0000e+00 - 1.3517e+02 0 1.0000e+00 - 1.3702e+02 0 1.0000e+00 - 1.4017e+02 0 1.0000e+00 - 1.4962e+02 0 1.0000e+00 - 1.6378e+02 0 3.0000e+00 - 1.6968e+02 0 3.0000e+00 - 1.7574e+02 0 2.0000e+00 - 1.7765e+02 0 1.0000e+00 - 1.7772e+02 0 3.0000e+00 - 1.7925e+02 0 1.0000e+00 - 1.7948e+02 0 2.0000e+00 - 1.8022e+02 0 1.0000e+00 - 1.8812e+02 0 1.0000e+00 - 1.9496e+02 0 1.0000e+00 - 1.9530e+02 0 1.0000e+00 - 1.9647e+02 0 1.0000e+00 - 2.0814e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 22.2132 - ------------------------------------------- - -testing cutpoint: 773.18 - - ---- view of lincomb & g_node & w_node ---- - - 1.1697e+02 0 2.0000e+00 - 1.2323e+02 0 1.0000e+00 - 1.2525e+02 0 1.0000e+00 - 1.3517e+02 0 1.0000e+00 - 1.3702e+02 0 1.0000e+00 - 1.4017e+02 0 1.0000e+00 - 1.4962e+02 0 1.0000e+00 - 1.6378e+02 0 3.0000e+00 - 1.6968e+02 0 3.0000e+00 - 1.7574e+02 0 2.0000e+00 - 1.7765e+02 0 1.0000e+00 - 1.7772e+02 0 3.0000e+00 - 1.7925e+02 0 1.0000e+00 - 1.7948e+02 0 2.0000e+00 - 1.8022e+02 0 1.0000e+00 - 1.8812e+02 0 1.0000e+00 - 1.9496e+02 0 1.0000e+00 - 1.9530e+02 0 1.0000e+00 - 1.9647e+02 0 1.0000e+00 - 2.0814e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 3.32396 - ------------------------------------------- - -testing cutpoint: 1247.8 - - ---- view of lincomb & g_node & w_node ---- - - 1.1697e+02 0 2.0000e+00 - 1.2323e+02 0 1.0000e+00 - 1.2525e+02 0 1.0000e+00 - 1.3517e+02 0 1.0000e+00 - 1.3702e+02 0 1.0000e+00 - 1.4017e+02 0 1.0000e+00 - 1.4962e+02 0 1.0000e+00 - 1.6378e+02 0 3.0000e+00 - 1.6968e+02 0 3.0000e+00 - 1.7574e+02 0 2.0000e+00 - 1.7765e+02 0 1.0000e+00 - 1.7772e+02 0 3.0000e+00 - 1.7925e+02 0 1.0000e+00 - 1.7948e+02 0 2.0000e+00 - 1.8022e+02 0 1.0000e+00 - 1.8812e+02 0 1.0000e+00 - 1.9496e+02 0 1.0000e+00 - 1.9530e+02 0 1.0000e+00 - 1.9647e+02 0 1.0000e+00 - 2.0814e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 5.19007 - ------------------------------------------- - -Split successful: unique node assignments: - 1 2 - -growing node 1 - -beginning try no. 1 - - ---- view of x_node ---- - - 1.1100e+01 0 4.8964e+01 1.1935e+02 1.0000e+00 - 1.4100e+01 0 6.9377e+01 1.2090e+02 0 - 1.2000e+01 0 5.8817e+01 1.2710e+02 1.0000e+00 - 1.1300e+01 0 5.5986e+01 7.5000e+01 1.0000e+00 - 1.2000e+01 0 5.1469e+01 1.7825e+02 1.0000e+00 - 1.0000e+01 0 3.9858e+01 1.1000e+02 1.0000e+00 - 9.8000e+00 1.0000e+00 6.7573e+01 8.6000e+01 1.0000e+00 - 9.8000e+00 0 4.1374e+01 1.1470e+02 1.0000e+00 - 1.0800e+01 1.0000e+00 5.8300e+01 7.0000e+01 0 - 1.2000e+01 0 7.0073e+01 9.6100e+01 0 - 9.6000e+00 0 6.2861e+01 9.1000e+01 0 - 1.0000e+01 0 4.6382e+01 1.2000e+02 1.0000e+00 - 1.0500e+01 1.0000e+00 3.0574e+01 1.3000e+02 0 - 1.0400e+01 1.0000e+00 6.1183e+01 9.1000e+01 1.0000e+00 - 1.0800e+01 0 3.5535e+01 4.5000e+01 0 - 1.0600e+01 1.0000e+00 3.7799e+01 5.2000e+01 0 - 1.0500e+01 0 4.5210e+01 7.4000e+01 0 - 1.2300e+01 0 5.7196e+01 1.6300e+02 1.0000e+00 - 1.0000e+01 0 4.6349e+01 5.7000e+01 0 - 9.5000e+00 0 4.8564e+01 8.5000e+01 0 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 5.3300e+02 0 - 5.5200e+02 1.0000e+00 - 7.3700e+02 0 - 7.9900e+02 1.0000e+00 - 8.3700e+02 0 - 9.9400e+02 0 - 1.0120e+03 1.0000e+00 - 1.0300e+03 0 - 1.0840e+03 0 - 1.1490e+03 0 - 1.1530e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.2950e+03 0 - 1.3200e+03 0 - 1.4010e+03 0 - 1.4180e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 76.1181 - - n_events, left node: 1 - - n_risk, left node: 12 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 149.817 - - n_events, right node: 4 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - 7.6118e+01 - 8.6043e+01 - 8.7464e+01 - 1.1902e+02 - 1.2285e+02 - - -testing cutpoint: 76.1181 - - ---- view of lincomb & g_node & w_node ---- - - 63.6724 0 3.0000 - 69.1539 0 1.0000 - 69.9226 0 1.0000 - 70.6135 0 3.0000 - 71.0883 0 1.0000 - 73.4943 0 1.0000 - 75.5135 0 1.0000 - 76.1181 0 1.0000 - 78.9271 1.0000 1.0000 - 79.5172 1.0000 1.0000 - 80.3322 1.0000 2.0000 - 82.4804 1.0000 1.0000 - 84.2278 1.0000 1.0000 - 84.9945 1.0000 1.0000 - 86.0430 1.0000 1.0000 - 87.4643 1.0000 2.0000 - 88.1858 1.0000 1.0000 - 89.0251 1.0000 1.0000 - 90.6352 1.0000 3.0000 - 91.3406 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.33029 - ------------------------------------------- - -testing cutpoint: 86.043 - - ---- view of lincomb & g_node & w_node ---- - - 63.6724 0 3.0000 - 69.1539 0 1.0000 - 69.9226 0 1.0000 - 70.6135 0 3.0000 - 71.0883 0 1.0000 - 73.4943 0 1.0000 - 75.5135 0 1.0000 - 76.1181 0 1.0000 - 78.9271 0 1.0000 - 79.5172 0 1.0000 - 80.3322 0 2.0000 - 82.4804 0 1.0000 - 84.2278 0 1.0000 - 84.9945 0 1.0000 - 86.0430 0 1.0000 - 87.4643 1.0000 2.0000 - 88.1858 1.0000 1.0000 - 89.0251 1.0000 1.0000 - 90.6352 1.0000 3.0000 - 91.3406 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.04653 - ------------------------------------------- - -testing cutpoint: 87.4643 - - ---- view of lincomb & g_node & w_node ---- - - 63.6724 0 3.0000 - 69.1539 0 1.0000 - 69.9226 0 1.0000 - 70.6135 0 3.0000 - 71.0883 0 1.0000 - 73.4943 0 1.0000 - 75.5135 0 1.0000 - 76.1181 0 1.0000 - 78.9271 0 1.0000 - 79.5172 0 1.0000 - 80.3322 0 2.0000 - 82.4804 0 1.0000 - 84.2278 0 1.0000 - 84.9945 0 1.0000 - 86.0430 0 1.0000 - 87.4643 0 2.0000 - 88.1858 1.0000 1.0000 - 89.0251 1.0000 1.0000 - 90.6352 1.0000 3.0000 - 91.3406 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.44104 - ------------------------------------------- - -testing cutpoint: 119.021 - - ---- view of lincomb & g_node & w_node ---- - - 63.6724 0 3.0000 - 69.1539 0 1.0000 - 69.9226 0 1.0000 - 70.6135 0 3.0000 - 71.0883 0 1.0000 - 73.4943 0 1.0000 - 75.5135 0 1.0000 - 76.1181 0 1.0000 - 78.9271 0 1.0000 - 79.5172 0 1.0000 - 80.3322 0 2.0000 - 82.4804 0 1.0000 - 84.2278 0 1.0000 - 84.9945 0 1.0000 - 86.0430 0 1.0000 - 87.4643 0 2.0000 - 88.1858 0 1.0000 - 89.0251 0 1.0000 - 90.6352 0 3.0000 - 91.3406 0 1.0000 - - -logrank stat for this cutpoint: 17.6173 - ------------------------------------------- - -testing cutpoint: 122.852 - - ---- view of lincomb & g_node & w_node ---- - - 63.6724 0 3.0000 - 69.1539 0 1.0000 - 69.9226 0 1.0000 - 70.6135 0 3.0000 - 71.0883 0 1.0000 - 73.4943 0 1.0000 - 75.5135 0 1.0000 - 76.1181 0 1.0000 - 78.9271 0 1.0000 - 79.5172 0 1.0000 - 80.3322 0 2.0000 - 82.4804 0 1.0000 - 84.2278 0 1.0000 - 84.9945 0 1.0000 - 86.0430 0 1.0000 - 87.4643 0 2.0000 - 88.1858 0 1.0000 - 89.0251 0 1.0000 - 90.6352 0 3.0000 - 91.3406 0 1.0000 - - -logrank stat for this cutpoint: 15.635 - ------------------------------------------- - -Split successful: unique node assignments: - 2 3 4 - -growing node 2 - -beginning try no. 1 - - ---- view of x_node ---- - - 0 1.7500e+02 1.0000e+00 0 6.2000e+01 - 0 1.7500e+02 1.0000e+00 1.0000e+00 8.0000e+01 - 0 1.7800e+02 0 0 2.8300e+02 - 1.0000e+00 3.4500e+02 0 0 4.4700e+02 - 0 1.0920e+03 1.0000e+00 0 3.9900e+02 - 0 3.9500e+02 1.0000e+00 0 2.1400e+02 - 0 2.6000e+02 0 0 1.2400e+02 - 1.0000e+00 2.4400e+02 0 1.0000e+00 1.3200e+02 - 0 4.4800e+02 1.0000e+00 0 2.1000e+02 - 0 2.0600e+02 1.0000e+00 0 1.4500e+02 - 0 2.6100e+02 1.0000e+00 0 1.9000e+02 - 0 3.2500e+02 0 1.0000e+00 4.3000e+02 - 0 2.2200e+02 1.0000e+00 0 1.4400e+02 - 1.0000e+00 3.7200e+02 0 0 2.4000e+02 - 1.0000e+00 4.2000e+02 0 1.0000e+00 3.4400e+02 - 0 3.0000e+02 0 0 3.1900e+02 - 1.0000e+00 8.0800e+02 0 0 2.6800e+02 - 0 2.5700e+02 0 1.0000e+00 1.4000e+02 - 0 3.3200e+02 0 0 2.7700e+02 - 0 5.7600e+02 0 0 2.0000e+02 - - - ---- view of y_node ---- - - 4.1000e+01 1.0000e+00 - 7.7000e+01 1.0000e+00 - 1.3100e+02 1.0000e+00 - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.2100e+02 1.0000e+00 - 3.2600e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 3.8800e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.4900e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 172.122 - - n_events, left node: 6 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 795.884 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 1.9807e+02 - 2.6428e+02 - 3.0848e+02 - 3.4117e+02 - 3.4667e+02 - - -testing cutpoint: 198.069 - - ---- view of lincomb & g_node & w_node ---- - - 1.2779e+02 0 1.0000e+00 - 1.3399e+02 0 3.0000e+00 - 1.7212e+02 0 2.0000e+00 - 1.8169e+02 0 1.0000e+00 - 1.9193e+02 0 2.0000e+00 - 1.9577e+02 0 3.0000e+00 - 1.9807e+02 0 2.0000e+00 - 2.0181e+02 1.0000e+00 1.0000e+00 - 2.0431e+02 1.0000e+00 2.0000e+00 - 2.0853e+02 1.0000e+00 1.0000e+00 - 2.1423e+02 1.0000e+00 1.0000e+00 - 2.1780e+02 1.0000e+00 1.0000e+00 - 2.1972e+02 1.0000e+00 1.0000e+00 - 2.2998e+02 1.0000e+00 1.0000e+00 - 2.3092e+02 1.0000e+00 1.0000e+00 - 2.3268e+02 1.0000e+00 1.0000e+00 - 2.4184e+02 1.0000e+00 1.0000e+00 - 2.4700e+02 1.0000e+00 2.0000e+00 - 2.5320e+02 1.0000e+00 1.0000e+00 - 2.5401e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 150.737 - ------------------------------------------- - -testing cutpoint: 264.279 - - ---- view of lincomb & g_node & w_node ---- - - 1.2779e+02 0 1.0000e+00 - 1.3399e+02 0 3.0000e+00 - 1.7212e+02 0 2.0000e+00 - 1.8169e+02 0 1.0000e+00 - 1.9193e+02 0 2.0000e+00 - 1.9577e+02 0 3.0000e+00 - 1.9807e+02 0 2.0000e+00 - 2.0181e+02 0 1.0000e+00 - 2.0431e+02 0 2.0000e+00 - 2.0853e+02 0 1.0000e+00 - 2.1423e+02 0 1.0000e+00 - 2.1780e+02 0 1.0000e+00 - 2.1972e+02 0 1.0000e+00 - 2.2998e+02 0 1.0000e+00 - 2.3092e+02 0 1.0000e+00 - 2.3268e+02 0 1.0000e+00 - 2.4184e+02 0 1.0000e+00 - 2.4700e+02 0 2.0000e+00 - 2.5320e+02 0 1.0000e+00 - 2.5401e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.91762 - ------------------------------------------- - -testing cutpoint: 308.484 - - ---- view of lincomb & g_node & w_node ---- - - 1.2779e+02 0 1.0000e+00 - 1.3399e+02 0 3.0000e+00 - 1.7212e+02 0 2.0000e+00 - 1.8169e+02 0 1.0000e+00 - 1.9193e+02 0 2.0000e+00 - 1.9577e+02 0 3.0000e+00 - 1.9807e+02 0 2.0000e+00 - 2.0181e+02 0 1.0000e+00 - 2.0431e+02 0 2.0000e+00 - 2.0853e+02 0 1.0000e+00 - 2.1423e+02 0 1.0000e+00 - 2.1780e+02 0 1.0000e+00 - 2.1972e+02 0 1.0000e+00 - 2.2998e+02 0 1.0000e+00 - 2.3092e+02 0 1.0000e+00 - 2.3268e+02 0 1.0000e+00 - 2.4184e+02 0 1.0000e+00 - 2.4700e+02 0 2.0000e+00 - 2.5320e+02 0 1.0000e+00 - 2.5401e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.42141 - ------------------------------------------- - -testing cutpoint: 341.166 - - ---- view of lincomb & g_node & w_node ---- - - 1.2779e+02 0 1.0000e+00 - 1.3399e+02 0 3.0000e+00 - 1.7212e+02 0 2.0000e+00 - 1.8169e+02 0 1.0000e+00 - 1.9193e+02 0 2.0000e+00 - 1.9577e+02 0 3.0000e+00 - 1.9807e+02 0 2.0000e+00 - 2.0181e+02 0 1.0000e+00 - 2.0431e+02 0 2.0000e+00 - 2.0853e+02 0 1.0000e+00 - 2.1423e+02 0 1.0000e+00 - 2.1780e+02 0 1.0000e+00 - 2.1972e+02 0 1.0000e+00 - 2.2998e+02 0 1.0000e+00 - 2.3092e+02 0 1.0000e+00 - 2.3268e+02 0 1.0000e+00 - 2.4184e+02 0 1.0000e+00 - 2.4700e+02 0 2.0000e+00 - 2.5320e+02 0 1.0000e+00 - 2.5401e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 7.02763 - ------------------------------------------- - -testing cutpoint: 346.665 - - ---- view of lincomb & g_node & w_node ---- - - 1.2779e+02 0 1.0000e+00 - 1.3399e+02 0 3.0000e+00 - 1.7212e+02 0 2.0000e+00 - 1.8169e+02 0 1.0000e+00 - 1.9193e+02 0 2.0000e+00 - 1.9577e+02 0 3.0000e+00 - 1.9807e+02 0 2.0000e+00 - 2.0181e+02 0 1.0000e+00 - 2.0431e+02 0 2.0000e+00 - 2.0853e+02 0 1.0000e+00 - 2.1423e+02 0 1.0000e+00 - 2.1780e+02 0 1.0000e+00 - 2.1972e+02 0 1.0000e+00 - 2.2998e+02 0 1.0000e+00 - 2.3092e+02 0 1.0000e+00 - 2.3268e+02 0 1.0000e+00 - 2.4184e+02 0 1.0000e+00 - 2.4700e+02 0 2.0000e+00 - 2.5320e+02 0 1.0000e+00 - 2.5401e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 6.59639 - ------------------------------------------- - -Split successful: unique node assignments: - 3 4 5 6 - -growing node 3 - -beginning try no. 1 - -Column 8 was sampled but unique values of column 8 are 0 - -Column 4 was sampled but unique values of column 4 are 0 - - ---- view of x_node ---- - - 1.0000e+00 9.1000e+01 7.5000e+01 2.7500e+02 2.1700e+02 - 1.0000e+00 9.1000e+01 1.1000e+02 2.2700e+02 2.6400e+02 - 1.0000e+00 2.4200e+02 8.6000e+01 4.1600e+02 2.6900e+02 - 0 8.2000e+01 7.0000e+01 2.6000e+02 2.3100e+02 - 0 1.1300e+02 9.1000e+01 4.1200e+02 4.2200e+02 - 1.0000e+00 1.1300e+02 9.1000e+01 2.4600e+02 2.8800e+02 - 0 7.5000e+01 4.5000e+01 2.1900e+02 2.4600e+02 - 0 1.0400e+02 5.2000e+01 3.3500e+02 2.6800e+02 - 0 1.0300e+02 7.4000e+01 3.9300e+02 2.9500e+02 - 0 8.0000e+01 5.7000e+01 2.5300e+02 2.5200e+02 - 0 1.9500e+02 8.5000e+01 2.9100e+02 2.5100e+02 - 0 5.6000e+01 5.7000e+01 1.9800e+02 2.8000e+02 - 1.0000e+00 1.6900e+02 7.1000e+01 3.0400e+02 2.5500e+02 - 1.0000e+00 7.2000e+01 1.1315e+02 2.7900e+02 1.3600e+02 - 0 6.2000e+01 6.9750e+01 2.2500e+02 2.0000e+02 - 0 1.4600e+02 5.6000e+01 2.8000e+02 2.2700e+02 - 0 2.6000e+02 7.0000e+01 3.1800e+02 2.7900e+02 - 1.0000e+00 1.5400e+02 8.3700e+01 3.7600e+02 2.3800e+02 - 0 5.5000e+01 9.9000e+01 4.1400e+02 2.7100e+02 - 1.0000e+00 1.1800e+02 5.3000e+01 1.9300e+02 1.5600e+02 - - - ---- view of y_node ---- - - 5.3300e+02 0 - 7.3700e+02 0 - 7.9900e+02 1.0000e+00 - 9.9400e+02 0 - 1.0300e+03 0 - 1.1530e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.2950e+03 0 - 1.4010e+03 0 - 1.4180e+03 0 - 1.4330e+03 0 - 1.4550e+03 0 - 1.5040e+03 0 - 1.5760e+03 1.0000e+00 - 1.6140e+03 0 - 1.6140e+03 0 - 1.6820e+03 1.0000e+00 - 1.7020e+03 0 - 1.7350e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 195.26 - - n_events, left node: 1 - - n_risk, left node: 9 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 370.846 - - n_events, right node: 1 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 2.4650e+02 - 2.4741e+02 - 3.4294e+02 - 3.5494e+02 - 3.7085e+02 - - -testing cutpoint: 246.498 - - ---- view of lincomb & g_node & w_node ---- - - 1.5352e+02 0 1.0000e+00 - 1.6551e+02 0 3.0000e+00 - 1.8551e+02 0 1.0000e+00 - 1.8814e+02 0 1.0000e+00 - 1.9075e+02 0 1.0000e+00 - 1.9451e+02 0 1.0000e+00 - 1.9526e+02 0 1.0000e+00 - 1.9549e+02 0 2.0000e+00 - 2.0985e+02 0 3.0000e+00 - 2.1049e+02 0 1.0000e+00 - 2.1051e+02 0 1.0000e+00 - 2.1776e+02 0 1.0000e+00 - 2.1784e+02 0 1.0000e+00 - 2.2525e+02 0 1.0000e+00 - 2.2687e+02 0 1.0000e+00 - 2.2735e+02 0 2.0000e+00 - 2.2764e+02 0 2.0000e+00 - 2.2895e+02 0 1.0000e+00 - 2.2986e+02 0 1.0000e+00 - 2.3576e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 0.677928 - ------------------------------------------- - -testing cutpoint: 247.409 - - ---- view of lincomb & g_node & w_node ---- - - 1.5352e+02 0 1.0000e+00 - 1.6551e+02 0 3.0000e+00 - 1.8551e+02 0 1.0000e+00 - 1.8814e+02 0 1.0000e+00 - 1.9075e+02 0 1.0000e+00 - 1.9451e+02 0 1.0000e+00 - 1.9526e+02 0 1.0000e+00 - 1.9549e+02 0 2.0000e+00 - 2.0985e+02 0 3.0000e+00 - 2.1049e+02 0 1.0000e+00 - 2.1051e+02 0 1.0000e+00 - 2.1776e+02 0 1.0000e+00 - 2.1784e+02 0 1.0000e+00 - 2.2525e+02 0 1.0000e+00 - 2.2687e+02 0 1.0000e+00 - 2.2735e+02 0 2.0000e+00 - 2.2764e+02 0 2.0000e+00 - 2.2895e+02 0 1.0000e+00 - 2.2986e+02 0 1.0000e+00 - 2.3576e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 0.910392 - ------------------------------------------- - -testing cutpoint: 342.943 - - ---- view of lincomb & g_node & w_node ---- - - 1.5352e+02 0 1.0000e+00 - 1.6551e+02 0 3.0000e+00 - 1.8551e+02 0 1.0000e+00 - 1.8814e+02 0 1.0000e+00 - 1.9075e+02 0 1.0000e+00 - 1.9451e+02 0 1.0000e+00 - 1.9526e+02 0 1.0000e+00 - 1.9549e+02 0 2.0000e+00 - 2.0985e+02 0 3.0000e+00 - 2.1049e+02 0 1.0000e+00 - 2.1051e+02 0 1.0000e+00 - 2.1776e+02 0 1.0000e+00 - 2.1784e+02 0 1.0000e+00 - 2.2525e+02 0 1.0000e+00 - 2.2687e+02 0 1.0000e+00 - 2.2735e+02 0 2.0000e+00 - 2.2764e+02 0 2.0000e+00 - 2.2895e+02 0 1.0000e+00 - 2.2986e+02 0 1.0000e+00 - 2.3576e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 0.0660325 - ------------------------------------------- - -testing cutpoint: 354.94 - - ---- view of lincomb & g_node & w_node ---- - - 1.5352e+02 0 1.0000e+00 - 1.6551e+02 0 3.0000e+00 - 1.8551e+02 0 1.0000e+00 - 1.8814e+02 0 1.0000e+00 - 1.9075e+02 0 1.0000e+00 - 1.9451e+02 0 1.0000e+00 - 1.9526e+02 0 1.0000e+00 - 1.9549e+02 0 2.0000e+00 - 2.0985e+02 0 3.0000e+00 - 2.1049e+02 0 1.0000e+00 - 2.1051e+02 0 1.0000e+00 - 2.1776e+02 0 1.0000e+00 - 2.1784e+02 0 1.0000e+00 - 2.2525e+02 0 1.0000e+00 - 2.2687e+02 0 1.0000e+00 - 2.2735e+02 0 2.0000e+00 - 2.2764e+02 0 2.0000e+00 - 2.2895e+02 0 1.0000e+00 - 2.2986e+02 0 1.0000e+00 - 2.3576e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 0.34682 - ------------------------------------------- - -testing cutpoint: 370.846 - - ---- view of lincomb & g_node & w_node ---- - - 1.5352e+02 0 1.0000e+00 - 1.6551e+02 0 3.0000e+00 - 1.8551e+02 0 1.0000e+00 - 1.8814e+02 0 1.0000e+00 - 1.9075e+02 0 1.0000e+00 - 1.9451e+02 0 1.0000e+00 - 1.9526e+02 0 1.0000e+00 - 1.9549e+02 0 2.0000e+00 - 2.0985e+02 0 3.0000e+00 - 2.1049e+02 0 1.0000e+00 - 2.1051e+02 0 1.0000e+00 - 2.1776e+02 0 1.0000e+00 - 2.1784e+02 0 1.0000e+00 - 2.2525e+02 0 1.0000e+00 - 2.2687e+02 0 1.0000e+00 - 2.2735e+02 0 2.0000e+00 - 2.2764e+02 0 2.0000e+00 - 2.2895e+02 0 1.0000e+00 - 2.2986e+02 0 1.0000e+00 - 2.3576e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 3.06838 - ------------------------------------------- - -best split stat, 3.06838, was < split_min_stat, 3.84 -beginning try no. 2 - - ---- view of x_node ---- - - 1.1420e+03 0 9.1000e+01 0 2.7500e+02 - 1.1360e+03 0 9.1000e+01 1.0000e+00 2.2700e+02 - 9.6000e+02 0 2.4200e+02 0 4.1600e+02 - 1.1660e+03 1.0000e+00 8.2000e+01 1.0000e+00 2.6000e+02 - 1.2930e+03 1.0000e+00 1.1300e+02 1.0000e+00 4.1200e+02 - 7.9700e+02 0 1.1300e+02 1.0000e+00 2.4600e+02 - 6.6300e+02 0 7.5000e+01 1.0000e+00 2.1900e+02 - 6.5700e+02 0 1.0400e+02 1.0000e+00 3.3500e+02 - 1.3070e+03 1.0000e+00 1.0300e+02 1.0000e+00 3.9300e+02 - 6.8800e+02 0 8.0000e+01 1.0000e+00 2.5300e+02 - 1.0820e+03 1.0000e+00 1.9500e+02 1.0000e+00 2.9100e+02 - 9.1100e+02 1.0000e+00 5.6000e+01 1.0000e+00 1.9800e+02 - 1.6220e+03 1.0000e+00 1.6900e+02 1.0000e+00 3.0400e+02 - 6.7100e+02 1.0000e+00 7.2000e+01 1.0000e+00 2.7900e+02 - 9.3300e+02 0 6.2000e+01 1.0000e+00 2.2500e+02 - 3.7700e+02 0 1.4600e+02 1.0000e+00 2.8000e+02 - 6.1300e+02 0 2.6000e+02 1.0000e+00 3.1800e+02 - 1.0150e+03 0 1.5400e+02 0 3.7600e+02 - 1.0030e+03 0 5.5000e+01 1.0000e+00 4.1400e+02 - 4.6600e+02 1.0000e+00 1.1800e+02 1.0000e+00 1.9300e+02 - - - ---- view of y_node ---- - - 5.3300e+02 0 - 7.3700e+02 0 - 7.9900e+02 1.0000e+00 - 9.9400e+02 0 - 1.0300e+03 0 - 1.1530e+03 0 - 1.2300e+03 0 - 1.2710e+03 0 - 1.2950e+03 0 - 1.4010e+03 0 - 1.4180e+03 0 - 1.4330e+03 0 - 1.4550e+03 0 - 1.5040e+03 0 - 1.5760e+03 1.0000e+00 - 1.6140e+03 0 - 1.6140e+03 0 - 1.6820e+03 1.0000e+00 - 1.7020e+03 0 - 1.7350e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 451.451 - - n_events, left node: 3 - - n_risk, left node: 16 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 800.365 - - n_events, right node: 2 - - n_risk, right node: 10 - -Randomly sampled cutpoints: - 6.7283e+02 - 6.9008e+02 - 7.1415e+02 - 7.6112e+02 - 8.0037e+02 - - -testing cutpoint: 672.833 - - ---- view of lincomb & g_node & w_node ---- - - 2.8429e+02 0 1.0000e+00 - 3.5147e+02 0 2.0000e+00 - 3.5552e+02 0 1.0000e+00 - 3.5622e+02 0 1.0000e+00 - 3.7077e+02 0 1.0000e+00 - 3.8967e+02 0 1.0000e+00 - 3.9702e+02 0 1.0000e+00 - 4.2374e+02 0 2.0000e+00 - 4.3820e+02 0 2.0000e+00 - 4.5103e+02 0 1.0000e+00 - 4.5145e+02 0 3.0000e+00 - 4.5530e+02 0 3.0000e+00 - 4.7426e+02 0 1.0000e+00 - 4.9053e+02 0 1.0000e+00 - 4.9519e+02 0 1.0000e+00 - 5.1179e+02 0 1.0000e+00 - 5.1928e+02 0 3.0000e+00 - 5.2440e+02 0 2.0000e+00 - 5.2457e+02 0 2.0000e+00 - 5.3137e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.37313 - ------------------------------------------- - -testing cutpoint: 690.084 - - ---- view of lincomb & g_node & w_node ---- - - 2.8429e+02 0 1.0000e+00 - 3.5147e+02 0 2.0000e+00 - 3.5552e+02 0 1.0000e+00 - 3.5622e+02 0 1.0000e+00 - 3.7077e+02 0 1.0000e+00 - 3.8967e+02 0 1.0000e+00 - 3.9702e+02 0 1.0000e+00 - 4.2374e+02 0 2.0000e+00 - 4.3820e+02 0 2.0000e+00 - 4.5103e+02 0 1.0000e+00 - 4.5145e+02 0 3.0000e+00 - 4.5530e+02 0 3.0000e+00 - 4.7426e+02 0 1.0000e+00 - 4.9053e+02 0 1.0000e+00 - 4.9519e+02 0 1.0000e+00 - 5.1179e+02 0 1.0000e+00 - 5.1928e+02 0 3.0000e+00 - 5.2440e+02 0 2.0000e+00 - 5.2457e+02 0 2.0000e+00 - 5.3137e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.40373 - ------------------------------------------- - -testing cutpoint: 714.151 - - ---- view of lincomb & g_node & w_node ---- - - 2.8429e+02 0 1.0000e+00 - 3.5147e+02 0 2.0000e+00 - 3.5552e+02 0 1.0000e+00 - 3.5622e+02 0 1.0000e+00 - 3.7077e+02 0 1.0000e+00 - 3.8967e+02 0 1.0000e+00 - 3.9702e+02 0 1.0000e+00 - 4.2374e+02 0 2.0000e+00 - 4.3820e+02 0 2.0000e+00 - 4.5103e+02 0 1.0000e+00 - 4.5145e+02 0 3.0000e+00 - 4.5530e+02 0 3.0000e+00 - 4.7426e+02 0 1.0000e+00 - 4.9053e+02 0 1.0000e+00 - 4.9519e+02 0 1.0000e+00 - 5.1179e+02 0 1.0000e+00 - 5.1928e+02 0 3.0000e+00 - 5.2440e+02 0 2.0000e+00 - 5.2457e+02 0 2.0000e+00 - 5.3137e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 4.81935 - ------------------------------------------- - -testing cutpoint: 761.117 - - ---- view of lincomb & g_node & w_node ---- - - 2.8429e+02 0 1.0000e+00 - 3.5147e+02 0 2.0000e+00 - 3.5552e+02 0 1.0000e+00 - 3.5622e+02 0 1.0000e+00 - 3.7077e+02 0 1.0000e+00 - 3.8967e+02 0 1.0000e+00 - 3.9702e+02 0 1.0000e+00 - 4.2374e+02 0 2.0000e+00 - 4.3820e+02 0 2.0000e+00 - 4.5103e+02 0 1.0000e+00 - 4.5145e+02 0 3.0000e+00 - 4.5530e+02 0 3.0000e+00 - 4.7426e+02 0 1.0000e+00 - 4.9053e+02 0 1.0000e+00 - 4.9519e+02 0 1.0000e+00 - 5.1179e+02 0 1.0000e+00 - 5.1928e+02 0 3.0000e+00 - 5.2440e+02 0 2.0000e+00 - 5.2457e+02 0 2.0000e+00 - 5.3137e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 0.0872877 - ------------------------------------------- - -testing cutpoint: 800.365 - - ---- view of lincomb & g_node & w_node ---- - - 2.8429e+02 0 1.0000e+00 - 3.5147e+02 0 2.0000e+00 - 3.5552e+02 0 1.0000e+00 - 3.5622e+02 0 1.0000e+00 - 3.7077e+02 0 1.0000e+00 - 3.8967e+02 0 1.0000e+00 - 3.9702e+02 0 1.0000e+00 - 4.2374e+02 0 2.0000e+00 - 4.3820e+02 0 2.0000e+00 - 4.5103e+02 0 1.0000e+00 - 4.5145e+02 0 3.0000e+00 - 4.5530e+02 0 3.0000e+00 - 4.7426e+02 0 1.0000e+00 - 4.9053e+02 0 1.0000e+00 - 4.9519e+02 0 1.0000e+00 - 5.1179e+02 0 1.0000e+00 - 5.1928e+02 0 3.0000e+00 - 5.2440e+02 0 2.0000e+00 - 5.2457e+02 0 2.0000e+00 - 5.3137e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.64608 - ------------------------------------------- - -Split successful: unique node assignments: - 4 5 6 7 8 - -growing node 4 - -beginning try no. 1 - - ---- view of x_node ---- - - 0 2.5000e+00 5.7000e+01 1.0000e+00 1.0000e+00 - 0 2.4000e+00 2.2500e+02 0 0 - 0 3.2000e+00 9.1000e+01 0 1.0000e+00 - 0 2.3000e+00 1.4500e+02 0 1.0000e+00 - 0 4.4000e+00 3.0800e+02 0 1.0000e+00 - 0 1.4000e+00 2.1000e+02 0 1.0000e+00 - 0 3.5000e+00 1.2100e+02 0 1.0000e+00 - 1.0000e+00 8.0000e-01 5.2000e+01 0 0 - 0 8.5000e+00 1.9600e+02 0 1.0000e+00 - 0 2.1000e+00 5.2000e+01 0 0 - 0 2.5000e+00 2.1700e+02 0 0 - 0 1.0000e+00 9.4000e+01 0 0 - 1.0000e+00 2.0000e+00 5.0000e+01 0 0 - 0 7.1000e+00 3.8000e+02 1.0000e+00 1.0000e+00 - 0 1.1000e+00 1.1600e+02 0 1.0000e+00 - 0 1.5000e+00 6.7000e+01 0 0 - 0 3.5000e+00 4.4400e+02 0 0 - 0 1.6000e+00 6.7000e+01 0 0 - 1.0000e+00 9.0000e-01 8.1000e+01 0 0 - 0 7.0000e-01 4.1000e+01 0 1.0000e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.4000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 5.5200e+02 1.0000e+00 - 8.3700e+02 0 - 1.0120e+03 1.0000e+00 - 1.0840e+03 0 - 1.1490e+03 0 - 1.3200e+03 0 - 1.4870e+03 1.0000e+00 - 1.5360e+03 1.0000e+00 - 1.5690e+03 0 - 1.7410e+03 1.0000e+00 - 1.7650e+03 0 - 1.7700e+03 0 - 1.9080e+03 0 - 2.0330e+03 0 - 2.1570e+03 0 - 2.2240e+03 0 - 2.3320e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 33.0019 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 197.708 - - n_events, right node: 3 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - 6.1870e+01 - 6.9304e+01 - 1.1288e+02 - 1.2114e+02 - 1.9771e+02 - - -testing cutpoint: 61.8698 - - ---- view of lincomb & g_node & w_node ---- - - 1.3728e+01 0 3.0000e+00 - 1.9812e+01 0 1.0000e+00 - 3.3002e+01 0 1.0000e+00 - 3.8119e+01 0 2.0000e+00 - 4.0317e+01 0 2.0000e+00 - 4.7798e+01 0 3.0000e+00 - 4.8400e+01 0 2.0000e+00 - 4.8875e+01 0 2.0000e+00 - 5.4797e+01 0 2.0000e+00 - 5.5146e+01 0 1.0000e+00 - 5.5872e+01 0 2.0000e+00 - 6.1770e+01 0 2.0000e+00 - 6.1870e+01 0 1.0000e+00 - 6.9304e+01 1.0000e+00 2.0000e+00 - 7.4588e+01 1.0000e+00 2.0000e+00 - 8.2597e+01 1.0000e+00 1.0000e+00 - 8.5560e+01 1.0000e+00 2.0000e+00 - 8.5594e+01 1.0000e+00 1.0000e+00 - 1.0599e+02 1.0000e+00 2.0000e+00 - 1.1288e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 0.0761819 - ------------------------------------------- - -testing cutpoint: 69.3042 - - ---- view of lincomb & g_node & w_node ---- - - 1.3728e+01 0 3.0000e+00 - 1.9812e+01 0 1.0000e+00 - 3.3002e+01 0 1.0000e+00 - 3.8119e+01 0 2.0000e+00 - 4.0317e+01 0 2.0000e+00 - 4.7798e+01 0 3.0000e+00 - 4.8400e+01 0 2.0000e+00 - 4.8875e+01 0 2.0000e+00 - 5.4797e+01 0 2.0000e+00 - 5.5146e+01 0 1.0000e+00 - 5.5872e+01 0 2.0000e+00 - 6.1770e+01 0 2.0000e+00 - 6.1870e+01 0 1.0000e+00 - 6.9304e+01 0 2.0000e+00 - 7.4588e+01 1.0000e+00 2.0000e+00 - 8.2597e+01 1.0000e+00 1.0000e+00 - 8.5560e+01 1.0000e+00 2.0000e+00 - 8.5594e+01 1.0000e+00 1.0000e+00 - 1.0599e+02 1.0000e+00 2.0000e+00 - 1.1288e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 0.0141435 - ------------------------------------------- - -testing cutpoint: 112.881 - - ---- view of lincomb & g_node & w_node ---- - - 1.3728e+01 0 3.0000e+00 - 1.9812e+01 0 1.0000e+00 - 3.3002e+01 0 1.0000e+00 - 3.8119e+01 0 2.0000e+00 - 4.0317e+01 0 2.0000e+00 - 4.7798e+01 0 3.0000e+00 - 4.8400e+01 0 2.0000e+00 - 4.8875e+01 0 2.0000e+00 - 5.4797e+01 0 2.0000e+00 - 5.5146e+01 0 1.0000e+00 - 5.5872e+01 0 2.0000e+00 - 6.1770e+01 0 2.0000e+00 - 6.1870e+01 0 1.0000e+00 - 6.9304e+01 0 2.0000e+00 - 7.4588e+01 0 2.0000e+00 - 8.2597e+01 0 1.0000e+00 - 8.5560e+01 0 2.0000e+00 - 8.5594e+01 0 1.0000e+00 - 1.0599e+02 0 2.0000e+00 - 1.1288e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 2.78764 - ------------------------------------------- - -testing cutpoint: 121.141 - - ---- view of lincomb & g_node & w_node ---- - - 1.3728e+01 0 3.0000e+00 - 1.9812e+01 0 1.0000e+00 - 3.3002e+01 0 1.0000e+00 - 3.8119e+01 0 2.0000e+00 - 4.0317e+01 0 2.0000e+00 - 4.7798e+01 0 3.0000e+00 - 4.8400e+01 0 2.0000e+00 - 4.8875e+01 0 2.0000e+00 - 5.4797e+01 0 2.0000e+00 - 5.5146e+01 0 1.0000e+00 - 5.5872e+01 0 2.0000e+00 - 6.1770e+01 0 2.0000e+00 - 6.1870e+01 0 1.0000e+00 - 6.9304e+01 0 2.0000e+00 - 7.4588e+01 0 2.0000e+00 - 8.2597e+01 0 1.0000e+00 - 8.5560e+01 0 2.0000e+00 - 8.5594e+01 0 1.0000e+00 - 1.0599e+02 0 2.0000e+00 - 1.1288e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 5.53915 - ------------------------------------------- - -testing cutpoint: 197.708 - - ---- view of lincomb & g_node & w_node ---- - - 1.3728e+01 0 3.0000e+00 - 1.9812e+01 0 1.0000e+00 - 3.3002e+01 0 1.0000e+00 - 3.8119e+01 0 2.0000e+00 - 4.0317e+01 0 2.0000e+00 - 4.7798e+01 0 3.0000e+00 - 4.8400e+01 0 2.0000e+00 - 4.8875e+01 0 2.0000e+00 - 5.4797e+01 0 2.0000e+00 - 5.5146e+01 0 1.0000e+00 - 5.5872e+01 0 2.0000e+00 - 6.1770e+01 0 2.0000e+00 - 6.1870e+01 0 1.0000e+00 - 6.9304e+01 0 2.0000e+00 - 7.4588e+01 0 2.0000e+00 - 8.2597e+01 0 1.0000e+00 - 8.5560e+01 0 2.0000e+00 - 8.5594e+01 0 1.0000e+00 - 1.0599e+02 0 2.0000e+00 - 1.1288e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 2.15263 - ------------------------------------------- - -Split successful: unique node assignments: - 5 6 7 8 9 10 - -growing node 5 - -sprouting new leaf with node 5 - - ---- view of leaf_data ---- - - 4.1000e+01 9.2857e-01 7.1429e-02 - 7.7000e+01 7.1429e-01 3.0220e-01 - 1.3100e+02 5.0000e-01 6.0220e-01 - 3.2100e+02 3.5714e-01 8.8791e-01 - 3.2600e+02 2.1429e-01 1.2879e+00 - - -growing node 6 - -beginning try no. 1 - - ---- view of x_node ---- - - 0 1.0000e+00 0 0 7.2000e+01 - 0 0 0 0 4.3200e+02 - 1.0000e+00 0 0 0 1.9100e+02 - 1.0000e+00 0 0 0 1.5500e+02 - 1.0000e+00 0 0 0 1.7200e+02 - 0 0 0 1.0000e+00 5.6000e+01 - 0 1.0000e+00 0 0 1.3500e+02 - 0 1.0000e+00 0 1.0000e+00 9.1000e+01 - 0 0 0 0 9.9000e+01 - 0 1.0000e+00 0 0 1.3700e+02 - 0 0 0 1.0000e+00 1.1200e+02 - 0 0 0 0 1.0300e+02 - 0 0 1.0000e+00 0 1.4900e+02 - 0 0 0 0 2.1000e+02 - 0 0 0 0 1.5700e+02 - 0 0 1.0000e+00 0 2.0500e+02 - 0 0 0 0 1.3100e+02 - 0 0 0 0 1.3900e+02 - 0 0 1.0000e+00 0 1.0000e+02 - 0 1.0000e+00 0 1.0000e+00 1.7100e+02 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.3900e+02 0 - 9.4300e+02 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 37.1724 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 149.199 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 3.8812e+01 - 7.1575e+01 - 7.2705e+01 - 8.6334e+01 - 1.1270e+02 - - -testing cutpoint: 38.8124 - - ---- view of lincomb & g_node & w_node ---- - - 18.0395 0 1.0000 - 24.1427 0 1.0000 - 31.4636 0 1.0000 - 36.6257 0 1.0000 - 37.1724 0 2.0000 - 37.2624 0 1.0000 - 38.7755 0 1.0000 - 38.8124 0 1.0000 - 39.3222 1.0000 1.0000 - 39.8688 1.0000 1.0000 - 40.9621 1.0000 1.0000 - 44.5833 1.0000 1.0000 - 45.9188 1.0000 1.0000 - 46.4655 1.0000 2.0000 - 47.1021 1.0000 1.0000 - 48.6153 1.0000 1.0000 - 48.7421 1.0000 1.0000 - 49.1988 1.0000 1.0000 - 50.8387 1.0000 2.0000 - 51.1063 1.0000 1.0000 - - -logrank stat for this cutpoint: 3.69967 - ------------------------------------------- - -testing cutpoint: 71.5747 - - ---- view of lincomb & g_node & w_node ---- - - 18.0395 0 1.0000 - 24.1427 0 1.0000 - 31.4636 0 1.0000 - 36.6257 0 1.0000 - 37.1724 0 2.0000 - 37.2624 0 1.0000 - 38.7755 0 1.0000 - 38.8124 0 1.0000 - 39.3222 0 1.0000 - 39.8688 0 1.0000 - 40.9621 0 1.0000 - 44.5833 0 1.0000 - 45.9188 0 1.0000 - 46.4655 0 2.0000 - 47.1021 0 1.0000 - 48.6153 0 1.0000 - 48.7421 0 1.0000 - 49.1988 0 1.0000 - 50.8387 0 2.0000 - 51.1063 0 1.0000 - - -logrank stat for this cutpoint: 9.54929 - ------------------------------------------- - -testing cutpoint: 72.7048 - - ---- view of lincomb & g_node & w_node ---- - - 18.0395 0 1.0000 - 24.1427 0 1.0000 - 31.4636 0 1.0000 - 36.6257 0 1.0000 - 37.1724 0 2.0000 - 37.2624 0 1.0000 - 38.7755 0 1.0000 - 38.8124 0 1.0000 - 39.3222 0 1.0000 - 39.8688 0 1.0000 - 40.9621 0 1.0000 - 44.5833 0 1.0000 - 45.9188 0 1.0000 - 46.4655 0 2.0000 - 47.1021 0 1.0000 - 48.6153 0 1.0000 - 48.7421 0 1.0000 - 49.1988 0 1.0000 - 50.8387 0 2.0000 - 51.1063 0 1.0000 - - -logrank stat for this cutpoint: 11.0554 - ------------------------------------------- - -testing cutpoint: 86.3343 - - ---- view of lincomb & g_node & w_node ---- - - 18.0395 0 1.0000 - 24.1427 0 1.0000 - 31.4636 0 1.0000 - 36.6257 0 1.0000 - 37.1724 0 2.0000 - 37.2624 0 1.0000 - 38.7755 0 1.0000 - 38.8124 0 1.0000 - 39.3222 0 1.0000 - 39.8688 0 1.0000 - 40.9621 0 1.0000 - 44.5833 0 1.0000 - 45.9188 0 1.0000 - 46.4655 0 2.0000 - 47.1021 0 1.0000 - 48.6153 0 1.0000 - 48.7421 0 1.0000 - 49.1988 0 1.0000 - 50.8387 0 2.0000 - 51.1063 0 1.0000 - - -logrank stat for this cutpoint: 10.1842 - ------------------------------------------- - -testing cutpoint: 112.701 - - ---- view of lincomb & g_node & w_node ---- - - 18.0395 0 1.0000 - 24.1427 0 1.0000 - 31.4636 0 1.0000 - 36.6257 0 1.0000 - 37.1724 0 2.0000 - 37.2624 0 1.0000 - 38.7755 0 1.0000 - 38.8124 0 1.0000 - 39.3222 0 1.0000 - 39.8688 0 1.0000 - 40.9621 0 1.0000 - 44.5833 0 1.0000 - 45.9188 0 1.0000 - 46.4655 0 2.0000 - 47.1021 0 1.0000 - 48.6153 0 1.0000 - 48.7421 0 1.0000 - 49.1988 0 1.0000 - 50.8387 0 2.0000 - 51.1063 0 1.0000 - - -logrank stat for this cutpoint: 7.54068 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 9 10 11 12 - -growing node 7 - -sprouting new leaf with node 7 - - ---- view of leaf_data ---- - - 1.5760e+03 9.8113e-01 1.8868e-02 - 2.0550e+03 9.0566e-01 9.5791e-02 - 2.0900e+03 8.8050e-01 1.2357e-01 - 2.5830e+03 8.2871e-01 1.8239e-01 - 3.7620e+03 4.7355e-01 6.1096e-01 - - -growing node 8 - -sprouting new leaf with node 8 - - ---- view of leaf_data ---- - - 7.9900e+02 9.6667e-01 3.3333e-02 - 1.6820e+03 8.0556e-01 2.0000e-01 - 2.1050e+03 6.5909e-01 3.8182e-01 - - -growing node 9 - -beginning try no. 1 - -Column 7 was sampled but unique values of column 7 are 0 - - ---- view of x_node ---- - - 1.1000e+02 3.6700e+00 1.0000e+00 4.8964e+01 1.0200e+02 - 1.6000e+02 3.1900e+00 0 5.8817e+01 1.0100e+02 - 2.9600e+02 3.2000e+00 0 4.6382e+01 1.4600e+02 - 3.4400e+02 3.5600e+00 0 3.0574e+01 5.9000e+01 - 1.7800e+02 3.5000e+00 0 6.2908e+01 1.8800e+02 - 2.8900e+02 3.5000e+00 0 5.0472e+01 1.7700e+02 - 2.0000e+02 3.6500e+00 0 5.2444e+01 9.8000e+01 - 3.1700e+02 3.3500e+00 0 6.8463e+01 9.0000e+01 - 3.4100e+02 3.7900e+00 0 3.8382e+01 1.0600e+02 - 1.7600e+02 4.1700e+00 0 4.2713e+01 8.5000e+01 - 2.9800e+02 3.3700e+00 0 4.9763e+01 9.0000e+01 - 1.6400e+02 3.4800e+00 0 6.2623e+01 9.8000e+01 - 2.8300e+02 3.4800e+00 0 5.5726e+01 8.8000e+01 - 2.3800e+02 3.5100e+00 0 4.7181e+01 1.3700e+02 - 3.1300e+02 3.3700e+00 0 3.6493e+01 1.1800e+02 - 1.2800e+02 3.3600e+00 0 5.3509e+01 7.3000e+01 - 1.6500e+02 3.9500e+00 0 6.2645e+01 9.9000e+01 - 1.8100e+02 3.8300e+00 0 4.0553e+01 1.7500e+02 - 3.3600e+02 3.7700e+00 0 4.7036e+01 5.6000e+01 - 1.9900e+02 3.5500e+00 1.0000e+00 3.7582e+01 5.0000e+01 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.0840e+03 0 - 1.1490e+03 0 - 1.4870e+03 1.0000e+00 - 1.5690e+03 0 - 1.7410e+03 1.0000e+00 - 1.7700e+03 0 - 1.9080e+03 0 - 2.1570e+03 0 - 2.2240e+03 0 - 2.3320e+03 0 - 2.4190e+03 1.0000e+00 - 2.4680e+03 0 - 2.4750e+03 0 - 2.5980e+03 1.0000e+00 - 2.7960e+03 1.0000e+00 - 2.9440e+03 0 - 3.0500e+03 0 - 3.4280e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 112.85 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 174.237 - - n_events, right node: 2 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 1.2128e+02 - 1.2759e+02 - 1.2866e+02 - 1.3940e+02 - 1.7424e+02 - - -testing cutpoint: 121.279 - - ---- view of lincomb & g_node & w_node ---- - - 8.8584e+01 0 1.0000e+00 - 9.8528e+01 0 2.0000e+00 - 1.1115e+02 0 1.0000e+00 - 1.1285e+02 0 1.0000e+00 - 1.1410e+02 0 1.0000e+00 - 1.1762e+02 0 2.0000e+00 - 1.2128e+02 0 2.0000e+00 - 1.2620e+02 1.0000e+00 1.0000e+00 - 1.2655e+02 1.0000e+00 2.0000e+00 - 1.2759e+02 1.0000e+00 3.0000e+00 - 1.2866e+02 1.0000e+00 3.0000e+00 - 1.3792e+02 1.0000e+00 1.0000e+00 - 1.3940e+02 1.0000e+00 2.0000e+00 - 1.5092e+02 1.0000e+00 2.0000e+00 - 1.5356e+02 1.0000e+00 2.0000e+00 - 1.5601e+02 1.0000e+00 1.0000e+00 - 1.6056e+02 1.0000e+00 2.0000e+00 - 1.7424e+02 1.0000e+00 2.0000e+00 - 1.7687e+02 1.0000e+00 1.0000e+00 - 1.9243e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 1.00808 - ------------------------------------------- - -testing cutpoint: 127.588 - - ---- view of lincomb & g_node & w_node ---- - - 8.8584e+01 0 1.0000e+00 - 9.8528e+01 0 2.0000e+00 - 1.1115e+02 0 1.0000e+00 - 1.1285e+02 0 1.0000e+00 - 1.1410e+02 0 1.0000e+00 - 1.1762e+02 0 2.0000e+00 - 1.2128e+02 0 2.0000e+00 - 1.2620e+02 0 1.0000e+00 - 1.2655e+02 0 2.0000e+00 - 1.2759e+02 0 3.0000e+00 - 1.2866e+02 1.0000e+00 3.0000e+00 - 1.3792e+02 1.0000e+00 1.0000e+00 - 1.3940e+02 1.0000e+00 2.0000e+00 - 1.5092e+02 1.0000e+00 2.0000e+00 - 1.5356e+02 1.0000e+00 2.0000e+00 - 1.5601e+02 1.0000e+00 1.0000e+00 - 1.6056e+02 1.0000e+00 2.0000e+00 - 1.7424e+02 1.0000e+00 2.0000e+00 - 1.7687e+02 1.0000e+00 1.0000e+00 - 1.9243e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 0.119626 - ------------------------------------------- - -testing cutpoint: 128.657 - - ---- view of lincomb & g_node & w_node ---- - - 8.8584e+01 0 1.0000e+00 - 9.8528e+01 0 2.0000e+00 - 1.1115e+02 0 1.0000e+00 - 1.1285e+02 0 1.0000e+00 - 1.1410e+02 0 1.0000e+00 - 1.1762e+02 0 2.0000e+00 - 1.2128e+02 0 2.0000e+00 - 1.2620e+02 0 1.0000e+00 - 1.2655e+02 0 2.0000e+00 - 1.2759e+02 0 3.0000e+00 - 1.2866e+02 0 3.0000e+00 - 1.3792e+02 1.0000e+00 1.0000e+00 - 1.3940e+02 1.0000e+00 2.0000e+00 - 1.5092e+02 1.0000e+00 2.0000e+00 - 1.5356e+02 1.0000e+00 2.0000e+00 - 1.5601e+02 1.0000e+00 1.0000e+00 - 1.6056e+02 1.0000e+00 2.0000e+00 - 1.7424e+02 1.0000e+00 2.0000e+00 - 1.7687e+02 1.0000e+00 1.0000e+00 - 1.9243e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 1.20047 - ------------------------------------------- - -testing cutpoint: 139.399 - - ---- view of lincomb & g_node & w_node ---- - - 8.8584e+01 0 1.0000e+00 - 9.8528e+01 0 2.0000e+00 - 1.1115e+02 0 1.0000e+00 - 1.1285e+02 0 1.0000e+00 - 1.1410e+02 0 1.0000e+00 - 1.1762e+02 0 2.0000e+00 - 1.2128e+02 0 2.0000e+00 - 1.2620e+02 0 1.0000e+00 - 1.2655e+02 0 2.0000e+00 - 1.2759e+02 0 3.0000e+00 - 1.2866e+02 0 3.0000e+00 - 1.3792e+02 0 1.0000e+00 - 1.3940e+02 0 2.0000e+00 - 1.5092e+02 1.0000e+00 2.0000e+00 - 1.5356e+02 1.0000e+00 2.0000e+00 - 1.5601e+02 1.0000e+00 1.0000e+00 - 1.6056e+02 1.0000e+00 2.0000e+00 - 1.7424e+02 1.0000e+00 2.0000e+00 - 1.7687e+02 1.0000e+00 1.0000e+00 - 1.9243e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 1.62323 - ------------------------------------------- - -testing cutpoint: 174.237 - - ---- view of lincomb & g_node & w_node ---- - - 8.8584e+01 0 1.0000e+00 - 9.8528e+01 0 2.0000e+00 - 1.1115e+02 0 1.0000e+00 - 1.1285e+02 0 1.0000e+00 - 1.1410e+02 0 1.0000e+00 - 1.1762e+02 0 2.0000e+00 - 1.2128e+02 0 2.0000e+00 - 1.2620e+02 0 1.0000e+00 - 1.2655e+02 0 2.0000e+00 - 1.2759e+02 0 3.0000e+00 - 1.2866e+02 0 3.0000e+00 - 1.3792e+02 0 1.0000e+00 - 1.3940e+02 0 2.0000e+00 - 1.5092e+02 0 2.0000e+00 - 1.5356e+02 0 2.0000e+00 - 1.5601e+02 0 1.0000e+00 - 1.6056e+02 0 2.0000e+00 - 1.7424e+02 0 2.0000e+00 - 1.7687e+02 1.0000e+00 1.0000e+00 - 1.9243e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 4.64196 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 11 12 13 14 - -growing node 10 - -sprouting new leaf with node 10 - - ---- view of leaf_data ---- - - 1.4000e+02 7.5000e-01 2.5000e-01 - 5.5200e+02 6.6667e-01 3.6111e-01 - 1.0120e+03 5.7143e-01 5.0397e-01 - 1.5360e+03 4.5714e-01 7.0397e-01 - 3.3950e+03 0 1.7040e+00 - - -growing node 11 - -beginning try no. 1 - - ---- view of x_node ---- - - 0 0 0 2.1855e+02 4.4000e+00 - 1.0000e+00 1.0000e+00 0 2.4645e+02 3.4700e+00 - 1.0000e+00 0 0 7.7500e+01 3.2600e+00 - 1.0000e+00 1.0000e+00 0 1.3020e+02 2.9400e+00 - 1.0000e+00 1.0000e+00 0 1.0230e+02 3.7900e+00 - 1.0000e+00 1.0000e+00 0 1.3485e+02 3.6000e+00 - 1.0000e+00 1.0000e+00 0 1.5345e+02 3.2000e+00 - 0 0 0 1.7100e+02 3.3500e+00 - 1.0000e+00 1.0000e+00 0 2.0305e+02 1.9600e+00 - 0 0 0 1.5000e+02 3.7600e+00 - 1.0000e+00 1.0000e+00 0 1.9300e+02 3.0700e+00 - 0 1.0000e+00 0 9.2000e+01 3.7700e+00 - 0 0 0 1.8800e+02 3.5000e+00 - 1.0000e+00 0 0 1.6585e+02 3.4300e+00 - 1.0000e+00 1.0000e+00 1.0000e+00 7.3530e+01 3.4000e+00 - 0 0 0 8.4000e+01 3.5600e+00 - 1.0000e+00 1.0000e+00 0 1.5035e+02 3.7700e+00 - 1.0000e+00 0 0 9.2000e+01 3.1200e+00 - 0 0 0 8.7000e+01 3.4600e+00 - 1.0000e+00 1.0000e+00 0 2.2010e+02 3.3600e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3900e+02 0 - 1.1650e+03 1.0000e+00 - 1.2930e+03 0 - 1.3020e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.4130e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.4340e+03 0 - 1.4350e+03 0 - 1.5420e+03 0 - 1.5580e+03 0 - 1.7690e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 56.5261 - - n_events, left node: 3 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 157.41 - - n_events, right node: 2 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 6.9972e+01 - 7.9406e+01 - 1.0498e+02 - 1.2681e+02 - 1.3053e+02 - - -testing cutpoint: 69.9717 - - ---- view of lincomb & g_node & w_node ---- - - 4.4300e+01 0 2.0000e+00 - 5.1532e+01 0 1.0000e+00 - 5.6434e+01 0 1.0000e+00 - 5.6526e+01 0 3.0000e+00 - 5.8098e+01 0 1.0000e+00 - 6.0114e+01 0 1.0000e+00 - 6.4277e+01 0 4.0000e+00 - 6.6516e+01 0 3.0000e+00 - 6.9972e+01 0 1.0000e+00 - 7.0813e+01 1.0000e+00 1.0000e+00 - 7.1018e+01 1.0000e+00 1.0000e+00 - 7.9406e+01 1.0000e+00 1.0000e+00 - 7.9416e+01 1.0000e+00 2.0000e+00 - 8.2709e+01 1.0000e+00 2.0000e+00 - 8.2764e+01 1.0000e+00 1.0000e+00 - 8.7513e+01 1.0000e+00 1.0000e+00 - 9.7334e+01 1.0000e+00 1.0000e+00 - 1.0024e+02 1.0000e+00 1.0000e+00 - 1.0392e+02 1.0000e+00 2.0000e+00 - 1.0498e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 0.0366863 - ------------------------------------------- - -testing cutpoint: 79.4056 - - ---- view of lincomb & g_node & w_node ---- - - 4.4300e+01 0 2.0000e+00 - 5.1532e+01 0 1.0000e+00 - 5.6434e+01 0 1.0000e+00 - 5.6526e+01 0 3.0000e+00 - 5.8098e+01 0 1.0000e+00 - 6.0114e+01 0 1.0000e+00 - 6.4277e+01 0 4.0000e+00 - 6.6516e+01 0 3.0000e+00 - 6.9972e+01 0 1.0000e+00 - 7.0813e+01 0 1.0000e+00 - 7.1018e+01 0 1.0000e+00 - 7.9406e+01 0 1.0000e+00 - 7.9416e+01 1.0000e+00 2.0000e+00 - 8.2709e+01 1.0000e+00 2.0000e+00 - 8.2764e+01 1.0000e+00 1.0000e+00 - 8.7513e+01 1.0000e+00 1.0000e+00 - 9.7334e+01 1.0000e+00 1.0000e+00 - 1.0024e+02 1.0000e+00 1.0000e+00 - 1.0392e+02 1.0000e+00 2.0000e+00 - 1.0498e+02 1.0000e+00 2.0000e+00 - - -logrank stat for this cutpoint: 0.196808 - ------------------------------------------- - -testing cutpoint: 104.978 - - ---- view of lincomb & g_node & w_node ---- - - 4.4300e+01 0 2.0000e+00 - 5.1532e+01 0 1.0000e+00 - 5.6434e+01 0 1.0000e+00 - 5.6526e+01 0 3.0000e+00 - 5.8098e+01 0 1.0000e+00 - 6.0114e+01 0 1.0000e+00 - 6.4277e+01 0 4.0000e+00 - 6.6516e+01 0 3.0000e+00 - 6.9972e+01 0 1.0000e+00 - 7.0813e+01 0 1.0000e+00 - 7.1018e+01 0 1.0000e+00 - 7.9406e+01 0 1.0000e+00 - 7.9416e+01 0 2.0000e+00 - 8.2709e+01 0 2.0000e+00 - 8.2764e+01 0 1.0000e+00 - 8.7513e+01 0 1.0000e+00 - 9.7334e+01 0 1.0000e+00 - 1.0024e+02 0 1.0000e+00 - 1.0392e+02 0 2.0000e+00 - 1.0498e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 0.00933041 - ------------------------------------------- - -testing cutpoint: 126.814 - - ---- view of lincomb & g_node & w_node ---- - - 4.4300e+01 0 2.0000e+00 - 5.1532e+01 0 1.0000e+00 - 5.6434e+01 0 1.0000e+00 - 5.6526e+01 0 3.0000e+00 - 5.8098e+01 0 1.0000e+00 - 6.0114e+01 0 1.0000e+00 - 6.4277e+01 0 4.0000e+00 - 6.6516e+01 0 3.0000e+00 - 6.9972e+01 0 1.0000e+00 - 7.0813e+01 0 1.0000e+00 - 7.1018e+01 0 1.0000e+00 - 7.9406e+01 0 1.0000e+00 - 7.9416e+01 0 2.0000e+00 - 8.2709e+01 0 2.0000e+00 - 8.2764e+01 0 1.0000e+00 - 8.7513e+01 0 1.0000e+00 - 9.7334e+01 0 1.0000e+00 - 1.0024e+02 0 1.0000e+00 - 1.0392e+02 0 2.0000e+00 - 1.0498e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 0.119684 - ------------------------------------------- - -testing cutpoint: 130.527 - - ---- view of lincomb & g_node & w_node ---- - - 4.4300e+01 0 2.0000e+00 - 5.1532e+01 0 1.0000e+00 - 5.6434e+01 0 1.0000e+00 - 5.6526e+01 0 3.0000e+00 - 5.8098e+01 0 1.0000e+00 - 6.0114e+01 0 1.0000e+00 - 6.4277e+01 0 4.0000e+00 - 6.6516e+01 0 3.0000e+00 - 6.9972e+01 0 1.0000e+00 - 7.0813e+01 0 1.0000e+00 - 7.1018e+01 0 1.0000e+00 - 7.9406e+01 0 1.0000e+00 - 7.9416e+01 0 2.0000e+00 - 8.2709e+01 0 2.0000e+00 - 8.2764e+01 0 1.0000e+00 - 8.7513e+01 0 1.0000e+00 - 9.7334e+01 0 1.0000e+00 - 1.0024e+02 0 1.0000e+00 - 1.0392e+02 0 2.0000e+00 - 1.0498e+02 0 2.0000e+00 - - -logrank stat for this cutpoint: 0.829171 - ------------------------------------------- - -best split stat, 0.829171, was < split_min_stat, 3.84 -beginning try no. 2 - - ---- view of x_node ---- - - 3.4500e+02 1.0000e+00 0 0 0 - 3.2500e+02 1.0000e+00 1.0000e+00 1.0000e+00 1.0000e+00 - 4.2000e+02 0 1.0000e+00 1.0000e+00 1.0000e+00 - 3.0000e+02 1.0000e+00 0 1.0000e+00 0 - 2.5700e+02 0 1.0000e+00 1.0000e+00 0 - 3.3200e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 - 3.9600e+02 1.0000e+00 0 1.0000e+00 0 - 4.3400e+02 1.0000e+00 0 0 0 - 5.1800e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 - 3.4200e+02 1.0000e+00 0 0 0 - 1.0000e+03 0 0 1.0000e+00 0 - 5.7200e+02 1.0000e+00 0 0 0 - 3.7400e+02 1.0000e+00 0 0 1.0000e+00 - 1.7750e+03 1.0000e+00 0 1.0000e+00 1.0000e+00 - 2.8800e+02 1.0000e+00 0 1.0000e+00 0 - 3.1700e+02 1.0000e+00 1.0000e+00 0 1.0000e+00 - 3.8700e+02 1.0000e+00 0 1.0000e+00 0 - 3.5600e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 - 3.2800e+02 1.0000e+00 0 0 1.0000e+00 - 2.9900e+02 1.0000e+00 0 1.0000e+00 1.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3900e+02 0 - 1.1650e+03 1.0000e+00 - 1.2930e+03 0 - 1.3020e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.4130e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.4340e+03 0 - 1.4350e+03 0 - 1.5420e+03 0 - 1.5580e+03 0 - 1.7690e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 69.7837 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 153.018 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 6.9784e+01 - 9.3237e+01 - 9.6754e+01 - 1.0634e+02 - 1.0907e+02 - - -testing cutpoint: 69.7837 - - ---- view of lincomb & g_node & w_node ---- - - 62.9475 0 2.0000 - 66.0535 0 1.0000 - 68.2244 0 1.0000 - 69.7837 0 2.0000 - 70.0532 1.0000 1.0000 - 71.4492 1.0000 1.0000 - 76.3026 1.0000 1.0000 - 77.6990 1.0000 1.0000 - 77.9685 1.0000 1.0000 - 83.7383 1.0000 3.0000 - 85.4972 1.0000 1.0000 - 87.9360 1.0000 1.0000 - 88.8155 1.0000 2.0000 - 89.0151 1.0000 1.0000 - 89.6015 1.0000 1.0000 - 91.0909 1.0000 1.0000 - 93.2366 1.0000 1.0000 - 93.4125 1.0000 1.0000 - 93.9274 1.0000 4.0000 - 96.7545 1.0000 3.0000 - - -logrank stat for this cutpoint: 0.894327 - ------------------------------------------- - -testing cutpoint: 93.2366 - - ---- view of lincomb & g_node & w_node ---- - - 62.9475 0 2.0000 - 66.0535 0 1.0000 - 68.2244 0 1.0000 - 69.7837 0 2.0000 - 70.0532 0 1.0000 - 71.4492 0 1.0000 - 76.3026 0 1.0000 - 77.6990 0 1.0000 - 77.9685 0 1.0000 - 83.7383 0 3.0000 - 85.4972 0 1.0000 - 87.9360 0 1.0000 - 88.8155 0 2.0000 - 89.0151 0 1.0000 - 89.6015 0 1.0000 - 91.0909 0 1.0000 - 93.2366 0 1.0000 - 93.4125 1.0000 1.0000 - 93.9274 1.0000 4.0000 - 96.7545 1.0000 3.0000 - - -logrank stat for this cutpoint: 0.0612366 - ------------------------------------------- - -testing cutpoint: 96.7545 - - ---- view of lincomb & g_node & w_node ---- - - 62.9475 0 2.0000 - 66.0535 0 1.0000 - 68.2244 0 1.0000 - 69.7837 0 2.0000 - 70.0532 0 1.0000 - 71.4492 0 1.0000 - 76.3026 0 1.0000 - 77.6990 0 1.0000 - 77.9685 0 1.0000 - 83.7383 0 3.0000 - 85.4972 0 1.0000 - 87.9360 0 1.0000 - 88.8155 0 2.0000 - 89.0151 0 1.0000 - 89.6015 0 1.0000 - 91.0909 0 1.0000 - 93.2366 0 1.0000 - 93.4125 0 1.0000 - 93.9274 0 4.0000 - 96.7545 0 3.0000 - - -logrank stat for this cutpoint: 0.656067 - ------------------------------------------- - -testing cutpoint: 106.335 - - ---- view of lincomb & g_node & w_node ---- - - 62.9475 0 2.0000 - 66.0535 0 1.0000 - 68.2244 0 1.0000 - 69.7837 0 2.0000 - 70.0532 0 1.0000 - 71.4492 0 1.0000 - 76.3026 0 1.0000 - 77.6990 0 1.0000 - 77.9685 0 1.0000 - 83.7383 0 3.0000 - 85.4972 0 1.0000 - 87.9360 0 1.0000 - 88.8155 0 2.0000 - 89.0151 0 1.0000 - 89.6015 0 1.0000 - 91.0909 0 1.0000 - 93.2366 0 1.0000 - 93.4125 0 1.0000 - 93.9274 0 4.0000 - 96.7545 0 3.0000 - - -logrank stat for this cutpoint: 0.0202529 - ------------------------------------------- - -testing cutpoint: 109.067 - - ---- view of lincomb & g_node & w_node ---- - - 62.9475 0 2.0000 - 66.0535 0 1.0000 - 68.2244 0 1.0000 - 69.7837 0 2.0000 - 70.0532 0 1.0000 - 71.4492 0 1.0000 - 76.3026 0 1.0000 - 77.6990 0 1.0000 - 77.9685 0 1.0000 - 83.7383 0 3.0000 - 85.4972 0 1.0000 - 87.9360 0 1.0000 - 88.8155 0 2.0000 - 89.0151 0 1.0000 - 89.6015 0 1.0000 - 91.0909 0 1.0000 - 93.2366 0 1.0000 - 93.4125 0 1.0000 - 93.9274 0 4.0000 - 96.7545 0 3.0000 - - -logrank stat for this cutpoint: 0.363328 - ------------------------------------------- - -best split stat, 0.894327, was < split_min_stat, 3.84 -beginning try no. 3 - - ---- view of x_node ---- - - 4.4000e+00 1.0700e+01 0 1.8600e+03 0 - 3.4700e+00 1.1900e+01 1.0000e+00 2.4600e+03 1.0000e+00 - 3.2600e+00 1.1400e+01 0 3.1960e+03 0 - 2.9400e+00 1.1200e+01 1.0000e+00 1.7940e+03 1.0000e+00 - 3.7900e+00 9.9000e+00 1.0000e+00 1.6640e+03 1.0000e+00 - 3.6000e+00 1.1000e+01 0 1.4920e+03 1.0000e+00 - 3.2000e+00 1.0000e+01 0 1.4400e+03 1.0000e+00 - 3.3500e+00 1.0200e+01 0 1.7130e+03 0 - 1.9600e+00 1.0700e+01 1.0000e+00 2.2500e+03 1.0000e+00 - 3.7600e+00 1.0800e+01 0 1.6530e+03 0 - 3.0700e+00 1.0900e+01 0 3.1500e+03 1.0000e+00 - 3.7700e+00 9.5000e+00 0 2.5200e+03 1.0000e+00 - 3.5000e+00 1.0100e+01 0 1.4280e+03 0 - 3.4300e+00 1.1500e+01 1.0000e+00 2.0650e+03 0 - 3.4000e+00 1.1000e+01 1.0000e+00 5.4872e+03 1.0000e+00 - 3.5600e+00 9.8000e+00 0 1.6360e+03 0 - 3.7700e+00 1.0100e+01 0 1.6130e+03 1.0000e+00 - 3.1200e+00 1.1200e+01 1.0000e+00 1.9110e+03 0 - 3.4600e+00 9.6000e+00 1.0000e+00 1.6770e+03 0 - 3.3600e+00 1.0900e+01 0 2.7690e+03 1.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 7.6200e+02 1.0000e+00 - 7.8600e+02 1.0000e+00 - 9.0400e+02 1.0000e+00 - 9.3900e+02 0 - 1.1650e+03 1.0000e+00 - 1.2930e+03 0 - 1.3020e+03 0 - 1.3490e+03 0 - 1.3630e+03 0 - 1.4130e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.4340e+03 0 - 1.4350e+03 0 - 1.5420e+03 0 - 1.5580e+03 0 - 1.7690e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 1210.22 - - n_events, left node: 1 - - n_risk, left node: 6 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 6168.08 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 1.3621e+03 - 1.3728e+03 - 1.4756e+03 - 1.5606e+03 - 1.7153e+03 - - -testing cutpoint: 1362.09 - - ---- view of lincomb & g_node & w_node ---- - - 1.0215e+03 0 1.0000e+00 - 1.1319e+03 0 1.0000e+00 - 1.1698e+03 0 2.0000e+00 - 1.1999e+03 0 1.0000e+00 - 1.2102e+03 0 1.0000e+00 - 1.2365e+03 0 2.0000e+00 - 1.2547e+03 0 2.0000e+00 - 1.3082e+03 0 1.0000e+00 - 1.3547e+03 0 1.0000e+00 - 1.3621e+03 0 1.0000e+00 - 1.3728e+03 1.0000e+00 4.0000e+00 - 1.3751e+03 1.0000e+00 1.0000e+00 - 1.3879e+03 1.0000e+00 2.0000e+00 - 1.3979e+03 1.0000e+00 1.0000e+00 - 1.4076e+03 1.0000e+00 3.0000e+00 - 1.4371e+03 1.0000e+00 2.0000e+00 - 1.4394e+03 1.0000e+00 1.0000e+00 - 1.4756e+03 1.0000e+00 1.0000e+00 - 1.5066e+03 1.0000e+00 1.0000e+00 - 1.5606e+03 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 0.789924 - ------------------------------------------- - -testing cutpoint: 1372.77 - - ---- view of lincomb & g_node & w_node ---- - - 1.0215e+03 0 1.0000e+00 - 1.1319e+03 0 1.0000e+00 - 1.1698e+03 0 2.0000e+00 - 1.1999e+03 0 1.0000e+00 - 1.2102e+03 0 1.0000e+00 - 1.2365e+03 0 2.0000e+00 - 1.2547e+03 0 2.0000e+00 - 1.3082e+03 0 1.0000e+00 - 1.3547e+03 0 1.0000e+00 - 1.3621e+03 0 1.0000e+00 - 1.3728e+03 0 4.0000e+00 - 1.3751e+03 1.0000e+00 1.0000e+00 - 1.3879e+03 1.0000e+00 2.0000e+00 - 1.3979e+03 1.0000e+00 1.0000e+00 - 1.4076e+03 1.0000e+00 3.0000e+00 - 1.4371e+03 1.0000e+00 2.0000e+00 - 1.4394e+03 1.0000e+00 1.0000e+00 - 1.4756e+03 1.0000e+00 1.0000e+00 - 1.5066e+03 1.0000e+00 1.0000e+00 - 1.5606e+03 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 1.6949 - ------------------------------------------- - -testing cutpoint: 1475.59 - - ---- view of lincomb & g_node & w_node ---- - - 1.0215e+03 0 1.0000e+00 - 1.1319e+03 0 1.0000e+00 - 1.1698e+03 0 2.0000e+00 - 1.1999e+03 0 1.0000e+00 - 1.2102e+03 0 1.0000e+00 - 1.2365e+03 0 2.0000e+00 - 1.2547e+03 0 2.0000e+00 - 1.3082e+03 0 1.0000e+00 - 1.3547e+03 0 1.0000e+00 - 1.3621e+03 0 1.0000e+00 - 1.3728e+03 0 4.0000e+00 - 1.3751e+03 0 1.0000e+00 - 1.3879e+03 0 2.0000e+00 - 1.3979e+03 0 1.0000e+00 - 1.4076e+03 0 3.0000e+00 - 1.4371e+03 0 2.0000e+00 - 1.4394e+03 0 1.0000e+00 - 1.4756e+03 0 1.0000e+00 - 1.5066e+03 1.0000e+00 1.0000e+00 - 1.5606e+03 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 4.26215 - ------------------------------------------- - -testing cutpoint: 1560.61 - - ---- view of lincomb & g_node & w_node ---- - - 1.0215e+03 0 1.0000e+00 - 1.1319e+03 0 1.0000e+00 - 1.1698e+03 0 2.0000e+00 - 1.1999e+03 0 1.0000e+00 - 1.2102e+03 0 1.0000e+00 - 1.2365e+03 0 2.0000e+00 - 1.2547e+03 0 2.0000e+00 - 1.3082e+03 0 1.0000e+00 - 1.3547e+03 0 1.0000e+00 - 1.3621e+03 0 1.0000e+00 - 1.3728e+03 0 4.0000e+00 - 1.3751e+03 0 1.0000e+00 - 1.3879e+03 0 2.0000e+00 - 1.3979e+03 0 1.0000e+00 - 1.4076e+03 0 3.0000e+00 - 1.4371e+03 0 2.0000e+00 - 1.4394e+03 0 1.0000e+00 - 1.4756e+03 0 1.0000e+00 - 1.5066e+03 0 1.0000e+00 - 1.5606e+03 0 1.0000e+00 - - -logrank stat for this cutpoint: 1.33452 - ------------------------------------------- - -testing cutpoint: 1715.29 - - ---- view of lincomb & g_node & w_node ---- - - 1.0215e+03 0 1.0000e+00 - 1.1319e+03 0 1.0000e+00 - 1.1698e+03 0 2.0000e+00 - 1.1999e+03 0 1.0000e+00 - 1.2102e+03 0 1.0000e+00 - 1.2365e+03 0 2.0000e+00 - 1.2547e+03 0 2.0000e+00 - 1.3082e+03 0 1.0000e+00 - 1.3547e+03 0 1.0000e+00 - 1.3621e+03 0 1.0000e+00 - 1.3728e+03 0 4.0000e+00 - 1.3751e+03 0 1.0000e+00 - 1.3879e+03 0 2.0000e+00 - 1.3979e+03 0 1.0000e+00 - 1.4076e+03 0 3.0000e+00 - 1.4371e+03 0 2.0000e+00 - 1.4394e+03 0 1.0000e+00 - 1.4756e+03 0 1.0000e+00 - 1.5066e+03 0 1.0000e+00 - 1.5606e+03 0 1.0000e+00 - - -logrank stat for this cutpoint: 2.05802 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 12 13 14 15 16 - -growing node 12 - -beginning try no. 1 - - ---- view of x_node ---- - - 1.0000e+00 0 0 1.4725e+02 1.0000e+00 - 1.0000e+00 0 0 2.2704e+02 1.0000e+00 - 1.0000e+00 1.0000e+00 0 1.3400e+02 1.0000e+00 - 1.0000e+00 1.0000e+00 0 1.3795e+02 1.0000e+00 - 0 0 0 1.6740e+02 0 - 0 0 0 1.5345e+02 0 - 0 0 0 1.3600e+02 0 - 0 0 0 1.5190e+02 1.0000e+00 - 0 0 0 1.6120e+02 1.0000e+00 - 0 0 0 2.0150e+02 0 - 0 0 0 1.9840e+02 1.0000e+00 - 0 0 1.0000e+00 1.9840e+02 0 - 0 0 0 2.0305e+02 0 - 0 1.0000e+00 0 1.7050e+02 1.0000e+00 - 0 1.0000e+00 1.0000e+00 2.1545e+02 0 - 0 0 0 1.4260e+02 0 - 0 0 0 2.8800e+02 0 - 0 1.0000e+00 0 1.2000e+02 1.0000e+00 - 0 1.0000e+00 0 1.4570e+02 0 - 0 0 0 1.2245e+02 1.0000e+00 - - - ---- view of y_node ---- - - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1700e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2970e+03 1.0000e+00 - 1.3560e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 42.2766 - - n_events, left node: 3 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 118.636 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 7.7324e+01 - 7.9449e+01 - 8.5067e+01 - 8.6672e+01 - 1.0513e+02 - - -testing cutpoint: 77.3243 - - ---- view of lincomb & g_node & w_node ---- - - 40.1258 0 2.0000 - 40.9283 0 2.0000 - 42.2766 0 1.0000 - 43.4002 0 1.0000 - 49.4246 0 1.0000 - 50.5585 0 1.0000 - 51.4283 0 1.0000 - 56.9655 0 1.0000 - 57.7812 0 2.0000 - 61.8580 0 1.0000 - 63.0968 0 2.0000 - 63.4985 0 1.0000 - 70.4143 0 2.0000 - 71.3309 0 1.0000 - 73.3760 0 1.0000 - 73.8315 0 2.0000 - 76.3033 0 1.0000 - 77.3243 0 1.0000 - 78.7463 1.0000 2.0000 - 79.4491 1.0000 1.0000 - - -logrank stat for this cutpoint: 0.463015 - ------------------------------------------- - -testing cutpoint: 79.4491 - - ---- view of lincomb & g_node & w_node ---- - - 40.1258 0 2.0000 - 40.9283 0 2.0000 - 42.2766 0 1.0000 - 43.4002 0 1.0000 - 49.4246 0 1.0000 - 50.5585 0 1.0000 - 51.4283 0 1.0000 - 56.9655 0 1.0000 - 57.7812 0 2.0000 - 61.8580 0 1.0000 - 63.0968 0 2.0000 - 63.4985 0 1.0000 - 70.4143 0 2.0000 - 71.3309 0 1.0000 - 73.3760 0 1.0000 - 73.8315 0 2.0000 - 76.3033 0 1.0000 - 77.3243 0 1.0000 - 78.7463 0 2.0000 - 79.4491 0 1.0000 - - -logrank stat for this cutpoint: 0.0285243 - ------------------------------------------- - -testing cutpoint: 85.0667 - - ---- view of lincomb & g_node & w_node ---- - - 40.1258 0 2.0000 - 40.9283 0 2.0000 - 42.2766 0 1.0000 - 43.4002 0 1.0000 - 49.4246 0 1.0000 - 50.5585 0 1.0000 - 51.4283 0 1.0000 - 56.9655 0 1.0000 - 57.7812 0 2.0000 - 61.8580 0 1.0000 - 63.0968 0 2.0000 - 63.4985 0 1.0000 - 70.4143 0 2.0000 - 71.3309 0 1.0000 - 73.3760 0 1.0000 - 73.8315 0 2.0000 - 76.3033 0 1.0000 - 77.3243 0 1.0000 - 78.7463 0 2.0000 - 79.4491 0 1.0000 - - -logrank stat for this cutpoint: 0.0106478 - ------------------------------------------- - -testing cutpoint: 86.6717 - - ---- view of lincomb & g_node & w_node ---- - - 40.1258 0 2.0000 - 40.9283 0 2.0000 - 42.2766 0 1.0000 - 43.4002 0 1.0000 - 49.4246 0 1.0000 - 50.5585 0 1.0000 - 51.4283 0 1.0000 - 56.9655 0 1.0000 - 57.7812 0 2.0000 - 61.8580 0 1.0000 - 63.0968 0 2.0000 - 63.4985 0 1.0000 - 70.4143 0 2.0000 - 71.3309 0 1.0000 - 73.3760 0 1.0000 - 73.8315 0 2.0000 - 76.3033 0 1.0000 - 77.3243 0 1.0000 - 78.7463 0 2.0000 - 79.4491 0 1.0000 - - -logrank stat for this cutpoint: 0.101652 - ------------------------------------------- - -testing cutpoint: 105.13 - - ---- view of lincomb & g_node & w_node ---- - - 40.1258 0 2.0000 - 40.9283 0 2.0000 - 42.2766 0 1.0000 - 43.4002 0 1.0000 - 49.4246 0 1.0000 - 50.5585 0 1.0000 - 51.4283 0 1.0000 - 56.9655 0 1.0000 - 57.7812 0 2.0000 - 61.8580 0 1.0000 - 63.0968 0 2.0000 - 63.4985 0 1.0000 - 70.4143 0 2.0000 - 71.3309 0 1.0000 - 73.3760 0 1.0000 - 73.8315 0 2.0000 - 76.3033 0 1.0000 - 77.3243 0 1.0000 - 78.7463 0 2.0000 - 79.4491 0 1.0000 - - -logrank stat for this cutpoint: 0.306614 - ------------------------------------------- - -best split stat, 0.463015, was < split_min_stat, 3.84 -beginning try no. 2 - - ---- view of x_node ---- - - 0 1.0000 1.0000 3.3500 24.5000 - 0 1.0000 1.0000 2.9400 17.4000 - 0 0 0 2.4300 14.1000 - 0 1.0000 0 2.6000 14.5000 - 0 0 1.0000 3.3800 4.5000 - 0 0 1.0000 3.4300 14.0000 - 0 1.0000 1.0000 3.7900 6.4000 - 0 0 1.0000 3.3100 11.4000 - 0 0 1.0000 3.1900 10.8000 - 0 0 1.0000 3.5200 25.5000 - 0 0 1.0000 2.8100 8.0000 - 1.0000 0 1.0000 3.2600 28.0000 - 0 0 1.0000 3.8500 5.9000 - 0 1.0000 0 3.1100 6.5000 - 1.0000 1.0000 0 3.4600 20.0000 - 0 0 1.0000 4.2200 1.3000 - 0 1.0000 1.0000 3.6100 2.9000 - 0 1.0000 0 3.4600 6.4000 - 0 0 0 3.9300 7.3000 - 0 0 1.0000 3.5100 5.1000 - - - ---- view of y_node ---- - - 2.1600e+02 1.0000e+00 - 2.6400e+02 1.0000e+00 - 3.3400e+02 1.0000e+00 - 4.0000e+02 1.0000e+00 - 5.9700e+02 1.0000e+00 - 7.3300e+02 1.0000e+00 - 7.8800e+02 0 - 7.9000e+02 1.0000e+00 - 7.9700e+02 1.0000e+00 - 8.5300e+02 1.0000e+00 - 9.3000e+02 1.0000e+00 - 9.4300e+02 1.0000e+00 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.1700e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2970e+03 1.0000e+00 - 1.3560e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 2.99079 - - n_events, left node: 1 - - n_risk, left node: 7 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 19.5462 - - n_events, right node: 5 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 3.4142 - 6.1410 - 9.0478 - 9.3620 - 15.9268 - - -testing cutpoint: 3.41424 - - ---- view of lincomb & g_node & w_node ---- - - 2.6582 0 1.0000 - 2.7815 0 2.0000 - 2.8763 0 3.0000 - 2.9908 0 1.0000 - 3.0536 0 1.0000 - 3.0740 0 2.0000 - 3.1461 0 3.0000 - 3.1496 0 1.0000 - 3.4142 0 2.0000 - 3.4817 1.0000 1.0000 - 3.5471 1.0000 1.0000 - 3.7965 1.0000 1.0000 - 3.8096 1.0000 2.0000 - 4.0667 1.0000 2.0000 - 4.2772 1.0000 1.0000 - 5.6545 1.0000 1.0000 - 5.9211 1.0000 2.0000 - 6.0243 1.0000 3.0000 - 6.1410 1.0000 1.0000 - 6.5085 1.0000 1.0000 - - -logrank stat for this cutpoint: 18.624 - ------------------------------------------- - -testing cutpoint: 6.14104 - - ---- view of lincomb & g_node & w_node ---- - - 2.6582 0 1.0000 - 2.7815 0 2.0000 - 2.8763 0 3.0000 - 2.9908 0 1.0000 - 3.0536 0 1.0000 - 3.0740 0 2.0000 - 3.1461 0 3.0000 - 3.1496 0 1.0000 - 3.4142 0 2.0000 - 3.4817 0 1.0000 - 3.5471 0 1.0000 - 3.7965 0 1.0000 - 3.8096 0 2.0000 - 4.0667 0 2.0000 - 4.2772 0 1.0000 - 5.6545 0 1.0000 - 5.9211 0 2.0000 - 6.0243 0 3.0000 - 6.1410 0 1.0000 - 6.5085 1.0000 1.0000 - - -logrank stat for this cutpoint: 52.7353 - ------------------------------------------- - -testing cutpoint: 9.04776 - - ---- view of lincomb & g_node & w_node ---- - - 2.6582 0 1.0000 - 2.7815 0 2.0000 - 2.8763 0 3.0000 - 2.9908 0 1.0000 - 3.0536 0 1.0000 - 3.0740 0 2.0000 - 3.1461 0 3.0000 - 3.1496 0 1.0000 - 3.4142 0 2.0000 - 3.4817 0 1.0000 - 3.5471 0 1.0000 - 3.7965 0 1.0000 - 3.8096 0 2.0000 - 4.0667 0 2.0000 - 4.2772 0 1.0000 - 5.6545 0 1.0000 - 5.9211 0 2.0000 - 6.0243 0 3.0000 - 6.1410 0 1.0000 - 6.5085 0 1.0000 - - -logrank stat for this cutpoint: 67.2397 - ------------------------------------------- - -testing cutpoint: 9.36197 - - ---- view of lincomb & g_node & w_node ---- - - 2.6582 0 1.0000 - 2.7815 0 2.0000 - 2.8763 0 3.0000 - 2.9908 0 1.0000 - 3.0536 0 1.0000 - 3.0740 0 2.0000 - 3.1461 0 3.0000 - 3.1496 0 1.0000 - 3.4142 0 2.0000 - 3.4817 0 1.0000 - 3.5471 0 1.0000 - 3.7965 0 1.0000 - 3.8096 0 2.0000 - 4.0667 0 2.0000 - 4.2772 0 1.0000 - 5.6545 0 1.0000 - 5.9211 0 2.0000 - 6.0243 0 3.0000 - 6.1410 0 1.0000 - 6.5085 0 1.0000 - - -logrank stat for this cutpoint: 74.3978 - ------------------------------------------- - -testing cutpoint: 15.9268 - - ---- view of lincomb & g_node & w_node ---- - - 2.6582 0 1.0000 - 2.7815 0 2.0000 - 2.8763 0 3.0000 - 2.9908 0 1.0000 - 3.0536 0 1.0000 - 3.0740 0 2.0000 - 3.1461 0 3.0000 - 3.1496 0 1.0000 - 3.4142 0 2.0000 - 3.4817 0 1.0000 - 3.5471 0 1.0000 - 3.7965 0 1.0000 - 3.8096 0 2.0000 - 4.0667 0 2.0000 - 4.2772 0 1.0000 - 5.6545 0 1.0000 - 5.9211 0 2.0000 - 6.0243 0 3.0000 - 6.1410 0 1.0000 - 6.5085 0 1.0000 - - -logrank stat for this cutpoint: 27.1866 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 13 14 15 16 17 18 - -growing node 13 - -beginning try no. 1 - -Column 7 was sampled but unique values of column 7 are 0 - - ---- view of x_node ---- - - 5.7000e+01 2.5000e+00 0 1.0000e+00 1.0000e+00 - 9.1000e+01 3.2000e+00 0 1.0000e+00 1.0000e+00 - 5.2000e+01 8.0000e-01 1.0000e+00 1.0000e+00 0 - 5.0000e+01 2.0000e+00 1.0000e+00 0 0 - 1.1600e+02 1.1000e+00 0 0 1.0000e+00 - 6.7000e+01 1.5000e+00 0 0 1.0000e+00 - 6.7000e+01 1.6000e+00 0 1.0000e+00 0 - 8.1000e+01 9.0000e-01 1.0000e+00 1.0000e+00 0 - 4.1000e+01 7.0000e-01 0 0 0 - 2.0000e+01 1.0000e+00 1.0000e+00 1.0000e+00 0 - 7.5000e+01 1.3000e+00 0 1.0000e+00 0 - 3.2000e+01 3.4000e+00 1.0000e+00 0 0 - 4.3000e+01 1.1000e+00 0 0 0 - 1.3000e+01 1.5000e+00 0 1.0000e+00 0 - 6.0000e+01 1.9000e+00 0 0 0 - 5.9000e+01 9.0000e-01 1.0000e+00 0 0 - 1.3100e+02 3.3000e+00 0 1.0000e+00 1.0000e+00 - 8.9000e+01 2.0000e+00 0 1.0000e+00 1.0000e+00 - - - ---- view of y_node ---- - - 1.1000e+02 1.0000e+00 - 1.8600e+02 1.0000e+00 - 1.1490e+03 0 - 1.7410e+03 1.0000e+00 - 1.7700e+03 0 - 1.9080e+03 0 - 2.1570e+03 0 - 2.2240e+03 0 - 2.3320e+03 0 - 2.4190e+03 1.0000e+00 - 2.4680e+03 0 - 2.4750e+03 0 - 2.5980e+03 1.0000e+00 - 2.7960e+03 1.0000e+00 - 2.9440e+03 0 - 3.0500e+03 0 - 3.4280e+03 1.0000e+00 - 3.4450e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 20.4989 - - n_events, left node: 4 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 48.9173 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 31.6370 - 35.9598 - 40.8042 - 41.1752 - 45.4365 - - -testing cutpoint: 31.637 - - ---- view of lincomb & g_node & w_node ---- - - 8.6626 0 3.0000 - 12.6967 0 1.0000 - 20.4989 0 1.0000 - 24.6604 0 2.0000 - 26.0137 0 2.0000 - 30.6235 0 3.0000 - 31.6370 0 2.0000 - 35.5213 1.0000 2.0000 - 35.9598 1.0000 1.0000 - 36.4484 1.0000 2.0000 - 40.8042 1.0000 1.0000 - 41.1752 1.0000 2.0000 - 45.4365 1.0000 2.0000 - 48.9173 1.0000 2.0000 - 54.7767 1.0000 1.0000 - 56.4590 1.0000 1.0000 - 70.1390 1.0000 2.0000 - 80.2783 1.0000 1.0000 - - -logrank stat for this cutpoint: 8.04886 - ------------------------------------------- - -testing cutpoint: 35.9598 - - ---- view of lincomb & g_node & w_node ---- - - 8.6626 0 3.0000 - 12.6967 0 1.0000 - 20.4989 0 1.0000 - 24.6604 0 2.0000 - 26.0137 0 2.0000 - 30.6235 0 3.0000 - 31.6370 0 2.0000 - 35.5213 0 2.0000 - 35.9598 0 1.0000 - 36.4484 1.0000 2.0000 - 40.8042 1.0000 1.0000 - 41.1752 1.0000 2.0000 - 45.4365 1.0000 2.0000 - 48.9173 1.0000 2.0000 - 54.7767 1.0000 1.0000 - 56.4590 1.0000 1.0000 - 70.1390 1.0000 2.0000 - 80.2783 1.0000 1.0000 - - -logrank stat for this cutpoint: 6.0908 - ------------------------------------------- - -testing cutpoint: 40.8042 - - ---- view of lincomb & g_node & w_node ---- - - 8.6626 0 3.0000 - 12.6967 0 1.0000 - 20.4989 0 1.0000 - 24.6604 0 2.0000 - 26.0137 0 2.0000 - 30.6235 0 3.0000 - 31.6370 0 2.0000 - 35.5213 0 2.0000 - 35.9598 0 1.0000 - 36.4484 0 2.0000 - 40.8042 0 1.0000 - 41.1752 1.0000 2.0000 - 45.4365 1.0000 2.0000 - 48.9173 1.0000 2.0000 - 54.7767 1.0000 1.0000 - 56.4590 1.0000 1.0000 - 70.1390 1.0000 2.0000 - 80.2783 1.0000 1.0000 - - -logrank stat for this cutpoint: 2.31486 - ------------------------------------------- - -testing cutpoint: 41.1752 - - ---- view of lincomb & g_node & w_node ---- - - 8.6626 0 3.0000 - 12.6967 0 1.0000 - 20.4989 0 1.0000 - 24.6604 0 2.0000 - 26.0137 0 2.0000 - 30.6235 0 3.0000 - 31.6370 0 2.0000 - 35.5213 0 2.0000 - 35.9598 0 1.0000 - 36.4484 0 2.0000 - 40.8042 0 1.0000 - 41.1752 0 2.0000 - 45.4365 1.0000 2.0000 - 48.9173 1.0000 2.0000 - 54.7767 1.0000 1.0000 - 56.4590 1.0000 1.0000 - 70.1390 1.0000 2.0000 - 80.2783 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.70933 - ------------------------------------------- - -testing cutpoint: 45.4365 - - ---- view of lincomb & g_node & w_node ---- - - 8.6626 0 3.0000 - 12.6967 0 1.0000 - 20.4989 0 1.0000 - 24.6604 0 2.0000 - 26.0137 0 2.0000 - 30.6235 0 3.0000 - 31.6370 0 2.0000 - 35.5213 0 2.0000 - 35.9598 0 1.0000 - 36.4484 0 2.0000 - 40.8042 0 1.0000 - 41.1752 0 2.0000 - 45.4365 0 2.0000 - 48.9173 1.0000 2.0000 - 54.7767 1.0000 1.0000 - 56.4590 1.0000 1.0000 - 70.1390 1.0000 2.0000 - 80.2783 1.0000 1.0000 - - -logrank stat for this cutpoint: 1.03622 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 14 15 16 17 18 19 20 - -growing node 14 - -sprouting new leaf with node 14 - - ---- view of leaf_data ---- - - 1.4870e+03 5.0000e-01 5.0000e-01 - - -growing node 15 - -sprouting new leaf with node 15 - - ---- view of leaf_data ---- - - 7.6200e+02 9.6429e-01 3.5714e-02 - 7.8600e+02 8.9286e-01 1.0979e-01 - 9.0400e+02 8.5714e-01 1.4979e-01 - - -growing node 16 - -beginning try no. 1 - - ---- view of x_node ---- - - 4.4000e+00 7.5000e+01 0 0 0 - 3.4700e+00 1.1000e+02 1.0000e+00 0 1.0000e+00 - 3.2600e+00 6.2000e+01 0 0 1.0000e+00 - 2.9400e+00 2.3100e+02 1.0000e+00 0 1.0000e+00 - 1.9600e+00 1.1500e+02 1.0000e+00 0 1.0000e+00 - 3.0700e+00 8.8000e+01 1.0000e+00 0 1.0000e+00 - 3.7700e+00 7.7000e+01 1.0000e+00 0 0 - 3.4300e+00 2.0500e+02 0 0 1.0000e+00 - 3.4000e+00 2.6200e+02 1.0000e+00 1.0000e+00 1.0000e+00 - 3.1200e+00 1.8800e+02 0 0 1.0000e+00 - 3.3600e+00 2.3000e+01 1.0000e+00 0 1.0000e+00 - 4.0700e+00 1.2000e+01 0 0 0 - 3.0000e+00 5.2000e+01 1.0000e+00 0 1.0000e+00 - 3.7000e+00 1.5800e+02 0 0 0 - 3.8300e+00 3.9000e+01 1.0000e+00 0 1.0000e+00 - 3.4800e+00 5.8000e+01 1.0000e+00 0 1.0000e+00 - 3.8700e+00 1.7300e+02 0 0 0 - 3.4400e+00 1.1400e+02 0 0 1.0000e+00 - 3.6700e+00 7.3000e+01 0 0 0 - 4.1400e+00 5.4000e+01 0 0 1.0000e+00 - - - ---- view of y_node ---- - - 1.9800e+02 1.0000e+00 - 4.6000e+02 1.0000e+00 - 6.1100e+02 1.0000e+00 - 6.9400e+02 1.0000e+00 - 1.1650e+03 1.0000e+00 - 1.3020e+03 0 - 1.3490e+03 0 - 1.4130e+03 1.0000e+00 - 1.4340e+03 1.0000e+00 - 1.5420e+03 0 - 1.7690e+03 0 - 2.2550e+03 0 - 2.2970e+03 1.0000e+00 - 2.3860e+03 1.0000e+00 - 2.5730e+03 0 - 3.3580e+03 1.0000e+00 - 3.5840e+03 1.0000e+00 - 3.8390e+03 1.0000e+00 - 3.9130e+03 0 - 4.5000e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 51.829 - - n_events, left node: 3 - - n_risk, left node: 11 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 150.166 - - n_events, right node: 4 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 5.1829e+01 - 5.4416e+01 - 1.0615e+02 - 1.0943e+02 - 1.0953e+02 - - -testing cutpoint: 51.829 - - ---- view of lincomb & g_node & w_node ---- - - 1.4840e+01 0 2.0000e+00 - 2.5209e+01 0 2.0000e+00 - 2.5727e+01 0 1.0000e+00 - 3.6751e+01 0 1.0000e+00 - 4.0502e+01 0 2.0000e+00 - 5.1829e+01 0 3.0000e+00 - 5.4416e+01 1.0000e+00 1.0000e+00 - 5.7839e+01 1.0000e+00 1.0000e+00 - 6.1052e+01 1.0000e+00 1.0000e+00 - 7.1158e+01 1.0000e+00 1.0000e+00 - 7.3678e+01 1.0000e+00 1.0000e+00 - 7.5270e+01 1.0000e+00 1.0000e+00 - 8.5343e+01 1.0000e+00 1.0000e+00 - 1.0615e+02 1.0000e+00 1.0000e+00 - 1.0943e+02 1.0000e+00 1.0000e+00 - 1.0953e+02 1.0000e+00 1.0000e+00 - 1.5017e+02 1.0000e+00 2.0000e+00 - 1.6426e+02 1.0000e+00 1.0000e+00 - 1.7800e+02 1.0000e+00 1.0000e+00 - 1.9408e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 3.45056 - ------------------------------------------- - -testing cutpoint: 54.416 - - ---- view of lincomb & g_node & w_node ---- - - 1.4840e+01 0 2.0000e+00 - 2.5209e+01 0 2.0000e+00 - 2.5727e+01 0 1.0000e+00 - 3.6751e+01 0 1.0000e+00 - 4.0502e+01 0 2.0000e+00 - 5.1829e+01 0 3.0000e+00 - 5.4416e+01 0 1.0000e+00 - 5.7839e+01 1.0000e+00 1.0000e+00 - 6.1052e+01 1.0000e+00 1.0000e+00 - 7.1158e+01 1.0000e+00 1.0000e+00 - 7.3678e+01 1.0000e+00 1.0000e+00 - 7.5270e+01 1.0000e+00 1.0000e+00 - 8.5343e+01 1.0000e+00 1.0000e+00 - 1.0615e+02 1.0000e+00 1.0000e+00 - 1.0943e+02 1.0000e+00 1.0000e+00 - 1.0953e+02 1.0000e+00 1.0000e+00 - 1.5017e+02 1.0000e+00 2.0000e+00 - 1.6426e+02 1.0000e+00 1.0000e+00 - 1.7800e+02 1.0000e+00 1.0000e+00 - 1.9408e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 6.09762 - ------------------------------------------- - -testing cutpoint: 106.148 - - ---- view of lincomb & g_node & w_node ---- - - 1.4840e+01 0 2.0000e+00 - 2.5209e+01 0 2.0000e+00 - 2.5727e+01 0 1.0000e+00 - 3.6751e+01 0 1.0000e+00 - 4.0502e+01 0 2.0000e+00 - 5.1829e+01 0 3.0000e+00 - 5.4416e+01 0 1.0000e+00 - 5.7839e+01 0 1.0000e+00 - 6.1052e+01 0 1.0000e+00 - 7.1158e+01 0 1.0000e+00 - 7.3678e+01 0 1.0000e+00 - 7.5270e+01 0 1.0000e+00 - 8.5343e+01 0 1.0000e+00 - 1.0615e+02 0 1.0000e+00 - 1.0943e+02 1.0000e+00 1.0000e+00 - 1.0953e+02 1.0000e+00 1.0000e+00 - 1.5017e+02 1.0000e+00 2.0000e+00 - 1.6426e+02 1.0000e+00 1.0000e+00 - 1.7800e+02 1.0000e+00 1.0000e+00 - 1.9408e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 3.47809 - ------------------------------------------- - -testing cutpoint: 109.425 - - ---- view of lincomb & g_node & w_node ---- - - 1.4840e+01 0 2.0000e+00 - 2.5209e+01 0 2.0000e+00 - 2.5727e+01 0 1.0000e+00 - 3.6751e+01 0 1.0000e+00 - 4.0502e+01 0 2.0000e+00 - 5.1829e+01 0 3.0000e+00 - 5.4416e+01 0 1.0000e+00 - 5.7839e+01 0 1.0000e+00 - 6.1052e+01 0 1.0000e+00 - 7.1158e+01 0 1.0000e+00 - 7.3678e+01 0 1.0000e+00 - 7.5270e+01 0 1.0000e+00 - 8.5343e+01 0 1.0000e+00 - 1.0615e+02 0 1.0000e+00 - 1.0943e+02 0 1.0000e+00 - 1.0953e+02 1.0000e+00 1.0000e+00 - 1.5017e+02 1.0000e+00 2.0000e+00 - 1.6426e+02 1.0000e+00 1.0000e+00 - 1.7800e+02 1.0000e+00 1.0000e+00 - 1.9408e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.01825 - ------------------------------------------- - -testing cutpoint: 109.533 - - ---- view of lincomb & g_node & w_node ---- - - 1.4840e+01 0 2.0000e+00 - 2.5209e+01 0 2.0000e+00 - 2.5727e+01 0 1.0000e+00 - 3.6751e+01 0 1.0000e+00 - 4.0502e+01 0 2.0000e+00 - 5.1829e+01 0 3.0000e+00 - 5.4416e+01 0 1.0000e+00 - 5.7839e+01 0 1.0000e+00 - 6.1052e+01 0 1.0000e+00 - 7.1158e+01 0 1.0000e+00 - 7.3678e+01 0 1.0000e+00 - 7.5270e+01 0 1.0000e+00 - 8.5343e+01 0 1.0000e+00 - 1.0615e+02 0 1.0000e+00 - 1.0943e+02 0 1.0000e+00 - 1.0953e+02 0 1.0000e+00 - 1.5017e+02 1.0000e+00 2.0000e+00 - 1.6426e+02 1.0000e+00 1.0000e+00 - 1.7800e+02 1.0000e+00 1.0000e+00 - 1.9408e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.9403 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 14 15 17 18 19 20 21 22 - -growing node 17 - -beginning try no. 1 - -Column 4 was sampled but unique values of column 4 are 0 - - ---- view of x_node ---- - - 2.2700e+02 1.2400e+01 0 1.0000e+00 4.6264e+01 - 1.8600e+02 1.0800e+01 0 1.0000e+00 3.3153e+01 - 1.4100e+02 1.0700e+01 0 1.0000e+00 4.1169e+01 - 1.1100e+02 1.1000e+01 1.0000e+00 0 4.9656e+01 - 6.7000e+01 1.0100e+01 0 1.0000e+00 3.5491e+01 - 7.3000e+01 1.0600e+01 0 1.0000e+00 4.3066e+01 - 1.5500e+02 1.0100e+01 1.0000e+00 0 5.8648e+01 - 2.6200e+02 1.0500e+01 0 0 5.1250e+01 - 1.4000e+02 1.3000e+01 1.0000e+00 1.0000e+00 5.9953e+01 - 1.2100e+02 1.1000e+01 0 0 6.5763e+01 - 2.4700e+02 9.8000e+00 0 1.0000e+00 3.0864e+01 - 5.3000e+01 9.9000e+00 0 1.0000e+00 5.2025e+01 - 7.5000e+01 1.0900e+01 0 0 5.2758e+01 - 1.2100e+02 9.6000e+00 0 0 4.4830e+01 - 3.4000e+01 9.9000e+00 0 1.0000e+00 6.9347e+01 - 8.6000e+01 9.9000e+00 0 0 6.4572e+01 - 8.8000e+01 1.0600e+01 0 1.0000e+00 3.3618e+01 - 5.2000e+01 9.9000e+00 0 1.0000e+00 5.0648e+01 - 9.4000e+01 1.1000e+01 0 0 3.3476e+01 - 3.4000e+01 1.0000e+01 0 1.0000e+00 4.8758e+01 - - - ---- view of y_node ---- - - 5.9700e+02 1.0000e+00 - 7.8800e+02 0 - 1.0800e+03 1.0000e+00 - 1.0830e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.2340e+03 0 - 1.2970e+03 1.0000e+00 - 1.3560e+03 1.0000e+00 - 1.3600e+03 1.0000e+00 - 1.4270e+03 1.0000e+00 - 1.4440e+03 1.0000e+00 - 1.6570e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7860e+03 1.0000e+00 - 1.8100e+03 0 - 1.8470e+03 1.0000e+00 - 2.4560e+03 0 - 2.6890e+03 1.0000e+00 - 2.8350e+03 0 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 85.5722 - - n_events, left node: 2 - - n_risk, left node: 8 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 194.808 - - n_events, right node: 4 - - n_risk, right node: 6 - -Randomly sampled cutpoints: - 9.1860e+01 - 1.1277e+02 - 1.1283e+02 - 1.4870e+02 - 1.5153e+02 - - -testing cutpoint: 91.8598 - - ---- view of lincomb & g_node & w_node ---- - - 6.7605e+01 0 1.0000e+00 - 7.2431e+01 0 2.0000e+00 - 7.8910e+01 0 3.0000e+00 - 8.5572e+01 0 2.0000e+00 - 9.0058e+01 0 1.0000e+00 - 9.1860e+01 0 1.0000e+00 - 9.3469e+01 1.0000e+00 1.0000e+00 - 9.4256e+01 1.0000e+00 2.0000e+00 - 1.0509e+02 1.0000e+00 2.0000e+00 - 1.1187e+02 1.0000e+00 2.0000e+00 - 1.1277e+02 1.0000e+00 1.0000e+00 - 1.1283e+02 1.0000e+00 1.0000e+00 - 1.1632e+02 1.0000e+00 1.0000e+00 - 1.1795e+02 1.0000e+00 2.0000e+00 - 1.2225e+02 1.0000e+00 1.0000e+00 - 1.2958e+02 1.0000e+00 3.0000e+00 - 1.3638e+02 1.0000e+00 1.0000e+00 - 1.4493e+02 1.0000e+00 1.0000e+00 - 1.4870e+02 1.0000e+00 3.0000e+00 - 1.5153e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 3.38925 - ------------------------------------------- - -testing cutpoint: 112.773 - - ---- view of lincomb & g_node & w_node ---- - - 6.7605e+01 0 1.0000e+00 - 7.2431e+01 0 2.0000e+00 - 7.8910e+01 0 3.0000e+00 - 8.5572e+01 0 2.0000e+00 - 9.0058e+01 0 1.0000e+00 - 9.1860e+01 0 1.0000e+00 - 9.3469e+01 0 1.0000e+00 - 9.4256e+01 0 2.0000e+00 - 1.0509e+02 0 2.0000e+00 - 1.1187e+02 0 2.0000e+00 - 1.1277e+02 0 1.0000e+00 - 1.1283e+02 1.0000e+00 1.0000e+00 - 1.1632e+02 1.0000e+00 1.0000e+00 - 1.1795e+02 1.0000e+00 2.0000e+00 - 1.2225e+02 1.0000e+00 1.0000e+00 - 1.2958e+02 1.0000e+00 3.0000e+00 - 1.3638e+02 1.0000e+00 1.0000e+00 - 1.4493e+02 1.0000e+00 1.0000e+00 - 1.4870e+02 1.0000e+00 3.0000e+00 - 1.5153e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.85598 - ------------------------------------------- - -testing cutpoint: 112.829 - - ---- view of lincomb & g_node & w_node ---- - - 6.7605e+01 0 1.0000e+00 - 7.2431e+01 0 2.0000e+00 - 7.8910e+01 0 3.0000e+00 - 8.5572e+01 0 2.0000e+00 - 9.0058e+01 0 1.0000e+00 - 9.1860e+01 0 1.0000e+00 - 9.3469e+01 0 1.0000e+00 - 9.4256e+01 0 2.0000e+00 - 1.0509e+02 0 2.0000e+00 - 1.1187e+02 0 2.0000e+00 - 1.1277e+02 0 1.0000e+00 - 1.1283e+02 0 1.0000e+00 - 1.1632e+02 1.0000e+00 1.0000e+00 - 1.1795e+02 1.0000e+00 2.0000e+00 - 1.2225e+02 1.0000e+00 1.0000e+00 - 1.2958e+02 1.0000e+00 3.0000e+00 - 1.3638e+02 1.0000e+00 1.0000e+00 - 1.4493e+02 1.0000e+00 1.0000e+00 - 1.4870e+02 1.0000e+00 3.0000e+00 - 1.5153e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.02192 - ------------------------------------------- - -testing cutpoint: 148.702 - - ---- view of lincomb & g_node & w_node ---- - - 6.7605e+01 0 1.0000e+00 - 7.2431e+01 0 2.0000e+00 - 7.8910e+01 0 3.0000e+00 - 8.5572e+01 0 2.0000e+00 - 9.0058e+01 0 1.0000e+00 - 9.1860e+01 0 1.0000e+00 - 9.3469e+01 0 1.0000e+00 - 9.4256e+01 0 2.0000e+00 - 1.0509e+02 0 2.0000e+00 - 1.1187e+02 0 2.0000e+00 - 1.1277e+02 0 1.0000e+00 - 1.1283e+02 0 1.0000e+00 - 1.1632e+02 0 1.0000e+00 - 1.1795e+02 0 2.0000e+00 - 1.2225e+02 0 1.0000e+00 - 1.2958e+02 0 3.0000e+00 - 1.3638e+02 0 1.0000e+00 - 1.4493e+02 0 1.0000e+00 - 1.4870e+02 0 3.0000e+00 - 1.5153e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 9.22391 - ------------------------------------------- - -testing cutpoint: 151.533 - - ---- view of lincomb & g_node & w_node ---- - - 6.7605e+01 0 1.0000e+00 - 7.2431e+01 0 2.0000e+00 - 7.8910e+01 0 3.0000e+00 - 8.5572e+01 0 2.0000e+00 - 9.0058e+01 0 1.0000e+00 - 9.1860e+01 0 1.0000e+00 - 9.3469e+01 0 1.0000e+00 - 9.4256e+01 0 2.0000e+00 - 1.0509e+02 0 2.0000e+00 - 1.1187e+02 0 2.0000e+00 - 1.1277e+02 0 1.0000e+00 - 1.1283e+02 0 1.0000e+00 - 1.1632e+02 0 1.0000e+00 - 1.1795e+02 0 2.0000e+00 - 1.2225e+02 0 1.0000e+00 - 1.2958e+02 0 3.0000e+00 - 1.3638e+02 0 1.0000e+00 - 1.4493e+02 0 1.0000e+00 - 1.4870e+02 0 3.0000e+00 - 1.5153e+02 0 1.0000e+00 - - -logrank stat for this cutpoint: 18.2418 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 14 15 18 19 20 21 22 23 24 - -growing node 18 - -sprouting new leaf with node 18 - - ---- view of leaf_data ---- - - 2.1600e+02 9.3333e-01 6.6667e-02 - 2.6400e+02 8.0000e-01 2.0952e-01 - 3.3400e+02 7.3333e-01 2.9286e-01 - 4.0000e+02 6.6667e-01 3.8377e-01 - 7.3300e+02 6.0000e-01 4.8377e-01 - - -growing node 19 - -sprouting new leaf with node 19 - - ---- view of leaf_data ---- - - 1.7410e+03 7.5000e-01 2.5000e-01 - 2.4190e+03 6.4286e-01 3.9286e-01 - 2.5980e+03 3.8571e-01 7.9286e-01 - 2.7960e+03 0 1.7929e+00 - - -growing node 20 - -sprouting new leaf with node 20 - - ---- view of leaf_data ---- - - 1.1000e+02 9.4118e-01 5.8824e-02 - 1.8600e+02 8.8235e-01 1.2132e-01 - 3.4280e+03 4.4118e-01 6.2132e-01 - 3.4450e+03 0 1.6213e+00 - - -growing node 21 - -sprouting new leaf with node 21 - - ---- view of leaf_data ---- - - 2.2970e+03 6.2500e-01 3.7500e-01 - - -growing node 22 - -sprouting new leaf with node 22 - - ---- view of leaf_data ---- - - 1.9800e+02 9.3750e-01 6.2500e-02 - 4.6000e+02 8.7500e-01 1.2917e-01 - 6.1100e+02 8.1250e-01 2.0060e-01 - 6.9400e+02 7.5000e-01 2.7752e-01 - 1.1650e+03 6.8750e-01 3.6085e-01 - - -growing node 23 - -beginning try no. 1 - -Column 4 was sampled but unique values of column 4 are 0 - - ---- view of x_node ---- - - 4.9656e+01 1.0000e+00 1.7050e+02 9.5000e+02 6.5000e+00 - 3.5491e+01 0 1.4260e+02 4.0800e+02 1.3000e+00 - 4.3066e+01 0 2.8800e+02 4.2600e+02 2.9000e+00 - 5.2025e+01 0 1.6585e+02 1.1280e+03 5.2000e+00 - 5.2758e+01 0 8.2150e+01 1.6000e+03 5.0000e+00 - 4.4830e+01 0 2.7280e+02 3.5000e+02 3.9000e+00 - 6.9347e+01 0 7.9050e+01 4.0400e+02 9.0000e-01 - 6.4572e+01 0 1.9685e+02 3.5400e+02 1.9000e+00 - 3.3618e+01 0 9.5460e+01 4.9800e+02 1.1000e+00 - 5.0648e+01 0 9.7650e+01 3.6000e+02 1.3000e+00 - 3.3476e+01 0 1.5190e+02 6.6000e+02 1.6000e+00 - 4.8758e+01 0 7.7500e+01 2.8600e+02 6.0000e-01 - 6.2861e+01 0 1.5500e+02 3.9900e+02 1.1000e+00 - 5.4075e+01 0 1.8600e+02 2.9000e+02 1.1000e+00 - 6.1070e+01 0 1.0695e+02 4.5800e+02 3.0000e+00 - 4.2639e+01 0 1.1160e+02 3.0300e+02 7.0000e-01 - 4.4950e+01 0 1.6430e+02 4.0000e+02 9.0000e-01 - 5.2088e+01 0 9.9330e+01 2.7600e+02 8.0000e-01 - 4.4520e+01 0 2.2188e+02 4.5600e+02 2.1000e+00 - 4.6453e+01 0 1.8290e+02 4.2700e+02 1.4000e+00 - - - ---- view of y_node ---- - - 1.0830e+03 1.0000e+00 - 1.2120e+03 1.0000e+00 - 1.2160e+03 0 - 1.4440e+03 1.0000e+00 - 1.6570e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7860e+03 1.0000e+00 - 1.8100e+03 0 - 1.8470e+03 1.0000e+00 - 2.4560e+03 0 - 2.6890e+03 1.0000e+00 - 2.8350e+03 0 - 2.9900e+03 0 - 3.0590e+03 0 - 3.3360e+03 0 - 3.4220e+03 0 - 3.5810e+03 0 - 3.8530e+03 1.0000e+00 - 4.0790e+03 1.0000e+00 - 4.1910e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 154.732 - - n_events, left node: 1 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 261.056 - - n_events, right node: 3 - - n_risk, right node: 5 - -Randomly sampled cutpoints: - 1.7433e+02 - 2.0490e+02 - 2.1396e+02 - 2.3196e+02 - 2.6106e+02 - - -testing cutpoint: 174.333 - - ---- view of lincomb & g_node & w_node ---- - - 1.3681e+02 0 2.0000e+00 - 1.5041e+02 0 1.0000e+00 - 1.5473e+02 0 2.0000e+00 - 1.6418e+02 0 1.0000e+00 - 1.7433e+02 0 1.0000e+00 - 1.7618e+02 1.0000e+00 2.0000e+00 - 1.8667e+02 1.0000e+00 2.0000e+00 - 1.9757e+02 1.0000e+00 1.0000e+00 - 2.0475e+02 1.0000e+00 3.0000e+00 - 2.0490e+02 1.0000e+00 1.0000e+00 - 2.1396e+02 1.0000e+00 1.0000e+00 - 2.2225e+02 1.0000e+00 1.0000e+00 - 2.3196e+02 1.0000e+00 3.0000e+00 - 2.3689e+02 1.0000e+00 2.0000e+00 - 2.4914e+02 1.0000e+00 1.0000e+00 - 2.6106e+02 1.0000e+00 3.0000e+00 - 2.8132e+02 1.0000e+00 2.0000e+00 - 3.1942e+02 1.0000e+00 1.0000e+00 - 3.4919e+02 1.0000e+00 1.0000e+00 - 3.8793e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 1.58819 - ------------------------------------------- - -testing cutpoint: 204.896 - - ---- view of lincomb & g_node & w_node ---- - - 1.3681e+02 0 2.0000e+00 - 1.5041e+02 0 1.0000e+00 - 1.5473e+02 0 2.0000e+00 - 1.6418e+02 0 1.0000e+00 - 1.7433e+02 0 1.0000e+00 - 1.7618e+02 0 2.0000e+00 - 1.8667e+02 0 2.0000e+00 - 1.9757e+02 0 1.0000e+00 - 2.0475e+02 0 3.0000e+00 - 2.0490e+02 0 1.0000e+00 - 2.1396e+02 1.0000e+00 1.0000e+00 - 2.2225e+02 1.0000e+00 1.0000e+00 - 2.3196e+02 1.0000e+00 3.0000e+00 - 2.3689e+02 1.0000e+00 2.0000e+00 - 2.4914e+02 1.0000e+00 1.0000e+00 - 2.6106e+02 1.0000e+00 3.0000e+00 - 2.8132e+02 1.0000e+00 2.0000e+00 - 3.1942e+02 1.0000e+00 1.0000e+00 - 3.4919e+02 1.0000e+00 1.0000e+00 - 3.8793e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 1.14833 - ------------------------------------------- - -testing cutpoint: 213.956 - - ---- view of lincomb & g_node & w_node ---- - - 1.3681e+02 0 2.0000e+00 - 1.5041e+02 0 1.0000e+00 - 1.5473e+02 0 2.0000e+00 - 1.6418e+02 0 1.0000e+00 - 1.7433e+02 0 1.0000e+00 - 1.7618e+02 0 2.0000e+00 - 1.8667e+02 0 2.0000e+00 - 1.9757e+02 0 1.0000e+00 - 2.0475e+02 0 3.0000e+00 - 2.0490e+02 0 1.0000e+00 - 2.1396e+02 0 1.0000e+00 - 2.2225e+02 1.0000e+00 1.0000e+00 - 2.3196e+02 1.0000e+00 3.0000e+00 - 2.3689e+02 1.0000e+00 2.0000e+00 - 2.4914e+02 1.0000e+00 1.0000e+00 - 2.6106e+02 1.0000e+00 3.0000e+00 - 2.8132e+02 1.0000e+00 2.0000e+00 - 3.1942e+02 1.0000e+00 1.0000e+00 - 3.4919e+02 1.0000e+00 1.0000e+00 - 3.8793e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.02603 - ------------------------------------------- - -testing cutpoint: 231.962 - - ---- view of lincomb & g_node & w_node ---- - - 1.3681e+02 0 2.0000e+00 - 1.5041e+02 0 1.0000e+00 - 1.5473e+02 0 2.0000e+00 - 1.6418e+02 0 1.0000e+00 - 1.7433e+02 0 1.0000e+00 - 1.7618e+02 0 2.0000e+00 - 1.8667e+02 0 2.0000e+00 - 1.9757e+02 0 1.0000e+00 - 2.0475e+02 0 3.0000e+00 - 2.0490e+02 0 1.0000e+00 - 2.1396e+02 0 1.0000e+00 - 2.2225e+02 0 1.0000e+00 - 2.3196e+02 0 3.0000e+00 - 2.3689e+02 1.0000e+00 2.0000e+00 - 2.4914e+02 1.0000e+00 1.0000e+00 - 2.6106e+02 1.0000e+00 3.0000e+00 - 2.8132e+02 1.0000e+00 2.0000e+00 - 3.1942e+02 1.0000e+00 1.0000e+00 - 3.4919e+02 1.0000e+00 1.0000e+00 - 3.8793e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 9.44055 - ------------------------------------------- - -testing cutpoint: 261.056 - - ---- view of lincomb & g_node & w_node ---- - - 1.3681e+02 0 2.0000e+00 - 1.5041e+02 0 1.0000e+00 - 1.5473e+02 0 2.0000e+00 - 1.6418e+02 0 1.0000e+00 - 1.7433e+02 0 1.0000e+00 - 1.7618e+02 0 2.0000e+00 - 1.8667e+02 0 2.0000e+00 - 1.9757e+02 0 1.0000e+00 - 2.0475e+02 0 3.0000e+00 - 2.0490e+02 0 1.0000e+00 - 2.1396e+02 0 1.0000e+00 - 2.2225e+02 0 1.0000e+00 - 2.3196e+02 0 3.0000e+00 - 2.3689e+02 0 2.0000e+00 - 2.4914e+02 0 1.0000e+00 - 2.6106e+02 0 3.0000e+00 - 2.8132e+02 1.0000e+00 2.0000e+00 - 3.1942e+02 1.0000e+00 1.0000e+00 - 3.4919e+02 1.0000e+00 1.0000e+00 - 3.8793e+02 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 13.4523 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 14 15 18 19 20 21 22 24 25 26 - -growing node 24 - -sprouting new leaf with node 24 - - ---- view of leaf_data ---- - - 5.9700e+02 9.2308e-01 7.6923e-02 - 1.0800e+03 7.3846e-01 2.7692e-01 - 1.2970e+03 6.1538e-01 4.4359e-01 - 1.3560e+03 4.9231e-01 6.4359e-01 - 1.3600e+03 3.6923e-01 8.9359e-01 - - -growing node 25 - -beginning try no. 1 - -Column 4 was sampled but unique values of column 4 are 0 - - ---- view of x_node ---- - - 2.9500e+02 0 1.3870e+03 0 6.7000e+01 - 2.7000e+02 1.0000e+00 1.2680e+03 0 1.2100e+02 - 2.3600e+02 0 1.8660e+03 0 3.4000e+01 - 2.7700e+02 0 1.5530e+03 0 8.6000e+01 - 3.6500e+02 1.0000e+00 1.3862e+04 1.0000e+00 8.8000e+01 - 2.5600e+02 0 1.8120e+03 0 5.2000e+01 - 3.3700e+02 0 1.8570e+03 1.0000e+00 9.4000e+01 - 4.8700e+02 0 1.8680e+03 1.0000e+00 3.4000e+01 - 3.4400e+02 0 3.4720e+03 1.0000e+00 7.9000e+01 - 3.1800e+02 0 2.1200e+03 0 3.8000e+01 - 4.3800e+02 1.0000e+00 1.5880e+03 0 7.4000e+01 - 3.0700e+02 1.0000e+00 1.5840e+03 0 8.1000e+01 - 3.2700e+02 0 1.6890e+03 0 3.1000e+01 - 2.7300e+02 0 4.3320e+03 1.0000e+00 5.4000e+01 - 7.0000e+01 0 5.7190e+03 1.0000e+00 1.2400e+02 - 1.2300e+02 0 1.9090e+03 0 1.0500e+02 - - - ---- view of y_node ---- - - 1.2120e+03 1.0000e+00 - 1.6900e+03 1.0000e+00 - 1.7860e+03 1.0000e+00 - 1.8100e+03 0 - 1.8470e+03 1.0000e+00 - 2.4560e+03 0 - 2.6890e+03 1.0000e+00 - 2.8350e+03 0 - 2.9900e+03 0 - 3.0590e+03 0 - 3.3360e+03 0 - 3.4220e+03 0 - 3.5810e+03 0 - 3.8530e+03 1.0000e+00 - 4.0790e+03 1.0000e+00 - 4.1910e+03 1.0000e+00 - - ------ finding lower bound for cut-points ----- - -lower cutpoint: 1403.32 - - n_events, left node: 5 - - n_risk, left node: 5 - ------ finding upper bound for cut-points ----- - -upper cutpoint: 1920.17 - - n_events, right node: 3 - - n_risk, right node: 7 - -Randomly sampled cutpoints: - 1.4033e+03 - 1.5853e+03 - 1.6721e+03 - 1.7282e+03 - 1.8433e+03 - - -testing cutpoint: 1403.32 - - ---- view of lincomb & g_node & w_node ---- - - 1.3153e+03 0 3.0000e+00 - 1.4033e+03 0 2.0000e+00 - 1.5417e+03 1.0000e+00 3.0000e+00 - 1.5853e+03 1.0000e+00 2.0000e+00 - 1.6603e+03 1.0000e+00 1.0000e+00 - 1.6721e+03 1.0000e+00 1.0000e+00 - 1.7282e+03 1.0000e+00 1.0000e+00 - 1.7500e+03 1.0000e+00 1.0000e+00 - 1.7508e+03 1.0000e+00 2.0000e+00 - 1.8433e+03 1.0000e+00 2.0000e+00 - 1.9202e+03 1.0000e+00 2.0000e+00 - 2.0219e+03 1.0000e+00 3.0000e+00 - 3.2035e+03 1.0000e+00 1.0000e+00 - 3.8689e+03 1.0000e+00 1.0000e+00 - 4.9425e+03 1.0000e+00 1.0000e+00 - 1.1995e+04 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 31.3994 - ------------------------------------------- - -testing cutpoint: 1585.28 - - ---- view of lincomb & g_node & w_node ---- - - 1.3153e+03 0 3.0000e+00 - 1.4033e+03 0 2.0000e+00 - 1.5417e+03 0 3.0000e+00 - 1.5853e+03 0 2.0000e+00 - 1.6603e+03 1.0000e+00 1.0000e+00 - 1.6721e+03 1.0000e+00 1.0000e+00 - 1.7282e+03 1.0000e+00 1.0000e+00 - 1.7500e+03 1.0000e+00 1.0000e+00 - 1.7508e+03 1.0000e+00 2.0000e+00 - 1.8433e+03 1.0000e+00 2.0000e+00 - 1.9202e+03 1.0000e+00 2.0000e+00 - 2.0219e+03 1.0000e+00 3.0000e+00 - 3.2035e+03 1.0000e+00 1.0000e+00 - 3.8689e+03 1.0000e+00 1.0000e+00 - 4.9425e+03 1.0000e+00 1.0000e+00 - 1.1995e+04 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 3.56139 - ------------------------------------------- - -testing cutpoint: 1672.06 - - ---- view of lincomb & g_node & w_node ---- - - 1.3153e+03 0 3.0000e+00 - 1.4033e+03 0 2.0000e+00 - 1.5417e+03 0 3.0000e+00 - 1.5853e+03 0 2.0000e+00 - 1.6603e+03 0 1.0000e+00 - 1.6721e+03 0 1.0000e+00 - 1.7282e+03 1.0000e+00 1.0000e+00 - 1.7500e+03 1.0000e+00 1.0000e+00 - 1.7508e+03 1.0000e+00 2.0000e+00 - 1.8433e+03 1.0000e+00 2.0000e+00 - 1.9202e+03 1.0000e+00 2.0000e+00 - 2.0219e+03 1.0000e+00 3.0000e+00 - 3.2035e+03 1.0000e+00 1.0000e+00 - 3.8689e+03 1.0000e+00 1.0000e+00 - 4.9425e+03 1.0000e+00 1.0000e+00 - 1.1995e+04 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 1.08475 - ------------------------------------------- - -testing cutpoint: 1728.15 - - ---- view of lincomb & g_node & w_node ---- - - 1.3153e+03 0 3.0000e+00 - 1.4033e+03 0 2.0000e+00 - 1.5417e+03 0 3.0000e+00 - 1.5853e+03 0 2.0000e+00 - 1.6603e+03 0 1.0000e+00 - 1.6721e+03 0 1.0000e+00 - 1.7282e+03 0 1.0000e+00 - 1.7500e+03 1.0000e+00 1.0000e+00 - 1.7508e+03 1.0000e+00 2.0000e+00 - 1.8433e+03 1.0000e+00 2.0000e+00 - 1.9202e+03 1.0000e+00 2.0000e+00 - 2.0219e+03 1.0000e+00 3.0000e+00 - 3.2035e+03 1.0000e+00 1.0000e+00 - 3.8689e+03 1.0000e+00 1.0000e+00 - 4.9425e+03 1.0000e+00 1.0000e+00 - 1.1995e+04 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 0.622778 - ------------------------------------------- - -testing cutpoint: 1843.29 - - ---- view of lincomb & g_node & w_node ---- - - 1.3153e+03 0 3.0000e+00 - 1.4033e+03 0 2.0000e+00 - 1.5417e+03 0 3.0000e+00 - 1.5853e+03 0 2.0000e+00 - 1.6603e+03 0 1.0000e+00 - 1.6721e+03 0 1.0000e+00 - 1.7282e+03 0 1.0000e+00 - 1.7500e+03 0 1.0000e+00 - 1.7508e+03 0 2.0000e+00 - 1.8433e+03 0 2.0000e+00 - 1.9202e+03 1.0000e+00 2.0000e+00 - 2.0219e+03 1.0000e+00 3.0000e+00 - 3.2035e+03 1.0000e+00 1.0000e+00 - 3.8689e+03 1.0000e+00 1.0000e+00 - 4.9425e+03 1.0000e+00 1.0000e+00 - 1.1995e+04 1.0000e+00 1.0000e+00 - - -logrank stat for this cutpoint: 2.00286 - ------------------------------------------- - -Split successful: unique node assignments: - 5 7 8 10 14 15 18 19 20 21 22 24 26 27 28 - -growing node 26 - -sprouting new leaf with node 26 - - ---- view of leaf_data ---- - - 1.0830e+03 8.0000e-01 2.0000e-01 - 1.4440e+03 4.0000e-01 7.0000e-01 - 1.6570e+03 0 1.7000e+00 - - -growing node 27 - -sprouting new leaf with node 27 - - ---- view of leaf_data ---- - - 1.2120e+03 6.0000e-01 4.0000e-01 - 1.6900e+03 0 1.4000e+00 - - -growing node 28 - -sprouting new leaf with node 28 - - ---- view of leaf_data ---- - - 1.7860e+03 9.0909e-01 9.0909e-02 - 1.8470e+03 8.5561e-01 1.4973e-01 - 2.6890e+03 7.4153e-01 2.8307e-01 - 3.8530e+03 4.9436e-01 6.1640e-01 - 4.0790e+03 2.4718e-01 1.1164e+00 - - diff --git a/src/Coxph.cpp b/src/Coxph.cpp index a55b341b..ed7c5ac6 100644 --- a/src/Coxph.cpp +++ b/src/Coxph.cpp @@ -171,7 +171,6 @@ arma::mat coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, - arma::vec& XB, bool do_scale, int ties_method, double epsilon, @@ -182,8 +181,7 @@ iter, i, j, - k, - n_vars; + k; vec beta_current, @@ -191,7 +189,10 @@ Risk, u, a, - a2; + a2, + means, + scales, + XB; mat vmat, @@ -219,15 +220,15 @@ w_node_sum, stat_current; - n_vars = x_node.n_cols; + uword n_vars = x_node.n_cols; if(do_scale){ x_transforms.set_size(n_vars, 2); x_transforms.fill(0); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + means = x_transforms.unsafe_col(0); // Reference to column 1 + scales = x_transforms.unsafe_col(1); // Reference to column 2 w_node_sum = sum(w_node); @@ -662,8 +663,12 @@ } if(do_scale){ - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); + // return beta and variance to original scales + beta_current.at(i) *= scales[i]; + vmat.at(i, i) *= scales[i] * scales[i]; + // same for x_node + x_node.col(i) /= scales.at(i); + x_node.col(i) += means.at(i); } } diff --git a/src/Coxph.h b/src/Coxph.h index c63d7bea..55161f15 100644 --- a/src/Coxph.h +++ b/src/Coxph.h @@ -61,7 +61,6 @@ arma::mat coxph_fit(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, - arma::vec& XB, bool do_scale, int ties_method, double epsilon, diff --git a/src/Forest.cpp b/src/Forest.cpp index 6785d860..7d7f79d1 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -22,6 +22,12 @@ void Forest::load(arma::uword n_tree, this->n_tree = n_tree; + if(VERBOSITY > 0){ + Rcout << "---- loading forest from input list ----"; + Rcout << std::endl << std::endl; + } + + // Create trees trees.reserve(n_tree); @@ -70,7 +76,7 @@ void Forest::init(std::unique_ptr input_data, // predictions PredType pred_type, bool pred_mode, - double pred_horizon, + arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, @@ -119,17 +125,6 @@ void Forest::init(std::unique_ptr input_data, } -// growInternal() in ranger -void Forest::plant() { - - trees.reserve(n_tree); - - for (arma::uword i = 0; i < n_tree; ++i) { - trees.push_back(std::make_unique()); - } - -} - void Forest::init_trees(){ for(uword i = 0; i < n_tree; ++i){ @@ -160,7 +155,18 @@ void Forest::init_trees(){ } -void Forest::grow(){ +// growInternal() in ranger +void Forest::plant() { + + trees.reserve(n_tree); + + for (arma::uword i = 0; i < n_tree; ++i) { + trees.push_back(std::make_unique()); + } + +} + +void Forest::grow() { init_trees(); @@ -241,7 +247,26 @@ void Forest::grow_in_threads(uint thread_idx) { } -void Forest::run(){ } +mat Forest::predict() { + + mat result(data->n_rows, pred_horizon.size()); + + mat* result_ptr = &result; + + for(uint i = 0; i < n_tree; ++i){ + trees[i]->predict_leaf(data.get()); + trees[i]->predict_value(result_ptr, pred_horizon, 'S'); + } + + result /= n_tree; + + return(result); + +} + +void Forest::run() { + +} void Forest::showProgress(std::string operation, size_t max_progress) { diff --git a/src/Forest.h b/src/Forest.h index dc6b4112..1da6e72d 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -67,7 +67,7 @@ class Forest { // predictions PredType pred_type, bool pred_mode, - double pred_horizon, + arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, @@ -84,6 +84,8 @@ class Forest { void plant(); + arma::mat predict(); + void showProgress(std::string operation, size_t max_progress); std::vector> get_cutpoint() { @@ -222,7 +224,7 @@ class Forest { // predictions PredType pred_type; - double pred_horizon; + arma::vec pred_horizon; // out-of-bag bool oobag_pred; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 372f26d4..c4c771da 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -70,7 +70,7 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, double pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; @@ -103,7 +103,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uword >::type lincomb_ties_method(lincomb_ties_methodSEXP); Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); - Rcpp::traits::input_parameter< double >::type pred_horizon(pred_horizonSEXP); + Rcpp::traits::input_parameter< arma::vec >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); diff --git a/src/Tree.cpp b/src/Tree.cpp index c5f5333c..64998c17 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -294,7 +294,7 @@ double n_events = 0, n_risk = 0; - if(VERBOSITY > 0){ + if(VERBOSITY > 1){ Rcout << "----- finding lower bound for cut-points -----" << std::endl; } @@ -321,7 +321,7 @@ if( n_events >= leaf_min_events && n_risk >= leaf_min_obs) { - if(VERBOSITY > 1){ + if(VERBOSITY > 0){ Rcout << std::endl; Rcout << "lower cutpoint: " << lincomb(*it) << std::endl; Rcout << " - n_events, left node: " << n_events << std::endl; @@ -355,7 +355,7 @@ // reset before finding the upper limit n_events=0, n_risk=0; - if(VERBOSITY > 0){ + if(VERBOSITY > 1){ Rcout << "----- finding upper bound for cut-points -----" << std::endl; } @@ -387,7 +387,7 @@ --it; - if(VERBOSITY > 1){ + if(VERBOSITY > 0){ Rcout << std::endl; Rcout << "upper cutpoint: " << lincomb(*it) << std::endl; Rcout << " - n_events, right node: " << n_events << std::endl; @@ -410,7 +410,7 @@ if(j > k){ - if(VERBOSITY > 1) { + if(VERBOSITY > 0) { Rcout << "Could not find valid cut-points" << std::endl; } @@ -815,7 +815,7 @@ nodes_open.reserve(max_leaves); nodes_queued.reserve(max_leaves); - // number of nodes in the tree starts at 0 + // number of nodes in the tree uword n_nodes = 0; // iterate through nodes to be grown @@ -883,10 +883,9 @@ case NEWTON_RAPHSON: { beta = coxph_fit(x_node, y_node, w_node, - lincomb, lincomb_scale, lincomb_ties_method, + lincomb_scale, lincomb_ties_method, lincomb_eps, lincomb_iter_max); - // dont need to create lincomb (coxph_fit did so already) break; @@ -902,8 +901,6 @@ beta.at(i, 0) = unif_coef(random_number_generator); } - lincomb = x_node * beta; - break; } @@ -924,8 +921,6 @@ beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); - lincomb = x_node * beta; - break; } @@ -934,7 +929,9 @@ vec beta_est = beta.unsafe_col(0); - // linear combination was created by coxph_fit + lincomb = x_node * beta_est; + + // sorted in ascending order lincomb_sort = sort_index(lincomb); // find all valid cutpoints for lincomb @@ -1015,6 +1012,9 @@ } while (nodes_open.size() > 0); + // don't forget to count the root node + n_nodes++; + cutpoint.resize(n_nodes); child_left.resize(n_nodes); coef_values.resize(n_nodes); @@ -1025,28 +1025,36 @@ } // Tree::grow - void Tree::predict_leaf(){ + void Tree::predict_leaf(Data* prediction_data) { + + pred_leaf.resize(prediction_data->n_rows); + + if(VERBOSITY > 0){ + Rcout << "---- computing leaf predictions ----" << std::endl; + } + + uvec obs_in_node; - uvec result(data->get_n_rows()), obs_in_node; arma::uvec::iterator it; + uword i, j; for(i = 0; i < coef_values.size(); i++){ - // if child_left == 0, it's a leaf + // if child_left == 0, it's a leaf (no need to find next child) if(child_left[i] != 0){ if(i == 0){ - obs_in_node = regspace(0, 1, result.size()-1); + obs_in_node = regspace(0, 1, pred_leaf.size()-1); } else { - obs_in_node = find(result == i); + obs_in_node = find(pred_leaf == i); } if(obs_in_node.size() > 0){ - lincomb = data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; + lincomb = prediction_data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; it = obs_in_node.begin(); @@ -1054,11 +1062,11 @@ if(lincomb[j] <= cutpoint[i]) { - result[*it] = child_left[i]; + pred_leaf[*it] = child_left[i]; } else { - result[*it] = child_left[i]+1; + pred_leaf[*it] = child_left[i]+1; } @@ -1066,13 +1074,13 @@ if(VERBOSITY > 0){ - uvec in_left = find(result == child_left[i]); - uvec in_right = find(result == child_left[i]+1); + uvec in_left = find(pred_leaf == child_left[i]); + uvec in_right = find(pred_leaf == child_left[i]+1); - Rcout << "N to node_" << child_left[i] << ": "; - Rcout << in_left.size() << "; "; - Rcout << "N to node_" << child_left[i]+1 << ": "; - Rcout << in_right.size() << std::endl; + Rcout << "No. to node " << child_left[i] << ": "; + Rcout << in_left.size() << "; " << std::endl; + Rcout << "No. to node " << child_left[i]+1 << ": "; + Rcout << in_right.size() << std::endl << std::endl; } @@ -1084,6 +1092,124 @@ } + void Tree::predict_value(arma::mat* pred_output, + arma::vec& pred_times, + char pred_type){ + + uvec pred_leaf_sort = sort_index(pred_leaf, "ascend"); + + uvec::iterator it = pred_leaf_sort.begin(); + + double pred_t0; + + if(pred_type == 'S' || pred_type == 'R'){ + pred_t0 = 1; + } else { + pred_t0 = 0; + } + + uword i, j; + + vec leaf_times, leaf_values; + + vec temp_vec(pred_times.size()); + double temp_dbl; + + do { + + uword leaf_id = pred_leaf(*it); + + Rcout << "beginning leaf " << leaf_id << std::endl; + + Rcout << leaf_pred_horizon[leaf_id] << std::endl << std::endl; + + // copies of leaf data using same aux memory + leaf_times = vec(leaf_pred_horizon[leaf_id].begin(), + leaf_pred_horizon[leaf_id].size(), + false); + + Rcout << leaf_pred_surv[leaf_id] << std::endl; + + leaf_values = vec(leaf_pred_surv[leaf_id].begin(), + leaf_pred_surv[leaf_id].size(), + false); + + if(leaf_values.is_empty()) Rcpp::stop("empty leaf"); + + // don't reset i in the loop. + // (wasteful b/c leaf_times ascend) + i = 0; + + for(j = 0; j < pred_times.size(); j++){ + + // t is the current prediction time + double t = pred_times[j]; + + // if t < t', where t' is the max time in this leaf, + // then we may find a time t* such that t* < t < t'. + // If so, prediction should be anchored to t*. + // But, there may be multiple t* < t, and we want to + // find the largest t* that is < t, so we find the + // first t** > t and assign t* to be whatever came + // right before t**. + if(t < leaf_times.back()){ + + for(; i < leaf_times.size(); i++){ + + // we found t** + if (leaf_times[i] > t){ + + if(i == 0) + // first leaf event occurred after prediction time + temp_dbl = pred_t0; + else + // t* is the time value just before t**, so use i-1 + temp_dbl = leaf_values[i-1]; + + break; + + } else if (leaf_times[i] == t){ + // pred_horizon just happens to equal a leaf time + temp_dbl = leaf_values[i]; + + break; + + } + + } + + } else { + // if t > t' use the last recorded prediction + temp_dbl = leaf_values.back(); + + } + + temp_vec[j] = temp_dbl; + + } + + (*pred_output).row(*it) += temp_vec.t(); + ++it; + + if(it < pred_leaf_sort.end()){ + + while(leaf_id == pred_leaf(*it)){ + + (*pred_output).row(*it) += temp_vec.t(); + ++it; + + if (it == pred_leaf_sort.end()-1) break; + + } + + } + + } while (it < pred_leaf_sort.end()); + + + + } + } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index 959f3fb4..f37e1713 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -77,7 +77,11 @@ void grow(arma::vec* vi_numer, arma::uvec* vi_denom); - void predict_leaf(); + void predict_leaf(Data* prediction_data); + + void predict_value(arma::mat* pred_output, + arma::vec& pred_times, + char pred_type); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); @@ -109,6 +113,10 @@ return(child_left); } + arma::uvec& get_pred_leaf(){ + return(pred_leaf); + } + // pointers to variable importance in forest arma::vec* vi_numer; arma::uvec* vi_denom; @@ -189,8 +197,8 @@ // prediction members double pred_horizon; - // predicted values for out-of-bag rows - arma::vec pred_oobag; + // predicted leaf node + arma::uvec pred_leaf; // which node each inbag observation is currently in. arma::uvec node_assignments; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 2e5faf2d..c4d247bf 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -48,12 +48,10 @@ arma::uword cph_iter_max){ arma::uvec cols_node=regspace(0, x_node.n_cols-1); - arma::vec lincomb(x_node.n_rows, arma::fill::zeros); arma::mat out = coxph_fit(x_node, y_node, w_node, - lincomb, true, method, cph_eps, @@ -158,7 +156,7 @@ arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, - double pred_horizon, + arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread){ @@ -226,6 +224,10 @@ forest->load(n_tree, cutpoint, child_left, coef_values, coef_indices, leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf); + arma::mat pred_mat = forest->predict(); + + result.push_back(pred_mat, "predictions"); + } else { forest->plant(); From 996d3118f4fc0228d7f97afe2f048dcbeb38fedc Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 30 Aug 2023 20:31:02 -0400 Subject: [PATCH 051/103] oobag functions, needs testing and denom tune --- R/RcppExports.R | 4 ++-- src/Forest.cpp | 11 +++++++--- src/Forest.h | 2 +- src/RcppExports.cpp | 8 +++---- src/Tree.cpp | 53 ++++++++++++++++++++++++++++++--------------- src/Tree.h | 6 +++-- src/globals.h | 2 +- src/orsf_oop.cpp | 8 ++++--- 8 files changed, 61 insertions(+), 33 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index f59dd702..3435e845 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -17,7 +17,7 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -orsf_cpp <- function(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread) +orsf_cpp <- function(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) } diff --git a/src/Forest.cpp b/src/Forest.cpp index 7d7f79d1..8de1268c 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -247,15 +247,20 @@ void Forest::grow_in_threads(uint thread_idx) { } -mat Forest::predict() { +mat Forest::predict(bool oobag) { mat result(data->n_rows, pred_horizon.size()); + vec denom; + + if(oobag) denom.zeros(data->n_rows); + mat* result_ptr = &result; + vec* denom_ptr = &denom; for(uint i = 0; i < n_tree; ++i){ - trees[i]->predict_leaf(data.get()); - trees[i]->predict_value(result_ptr, pred_horizon, 'S'); + trees[i]->predict_leaf(data.get(), oobag); + trees[i]->predict_value(result_ptr, pred_horizon, 'S', oobag); } result /= n_tree; diff --git a/src/Forest.h b/src/Forest.h index 1da6e72d..7f123731 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -84,7 +84,7 @@ class Forest { void plant(); - arma::mat predict(); + arma::mat predict(bool oobag); void showProgress(std::string operation, size_t max_progress); diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index c4c771da..d82232a1 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -70,8 +70,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, unsigned int n_thread); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobag_predSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_every, unsigned int n_thread); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -104,10 +104,10 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< arma::vec >::type pred_horizon(pred_horizonSEXP); - Rcpp::traits::input_parameter< bool >::type oobag_pred(oobag_predSEXP); + Rcpp::traits::input_parameter< bool >::type oobag(oobagSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag_pred, oobag_eval_every, n_thread)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread)); return rcpp_result_gen; END_RCPP } diff --git a/src/Tree.cpp b/src/Tree.cpp index 64998c17..356a5e2f 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -1025,33 +1025,34 @@ } // Tree::grow - void Tree::predict_leaf(Data* prediction_data) { + void Tree::predict_leaf(Data* prediction_data, bool oobag) { - pred_leaf.resize(prediction_data->n_rows); + pred_leaf.zeros(prediction_data->n_rows); if(VERBOSITY > 0){ Rcout << "---- computing leaf predictions ----" << std::endl; } uvec obs_in_node; + // it iterates over the observations in a node + uvec::iterator it; - arma::uvec::iterator it; - + // i iterates over nodes, j over observations uword i, j; - for(i = 0; i < coef_values.size(); i++){ // if child_left == 0, it's a leaf (no need to find next child) if(child_left[i] != 0){ - if(i == 0){ + if(i == 0 && oobag){ + obs_in_node = rows_oobag; + } else if (i == 0 && !oobag) { obs_in_node = regspace(0, 1, pred_leaf.size()-1); } else { obs_in_node = find(pred_leaf == i); } - if(obs_in_node.size() > 0){ lincomb = prediction_data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; @@ -1090,16 +1091,31 @@ } + Rcout << pred_leaf << std::endl; + } void Tree::predict_value(arma::mat* pred_output, arma::vec& pred_times, - char pred_type){ + char pred_type, + bool oobag){ uvec pred_leaf_sort = sort_index(pred_leaf, "ascend"); uvec::iterator it = pred_leaf_sort.begin(); + // oobag leaf prediction has zeros for inbag rows + if(oobag){ + + Rcout << "Sorted boys: " << std::endl; + Rcout << pred_leaf(pred_leaf_sort) << std::endl; + + while(pred_leaf[*it] == 0){ + Rcout << "it points to leaf " << pred_leaf[*it] << std::endl; + ++it; + } + } + double pred_t0; if(pred_type == 'S' || pred_type == 'R'){ @@ -1117,19 +1133,15 @@ do { - uword leaf_id = pred_leaf(*it); + uword leaf_id = pred_leaf[*it]; - Rcout << "beginning leaf " << leaf_id << std::endl; - - Rcout << leaf_pred_horizon[leaf_id] << std::endl << std::endl; + Rcout << leaf_id << std::endl; // copies of leaf data using same aux memory leaf_times = vec(leaf_pred_horizon[leaf_id].begin(), leaf_pred_horizon[leaf_id].size(), false); - Rcout << leaf_pred_surv[leaf_id] << std::endl; - leaf_values = vec(leaf_pred_surv[leaf_id].begin(), leaf_pred_surv[leaf_id].size(), false); @@ -1193,12 +1205,19 @@ if(it < pred_leaf_sort.end()){ - while(leaf_id == pred_leaf(*it)){ + + while(leaf_id == pred_leaf[*it]){ + + Rcout << "leaf id in lower loop: " << leaf_id << std::endl; (*pred_output).row(*it) += temp_vec.t(); - ++it; - if (it == pred_leaf_sort.end()-1) break; + if (it == pred_leaf_sort.end()-1){ + Rcout << "breaking b/c we at the end" << std::endl; + break; + } else { + ++it; + } } diff --git a/src/Tree.h b/src/Tree.h index f37e1713..59a9e808 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -77,11 +77,13 @@ void grow(arma::vec* vi_numer, arma::uvec* vi_denom); - void predict_leaf(Data* prediction_data); + void predict_leaf(Data* prediction_data, + bool oobag); void predict_value(arma::mat* pred_output, arma::vec& pred_times, - char pred_type); + char pred_type, + bool oobag); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); diff --git a/src/globals.h b/src/globals.h index 1b23fc48..bae3c8b0 100644 --- a/src/globals.h +++ b/src/globals.h @@ -85,7 +85,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; - const int VERBOSITY = 0; + const int VERBOSITY = 1; // Interval to print progress in seconds const double STATUS_INTERVAL = 15.0; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index c4d247bf..3664cd70 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -157,7 +157,7 @@ bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, - bool oobag_pred, + bool oobag, arma::uword oobag_eval_every, unsigned int n_thread){ @@ -205,7 +205,7 @@ pred_type, pred_mode, pred_horizon, - oobag_pred, + oobag, oobag_eval_every, oobag_R_function, n_thread); @@ -224,7 +224,7 @@ forest->load(n_tree, cutpoint, child_left, coef_values, coef_indices, leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf); - arma::mat pred_mat = forest->predict(); + arma::mat pred_mat = forest->predict(oobag); result.push_back(pred_mat, "predictions"); @@ -234,6 +234,8 @@ forest->grow(); + if(oobag) forest->predict(oobag); + forest_out.push_back(forest->get_cutpoint(), "cutpoint"); forest_out.push_back(forest->get_child_left(), "child_left"); forest_out.push_back(forest->get_coef_indices(), "coef_indices"); From 1418944f1c8c00193e84ae7319f719523c0b621d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 31 Aug 2023 17:02:28 -0400 Subject: [PATCH 052/103] predict in threads almost predictions b/t multi-versus-single threads were not the same until I reverted from randomly sampled cut-points to deterministic ones. Need to figure out why that random sample caused single versus multi thread randomness to diverge --- src/Forest.cpp | 127 ++++++++++++++++++++++++++++++++++---------- src/Forest.h | 19 +++++++ src/Tree.cpp | 135 +++++++++++++++++++---------------------------- src/Tree.h | 5 ++ src/globals.h | 2 +- src/orsf_oop.cpp | 6 ++- 6 files changed, 184 insertions(+), 110 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 8de1268c..16346ebd 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -43,9 +43,6 @@ void Forest::load(arma::uword n_tree, ); } - // Create thread ranges - equalSplit(thread_ranges, 0, n_tree - 1, n_thread); - } void Forest::init(std::unique_ptr input_data, @@ -171,22 +168,22 @@ void Forest::grow() { init_trees(); // if multi-threading isn't required - if(n_thread == 1){ - - vec* vi_numer_ptr = &this->vi_numer; - uvec* vi_denom_ptr = &this->vi_denom; - - for(uint i = 0; i < n_tree; ++i){ - - // Abort if user has pressed Ctrl + C or Escape in R. - checkUserInterrupt(); - trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - - } - - return; - - } + // if(n_thread == 1){ + // + // vec* vi_numer_ptr = &this->vi_numer; + // uvec* vi_denom_ptr = &this->vi_denom; + // + // for(uint i = 0; i < n_tree; ++i){ + // + // // Abort if user has pressed Ctrl + C or Escape in R. + // checkUserInterrupt(); + // trees[i]->grow(vi_numer_ptr, vi_denom_ptr); + // + // } + // + // return; + // + // } // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); @@ -249,26 +246,100 @@ void Forest::grow_in_threads(uint thread_idx) { mat Forest::predict(bool oobag) { - mat result(data->n_rows, pred_horizon.size()); + mat result(data->n_rows, pred_horizon.size(), fill::zeros); + vec denom; if(oobag) denom.zeros(data->n_rows); - vec denom; + if(n_thread == 1){ + + mat* result_ptr = &result; + vec* denom_ptr = &denom; + + for(uint i = 0; i < n_tree; ++i){ + trees[i]->predict_leaf(data.get(), oobag); + trees[i]->predict_value(result_ptr, denom_ptr, + pred_horizon, 'S', + oobag); + } + } else { + + progress = 0; + aborted = false; + aborted_threads = 0; + + std::vector threads; + std::vector result_threads(n_thread); + std::vector denom_threads(n_thread); - if(oobag) denom.zeros(data->n_rows); + threads.reserve(n_thread); - mat* result_ptr = &result; - vec* denom_ptr = &denom; + for (uint i = 0; i < n_thread; ++i) { + + result_threads[i].resize(data->n_rows, pred_horizon.size()); + if(oobag) denom_threads[i].zeros(data->n_rows); + + threads.emplace_back(&Forest::predict_in_threads, + this, i, data.get(), oobag, + &(result_threads[i]), + &(denom_threads[i])); + } + + showProgress("Predicting..", n_tree); + + for (auto &thread : threads) { + thread.join(); + } + + for(uint i = 0; i < n_thread; ++i){ + result += result_threads[i]; + if(oobag) denom += denom_threads[i]; + } - for(uint i = 0; i < n_tree; ++i){ - trees[i]->predict_leaf(data.get(), oobag); - trees[i]->predict_value(result_ptr, pred_horizon, 'S', oobag); } - result /= n_tree; + if(oobag){ + result.each_col() /= denom; + } else { + result /= n_tree; + } return(result); } +void Forest::predict_in_threads(uint thread_idx, + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr) { + + if (thread_ranges.size() > thread_idx + 1) { + + for (uint i = thread_ranges[thread_idx]; i < thread_ranges[thread_idx + 1]; ++i) { + + trees[i]->predict_leaf(prediction_data, oobag); + trees[i]->predict_value(result_ptr, denom_ptr, + pred_horizon, 'S', + oobag); + + // Check for user interrupt + if (aborted) { + std::unique_lock lock(mutex); + ++aborted_threads; + condition_variable.notify_one(); + return; + } + + // Increase progress by 1 tree + std::unique_lock lock(mutex); + ++progress; + condition_variable.notify_one(); + + } + + } + +} + void Forest::run() { } diff --git a/src/Forest.h b/src/Forest.h index 7f123731..1aba0561 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -86,6 +86,12 @@ class Forest { arma::mat predict(bool oobag); + void predict_in_threads(uint thread_idx, + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr); + void showProgress(std::string operation, size_t max_progress); std::vector> get_cutpoint() { @@ -100,6 +106,19 @@ class Forest { return result; + } + std::vector get_rows_oobag() { + + std::vector result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_rows_oobag()); + } + + return result; + } std::vector> get_child_left() { diff --git a/src/Tree.cpp b/src/Tree.cpp index 356a5e2f..7176bd3c 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -104,6 +104,8 @@ arma::uword lincomb_ties_method, RObject lincomb_R_function){ + // Initialize random number generator and set seed + random_number_generator.seed(seed); this->data = data; this->n_cols_total = data->n_cols; @@ -133,9 +135,6 @@ void Tree::sample_rows(){ - // Initialize random number generator and set seed - random_number_generator.seed(seed); - uword i, draw, n = data->n_rows; // Start with all samples OOB @@ -164,29 +163,22 @@ void Tree::sample_cols(){ // Start empty - std::vector cols_assessed, cols_accepted; - cols_assessed.reserve(n_cols_total); + std::vector cols_accepted; cols_accepted.reserve(mtry); + // Set all to not selected + std::vector temp; + temp.resize(n_cols_total, false); + std::uniform_int_distribution unif_dist(0, n_cols_total - 1); uword i, draw; for (i = 0; i < n_cols_total; ++i) { - draw = unif_dist(random_number_generator); - - // Ensure the drawn number is not already in the sample - while (std::find(cols_assessed.begin(), - cols_assessed.end(), - draw) != cols_assessed.end()) { - - draw = unif_dist(random_number_generator); - - - } + do { draw = unif_dist(random_number_generator); } while (temp[draw]); - cols_assessed.push_back(draw); + temp[draw] = true; if(is_col_splittable(draw)){ cols_accepted.push_back(draw); @@ -523,49 +515,50 @@ } else { // split_max_cuts < cuts_all.size() - cuts_sampled.set_size(split_max_cuts); - - std::uniform_int_distribution unif_dist(0, cuts_all.size() - 1); - - // sample without replacement - for (uword i = 0; i < split_max_cuts; ++i) { - - uword draw = unif_dist(random_number_generator); - - // Ensure the drawn number is not already in the sample - while (std::find(cuts_sampled.begin(), - cuts_sampled.end(), - cuts_all[draw]) != cuts_sampled.end()) { - - draw = unif_dist(random_number_generator); - - } - - cuts_sampled[i] = cuts_all[draw]; - - } - - - - // important that cut-points are ordered from low to high - cuts_sampled = sort(cuts_sampled); - - if(VERBOSITY > 1){ - - Rcout << "Randomly sampled cutpoints: "; - Rcout << std::endl; - Rcout << lincomb(lincomb_sort(cuts_sampled)); - Rcout << std::endl; - Rcout << std::endl; - - } + // cuts_sampled.set_size(split_max_cuts); + // + // std::uniform_int_distribution unif_dist(0, cuts_all.size() - 1); + // + // // sample without replacement + // for (uword i = 0; i < split_max_cuts; ++i) { + // + // uword draw = unif_dist(random_number_generator); + // + // // Ensure the drawn number is not already in the sample + // while (std::find(cuts_sampled.begin(), + // cuts_sampled.end(), + // cuts_all[draw]) != cuts_sampled.end()) { + // + // draw = unif_dist(random_number_generator); + // + // } + // + // cuts_sampled[i] = cuts_all[draw]; + // + // } + // + // + // + // // important that cut-points are ordered from low to high + // cuts_sampled = sort(cuts_sampled); + // + // if(VERBOSITY > 1){ + // + // Rcout << "Randomly sampled cutpoints: "; + // Rcout << std::endl; + // Rcout << lincomb(lincomb_sort(cuts_sampled)); + // Rcout << std::endl; + // Rcout << std::endl; + // + // } + + // non-random version + cuts_sampled = linspace(cuts_all.front(), + cuts_all.back(), + split_max_cuts); } - // non-random version - // uvec cuts_sampled = linspace(cuts_all.front(), - // cuts_all.back(), - // n_cuts); // initialize grouping for the current node // value of 1 indicates go to right node @@ -1091,11 +1084,10 @@ } - Rcout << pred_leaf << std::endl; - } void Tree::predict_value(arma::mat* pred_output, + arma::vec* pred_denom, arma::vec& pred_times, char pred_type, bool oobag){ @@ -1105,16 +1097,7 @@ uvec::iterator it = pred_leaf_sort.begin(); // oobag leaf prediction has zeros for inbag rows - if(oobag){ - - Rcout << "Sorted boys: " << std::endl; - Rcout << pred_leaf(pred_leaf_sort) << std::endl; - - while(pred_leaf[*it] == 0){ - Rcout << "it points to leaf " << pred_leaf[*it] << std::endl; - ++it; - } - } + if(oobag){ while(pred_leaf[*it] == 0){ ++it; } } double pred_t0; @@ -1135,8 +1118,6 @@ uword leaf_id = pred_leaf[*it]; - Rcout << leaf_id << std::endl; - // copies of leaf data using same aux memory leaf_times = vec(leaf_pred_horizon[leaf_id].begin(), leaf_pred_horizon[leaf_id].size(), @@ -1201,23 +1182,17 @@ } (*pred_output).row(*it) += temp_vec.t(); + if(oobag) (*pred_denom)[*it]++; ++it; if(it < pred_leaf_sort.end()){ - while(leaf_id == pred_leaf[*it]){ - Rcout << "leaf id in lower loop: " << leaf_id << std::endl; - (*pred_output).row(*it) += temp_vec.t(); + if(oobag) (*pred_denom)[*it]++; - if (it == pred_leaf_sort.end()-1){ - Rcout << "breaking b/c we at the end" << std::endl; - break; - } else { - ++it; - } + if (it == pred_leaf_sort.end()-1){ break; } else { ++it; } } diff --git a/src/Tree.h b/src/Tree.h index 59a9e808..1376b057 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -81,6 +81,7 @@ bool oobag); void predict_value(arma::mat* pred_output, + arma::vec* pred_denom, arma::vec& pred_times, char pred_type, bool oobag); @@ -91,6 +92,10 @@ return(coef_indices); } + arma::uvec& get_rows_oobag() { + return(rows_oobag); + } + std::vector& get_coef_values() { return(coef_values); } diff --git a/src/globals.h b/src/globals.h index bae3c8b0..1b23fc48 100644 --- a/src/globals.h +++ b/src/globals.h @@ -85,7 +85,7 @@ const PredType DEFAULT_PRED_TYPE = RISK; - const int VERBOSITY = 1; + const int VERBOSITY = 0; // Interval to print progress in seconds const double STATUS_INTERVAL = 15.0; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 3664cd70..d41361a0 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -234,8 +234,12 @@ forest->grow(); - if(oobag) forest->predict(oobag); + if(oobag){ + result.push_back(forest->predict(oobag), "pred_oobag"); + } + + forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); forest_out.push_back(forest->get_cutpoint(), "cutpoint"); forest_out.push_back(forest->get_child_left(), "child_left"); forest_out.push_back(forest->get_coef_indices(), "coef_indices"); From 4ac3457fbd5ede2c6a5bc82362e76ac312968ac8 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 2 Sep 2023 14:18:10 -0400 Subject: [PATCH 053/103] separate name for cutpoint sampler the issue from last commit was fixed by changing the name of the uniform dist that samples cutpoints so that it doesnt have the same name as the row and col samplers. Interesting. --- src/Forest.cpp | 3 ++ src/Tree.cpp | 88 +++++++++++++++++++++++++------------------------- 2 files changed, 47 insertions(+), 44 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 16346ebd..03e84266 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -43,6 +43,9 @@ void Forest::load(arma::uword n_tree, ); } + // Create thread ranges + equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + } void Forest::init(std::unique_ptr input_data, diff --git a/src/Tree.cpp b/src/Tree.cpp index 7176bd3c..0485b31a 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -364,7 +364,7 @@ Rcout << "N risk: " << n_risk << std::endl; } - if(lincomb(*it) != lincomb(*(it-1))){ + if(lincomb[*it] != lincomb[*(it-1)]){ if( n_events >= leaf_min_events && n_risk >= leaf_min_obs ) { @@ -413,7 +413,7 @@ // only one valid cutpoint if(j == k){ - uvec output = {j}; + output = {j}; return(output); } @@ -423,7 +423,7 @@ for(it = it_min+1; it < it_max; ++it){ - if(lincomb(*it) != lincomb(*(it+1))){ + if(lincomb[*it] != lincomb[*(it+1)]){ output_middle[i] = it - lincomb_sort.begin(); i++; } @@ -515,47 +515,47 @@ } else { // split_max_cuts < cuts_all.size() - // cuts_sampled.set_size(split_max_cuts); - // - // std::uniform_int_distribution unif_dist(0, cuts_all.size() - 1); - // - // // sample without replacement - // for (uword i = 0; i < split_max_cuts; ++i) { - // - // uword draw = unif_dist(random_number_generator); - // - // // Ensure the drawn number is not already in the sample - // while (std::find(cuts_sampled.begin(), - // cuts_sampled.end(), - // cuts_all[draw]) != cuts_sampled.end()) { - // - // draw = unif_dist(random_number_generator); - // - // } - // - // cuts_sampled[i] = cuts_all[draw]; - // - // } - // - // - // - // // important that cut-points are ordered from low to high - // cuts_sampled = sort(cuts_sampled); - // - // if(VERBOSITY > 1){ - // - // Rcout << "Randomly sampled cutpoints: "; - // Rcout << std::endl; - // Rcout << lincomb(lincomb_sort(cuts_sampled)); - // Rcout << std::endl; - // Rcout << std::endl; - // - // } - - // non-random version - cuts_sampled = linspace(cuts_all.front(), - cuts_all.back(), - split_max_cuts); + cuts_sampled.set_size(split_max_cuts); + + std::uniform_int_distribution cut_sample_dist(0, cuts_all.size() - 1); + + // sample without replacement + for (uword i = 0; i < split_max_cuts; ++i) { + + uword draw = cut_sample_dist(random_number_generator); + + // Ensure the drawn number is not already in the sample + while (std::find(cuts_sampled.begin(), + cuts_sampled.end(), + cuts_all[draw]) != cuts_sampled.end()) { + + draw = cut_sample_dist(random_number_generator); + + } + + cuts_sampled[i] = cuts_all[draw]; + + } + + + + // important that cut-points are ordered from low to high + cuts_sampled = sort(cuts_sampled); + + if(VERBOSITY > 1){ + + Rcout << "Randomly sampled cutpoints: "; + Rcout << std::endl; + Rcout << lincomb(lincomb_sort(cuts_sampled)); + Rcout << std::endl; + Rcout << std::endl; + + } + + // // non-random version + // cuts_sampled = linspace(cuts_all.front(), + // cuts_all.back(), + // split_max_cuts); } From bca62b22a92cf96685faecc8d0c08df16aded215 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 2 Sep 2023 14:41:01 -0400 Subject: [PATCH 054/103] send unique vi vec to each thread, prevent shared memory access problem --- src/Forest.cpp | 32 +++++++++++++++++++++++++++----- src/Forest.h | 4 +++- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 03e84266..2f882d97 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -112,7 +112,11 @@ void Forest::init(std::unique_ptr input_data, if(vi_type != VI_NONE){ vi_numer.zeros(data->get_n_cols()); - vi_denom.zeros(data->get_n_cols()); + + if(vi_type == VI_ANOVA){ + vi_denom.zeros(data->get_n_cols()); + } + } if(VERBOSITY > 0){ @@ -197,10 +201,19 @@ void Forest::grow() { progress = 0; std::vector threads; + std::vector vi_numer_threads(n_thread); + std::vector vi_denom_threads(n_thread); + threads.reserve(n_thread); for (uint i = 0; i < n_thread; ++i) { - threads.emplace_back(&Forest::grow_in_threads, this, i); + + vi_numer_threads[i].zeros(data->n_cols); + if(vi_type == VI_ANOVA) vi_denom_threads[i].zeros(data->n_cols); + + threads.emplace_back(&Forest::grow_in_threads, this, i, + &(vi_numer_threads[i]), + &(vi_denom_threads[i])); } showProgress("Growing trees...", n_tree); @@ -213,14 +226,23 @@ void Forest::grow() { throw std::runtime_error("User interrupt."); } + if(vi_type != VI_NONE){ + for(uint i = 0; i < n_thread; ++i){ + + vi_numer += vi_numer_threads[i]; + if(vi_type == VI_ANOVA) vi_denom += vi_denom_threads[i]; + + } + + } } -void Forest::grow_in_threads(uint thread_idx) { +void Forest::grow_in_threads(uint thread_idx, + vec* vi_numer_ptr, + uvec* vi_denom_ptr) { - vec* vi_numer_ptr = &this->vi_numer; - uvec* vi_denom_ptr = &this->vi_denom; if (thread_ranges.size() > thread_idx + 1) { diff --git a/src/Forest.h b/src/Forest.h index 1aba0561..01c1d87b 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -80,7 +80,9 @@ class Forest { void grow(); - void grow_in_threads(uint thread_idx); + void grow_in_threads(uint thread_idx, + vec* vi_numer_ptr, + uvec* vi_denom_ptr); void plant(); From 2d560993ca4ec9b858a3c59e4cb8b6d6e37fbf9d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 3 Sep 2023 10:19:06 -0400 Subject: [PATCH 055/103] prep to merge main --- src/Forest.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 2f882d97..e7f52252 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -274,18 +274,18 @@ mat Forest::predict(bool oobag) { mat result(data->n_rows, pred_horizon.size(), fill::zeros); vec denom; if(oobag) denom.zeros(data->n_rows); - if(n_thread == 1){ - - mat* result_ptr = &result; - vec* denom_ptr = &denom; - - for(uint i = 0; i < n_tree; ++i){ - trees[i]->predict_leaf(data.get(), oobag); - trees[i]->predict_value(result_ptr, denom_ptr, - pred_horizon, 'S', - oobag); - } - } else { + // if(n_thread == 1){ + // + // mat* result_ptr = &result; + // vec* denom_ptr = &denom; + // + // for(uint i = 0; i < n_tree; ++i){ + // trees[i]->predict_leaf(data.get(), oobag); + // trees[i]->predict_value(result_ptr, denom_ptr, + // pred_horizon, 'S', + // oobag); + // } + // } else { progress = 0; aborted = false; @@ -319,7 +319,7 @@ mat Forest::predict(bool oobag) { if(oobag) denom += denom_threads[i]; } - } + // } if(oobag){ result.each_col() /= denom; From 786ef633deee00d3231b13a3718a4b9276a45052 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 3 Sep 2023 14:59:52 -0400 Subject: [PATCH 056/103] mort pre-computed --- R/RcppExports.R | 64 + src/Forest.cpp | 80 +- src/Forest.h | 26 +- src/RcppExports.cpp | 280 ++ src/Tree.cpp | 33 +- src/Tree.h | 13 +- src/orsf.cpp | 8222 +++++++++++++++++++++---------------------- src/orsf_oop.cpp | 9 +- src/utility.cpp | 32 + src/utility.h | 2 + 10 files changed, 4598 insertions(+), 4163 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 3435e845..75dedd8e 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,6 +1,70 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 +std_setdiff <- function(x, y) { + .Call(`_aorsf_std_setdiff`, x, y) +} + +x_node_scale_exported <- function(x_, w_) { + .Call(`_aorsf_x_node_scale_exported`, x_, w_) +} + +leaf_kaplan_testthat <- function(y, w) { + .Call(`_aorsf_leaf_kaplan_testthat`, y, w) +} + +newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { + .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) +} + +lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { + .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) +} + +oobag_c_harrell_testthat <- function(y_mat, s_vec) { + .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) +} + +ostree_pred_leaf_testthat <- function(tree, x_pred_) { + .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) +} + +orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress) { + .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress) +} + +orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { + .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) +} + +orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { + .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) +} + +orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { + .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) +} + +orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { + .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) +} + +pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + +pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { + .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +} + coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) } diff --git a/src/Forest.cpp b/src/Forest.cpp index e7f52252..fb6ffd97 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -18,7 +18,8 @@ void Forest::load(arma::uword n_tree, std::vector>& forest_coef_indices, std::vector>& forest_leaf_pred_horizon, std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf) { + std::vector>& forest_leaf_pred_chf, + std::vector>& forest_leaf_pred_mort) { this->n_tree = n_tree; @@ -39,7 +40,8 @@ void Forest::load(arma::uword n_tree, forest_coef_indices[i], forest_leaf_pred_horizon[i], forest_leaf_pred_surv[i], - forest_leaf_pred_chf[i]) + forest_leaf_pred_chf[i], + forest_leaf_pred_mort[i]) ); } @@ -134,6 +136,7 @@ void Forest::init_trees(){ for(uword i = 0; i < n_tree; ++i){ trees[i]->init(data.get(), + &unique_event_times, tree_seeds[i], mtry, leaf_min_events, @@ -272,57 +275,42 @@ void Forest::grow_in_threads(uint thread_idx, mat Forest::predict(bool oobag) { mat result(data->n_rows, pred_horizon.size(), fill::zeros); - vec denom; if(oobag) denom.zeros(data->n_rows); + vec oob_denom; if(oobag) oob_denom.zeros(data->n_rows); - // if(n_thread == 1){ - // - // mat* result_ptr = &result; - // vec* denom_ptr = &denom; - // - // for(uint i = 0; i < n_tree; ++i){ - // trees[i]->predict_leaf(data.get(), oobag); - // trees[i]->predict_value(result_ptr, denom_ptr, - // pred_horizon, 'S', - // oobag); - // } - // } else { - - progress = 0; - aborted = false; - aborted_threads = 0; - - std::vector threads; - std::vector result_threads(n_thread); - std::vector denom_threads(n_thread); + progress = 0; + aborted = false; + aborted_threads = 0; - threads.reserve(n_thread); + std::vector threads; + std::vector result_threads(n_thread); + std::vector oob_denom_threads(n_thread); - for (uint i = 0; i < n_thread; ++i) { + threads.reserve(n_thread); - result_threads[i].resize(data->n_rows, pred_horizon.size()); - if(oobag) denom_threads[i].zeros(data->n_rows); + for (uint i = 0; i < n_thread; ++i) { - threads.emplace_back(&Forest::predict_in_threads, - this, i, data.get(), oobag, - &(result_threads[i]), - &(denom_threads[i])); - } + result_threads[i].resize(data->n_rows, pred_horizon.size()); + if(oobag) oob_denom_threads[i].zeros(data->n_rows); - showProgress("Predicting..", n_tree); + threads.emplace_back(&Forest::predict_in_threads, + this, i, data.get(), oobag, + &(result_threads[i]), + &(oob_denom_threads[i])); + } - for (auto &thread : threads) { - thread.join(); - } + showProgress("Predicting..", n_tree); - for(uint i = 0; i < n_thread; ++i){ - result += result_threads[i]; - if(oobag) denom += denom_threads[i]; - } + for (auto &thread : threads) { + thread.join(); + } - // } + for(uint i = 0; i < n_thread; ++i){ + result += result_threads[i]; + if(oobag) oob_denom += oob_denom_threads[i]; + } if(oobag){ - result.each_col() /= denom; + result.each_col() /= oob_denom; } else { result /= n_tree; } @@ -332,10 +320,10 @@ mat Forest::predict(bool oobag) { } void Forest::predict_in_threads(uint thread_idx, - Data* prediction_data, - bool oobag, - mat* result_ptr, - vec* denom_ptr) { + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr) { if (thread_ranges.size() > thread_idx + 1) { diff --git a/src/Forest.h b/src/Forest.h index 01c1d87b..edc24e99 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -37,7 +37,8 @@ class Forest { std::vector>& forest_coef_indices, std::vector>& forest_leaf_pred_horizon, std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf); + std::vector>& forest_leaf_pred_chf, + std::vector>& forest_leaf_pred_mort); void init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, @@ -202,6 +203,27 @@ class Forest { return result; } + std::vector> get_leaf_pred_mort() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + result.push_back(tree->get_leaf_pred_mort()); + } + + return result; + + } + + void set_unique_event_times(arma::vec& x){ + this->unique_event_times = x; + } + + arma::vec& get_unique_event_times(){ + return(unique_event_times); + } // Member variables @@ -214,6 +236,8 @@ class Forest { std::unique_ptr data; + arma::vec unique_event_times; + // variable importance VariableImportance vi_type; double vi_max_pvalue; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index d82232a1..ea921955 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,6 +11,270 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif +// std_setdiff +arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); +RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); + rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); + return rcpp_result_gen; +END_RCPP +} +// x_node_scale_exported +List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); +RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); + rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); + return rcpp_result_gen; +END_RCPP +} +// leaf_kaplan_testthat +arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); +RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); + rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); + return rcpp_result_gen; +END_RCPP +} +// newtraph_cph_testthat +arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); +RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); + Rcpp::traits::input_parameter< int >::type method(methodSEXP); + Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); + Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); + rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); + return rcpp_result_gen; +END_RCPP +} +// lrt_multi_testthat +List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); +RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); + Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); + Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); + Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); + rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); + return rcpp_result_gen; +END_RCPP +} +// oobag_c_harrell_testthat +double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); +RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); + Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); + rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); + return rcpp_result_gen; +END_RCPP +} +// ostree_pred_leaf_testthat +arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); +RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); + rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_fit +List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_, const bool verbose_progress); +RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP, SEXP verbose_progressSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); + Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); + Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); + Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); + Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); + Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); + Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); + Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); + Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); + Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); + Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); + Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); + Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); + Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); + Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); + Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); + Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); + Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); + Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); + Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); + Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); + Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + Rcpp::traits::input_parameter< const bool >::type verbose_progress(verbose_progressSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress)); + return rcpp_result_gen; +END_RCPP +} +// orsf_oob_negate_vi +arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); +RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); + Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_oob_permute_vi +arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); +RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); + Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); + Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); + Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); + Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); + rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); + return rcpp_result_gen; +END_RCPP +} +// orsf_pred_uni +arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); +RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); + Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// orsf_pred_multi +arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); +RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); + Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_new_smry +arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_oob_smry +arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_new_ice +arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} +// pd_oob_ice +arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); +RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); + Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); + Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); + Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); + Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); + Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); + rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + return rcpp_result_gen; +END_RCPP +} // coxph_fit_exported List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { @@ -113,6 +377,22 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { + {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, + {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, + {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, + {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, + {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, + {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, + {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, + {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 30}, + {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, + {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, + {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, + {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, + {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, + {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, + {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, + {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, diff --git a/src/Tree.cpp b/src/Tree.cpp index 0485b31a..ba5de4b3 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -47,7 +47,8 @@ std::vector& coef_indices, std::vector& leaf_pred_horizon, std::vector& leaf_pred_surv, - std::vector& leaf_pred_chf) : + std::vector& leaf_pred_chf, + std::vector& leaf_pred_mort) : data(0), n_cols_total(0), n_rows_total(0), @@ -77,12 +78,14 @@ coef_indices(coef_indices), leaf_pred_horizon(leaf_pred_horizon), leaf_pred_surv(leaf_pred_surv), - leaf_pred_chf(leaf_pred_chf) { + leaf_pred_chf(leaf_pred_chf), + leaf_pred_mort(leaf_pred_mort){ } void Tree::init(Data* data, + arma::vec* unique_event_times, int seed, arma::uword mtry, double leaf_min_events, @@ -108,6 +111,7 @@ random_number_generator.seed(seed); this->data = data; + this->unique_event_times = unique_event_times; this->n_cols_total = data->n_cols; this->n_rows_total = data->n_rows; this->seed = seed; @@ -644,6 +648,7 @@ leaf_data.at(0, 0) = y_node.at(person, 0); // if no events in this node: + // (TODO: should this case even occur? consider removing) if(person == y_node.n_rows){ vec temp_surv(1, arma::fill::ones); @@ -652,6 +657,7 @@ leaf_pred_horizon[node_id] = leaf_data.col(0); leaf_pred_surv[node_id] = temp_surv; leaf_pred_chf[node_id] = temp_chf; + leaf_pred_mort[node_id] = 0.0; return; @@ -723,6 +729,25 @@ leaf_pred_horizon[node_id] = leaf_data.col(0); leaf_pred_surv[node_id] = leaf_data.col(1); leaf_pred_chf[node_id] = leaf_data.col(2); + leaf_pred_mort[node_id] = compute_mortality(leaf_data); + + } + + double Tree::compute_mortality(arma::mat& leaf_data){ + + double result = 0; + uword i=0, j=0; + + for( ; i < (*unique_event_times).size(); i++){ + + if((*unique_event_times)[i] >= leaf_data.at(j, 0) && + j < (leaf_data.n_rows-1)) {j++;} + + result += leaf_data.at(j, 2); + + } + + return(result); } @@ -794,6 +819,7 @@ leaf_pred_horizon.resize(max_nodes); leaf_pred_surv.resize(max_nodes); leaf_pred_chf.resize(max_nodes); + leaf_pred_mort.resize(max_nodes); // coordinate the order that nodes are grown. std::vector nodes_open; @@ -918,7 +944,7 @@ } - } // switch lincomb_type + } // end switch lincomb_type vec beta_est = beta.unsafe_col(0); @@ -1015,6 +1041,7 @@ leaf_pred_horizon.resize(n_nodes); leaf_pred_surv.resize(n_nodes); leaf_pred_chf.resize(n_nodes); + leaf_pred_mort.resize(n_nodes); } // Tree::grow diff --git a/src/Tree.h b/src/Tree.h index 1376b057..65a546b5 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -27,7 +27,8 @@ std::vector& coef_indices, std::vector& leaf_pred_horizon, std::vector& leaf_pred_surv, - std::vector& leaf_pred_chf); + std::vector& leaf_pred_chf, + std::vector& leaf_pred_mort); // deleting the copy constructor Tree(const Tree&) = delete; @@ -35,6 +36,7 @@ Tree& operator=(const Tree&) = delete; void init(Data* data, + arma::vec* unique_event_times, int seed, arma::uword mtry, double leaf_min_events, @@ -74,6 +76,8 @@ void node_sprout(arma::uword node_id); + double compute_mortality(arma::mat& leaf_data); + void grow(arma::vec* vi_numer, arma::uvec* vi_denom); @@ -112,6 +116,10 @@ return(leaf_pred_chf); } + std::vector& get_leaf_pred_mort(){ + return(leaf_pred_mort); + } + std::vector& get_cutpoint(){ return(cutpoint); } @@ -128,6 +136,8 @@ arma::vec* vi_numer; arma::uvec* vi_denom; + // pointer to event times in forest + arma::vec* unique_event_times; // Pointer to original data Data* data; @@ -230,6 +240,7 @@ std::vector leaf_pred_horizon; std::vector leaf_pred_surv; std::vector leaf_pred_chf; + std::vector leaf_pred_mort; diff --git a/src/orsf.cpp b/src/orsf.cpp index 94bf2fe1..12567884 100644 --- a/src/orsf.cpp +++ b/src/orsf.cpp @@ -1,4111 +1,4111 @@ -// -// #include -// #include -// -// // [[Rcpp::depends(RcppArmadillo)]] -// -// -// using namespace Rcpp; -// using namespace arma; -// -// // ---------------------------------------------------------------------------- -// // ---------------------------- global parameters ----------------------------- -// // ---------------------------------------------------------------------------- -// -// // special note: dont change these doubles to uword, -// // even though some of them could be uwords; -// // operations involving uwords and doubles are not -// // straightforward and may break the routine. -// // also: double + uword is slower than double + double. -// -// double -// weight_avg, -// weight_events, -// w_node_sum, -// denom_events, -// denom, -// cph_eps, -// // the n_ variables could be integers but it -// // is safer and faster when they are doubles -// n_events, -// n_events_total, -// n_events_right, -// n_events_left, -// n_risk, -// n_risk_right, -// n_risk_left, -// n_risk_sub, -// g_risk, -// temp1, -// temp2, -// temp3, -// halving, -// stat_current, -// stat_best, -// w_node_person, -// xb, -// risk, -// loglik, -// cutpoint, -// observed, -// expected, -// V, -// pred_t0, -// leaf_min_obs, -// leaf_min_events, -// split_min_events, -// split_min_obs, -// split_min_stat, -// time_pred, -// ll_second, -// ll_init, -// net_alpha; -// -// int -// // verbose=0, -// max_retry, -// n_retry, -// tree, -// mtry_int, -// net_df_target, -// oobag_eval_every; -// -// char -// type_beta, -// type_oobag_eval, -// oobag_pred_type, -// oobag_importance_type, -// pred_type_dflt = 'S'; -// -// // armadillo unsigned integers -// uword -// i, -// j, -// k, -// iter, -// mtry, -// mtry_temp, -// person, -// person_leaf, -// person_ref_index, -// n_vars, -// n_rows, -// cph_method, -// cph_iter_max, -// n_split, -// nodes_max_guess, -// nodes_max_true, -// n_cols_to_sample, -// nn_left, -// leaf_node_counter, -// leaf_node_index_counter, -// leaf_node_col, -// oobag_eval_counter; -// -// bool -// break_loop, // a delayed break statement -// oobag_pred, -// oobag_importance, -// use_tree_seed, -// cph_do_scale; -// -// // armadillo vectors (doubles) -// vec -// vec_temp, -// times_pred, -// eval_oobag, -// node_assignments, -// nodes_grown, -// surv_pvec, -// surv_pvec_output, -// denom_pred, -// beta_current, -// beta_new, -// beta_fit, -// vi_pval_numer, -// vi_pval_denom, -// cutpoints, -// w_input, -// w_inbag, -// w_user, -// w_node, -// group, -// u, -// a, -// a2, -// XB, -// Risk; -// -// // armadillo unsigned integer vectors -// uvec -// iit_vals, -// jit_vals, -// rows_inbag, -// rows_oobag, -// rows_node, -// rows_leaf, -// rows_node_combined, -// cols_to_sample_01, -// cols_to_sample, -// cols_node, -// leaf_node_index, -// nodes_to_grow, -// nodes_to_grow_next, -// obs_in_node, -// children_left, -// leaf_pred; -// -// // armadillo iterators for unsigned integer vectors -// uvec::iterator -// iit, -// iit_best, -// jit, -// node; -// -// // armadillo matrices (doubles) -// mat -// x_input, -// x_transforms, -// y_input, -// x_inbag, -// y_inbag, -// x_node, -// y_node, -// x_pred, -// // x_mean, -// vmat, -// cmat, -// cmat2, -// betas, -// leaf_node, -// leaf_nodes, -// surv_pmat; -// -// umat -// col_indices, -// leaf_indices; -// -// cube -// surv_pcube; -// -// List ostree; -// -// NumericMatrix -// beta_placeholder, -// xx, -// yy; -// -// CharacterVector yy_names = CharacterVector::create("time","status"); -// -// NumericVector ww; -// -// Environment base_env("package:base"); -// -// Function set_seed_r = base_env["set.seed"]; -// -// // Set difference for arma vectors -// // -// // @description the same as setdiff() in R -// // -// // @param x first vector -// // @param y second vector -// // -// // [[Rcpp::export]] -// arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { -// -// std::vector a = conv_to< std::vector >::from(sort(x)); -// std::vector b = conv_to< std::vector >::from(sort(y)); -// std::vector out; -// -// std::set_difference(a.begin(), a.end(), -// b.begin(), b.end(), -// std::inserter(out, out.end())); -// -// return conv_to::from(out); -// -// } -// -// // ---------------------------------------------------------------------------- -// // ---------------------------- scaling functions ----------------------------- -// // ---------------------------------------------------------------------------- -// -// // scale observations in predictor matrix -// // -// // @description this scales inputs in the same way as -// // the survival::coxph() function. The main reasons we do this -// // are to avoid exponential overflow and to prevent the scale -// // of inputs from impacting the estimated beta coefficients. -// // E.g., you can try multiplying numeric inputs by 100 prior -// // to calling orsf() with orsf_control_fast(do_scale = FALSE) -// // and you will see that you get back a different forest. -// // -// // @param x_node matrix of predictors -// // @param w_node replication weights -// // @param x_transforms matrix used to store the means and scales -// // -// // @return modified x_node and x_transform filled with values -// // -// void x_node_scale(){ -// -// // set aside memory for outputs -// // first column holds the mean values -// // second column holds the scale values -// -// x_transforms.zeros(n_vars, 2); -// vec means = x_transforms.unsafe_col(0); // Reference to column 1 -// vec scales = x_transforms.unsafe_col(1); // Reference to column 2 -// -// w_node_sum = sum(w_node); -// -// for(i = 0; i < n_vars; i++) { -// -// means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; -// -// x_node.col(i) -= means.at(i); -// -// scales.at(i) = sum(w_node % abs(x_node.col(i))); -// -// if(scales(i) > 0) -// scales.at(i) = w_node_sum / scales.at(i); -// else -// scales.at(i) = 1.0; // rare case of constant covariate; -// -// x_node.col(i) *= scales.at(i); -// -// } -// -// } -// -// // same as above function, but just the means -// // (currently not used) -// void x_node_means(){ -// -// x_transforms.zeros(n_vars, 1); -// w_node_sum = sum(w_node); -// -// for(i = 0; i < n_vars; i++) { -// -// x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; -// -// } -// -// } -// -// // Same as x_node_scale, but this can be called from R -// // [[Rcpp::export]] -// List x_node_scale_exported(NumericMatrix& x_, -// NumericVector& w_){ -// -// x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); -// w_node = vec(w_.begin(), w_.length(), false); -// n_vars = x_node.n_cols; -// -// x_node_scale(); -// -// return( -// List::create( -// _["x_scaled"] = x_node, -// _["x_transforms"] = x_transforms -// ) -// ); -// -// } -// -// // ---------------------------------------------------------------------------- -// // -------------------------- leaf_surv functions ----------------------------- -// // ---------------------------------------------------------------------------- -// -// // Create kaplan-meier survival curve in leaf node -// // -// // @description Modifies leaf_nodes by adding data from the current node, -// // where the current node is one that is too small to be split and will -// // be converted to a leaf. -// // -// // @param y the outcome matrix in the current leaf -// // @param w the weights vector in the current leaf -// // @param leaf_indices a matrix that indicates where leaf nodes are -// // inside of leaf_nodes. leaf_indices has three columns: -// // - first column: the id for the leaf -// // - second column: starting row for the leaf -// // - third column: ending row for the leaf -// // @param leaf_node_index_counter keeps track of where we are in leaf_node -// // @param leaf_node_counter keeps track of which leaf node we are in -// // @param leaf_nodes a matrix with three columns: -// // - first column: time -// // - second column: survival probability -// // - third column: cumulative hazard -// -// void leaf_kaplan(const arma::mat& y, -// const arma::vec& w){ -// -// leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; -// i = leaf_node_counter; -// -// // find the first unique event time -// person = 0; -// -// while(y.at(person, 1) == 0){ -// person++; -// } -// -// // now person corresponds to the first event time -// leaf_nodes.at(i, 0) = y.at(person, 0); // see above -// temp2 = y.at(person, 0); -// -// i++; -// -// // find the rest of the unique event times -// for( ; person < y.n_rows; person++){ -// -// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ -// -// leaf_nodes.at(i, 0) = y.at(person,0); -// temp2 = y.at(person, 0); -// i++; -// -// } -// -// } -// -// // reset for kaplan meier loop -// n_risk = sum(w); -// person = 0; -// temp1 = 1.0; -// temp3 = 0.0; -// -// do { -// -// n_events = 0; -// n_risk_sub = 0; -// temp2 = y.at(person, 0); -// -// while(y.at(person, 0) == temp2){ -// -// n_risk_sub += w.at(person); -// n_events += y.at(person, 1) * w.at(person); -// -// if(person == y.n_rows-1) break; -// -// person++; -// -// } -// -// // only do km if a death was observed -// -// if(n_events > 0){ -// -// temp1 = temp1 * (n_risk - n_events) / n_risk; -// -// temp3 = temp3 + n_events / n_risk; -// -// leaf_nodes.at(leaf_node_counter, 1) = temp1; -// leaf_nodes.at(leaf_node_counter, 2) = temp3; -// leaf_node_counter++; -// -// } -// -// n_risk -= n_risk_sub; -// -// } while (leaf_node_counter < i); -// -// -// leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; -// leaf_node_index_counter++; -// -// if(leaf_node_index_counter >= leaf_indices.n_rows){ -// leaf_indices.insert_rows(leaf_indices.n_rows, 10); -// } -// -// } -// -// // Same as above, but this function can be called from R and is -// // used to run tests with testthat (hence the name). Note: this -// // needs to be updated to include CHF, which was added to the -// // function above recently. -// // [[Rcpp::export]] -// arma::mat leaf_kaplan_testthat(const arma::mat& y, -// const arma::vec& w){ -// -// -// leaf_nodes.set_size(y.n_rows, 3); -// leaf_node_counter = 0; -// -// // find the first unique event time -// person = 0; -// -// while(y.at(person, 1) == 0){ -// person++; -// } -// -// // now person corresponds to the first event time -// leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above -// temp2 = y.at(person, 0); -// -// leaf_node_counter++; -// -// // find the rest of the unique event times -// for( ; person < y.n_rows; person++){ -// -// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ -// -// leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); -// temp2 = y.at(person, 0); -// leaf_node_counter++; -// -// } -// -// } -// -// -// // reset for kaplan meier loop -// i = leaf_node_counter; -// n_risk = sum(w); -// person = 0; -// temp1 = 1.0; -// leaf_node_counter = 0; -// -// -// do { -// -// n_events = 0; -// n_risk_sub = 0; -// temp2 = y.at(person, 0); -// -// while(y.at(person, 0) == temp2){ -// -// n_risk_sub += w.at(person); -// n_events += y.at(person, 1) * w.at(person); -// -// if(person == y.n_rows-1) break; -// -// person++; -// -// } -// -// // only do km if a death was observed -// -// if(n_events > 0){ -// -// temp1 = temp1 * (n_risk - n_events) / n_risk; -// leaf_nodes.at(leaf_node_counter, 1) = temp1; -// leaf_node_counter++; -// -// } -// -// n_risk -= n_risk_sub; -// -// } while (leaf_node_counter < i); -// -// leaf_nodes.resize(leaf_node_counter, 3); -// -// return(leaf_nodes); -// -// } -// -// -// -// -// // ---------------------------------------------------------------------------- -// // ---------------------------- cholesky functions ---------------------------- -// // ---------------------------------------------------------------------------- -// -// // cholesky decomposition -// // -// // @description this function is copied from the survival package and -// // translated into arma. -// // -// // @param vmat matrix with covariance estimates -// // @param n_vars the number of predictors used in the current node -// // -// // prepares vmat for cholesky_solve() -// -// -// void cholesky(){ -// -// double eps_chol = 0; -// double toler = 1e-8; -// double pivot; -// -// for(i = 0; i < n_vars; i++){ -// -// if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); -// -// // copy upper right values to bottom left -// for(j = (i+1); j eps_chol) { -// -// for(j = (i+1); j < n_vars; j++){ -// -// temp1 = vmat.at(j,i) / pivot; -// vmat.at(j,i) = temp1; -// vmat.at(j,j) -= temp1*temp1*pivot; -// -// for(k = (j+1); k < n_vars; k++){ -// -// vmat.at(k, j) -= temp1 * vmat.at(k, i); -// -// } -// -// } -// -// } else { -// -// vmat.at(i, i) = 0; -// -// } -// -// } -// -// } -// -// // solve cholesky decomposition -// // -// // @description this function is copied from the survival package and -// // translated into arma. Prepares u, the vector used to update beta. -// // -// // @param vmat matrix with covariance estimates -// // @param n_vars the number of predictors used in the current node -// // -// // -// void cholesky_solve(){ -// -// for (i = 0; i < n_vars; i++) { -// -// temp1 = u[i]; -// -// for (j = 0; j < i; j++){ -// -// temp1 -= u[j] * vmat.at(i, j); -// u[i] = temp1; -// -// } -// -// } -// -// -// for (i = n_vars; i >= 1; i--){ -// -// if (vmat.at(i-1, i-1) == 0){ -// -// u[i-1] = 0; -// -// } else { -// -// temp1 = u[i-1] / vmat.at(i-1, i-1); -// -// for (j = i; j < n_vars; j++){ -// temp1 -= u[j] * vmat.at(j, i-1); -// } -// -// u[i-1] = temp1; -// -// } -// -// } -// -// } -// -// // invert the cholesky in the lower triangle -// // -// // @description this function is copied from the survival package and -// // translated into arma. Inverts vmat -// // -// // @param vmat matrix with covariance estimates -// // @param n_vars the number of predictors used in the current node -// // -// -// void cholesky_invert(){ -// -// for (i=0; i0) { -// -// // take full advantage of the cholesky's diagonal of 1's -// vmat.at(i,i) = 1.0 / vmat.at(i,i); -// -// for (j=(i+1); j 0) { -// -// if (cph_method == 0 || n_events == 1) { // Breslow -// -// denom += denom_events; -// loglik -= weight_events * log(denom); -// -// for (i=0; i 0) { -// -// if (cph_method == 0 || n_events == 1) { // Breslow -// -// denom += denom_events; -// loglik -= denom_events * log(denom); -// -// for (i=0; i 1 && stat_best < R_PosInf){ -// -// for(iter = 1; iter < cph_iter_max; iter++){ -// -// // if(verbose > 0){ -// // -// // Rcout << "--------- Newt-Raph algo; iter " << iter; -// // Rcout << " ---------" << std::endl; -// // Rcout << "beta: " << beta_new.t(); -// // Rcout << "loglik: " << stat_best; -// // Rcout << std::endl; -// // Rcout << "------------------------------------------"; -// // Rcout << std::endl << std::endl << std::endl; -// // -// // } -// -// // do the next iteration -// stat_current = newtraph_cph_iter(beta_new); -// -// cholesky(); -// -// // don't go trying to fix this, just use the last -// // set of valid coefficients -// if(std::isinf(stat_current)) break; -// -// // check for convergence -// // break the loop if the new ll is ~ same as old best ll -// if(fabs(1 - stat_best / stat_current) < cph_eps){ -// break; -// } -// -// if(stat_current < stat_best){ // it's not converging! -// -// halving++; // get more aggressive when it doesn't work -// -// // reduce the magnitude by which beta_new modifies beta_current -// for (i = 0; i < n_vars; i++){ -// beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); -// } -// -// // yeah its not technically the best but I need to do this for -// // more reasonable output when verbose = true; I should remove -// // this line when verbosity is taken out. -// stat_best = stat_current; -// -// } else { // it's converging! -// -// halving = 0; -// stat_best = stat_current; -// -// cholesky_solve(); -// -// for (i = 0; i < n_vars; i++) { -// -// beta_current[i] = beta_new[i]; -// beta_new[i] = beta_new[i] + u[i]; -// -// } -// -// } -// -// } -// -// } -// -// // invert vmat -// cholesky_invert(); -// -// for (i=0; i < n_vars; i++) { -// -// beta_current[i] = beta_new[i]; -// -// if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ -// beta_current[i] = 0; -// } -// -// if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ -// vmat.at(i, i) = 1.0; -// } -// -// // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; -// -// if(cph_do_scale){ -// beta_current.at(i) *= x_transforms.at(i, 1); -// vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); -// } -// -// // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; -// -// if(oobag_importance_type == 'A'){ -// -// if(beta_current.at(i) != 0){ -// -// temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), -// 1, false, false); -// -// if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; -// -// } -// -// vi_pval_denom[cols_node[i]]++; -// -// } -// -// } -// -// // if(verbose > 1) Rcout << std::endl; -// -// return(beta_current); -// -// } -// -// // same function as above, but exported to R for testing -// // [[Rcpp::export]] -// arma::vec newtraph_cph_testthat(NumericMatrix& x_in, -// NumericMatrix& y_in, -// NumericVector& w_in, -// int method, -// double cph_eps_, -// int iter_max){ -// -// -// x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); -// y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); -// w_node = vec(w_in.begin(), w_in.length(), false); -// -// cph_do_scale = true; -// -// cph_method = method; -// cph_eps = cph_eps_; -// cph_iter_max = iter_max; -// n_vars = x_node.n_cols; -// -// vi_pval_numer.zeros(x_node.n_cols); -// vi_pval_denom.zeros(x_node.n_cols); -// cols_node = regspace(0, x_node.n_cols - 1); -// -// x_node_scale(); -// -// vec out = newtraph_cph(); -// -// return(out); -// -// } -// -// // ---------------------------------------------------------------------------- -// // ---------------------------- node functions -------------------------------- -// // ---------------------------------------------------------------------------- -// -// // Log rank test w/multiple cutpoints -// // -// // this function returns a cutpoint obtaining a local maximum -// // of the log-rank test (lrt) statistic. The default value (+Inf) -// // is really for diagnostic purposes. Put another way, if the -// // return value is +Inf (an impossible value for a cutpoint), -// // that means that we didn't find any valid cut-points and -// // the node cannot be grown with the current XB. -// // -// // if there is a valid cut-point, then the main side effect -// // of this function is to modify the group vector, which -// // will be used to assign observations to the two new nodes. -// // -// // @param group the vector that determines which node to send each -// // observation to (left node = 0, right node = 1) -// // @param y_node matrix of outcomes -// // @param w_node vector of weights -// // @param XB linear combination of predictors -// // -// // the group vector is modified by this function and the value returned -// // is the maximal log-rank statistic across all the possible cutpoints. -// double lrt_multi(){ -// -// break_loop = false; -// -// // group should be initialized as all 0s -// group.zeros(y_node.n_rows); -// -// // initialize at the lowest possible LRT stat value -// stat_best = 0; -// -// // sort XB- we need to iterate over the sorted indices -// iit_vals = sort_index(XB, "ascend"); -// -// // unsafe columns point to cols in y_node. -// vec y_status = y_node.unsafe_col(1); -// vec y_time = y_node.unsafe_col(0); -// -// // first determine the lowest value of XB that will -// // be a valid cut-point to split a node. A valid cut-point -// // is one that, if used, will result in at least leaf_min_obs -// // and leaf_min_events in both the left and right node. -// -// n_events = 0; -// n_risk = 0; -// -// // if(verbose > 1){ -// // Rcout << "----- finding cut-point boundaries -----" << std::endl; -// // } -// -// // Iterate through the sorted values of XB, in ascending order. -// -// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ -// -// n_events += y_status[*iit] * w_node[*iit]; -// n_risk += w_node[*iit]; -// -// // If we want to make the current value of XB a cut-point, we need -// // to make sure the next value of XB isn't equal to this current value. -// // Otherwise, we will have the same value of XB in both groups! -// -// // if(verbose > 1){ -// // Rcout << XB[*iit] << " ---- "; -// // Rcout << XB[*(iit+1)] << " ---- "; -// // Rcout << n_events << " ---- "; -// // Rcout << n_risk << std::endl; -// // } -// -// if(XB[*iit] != XB[*(iit+1)]){ -// -// // if(verbose > 1){ -// // Rcout << "********* New cut-point here ********" << std::endl; -// // } -// -// -// if( n_events >= leaf_min_events && -// n_risk >= leaf_min_obs) { -// -// // if(verbose > 1){ -// // Rcout << std::endl; -// // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; -// // Rcout << " - n_events, left node: " << n_events << std::endl; -// // Rcout << " - n_risk, left node: " << n_risk << std::endl; -// // Rcout << std::endl; -// // } -// -// break; -// -// } -// -// } -// -// } -// -// // if(verbose > 1){ -// // if(iit >= iit_vals.end()-1) { -// // Rcout << "Could not find a valid lower cut-point" << std::endl; -// // } -// // } -// -// -// j = iit - iit_vals.begin(); -// -// // got to reset these before finding the upper limit -// n_events=0; -// n_risk=0; -// -// // do the first step in the loop manually since we need to -// // refer to iit+1 in all proceeding steps. -// -// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ -// -// n_events += y_status[*iit] * w_node[*iit]; -// n_risk += w_node[*iit]; -// group[*iit] = 1; -// -// // if(verbose > 1){ -// // Rcout << XB[*iit] << " ---- "; -// // Rcout << XB(*(iit-1)) << " ---- "; -// // Rcout << n_events << " ---- "; -// // Rcout << n_risk << std::endl; -// // } -// -// if ( XB[*iit] != XB[*(iit-1)] ) { -// -// // if(verbose > 1){ -// // Rcout << "********* New cut-point here ********" << std::endl; -// // } -// -// if( n_events >= leaf_min_events && -// n_risk >= leaf_min_obs ) { -// -// // the upper cutpoint needs to be one step below the current -// // iit value, because we use x <= cp to determine whether a -// // value x goes to the left node versus the right node. So, -// // if iit currently points to 3, and the next value down is 2, -// // then we want to say the cut-point is 2 because then all -// // values <= 2 will go left, and 3 will go right. This matters -// // when 3 is the highest value in the vector. -// -// --iit; -// -// // if(verbose > 1){ -// // Rcout << std::endl; -// // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; -// // Rcout << " - n_events, right node: " << n_events << std::endl; -// // Rcout << " - n_risk, right node: " << n_risk << std::endl; -// // } -// -// break; -// -// } -// -// } -// -// } -// -// // number of steps taken -// k = iit + 1 - iit_vals.begin(); -// -// // if(verbose > 1){ -// // Rcout << "----------------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; -// // } -// -// // initialize cut-point as the value of XB iit currently points to. -// iit_best = iit; -// -// // what happens if we don't have enough events or obs to split? -// // the first valid lower cut-point (at iit_vals(k)) is > the first -// // valid upper cutpoint (current value of n_risk). Put another way, -// // k (the number of steps taken from beginning of the XB vec) -// // will be > n_rows - p, where the difference on the RHS is -// // telling us where we are after taking p steps from the end -// // of the XB vec. Returning the infinite cp is a red flag. -// -// // if(verbose > 1){ -// // Rcout << "j: " << j << std::endl; -// // Rcout << "k: " << k << std::endl; -// // } -// -// if (j > k){ -// -// // if(verbose > 1) { -// // Rcout << "Could not find a cut-point for this XB" << std::endl; -// // } -// -// return(R_PosInf); -// } -// -// // if(verbose > 1){ -// // -// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; -// // Rcout << "n potential cutpoints: " << k-j << std::endl; -// // -// // } -// -// -// // adjust k to indicate the number of valid cut-points -// k -= j; -// -// if(k > n_split){ -// -// jit_vals = linspace(0, k, n_split); -// -// } else { -// -// // what happens if there are only 5 potential cut-points -// // but the value of n_split is > 5? We will just check out -// // the 5 valid cutpoints. -// jit_vals = linspace(0, k, k); -// -// } -// -// vec_temp.resize( jit_vals.size() ); -// -// // protection from going out of bounds with jit_vals(k) below -// if(j == 0) jit_vals.at(jit_vals.size()-1)--; -// -// // put the indices of potential cut-points into vec_temp -// for(k = 0; k < vec_temp.size(); k++){ -// vec_temp[k] = XB.at(*(iit_best - jit_vals[k])); -// } -// -// // back to how it was! -// if(j == 0) jit_vals.at(jit_vals.size()-1)++; -// -// // if(verbose > 1){ -// // -// // Rcout << "cut-points chosen: "; -// // -// // Rcout << vec_temp.t(); -// // -// // Rcout << "----------------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // } -// -// bool do_lrt = true; -// -// k = 0; -// j = 1; -// -// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ -// -// -// // if(verbose > 1){ -// // Rcout << "jit points to " << *jit << std::endl; -// // } -// -// // switch group values from 0 to 1 until you get to the next cut-point -// for( ; j < *jit; j++){ -// group[*iit] = 1; -// --iit; -// } -// -// if(jit == jit_vals.begin() || -// jit == jit_vals.end()-1){ -// -// do_lrt = true; -// -// } else { -// -// if( vec_temp[k] == vec_temp[k+1] || -// vec_temp[k] == vec_temp[0] || -// *jit <= 1){ -// -// do_lrt = false; -// -// } else { -// -// while( XB[*iit] == XB[*(iit - 1)] ){ -// -// group[*iit] = 1; -// --iit; -// ++j; -// -// // if(verbose > 1){ -// // Rcout << "cutpoint dropped down one spot: "; -// // Rcout << XB[*iit] << std::endl; -// // } -// -// } -// -// do_lrt = true; -// -// } -// -// } -// -// ++k; -// -// if(do_lrt){ -// -// n_risk=0; -// g_risk=0; -// -// observed=0; -// expected=0; -// -// V=0; -// -// break_loop = false; -// -// i = y_node.n_rows-1; -// -// // if(verbose > 1){ -// // Rcout << "sum(group==1): " << sum(group) << "; "; -// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); -// // Rcout << std::endl; -// // if(verbose > 1){ -// // Rcout << "group:" << std::endl; -// // Rcout << group(iit_vals).t() << std::endl; -// // } -// // } -// -// -// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - -// for (; ;){ -// -// temp1 = y_time[i]; -// -// n_events = 0; -// -// for ( ; y_time[i] == temp1; i--) { -// -// n_risk += w_node[i]; -// n_events += y_status[i] * w_node[i]; -// g_risk += group[i] * w_node[i]; -// observed += y_status[i] * group[i] * w_node[i]; -// -// if(i == 0){ -// break_loop = true; -// break; -// } -// -// } -// -// // should only do these calculations if n_events > 0, -// // but turns out its faster to multiply by 0 than -// // it is to check whether n_events is > 0 -// -// temp2 = g_risk / n_risk; -// expected += n_events * temp2; -// -// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) -// // definitely check if n_risk is > 1 b/c otherwise divide by 0 -// if (n_risk > 1){ -// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); -// V += temp1 * (1 - temp2); -// } -// -// if(break_loop) break; -// -// } -// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// -// stat_current = pow(expected-observed, 2) / V; -// -// // if(verbose > 1){ -// // -// // Rcout << "-------- log-rank test results --------" << std::endl; -// // Rcout << "cutpoint: " << XB[*iit] << std::endl; -// // Rcout << "lrt stat: " << stat_current << std::endl; -// // Rcout << "---------------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // } -// -// if(stat_current > stat_best){ -// iit_best = iit; -// stat_best = stat_current; -// n_events_right = observed; -// n_risk_right = g_risk; -// n_risk_left = n_risk - g_risk; -// } -// -// } -// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// -// } -// -// // if the log-rank test does not detect a difference at 0.05 alpha, -// // maybe it's not a good idea to split this node. -// -// if(stat_best < split_min_stat) return(R_PosInf); -// -// // if(verbose > 1){ -// // Rcout << "Best LRT stat: " << stat_best << std::endl; -// // } -// -// // rewind iit until it is back where it was when we got the -// // best lrt stat. While rewinding iit, also reset the group -// // values so that group is as it was when we got the best -// // lrt stat. -// -// -// while(iit <= iit_best){ -// group[*iit] = 0; -// ++iit; -// } -// -// // XB at *iit_best is the cut-point that maximized the log-rank test -// return(XB[*iit_best]); -// -// } -// -// // this function is the same as above, but is exported to R for testing -// // [[Rcpp::export]] -// List lrt_multi_testthat(NumericMatrix& y_node_, -// NumericVector& w_node_, -// NumericVector& XB_, -// int n_split_, -// int leaf_min_events_, -// int leaf_min_obs_ -// ){ -// -// y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); -// w_node = vec(w_node_.begin(), w_node_.length(), false); -// XB = vec(XB_.begin(), XB_.length(), false); -// -// n_split = n_split_; -// leaf_min_events = leaf_min_events_; -// leaf_min_obs = leaf_min_obs_; -// -// // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - -// // -// // this function returns a cutpoint obtaining a local maximum -// // of the log-rank test (lrt) statistic. The default value (+Inf) -// // is really for diagnostic purposes. Put another way, if the -// // return value is +Inf (an impossible value for a cutpoint), -// // that means that we didn't find any valid cut-points and -// // the node cannot be grown with the current XB. -// // -// // if there is a valid cut-point, then the main side effect -// // of this function is to modify the group vector, which -// // will be used to assign observations to the two new nodes. -// // -// // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// -// break_loop = false; -// -// vec cutpoints_used(n_split); -// vec lrt_statistics(n_split); -// uword list_counter = 0; -// -// // group should be initialized as all 0s -// group.zeros(y_node.n_rows); -// -// // initialize at the lowest possible LRT stat value -// stat_best = 0; -// -// // sort XB- we need to iterate over the sorted indices -// iit_vals = sort_index(XB, "ascend"); -// -// // unsafe columns point to cols in y_node. -// vec y_status = y_node.unsafe_col(1); -// vec y_time = y_node.unsafe_col(0); -// -// // first determine the lowest value of XB that will -// // be a valid cut-point to split a node. A valid cut-point -// // is one that, if used, will result in at least leaf_min_obs -// // and leaf_min_events in both the left and right node. -// -// n_events = 0; -// n_risk = 0; -// -// // if(verbose > 1){ -// // Rcout << "----- finding cut-point boundaries -----" << std::endl; -// // } -// -// // Iterate through the sorted values of XB, in ascending order. -// -// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ -// -// n_events += y_status(*iit) * w_node(*iit); -// n_risk += w_node(*iit); -// -// // If we want to make the current value of XB a cut-point, we need -// // to make sure the next value of XB isn't equal to this current value. -// // Otherwise, we will have the same value of XB in both groups! -// -// // if(verbose > 1){ -// // Rcout << XB(*iit) << " ---- "; -// // Rcout << XB(*(iit+1)) << " ---- "; -// // Rcout << n_events << " ---- "; -// // Rcout << n_risk << std::endl; -// // } -// -// if(XB(*iit) != XB(*(iit+1))){ -// -// // if(verbose > 1){ -// // Rcout << "********* New cut-point here ********" << std::endl; -// // } -// -// -// if( n_events >= leaf_min_events && -// n_risk >= leaf_min_obs) { -// -// // if(verbose > 1){ -// // Rcout << std::endl; -// // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; -// // Rcout << " - n_events, left node: " << n_events << std::endl; -// // Rcout << " - n_risk, left node: " << n_risk << std::endl; -// // Rcout << std::endl; -// // } -// -// break; -// -// } -// -// } -// -// } -// -// // if(verbose > 1){ -// // if(iit >= iit_vals.end()-1) { -// // Rcout << "Could not find a valid lower cut-point" << std::endl; -// // } -// // } -// -// -// j = iit - iit_vals.begin(); -// -// // got to reset these before finding the upper limit -// n_events=0; -// n_risk=0; -// -// // do the first step in the loop manually since we need to -// // refer to iit+1 in all proceeding steps. -// -// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ -// -// n_events += y_status(*iit) * w_node(*iit); -// n_risk += w_node(*iit); -// group(*iit) = 1; -// -// // if(verbose > 1){ -// // Rcout << XB(*iit) << " ---- "; -// // Rcout << XB(*(iit-1)) << " ---- "; -// // Rcout << n_events << " ---- "; -// // Rcout << n_risk << std::endl; -// // } -// -// if(XB(*iit) != XB(*(iit-1))){ -// -// // if(verbose > 1){ -// // Rcout << "********* New cut-point here ********" << std::endl; -// // } -// -// if( n_events >= leaf_min_events && -// n_risk >= leaf_min_obs ) { -// -// // the upper cutpoint needs to be one step below the current -// // iit value, because we use x <= cp to determine whether a -// // value x goes to the left node versus the right node. So, -// // if iit currently points to 3, and the next value down is 2, -// // then we want to say the cut-point is 2 because then all -// // values <= 2 will go left, and 3 will go right. This matters -// // when 3 is the highest value in the vector. -// -// --iit; -// -// // if(verbose > 1){ -// // Rcout << std::endl; -// // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; -// // Rcout << " - n_events, right node: " << n_events << std::endl; -// // Rcout << " - n_risk, right node: " << n_risk << std::endl; -// // } -// -// break; -// -// } -// -// } -// -// } -// -// // number of steps taken -// k = iit + 1 - iit_vals.begin(); -// -// // if(verbose > 1){ -// // Rcout << "----------------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; -// // } -// -// // initialize cut-point as the value of XB iit currently points to. -// iit_best = iit; -// -// // what happens if we don't have enough events or obs to split? -// // the first valid lower cut-point (at iit_vals(k)) is > the first -// // valid upper cutpoint (current value of n_risk). Put another way, -// // k (the number of steps taken from beginning of the XB vec) -// // will be > n_rows - p, where the difference on the RHS is -// // telling us where we are after taking p steps from the end -// // of the XB vec. Returning the infinite cp is a red flag. -// -// // if(verbose > 1){ -// // Rcout << "j: " << j << std::endl; -// // Rcout << "k: " << k << std::endl; -// // } -// -// if (j > k){ -// -// // if(verbose > 1) { -// // Rcout << "Could not find a cut-point for this XB" << std::endl; -// // } -// -// return(R_PosInf); -// } -// -// // if(verbose > 1){ -// // -// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; -// // Rcout << "n potential cutpoints: " << k-j << std::endl; -// // -// // } -// -// // what happens if there are only 5 potential cut-points -// // but the value of n_split is > 5? We will just check out -// // the 5 valid cutpoints. -// -// // adjust k to indicate steps taken in the outer loop. -// k -= j; -// -// if(k > n_split){ -// -// jit_vals = linspace(0, k, n_split); -// -// } else { -// -// jit_vals = linspace(0, k, k); -// -// } -// -// vec_temp.resize( jit_vals.size() ); -// -// if(j == 0) jit_vals(jit_vals.size()-1)--; -// -// for(k = 0; k < vec_temp.size(); k++){ -// vec_temp(k) = XB(*(iit_best - jit_vals(k))); -// } -// -// if(j == 0) jit_vals(jit_vals.size()-1)++; -// -// -// // if(verbose > 1){ -// // -// // Rcout << "cut-points chosen: "; -// // -// // Rcout << vec_temp.t(); -// // -// // Rcout << "----------------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // } -// -// bool do_lrt = true; -// -// k = 0; -// j = 1; -// -// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ -// -// -// // if(verbose > 1){ -// // Rcout << "jit points to " << *jit << std::endl; -// // } -// -// for( ; j < *jit; j++){ -// group(*iit) = 1; -// --iit; -// } -// -// if(jit == jit_vals.begin() || -// jit == jit_vals.end()-1){ -// -// do_lrt = true; -// -// } else { -// -// if( vec_temp(k) == vec_temp(k+1) || -// vec_temp(k) == vec_temp(0) || -// *jit <= 1){ -// -// do_lrt = false; -// -// } else { -// -// while(XB(*iit) == XB(*(iit - 1))){ -// -// group(*iit) = 1; -// --iit; -// ++j; -// -// // if(verbose > 1){ -// // Rcout << "cutpoint dropped down one spot: "; -// // Rcout << XB(*iit) << std::endl; -// // } -// -// } -// -// do_lrt = true; -// -// } -// -// } -// -// ++k; -// -// if(do_lrt){ -// -// cutpoints_used(list_counter) = XB(*iit); -// -// n_risk=0; -// g_risk=0; -// -// observed=0; -// expected=0; -// -// V=0; -// -// break_loop = false; -// -// i = y_node.n_rows-1; -// -// // if(verbose > 1){ -// // Rcout << "sum(group==1): " << sum(group) << "; "; -// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); -// // Rcout << std::endl; -// // if(verbose > 1){ -// // Rcout << "group:" << std::endl; -// // Rcout << group(iit_vals).t() << std::endl; -// // } -// // } -// -// -// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - -// for (; ;){ -// -// temp1 = y_time[i]; -// -// n_events = 0; -// -// for ( ; y_time[i] == temp1; i--) { -// -// n_risk += w_node[i]; -// n_events += y_status[i] * w_node[i]; -// g_risk += group[i] * w_node[i]; -// observed += y_status[i] * group[i] * w_node[i]; -// -// if(i == 0){ -// break_loop = true; -// break; -// } -// -// } -// -// // should only do these calculations if n_events > 0, -// // but turns out its faster to multiply by 0 than -// // it is to check whether n_events is > 0 -// -// temp2 = g_risk / n_risk; -// expected += n_events * temp2; -// -// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) -// // definitely check if n_risk is > 1 b/c otherwise divide by 0 -// if (n_risk > 1){ -// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); -// V += temp1 * (1 - temp2); -// } -// -// if(break_loop) break; -// -// } -// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// -// stat_current = pow(expected-observed, 2) / V; -// -// lrt_statistics(list_counter) = stat_current; -// -// list_counter++; -// -// // if(verbose > 1){ -// // -// // Rcout << "-------- log-rank test results --------" << std::endl; -// // Rcout << "cutpoint: " << XB(*iit) << std::endl; -// // Rcout << "lrt stat: " << stat_current << std::endl; -// // Rcout << "---------------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // } -// -// if(stat_current > stat_best){ -// iit_best = iit; -// stat_best = stat_current; -// n_events_right = observed; -// n_risk_right = g_risk; -// n_risk_left = n_risk - g_risk; -// } -// -// } -// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - -// -// } -// -// // if the log-rank test does not detect a difference at 0.05 alpha, -// // maybe it's not a good idea to split this node. -// -// if(stat_best < 3.841459) return(R_PosInf); -// -// // if(verbose > 1){ -// // Rcout << "Best LRT stat: " << stat_best << std::endl; -// // } -// -// // rewind iit until it is back where it was when we got the -// // best lrt stat. While rewinding iit, also reset the group -// // values so that group is as it was when we got the best -// // lrt stat. -// -// -// while(iit <= iit_best){ -// group(*iit) = 0; -// ++iit; -// } -// -// return(List::create(_["cutpoints"] = cutpoints_used, -// _["statistic"] = lrt_statistics)); -// -// } -// -// -// // out-of-bag prediction for single prediction horizon -// // -// // @param pred_type indicates what type of prediction to compute -// // @param leaf_pred a vector indicating which leaf each observation -// // landed in. -// // @param leaf_indices a matrix that contains indices for each leaf node -// // inside of leaf_nodes -// // @param leaf_nodes a matrix with ids, survival, and cumulative hazard -// // functions for each leaf node. -// // -// // @return matrix with predictions, dimension n by 1 -// -// void oobag_pred_surv_uni(char pred_type){ -// -// iit_vals = sort_index(leaf_pred, "ascend"); -// iit = iit_vals.begin(); -// -// switch(pred_type){ -// -// case 'S': case 'R': -// -// leaf_node_col = 1; -// pred_t0 = 1; -// break; -// -// case 'H': -// -// leaf_node_col = 2; -// pred_t0 = 0; -// break; -// -// } -// -// do { -// -// person_leaf = leaf_pred[*iit]; -// -// // find the current leaf -// for(i = 0; i < leaf_indices.n_rows; i++){ -// if(leaf_indices.at(i, 0) == person_leaf){ -// break; -// } -// } -// -// // get submat view for this leaf -// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), -// leaf_indices(i, 2)); -// -// // if(verbose > 1){ -// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; -// // } -// -// i = 0; -// -// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ -// -// for(; i < leaf_node.n_rows; i++){ -// if (leaf_node.at(i, 0) > time_pred){ -// if(i == 0) -// temp1 = pred_t0; -// else -// temp1 = leaf_node.at(i-1, leaf_node_col); -// break; -// } else if (leaf_node.at(i, 0) == time_pred){ -// temp1 = leaf_node.at(i, leaf_node_col); -// break; -// } -// } -// -// } else { -// -// // go here if prediction horizon > max time in current leaf. -// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); -// -// } -// -// // running mean: mean_k = mean_{k-1} + (new val - old val) / k -// // compute new val - old val -// // be careful, every oob row has a different denom! -// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; -// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; -// ++iit; -// -// if(iit < iit_vals.end()){ -// -// while(person_leaf == leaf_pred(*iit)){ -// -// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; -// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; -// -// ++iit; -// -// if (iit == iit_vals.end()) break; -// -// } -// -// } -// -// } while (iit < iit_vals.end()); -// -// // if(verbose > 0){ -// // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; -// // } -// -// } -// -// // out-of-bag prediction evaluation, Harrell's C-statistic -// // -// // @param pred_type indicates what type of prediction to compute -// // @param y_input matrix of outcomes from input -// // -// // @return the C-statistic -// -// double oobag_c_harrell(char pred_type){ -// -// vec time = y_input.unsafe_col(0); -// vec status = y_input.unsafe_col(1); -// iit_vals = find(status == 1); -// -// k = y_input.n_rows; -// -// double total=0, concordant=0; -// -// switch(pred_type){ -// -// case 'S': case 'R': -// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { -// -// for(j = *iit + 1; j < k; ++j){ -// -// if (time[j] > time[*iit]) { // ties not counted -// -// total++; -// -// // for survival, current value > next vals is good -// // risk is the same as survival until just before we output -// // the oobag predictions, when we say pvec = 1-pvec, -// if (surv_pvec[j] > surv_pvec[*iit]){ -// -// concordant++; -// -// } else if (surv_pvec[j] == surv_pvec[*iit]){ -// -// concordant+= 0.5; -// -// } -// -// } -// -// } -// -// } -// break; -// -// case 'H': -// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { -// -// for(j = *iit + 1; j < k; ++j){ -// -// if (time[j] > time[*iit]) { // ties not counted -// -// total++; -// -// // for risk & chf current value < next vals is good. -// if (surv_pvec[j] < surv_pvec[*iit]){ -// -// concordant++; -// -// } else if (surv_pvec[j] == surv_pvec[*iit]){ -// -// concordant+= 0.5; -// -// } -// -// } -// -// } -// -// } -// break; -// } -// -// return(concordant / total); -// -// } -// -// // same function as above but exported to R for testing -// // [[Rcpp::export]] -// double oobag_c_harrell_testthat(NumericMatrix y_mat, -// NumericVector s_vec) { -// -// y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); -// surv_pvec = vec(s_vec.begin(), s_vec.length(), false); -// -// return(oobag_c_harrell(pred_type_dflt)); -// -// } -// -// // this function is the same as oobag_pred_surv_uni, -// // but it operates on new data rather than out-of-bag data -// // and it allows for multiple prediction horizons instead of one -// void new_pred_surv_multi(char pred_type){ -// -// // allocate memory for output -// // surv_pvec.zeros(x_pred.n_rows); -// -// surv_pvec.set_size(times_pred.size()); -// iit_vals = sort_index(leaf_pred, "ascend"); -// iit = iit_vals.begin(); -// -// switch(pred_type){ -// -// case 'S': case 'R': -// -// leaf_node_col = 1; -// pred_t0 = 1; -// break; -// -// case 'H': -// -// leaf_node_col = 2; -// pred_t0 = 0; -// break; -// -// } -// -// do { -// -// person_leaf = leaf_pred(*iit); -// -// for(i = 0; i < leaf_indices.n_rows; i++){ -// if(leaf_indices.at(i, 0) == person_leaf){ -// break; -// } -// } -// -// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), -// leaf_indices(i, 2)); -// -// // if(verbose > 1){ -// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; -// // } -// -// i = 0; -// -// for(j = 0; j < times_pred.size(); j++){ -// -// time_pred = times_pred.at(j); -// -// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ -// -// for(; i < leaf_node.n_rows; i++){ -// -// if (leaf_node.at(i, 0) > time_pred){ -// -// if(i == 0) -// temp1 = pred_t0; -// else -// temp1 = leaf_node.at(i-1, leaf_node_col); -// -// break; -// -// } else if (leaf_node.at(i, 0) == time_pred){ -// -// temp1 = leaf_node.at(i, leaf_node_col); -// break; -// -// } -// -// } -// -// } else { -// -// // go here if prediction horizon > max time in current leaf. -// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); -// -// } -// -// surv_pvec.at(j) = temp1; -// -// } -// -// surv_pmat.row(*iit) += surv_pvec.t(); -// ++iit; -// -// if(iit < iit_vals.end()){ -// -// while(person_leaf == leaf_pred.at(*iit)){ -// -// surv_pmat.row(*iit) += surv_pvec.t(); -// ++iit; -// -// if (iit == iit_vals.end()) break; -// -// } -// -// } -// -// } while (iit < iit_vals.end()); -// -// } -// -// // this function is the same as new_pred_surv_multi, -// // but only uses one prediction horizon -// void new_pred_surv_uni(char pred_type){ -// -// iit_vals = sort_index(leaf_pred, "ascend"); -// iit = iit_vals.begin(); -// -// switch(pred_type){ -// -// case 'S': case 'R': -// -// leaf_node_col = 1; -// pred_t0 = 1; -// break; -// -// case 'H': -// -// leaf_node_col = 2; -// pred_t0 = 0; -// break; -// -// } -// -// do { -// -// person_leaf = leaf_pred(*iit); -// -// for(i = 0; i < leaf_indices.n_rows; i++){ -// if(leaf_indices.at(i, 0) == person_leaf){ -// break; -// } -// } -// -// leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), -// leaf_indices.at(i, 2)); -// -// // if(verbose > 1){ -// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; -// // } -// -// i = 0; -// -// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ -// -// for(; i < leaf_node.n_rows; i++){ -// if (leaf_node.at(i, 0) > time_pred){ -// -// if(i == 0){ -// -// temp1 = pred_t0; -// -// } else { -// -// temp1 = leaf_node.at(i - 1, leaf_node_col); -// -// // experimental - does not seem to help! -// // weighted average of surv est from before and after time of pred -// // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); -// // -// // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + -// // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; -// -// } -// -// break; -// -// } else if (leaf_node.at(i, 0) == time_pred){ -// temp1 = leaf_node.at(i, leaf_node_col); -// break; -// } -// } -// -// } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ -// -// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); -// -// } else { -// -// // go here if prediction horizon > max time in current leaf. -// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); -// -// // --- EXPERIMENTAL ADD-ON --- // -// // if you are predicting beyond the max time in a node, -// // then determine how much further out you are and assume -// // the survival probability decays at the same rate. -// -// // temp2 = (1.0 - temp1) * -// // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; -// // -// // temp1 = temp1 * (1.0-temp2); -// -// } -// -// surv_pvec.at(*iit) += temp1; -// ++iit; -// -// if(iit < iit_vals.end()){ -// -// while(person_leaf == leaf_pred.at(*iit)){ -// -// surv_pvec.at(*iit) += temp1; -// ++iit; -// -// if (iit == iit_vals.end()) break; -// -// } -// -// } -// -// } while (iit < iit_vals.end()); -// -// // if(verbose > 1){ -// // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; -// // } -// -// } -// -// -// // ---------------------------------------------------------------------------- -// // --------------------------- ostree functions ------------------------------- -// // ---------------------------------------------------------------------------- -// -// // increase the memory allocated to a tree -// // -// // this function is used if the initial memory allocation isn't enough -// // to grow the tree. It modifies all elements of the tree, including -// // betas, col_indices, children_left, and cutpoints -// // -// void ostree_size_buffer(){ -// -// // if(verbose > 1){ -// // Rcout << "---------- buffering outputs ----------" << std::endl; -// // Rcout << "betas before: " << std::endl << betas.t() << std::endl; -// // } -// -// betas.insert_cols(betas.n_cols, 10); -// // x_mean.insert_cols(x_mean.n_cols, 10); -// col_indices.insert_cols(col_indices.n_cols, 10); -// children_left.insert_rows(children_left.size(), 10); -// cutpoints.insert_rows(cutpoints.size(), 10); -// -// // if(verbose > 1){ -// // Rcout << "betas after: " << std::endl << betas.t() << std::endl; -// // Rcout << "---------------------------------------"; -// // Rcout << std::endl << std::endl; -// // } -// -// -// } -// -// // transfer memory from R into arma types -// // -// // when trees are passed from R, they need to be converted back into -// // arma objects. The intent of this function is to convert everything -// // back into an arma object without copying any data. -// // -// // nothing is modified apart from types -// -// void ostree_mem_xfer(){ -// -// // no data copied according to tracemem. -// // not including boot rows or x_mean (don't always need them) -// -// NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; -// NumericMatrix betas_ = ostree["betas"]; -// NumericVector cutpoints_ = ostree["cut_points"]; -// IntegerMatrix col_indices_ = ostree["col_indices"]; -// IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; -// IntegerVector children_left_ = ostree["children_left"]; -// -// leaf_nodes = mat(leaf_nodes_.begin(), -// leaf_nodes_.nrow(), -// leaf_nodes_.ncol(), -// false); -// -// betas = mat(betas_.begin(), -// betas_.nrow(), -// betas_.ncol(), -// false); -// -// cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); -// -// col_indices = conv_to::from( -// imat(col_indices_.begin(), -// col_indices_.nrow(), -// col_indices_.ncol(), -// false) -// ); -// -// leaf_indices = conv_to::from( -// imat(leaf_indices_.begin(), -// leaf_indices_.nrow(), -// leaf_indices_.ncol(), -// false) -// ); -// -// children_left = conv_to::from( -// ivec(children_left_.begin(), -// children_left_.length(), -// false) -// ); -// -// } -// -// // drop observations down the tree -// // -// // @description Determine the leaves that are assigned to new data. -// // -// // @param children_left vector of child node ids (right node = left node + 1) -// // @param x_pred matrix of predictors from new data -// // -// // @return a vector indicating which leaf each observation was mapped to -// void ostree_pred_leaf(){ -// -// // reset values -// // this is needed for pred_leaf since every obs gets a new leaf in -// // the next tree, but it isn't needed for pred_surv because survival -// // probs get aggregated over all the trees. -// leaf_pred.fill(0); -// -// for(i = 0; i < betas.n_cols; i++){ -// -// if(children_left[i] != 0){ -// -// if(i == 0){ -// obs_in_node = regspace(0, 1, leaf_pred.size()-1); -// } else { -// obs_in_node = find(leaf_pred == i); -// } -// -// -// if(obs_in_node.size() > 0){ -// -// // Fastest sub-matrix multiplication i can think of. -// // Matrix product = linear combination of columns -// // (this is faster b/c armadillo is great at making -// // pointers to the columns of an arma mat) -// // I had to stop using this b/c it fails on -// // XB.zeros(obs_in_node.size()); -// // -// // uvec col_indices_i = col_indices.unsafe_col(i); -// // -// // j = 0; -// // -// // jit = col_indices_i.begin(); -// // -// // for(; jit < col_indices_i.end(); ++jit, ++j){ -// // -// // vec x_j = x_pred.unsafe_col(*jit); -// // -// // XB += x_j(obs_in_node) * betas.at(j, i); -// // -// // } -// -// // this is slower but more clear matrix multiplication -// XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); -// -// jit = obs_in_node.begin(); -// -// for(j = 0; j < XB.size(); ++j, ++jit){ -// -// if(XB[j] <= cutpoints[i]) { -// -// leaf_pred[*jit] = children_left[i]; -// -// } else { -// -// leaf_pred[*jit] = children_left[i]+1; -// -// } -// -// } -// -// // if(verbose > 0){ -// // -// // uvec in_left = find(leaf_pred == children_left(i)); -// // uvec in_right = find(leaf_pred == children_left(i)+1); -// // -// // Rcout << "N to node_" << children_left(i) << ": "; -// // Rcout << in_left.size() << "; "; -// // Rcout << "N to node_" << children_left(i)+1 << ": "; -// // Rcout << in_right.size() << std::endl; -// // -// // } -// -// } -// -// } -// -// } -// -// -// -// } -// -// // same as above but exported to R for testins -// // [[Rcpp::export]] -// arma::uvec ostree_pred_leaf_testthat(List& tree, -// NumericMatrix& x_pred_){ -// -// -// x_pred = mat(x_pred_.begin(), -// x_pred_.nrow(), -// x_pred_.ncol(), -// false); -// -// leaf_pred.set_size(x_pred.n_rows); -// -// ostree = tree; -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// -// return(leaf_pred); -// -// } -// -// // Fit an oblique survival tree -// // -// // @description used in orsf_fit, which has parameters defined below. -// // -// // @param f_beta the function used to find linear combinations of predictors -// // -// // @return a fitted oblique survival tree -// // -// List ostree_fit(Function f_beta){ -// -// betas.fill(0); -// // x_mean.fill(0); -// col_indices.fill(0); -// cutpoints.fill(0); -// children_left.fill(0); -// node_assignments.fill(0); -// leaf_nodes.fill(0); -// -// node_assignments.zeros(x_inbag.n_rows); -// nodes_to_grow.zeros(1); -// nodes_max_true = 0; -// leaf_node_counter = 0; -// leaf_node_index_counter = 0; -// -// // ---------------------- -// // ---- main do loop ---- -// // ---------------------- -// -// do { -// -// nodes_to_grow_next.set_size(0); -// -// // if(verbose > 0){ -// // -// // Rcout << "----------- nodes to grow -----------" << std::endl; -// // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; -// // Rcout << "-------------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // -// // } -// -// for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ -// -// if(nodes_to_grow[0] == 0){ -// -// // when growing the first node, there is no need to find -// // which rows are in the node. -// rows_node = linspace(0, -// x_inbag.n_rows-1, -// x_inbag.n_rows); -// -// } else { -// -// // identify which rows are in the current node. -// rows_node = find(node_assignments == *node); -// -// } -// -// y_node = y_inbag.rows(rows_node); -// w_node = w_inbag(rows_node); -// -// // if(verbose > 0){ -// // -// // n_risk = sum(w_node); -// // n_events = sum(y_node.col(1) % w_node); -// // Rcout << "-------- Growing node " << *node << " --------" << std::endl; -// // Rcout << "No. of observations in node: " << n_risk << std::endl; -// // Rcout << "No. of events in node: " << n_events << std::endl; -// // Rcout << "No. of rows in node: " << w_node.size() << std::endl; -// // Rcout << "--------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // -// // } -// -// // initialize an impossible cut-point value -// // if cutpoint is still infinite later, node should not be split -// cutpoint = R_PosInf; -// -// // ------------------------------------------------------------------ -// // ---- sample a random subset of columns with non-zero variance ---- -// // ------------------------------------------------------------------ -// -// mtry_int = mtry; -// cols_to_sample_01.fill(0); -// -// // constant columns are constant in the rows where events occurred -// -// for(j = 0; j < cols_to_sample_01.size(); j++){ -// -// temp1 = R_PosInf; -// -// for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ -// -// if(y_inbag.at(*iit, 1) == 1){ -// -// if (temp1 < R_PosInf){ -// -// if(x_inbag.at(*iit, j) != temp1){ -// -// cols_to_sample_01[j] = 1; -// break; -// -// } -// -// } else { -// -// temp1 = x_inbag.at(*iit, j); -// -// } -// -// } -// -// } -// -// } -// -// n_cols_to_sample = sum(cols_to_sample_01); -// -// if(n_cols_to_sample >= 1){ -// -// n_events_total = sum(y_node.col(1) % w_node); -// -// if(n_cols_to_sample < mtry){ -// -// mtry_int = n_cols_to_sample; -// -// // if(verbose > 0){ -// // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; -// // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; -// // Rcout << std::endl; -// // Rcout << "-------------------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // } -// -// } -// -// if (type_beta == 'C'){ -// -// // make sure there are at least 3 event per predictor variable. -// // (if using CPH) -// while(n_events_total / mtry_int < 3 && mtry_int > 1){ -// --mtry_int; -// } -// -// } -// -// -// n_cols_to_sample = mtry_int; -// -// // if(verbose > 0){ -// // Rcout << "n_events: " << n_events_total << std::endl; -// // Rcout << "mtry: " << mtry_int << std::endl; -// // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; -// // } -// -// if(mtry_int >= 1){ -// -// cols_to_sample = find(cols_to_sample_01); -// -// // re-try hinge point -// n_retry = 0; -// cutpoint = R_PosInf; -// -// while(n_retry <= max_retry){ -// -// // if(n_retry > 0) Rcout << "trying again!" << std::endl; -// -// cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, -// mtry_int, -// false); -// -// x_node = x_inbag(rows_node, cols_node); -// -// // here is where n_vars gets updated to match the current node -// // originally it matched the number of variables in the input x. -// -// n_vars = x_node.n_cols; -// -// if(cph_do_scale){ -// x_node_scale(); -// } -// -// // if(verbose > 0){ -// // -// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); -// // Rcout << "x node scaled: " << std::endl; -// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); -// // Rcout << std::endl; -// // -// // } -// -// switch(type_beta) { -// -// case 'C' : -// -// beta_fit = newtraph_cph(); -// -// if(cph_do_scale){ -// for(i = 0; i < x_transforms.n_rows; i++){ -// x_node.col(i) /= x_transforms(i,1); -// x_node.col(i) += x_transforms(i,0); -// } -// -// } -// -// break; -// -// case 'N' : -// -// xx = wrap(x_node); -// yy = wrap(y_node); -// ww = wrap(w_node); -// colnames(yy) = yy_names; -// -// beta_placeholder = f_beta(xx, yy, ww, -// net_alpha, -// net_df_target); -// -// beta_fit = mat(beta_placeholder.begin(), -// beta_placeholder.nrow(), -// beta_placeholder.ncol(), -// false); -// -// break; -// -// case 'U' : -// -// xx = wrap(x_node); -// yy = wrap(y_node); -// ww = wrap(w_node); -// colnames(yy) = yy_names; -// -// beta_placeholder = f_beta(xx, yy, ww); -// -// beta_fit = mat(beta_placeholder.begin(), -// beta_placeholder.nrow(), -// beta_placeholder.ncol(), -// false); -// -// break; -// -// } -// -// -// if(any(beta_fit)){ -// -// // if(verbose > 0){ -// // -// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); -// // Rcout << "x node unscaled: " << std::endl; -// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); -// // Rcout << std::endl; -// // -// // } -// -// XB = x_node * beta_fit; -// cutpoint = lrt_multi(); -// -// } -// -// if(!std::isinf(cutpoint)) break; -// n_retry++; -// -// } -// -// } -// -// } -// -// if(!std::isinf(cutpoint)){ -// -// // make new nodes if a valid cutpoint was found -// nn_left = nodes_max_true + 1; -// nodes_max_true = nodes_max_true + 2; -// -// -// // if(verbose > 0){ -// // -// // Rcout << "-------- New nodes created --------" << std::endl; -// // Rcout << "Left node: " << nn_left << std::endl; -// // Rcout << "Right node: " << nodes_max_true << std::endl; -// // Rcout << "-----------------------------------" << std::endl << -// // std::endl << std::endl; -// // -// // } -// -// n_events_left = n_events_total - n_events_right; -// -// // if(verbose > 0){ -// // Rcout << "n_events_left: " << n_events_left << std::endl; -// // Rcout << "n_risk_left: " << n_risk_left << std::endl; -// // Rcout << "n_events_right: " << n_events_right << std::endl; -// // Rcout << "n_risk_right: " << n_risk_right << std::endl; -// // } -// -// i=0; -// -// for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ -// -// node_assignments[*iit] = nn_left + group[i]; -// -// } -// -// if(n_events_left >= 2*leaf_min_events && -// n_risk_left >= 2*leaf_min_obs && -// n_events_left >= split_min_events && -// n_risk_left >= split_min_obs){ -// -// nodes_to_grow_next = join_cols(nodes_to_grow_next, -// uvec{nn_left}); -// -// } else { -// -// rows_leaf = find(group==0); -// leaf_indices(leaf_node_index_counter, 0) = nn_left; -// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); -// -// // if(verbose > 0){ -// // Rcout << "-------- creating a new leaf --------" << std::endl; -// // Rcout << "name: node_" << nn_left << std::endl; -// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); -// // Rcout << std::endl; -// // Rcout << "n_events: "; -// // vec_temp = y_node.col(1); -// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); -// // Rcout << std::endl; -// // Rcout << "------------------------------------"; -// // Rcout << std::endl << std::endl << std::endl; -// // } -// -// } -// -// if(n_events_right >= 2*leaf_min_events && -// n_risk_right >= 2*leaf_min_obs && -// n_events_right >= split_min_events && -// n_risk_right >= split_min_obs){ -// -// nodes_to_grow_next = join_cols(nodes_to_grow_next, -// uvec{nodes_max_true}); -// -// } else { -// -// rows_leaf = find(group==1); -// leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; -// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); -// -// // if(verbose > 0){ -// // Rcout << "-------- creating a new leaf --------" << std::endl; -// // Rcout << "name: node_" << nodes_max_true << std::endl; -// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); -// // Rcout << std::endl; -// // Rcout << "n_events: "; -// // vec_temp = y_node.col(1); -// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); -// // Rcout << std::endl; -// // Rcout << "------------------------------------"; -// // Rcout << std::endl << std::endl << std::endl; -// // } -// -// } -// -// if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); -// -// for(i = 0; i < n_cols_to_sample; i++){ -// betas.at(i, *node) = beta_fit[i]; -// // x_mean.at(i, *node) = x_transforms(i, 0); -// col_indices.at(i, *node) = cols_node[i]; -// } -// -// children_left[*node] = nn_left; -// cutpoints[*node] = cutpoint; -// -// } else { -// -// // make a leaf node if a valid cutpoint could not be found -// leaf_indices(leaf_node_index_counter, 0) = *node; -// leaf_kaplan(y_node, w_node); -// -// // if(verbose > 0){ -// // Rcout << "-------- creating a new leaf --------" << std::endl; -// // Rcout << "name: node_" << *node << std::endl; -// // Rcout << "n_obs: " << sum(w_node) << std::endl; -// // Rcout << "n_events: " << sum(w_node % y_node.col(1)); -// // Rcout << std::endl; -// // Rcout << "Couldn't find a cutpoint??" << std::endl; -// // Rcout << "------------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // } -// -// } -// -// } -// -// nodes_to_grow = nodes_to_grow_next; -// -// } while (nodes_to_grow.size() > 0); -// -// return( -// List::create( -// -// _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), -// -// _["leaf_node_index"] = conv_to::from( -// leaf_indices.rows(span(0, leaf_node_index_counter-1)) -// ), -// -// _["betas"] = betas.cols(span(0, nodes_max_true)), -// -// // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), -// -// _["col_indices"] = conv_to::from( -// col_indices.cols(span(0, nodes_max_true)) -// ), -// -// _["cut_points"] = cutpoints(span(0, nodes_max_true)), -// -// _["children_left"] = conv_to::from( -// children_left(span(0, nodes_max_true)) -// ), -// -// _["rows_oobag"] = conv_to::from(rows_oobag) -// -// ) -// ); -// -// -// } -// -// // ---------------------------------------------------------------------------- -// // ---------------------------- orsf functions -------------------------------- -// // ---------------------------------------------------------------------------- -// -// // fit an oblique random survival forest. -// // -// // @param x matrix of predictors -// // @param y matrix of outcomes -// // @param weights vector of weights -// // @param n_tree number of trees to fit -// // @param n_split_ number of splits to try with lrt -// // @param mtry_ number of predictors to try -// // @param leaf_min_events_ min number of events in a leaf -// // @param leaf_min_obs_ min number of observations in a leaf -// // @param split_min_events_ min number of events to split a node -// // @param split_min_obs_ min number of observations to split a node -// // @param split_min_stat_ min lrt to split a node -// // @param cph_method_ method for ties -// // @param cph_eps_ criteria for convergence of newton raphson algorithm -// // @param cph_iter_max_ max number of newton raphson iterations -// // @param cph_do_scale_ to scale or not to scale -// // @param net_alpha_ alpha parameter for glmnet -// // @param net_df_target_ degrees of freedom for glmnet -// // @param oobag_pred_ whether to predict out-of-bag preds or not -// // @param oobag_pred_type_ what type of out-of-bag preds to compute -// // @param oobag_pred_horizon_ out-of-bag prediction horizon -// // @param oobag_eval_every_ trees between each evaluation of oob error -// // @param oobag_importance_ to compute importance or not -// // @param oobag_importance_type_ type of importance to compute -// // @param tree_seeds vector of seeds to set before each tree is fit -// // @param max_retry_ max number of retries for linear combinations -// // @param f_beta function to find linear combinations of predictors -// // @param type_beta_ what type of linear combination to find -// // @param f_oobag_eval function to evaluate out-of-bag error -// // @param type_oobag_eval_ whether to use default or custom out-of-bag error -// // -// // @return an orsf_fit object sent back to R -// -// // [[Rcpp::export]] -// List orsf_fit(NumericMatrix& x, -// NumericMatrix& y, -// NumericVector& weights, -// const int& n_tree, -// const int& n_split_, -// const int& mtry_, -// const double& leaf_min_events_, -// const double& leaf_min_obs_, -// const double& split_min_events_, -// const double& split_min_obs_, -// const double& split_min_stat_, -// const int& cph_method_, -// const double& cph_eps_, -// const int& cph_iter_max_, -// const bool& cph_do_scale_, -// const double& net_alpha_, -// const int& net_df_target_, -// const bool& oobag_pred_, -// const char& oobag_pred_type_, -// const double& oobag_pred_horizon_, -// const int& oobag_eval_every_, -// const bool& oobag_importance_, -// const char& oobag_importance_type_, -// IntegerVector& tree_seeds, -// const int& max_retry_, -// Function f_beta, -// const char& type_beta_, -// Function f_oobag_eval, -// const char& type_oobag_eval_, -// const bool verbose_progress){ -// -// -// // convert inputs into arma objects -// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); -// -// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); -// -// w_user = vec(weights.begin(), weights.length(), false); -// -// // these change later in ostree_fit() -// n_rows = x_input.n_rows; -// n_vars = x_input.n_cols; -// -// // initialize the variable importance (vi) vectors -// vi_pval_numer.zeros(n_vars); -// vi_pval_denom.zeros(n_vars); -// -// // if(verbose > 0){ -// // Rcout << "------------ dimensions ------------" << std::endl; -// // Rcout << "N obs total: " << n_rows << std::endl; -// // Rcout << "N columns total: " << n_vars << std::endl; -// // Rcout << "------------------------------------"; -// // Rcout << std::endl << std::endl << std::endl; -// // } -// -// n_split = n_split_; -// mtry = mtry_; -// leaf_min_events = leaf_min_events_; -// leaf_min_obs = leaf_min_obs_; -// split_min_events = split_min_events_; -// split_min_obs = split_min_obs_; -// split_min_stat = split_min_stat_; -// cph_method = cph_method_; -// cph_eps = cph_eps_; -// cph_iter_max = cph_iter_max_; -// cph_do_scale = cph_do_scale_; -// net_alpha = net_alpha_; -// net_df_target = net_df_target_; -// oobag_pred = oobag_pred_; -// oobag_pred_type = oobag_pred_type_; -// oobag_eval_every = oobag_eval_every_; -// oobag_eval_counter = 0; -// oobag_importance = oobag_importance_; -// oobag_importance_type = oobag_importance_type_; -// use_tree_seed = tree_seeds.length() > 0; -// max_retry = max_retry_; -// type_beta = type_beta_; -// type_oobag_eval = type_oobag_eval_; -// temp1 = 1.0 / n_rows; -// -// if(cph_iter_max > 1) cph_do_scale = true; -// -// if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; -// -// if(cph_iter_max == 1) cph_do_scale = false; -// -// -// if(oobag_pred){ -// -// time_pred = oobag_pred_horizon_; -// -// if(time_pred == 0) time_pred = median(y_input.col(0)); -// -// eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); -// -// } else { -// -// eval_oobag.set_size(0); -// -// } -// -// // if(verbose > 0){ -// // Rcout << "------------ input variables ------------" << std::endl; -// // Rcout << "n_split: " << n_split << std::endl; -// // Rcout << "mtry: " << mtry << std::endl; -// // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; -// // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; -// // Rcout << "cph_method: " << cph_method << std::endl; -// // Rcout << "cph_eps: " << cph_eps << std::endl; -// // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; -// // Rcout << "-----------------------------------------" << std::endl; -// // Rcout << std::endl << std::endl; -// // } -// -// // ---------------------------------------------------- -// // ---- sample weights to mimic a bootstrap sample ---- -// // ---------------------------------------------------- -// -// // s is the number of times you might get selected into -// // a bootstrap sample. Realistically this won't be >10, -// // but it could technically be as big as n_row. -// IntegerVector s = seq(0, 10); -// -// // compute probability of being selected into the bootstrap -// // 0 times, 1, times, ..., 9 times, or 10 times. -// NumericVector probs = dbinom(s, n_rows, temp1, false); -// -// // --------------------------------------------- -// // ---- preallocate memory for tree outputs ---- -// // --------------------------------------------- -// -// cols_to_sample_01.zeros(n_vars); -// leaf_nodes.zeros(n_rows, 3); -// -// if(oobag_pred){ -// -// surv_pvec.zeros(n_rows); -// denom_pred.zeros(n_rows); -// -// } else { -// -// surv_pvec.set_size(0); -// denom_pred.set_size(0); -// -// } -// -// // guessing the number of nodes needed to grow a tree -// nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); -// -// betas.zeros(mtry, nodes_max_guess); -// // x_mean.zeros(mtry, nodes_max_guess); -// col_indices.zeros(mtry, nodes_max_guess); -// cutpoints.zeros(nodes_max_guess); -// children_left.zeros(nodes_max_guess); -// leaf_indices.zeros(nodes_max_guess, 3); -// -// // some great variable names here -// List forest(n_tree); -// -// for(tree = 0; tree < n_tree; ){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// // -------------------------------------------- -// // ---- initialize parameters to grow tree ---- -// // -------------------------------------------- -// -// // rows_inbag = find(w_inbag != 0); -// -// if(use_tree_seed) set_seed_r(tree_seeds[tree]); -// -// w_input = as(sample(s, n_rows, true, probs)); -// -// // if the user gives a weight vector, then each bootstrap weight -// // should be multiplied by the corresponding user weight. -// if(w_user.size() > 0) w_input = w_input % w_user; -// -// rows_oobag = find(w_input == 0); -// rows_inbag = regspace(0, n_rows-1); -// rows_inbag = std_setdiff(rows_inbag, rows_oobag); -// w_inbag = w_input(rows_inbag); -// -// // if(verbose > 0){ -// // -// // Rcout << "------------ boot weights ------------" << std::endl; -// // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; -// // Rcout << "total: " << sum(w_inbag) << std::endl; -// // Rcout << "N > 0: " << rows_inbag.size() << std::endl; -// // Rcout << "--------------------------------------" << -// // std::endl << std::endl << std::endl; -// // -// // } -// -// x_inbag = x_input.rows(rows_inbag); -// y_inbag = y_input.rows(rows_inbag); -// -// if(oobag_pred){ -// x_pred = x_input.rows(rows_oobag); -// leaf_pred.set_size(rows_oobag.size()); -// } -// -// // if(verbose > 0){ -// // -// // uword temp_uword_1, temp_uword_2; -// // -// // if(x_inbag.n_rows < 5) -// // temp_uword_1 = x_inbag.n_rows-1; -// // else -// // temp_uword_1 = 5; -// // -// // if(x_inbag.n_cols < 5) -// // temp_uword_2 = x_inbag.n_cols-1; -// // else -// // temp_uword_2 = 4; -// // -// // Rcout << "x inbag: " << std::endl << -// // x_inbag.submat(0, 0, -// // temp_uword_1, -// // temp_uword_2) << std::endl; -// // -// // } -// -// if(verbose_progress){ -// Rcout << "\r growing tree no. " << tree << " of " << n_tree; -// } -// -// -// forest[tree] = ostree_fit(f_beta); -// -// // add 1 to tree here instead of end of loop -// // (more convenient to compute tree % oobag_eval_every) -// tree++; -// -// -// if(oobag_pred){ -// -// denom_pred(rows_oobag) += 1; -// ostree_pred_leaf(); -// oobag_pred_surv_uni(oobag_pred_type); -// -// if(tree % oobag_eval_every == 0){ -// -// switch(type_oobag_eval) { -// -// // H stands for Harrell's C-statistic -// case 'H' : -// -// eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); -// oobag_eval_counter++; -// -// break; -// -// // U stands for a user-supplied function -// case 'U' : -// -// ww = wrap(surv_pvec); -// -// eval_oobag[oobag_eval_counter] = as( -// f_oobag_eval(y, ww) -// ); -// -// oobag_eval_counter++; -// -// break; -// -// } -// -// -// } -// -// } -// -// } -// -// if(verbose_progress){ -// Rcout << std::endl; -// } -// -// vec vimp(x_input.n_cols); -// -// // ANOVA importance -// if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; -// -// // if we are computing variable importance, surv_pvec is about -// // to get modified, and we don't want to return the modified -// // version of surv_pvec. -// // So make a deep copy if oobag_importance is true. -// // Make a shallow copy if oobag_importance is false -// surv_pvec_output = vec(surv_pvec.begin(), -// surv_pvec.size(), -// oobag_importance); -// -// if(oobag_importance && n_tree > 0){ -// -// uvec betas_to_flip; -// // vec betas_temp; -// oobag_eval_counter--; -// -// for(uword variable = 0; variable < x_input.n_cols; ++variable){ -// -// surv_pvec.fill(0); -// denom_pred.fill(0); -// -// for(tree = 0; tree < n_tree; ++tree){ -// -// ostree = forest[tree]; -// -// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; -// -// rows_oobag = conv_to::from( -// ivec(rows_oobag_.begin(), -// rows_oobag_.length(), -// false) -// ); -// -// x_pred = x_input.rows(rows_oobag); -// -// if(oobag_importance_type == 'P'){ -// x_pred.col(variable) = shuffle(x_pred.col(variable)); -// } -// -// ostree_mem_xfer(); -// -// -// if(oobag_importance_type == 'N'){ -// betas_to_flip = find(col_indices == variable); -// //betas_temp = betas.elem( betas_to_flip ); -// betas.elem( betas_to_flip ) *= (-1); -// //betas.elem( betas_to_flip ) *= 0; -// } -// -// denom_pred(rows_oobag) += 1; -// -// leaf_pred.set_size(rows_oobag.size()); -// -// ostree_pred_leaf(); -// -// oobag_pred_surv_uni(oobag_pred_type); -// -// if(oobag_importance_type == 'N'){ -// betas.elem( betas_to_flip ) *= (-1); -// // betas.elem( betas_to_flip ) = betas_temp; -// } -// -// } -// -// switch(type_oobag_eval) { -// -// // H stands for Harrell's C-statistic -// case 'H' : -// -// vimp(variable) = eval_oobag[oobag_eval_counter] - -// oobag_c_harrell(oobag_pred_type); -// -// break; -// -// // U stands for a user-supplied function -// case 'U' : -// -// ww = wrap(surv_pvec); -// -// vimp(variable) = -// eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); -// -// -// break; -// -// } -// -// } -// -// } -// -// if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; -// -// return( -// List::create( -// _["forest"] = forest, -// _["pred_oobag"] = surv_pvec_output, -// _["pred_horizon"] = time_pred, -// _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, -// _["stat_type"] = type_oobag_eval), -// _["importance"] = vimp -// ) -// ); -// -// -// } -// -// // @description compute negation importance -// // -// // @param x matrix of predictors -// // @param y outcome matrix -// // @param forest forest object from an orsf_fit -// // @param last_eval_stat the last estimate of out-of-bag error -// // @param time_pred_ the prediction horizon -// // @param f_oobag_eval function used to evaluate out-of-bag error -// // @param pred_type_ the type of prediction to compute -// // @param type_oobag_eval_ custom or default out-of-bag predictions -// // -// // @return a vector of importance values -// // -// // [[Rcpp::export]] -// arma::vec orsf_oob_negate_vi(NumericMatrix& x, -// NumericMatrix& y, -// List& forest, -// const double& last_eval_stat, -// const double& time_pred_, -// Function f_oobag_eval, -// const char& pred_type_, -// const char& type_oobag_eval_){ -// -// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); -// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); -// -// time_pred = time_pred_; -// type_oobag_eval = type_oobag_eval_; -// oobag_pred_type = pred_type_; -// -// vec vimp(x_input.n_cols); -// -// uvec betas_to_flip; -// // vec betas_temp; -// uword variable; -// -// denom_pred.set_size(x_input.n_rows); -// surv_pvec.set_size(x_input.n_rows); -// -// for(variable = 0; variable < x_input.n_cols; ++variable){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// surv_pvec.fill(0); -// denom_pred.fill(0); -// -// for(tree = 0; tree < forest.length(); ++tree){ -// -// ostree = forest[tree]; -// -// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; -// -// rows_oobag = conv_to::from( -// ivec(rows_oobag_.begin(), -// rows_oobag_.length(), -// false) -// ); -// -// x_pred = x_input.rows(rows_oobag); -// -// ostree_mem_xfer(); -// -// betas_to_flip = find(col_indices == variable); -// -// // betas_temp = betas.elem( betas_to_flip ); -// // betas.elem( betas_to_flip ) *= 0; -// -// betas.elem( betas_to_flip ) *= (-1); -// -// denom_pred(rows_oobag) += 1; -// -// leaf_pred.set_size(rows_oobag.size()); -// -// ostree_pred_leaf(); -// -// oobag_pred_surv_uni(oobag_pred_type); -// -// betas.elem( betas_to_flip ) *= (-1); -// // betas.elem( betas_to_flip ) = betas_temp; -// -// } -// -// switch(type_oobag_eval) { -// -// // H stands for Harrell's C-statistic -// case 'H' : -// -// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); -// -// break; -// -// // U stands for a user-supplied function -// case 'U' : -// -// ww = wrap(surv_pvec); -// -// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); -// -// break; -// -// } -// -// } -// -// return(vimp); -// -// } -// -// // same as above but computes permutation importance instead of negation -// // [[Rcpp::export]] -// arma::vec orsf_oob_permute_vi(NumericMatrix& x, -// NumericMatrix& y, -// List& forest, -// const double& last_eval_stat, -// const double& time_pred_, -// Function f_oobag_eval, -// const char& pred_type_, -// const char& type_oobag_eval_){ -// -// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); -// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); -// -// time_pred = time_pred_; -// type_oobag_eval = type_oobag_eval_; -// oobag_pred_type = pred_type_; -// -// vec vimp(x_input.n_cols); -// -// uword variable; -// -// denom_pred.set_size(x_input.n_rows); -// surv_pvec.set_size(x_input.n_rows); -// -// for(variable = 0; variable < x_input.n_cols; ++variable){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// surv_pvec.fill(0); -// denom_pred.fill(0); -// -// for(tree = 0; tree < forest.length(); ++tree){ -// -// ostree = forest[tree]; -// -// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; -// -// rows_oobag = conv_to::from( -// ivec(rows_oobag_.begin(), -// rows_oobag_.length(), -// false) -// ); -// -// x_pred = x_input.rows(rows_oobag); -// -// x_pred.col(variable) = shuffle(x_pred.col(variable)); -// -// ostree_mem_xfer(); -// -// denom_pred(rows_oobag) += 1; -// -// leaf_pred.set_size(rows_oobag.size()); -// -// ostree_pred_leaf(); -// -// oobag_pred_surv_uni(oobag_pred_type); -// -// // x_variable = x_variable_original; -// // x_input.col(variable) = x_variable; -// -// } -// -// switch(type_oobag_eval) { -// -// // H stands for Harrell's C-statistic -// case 'H' : -// -// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); -// -// break; -// -// // U stands for a user-supplied function -// case 'U' : -// -// ww = wrap(surv_pvec); -// -// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); -// -// break; -// -// } -// -// } -// -// return(vimp); -// -// } -// -// // predictions from an oblique random survival forest -// // -// // @description makes predictions based on a single horizon -// // -// // @param forest forest object from orsf_fit object -// // @param x_new matrix of predictors -// // @param time_dbl prediction horizon -// // @param pred_type type of prediction to compute -// // -// // [[Rcpp::export]] -// arma::mat orsf_pred_uni(List& forest, -// NumericMatrix& x_new, -// double time_dbl, -// char pred_type){ -// -// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); -// time_pred = time_dbl; -// -// // memory for outputs -// leaf_pred.set_size(x_pred.n_rows); -// surv_pvec.zeros(x_pred.n_rows); -// -// for(tree = 0; tree < forest.length(); ++tree){ -// ostree = forest[tree]; -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// new_pred_surv_uni(pred_type); -// } -// -// surv_pvec /= tree; -// -// if(pred_type == 'R'){ -// return(1 - surv_pvec); -// } else { -// return(surv_pvec); -// } -// -// } -// -// // same as above but makes predictions for multiple horizons -// // [[Rcpp::export]] -// arma::mat orsf_pred_multi(List& forest, -// NumericMatrix& x_new, -// NumericVector& time_vec, -// char pred_type){ -// -// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); -// times_pred = vec(time_vec.begin(), time_vec.length(), false); -// -// // memory for outputs -// // initial values don't matter for leaf_pred, -// // but do matter for surv_pmat -// leaf_pred.set_size(x_pred.n_rows); -// surv_pmat.zeros(x_pred.n_rows, times_pred.size()); -// -// for(tree = 0; tree < forest.length(); ++tree){ -// ostree = forest[tree]; -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// new_pred_surv_multi(pred_type); -// } -// -// surv_pmat /= tree; -// -// if(pred_type == 'R'){ -// return(1 - surv_pmat); -// } else { -// return(surv_pmat); -// } -// -// } -// -// // partial dependence for new data -// // -// // @description calls predict on the data with a predictor fixed -// // and then summarizes the predictions. -// // -// // @param forest a forest object from an orsf_fit object -// // @param x_new_ matrix of predictors -// // @param x_cols_ columns of variables of interest -// // @param x_vals_ values to set these columsn to -// // @param probs_ for quantiles -// // @param time_dbl prediction horizon -// // @param pred_type prediction type -// // -// // @return matrix with partial dependence -// // [[Rcpp::export]] -// arma::mat pd_new_smry(List& forest, -// NumericMatrix& x_new_, -// IntegerVector& x_cols_, -// NumericMatrix& x_vals_, -// NumericVector& probs_, -// const double time_dbl, -// char pred_type){ -// -// -// uword pd_i; -// -// time_pred = time_dbl; -// -// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); -// -// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); -// -// uvec x_cols = conv_to::from( -// ivec(x_cols_.begin(), x_cols_.length(), false) -// ); -// -// vec probs = vec(probs_.begin(), probs_.length(), false); -// -// mat output_quantiles(probs.size(), x_vals.n_rows); -// mat output_means(1, x_vals.n_rows); -// -// leaf_pred.set_size(x_pred.n_rows); -// surv_pvec.set_size(x_pred.n_rows); -// -// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// j = 0; -// -// surv_pvec.fill(0); -// -// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ -// -// x_pred.col(*jit).fill(x_vals(pd_i, j)); -// -// } -// -// for(tree = 0; tree < forest.length(); ++tree){ -// ostree = forest[tree]; -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// new_pred_surv_uni(pred_type); -// } -// -// surv_pvec /= tree; -// -// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } -// -// output_means.col(pd_i) = mean(surv_pvec); -// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); -// -// -// } -// -// return(join_vert(output_means, output_quantiles)); -// -// } -// -// -// // same as above but for out-of-bag data -// // [[Rcpp::export]] -// arma::mat pd_oob_smry(List& forest, -// NumericMatrix& x_new_, -// IntegerVector& x_cols_, -// NumericMatrix& x_vals_, -// NumericVector& probs_, -// const double time_dbl, -// char pred_type){ -// -// -// uword pd_i; -// -// time_pred = time_dbl; -// -// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); -// -// uvec x_cols = conv_to::from( -// ivec(x_cols_.begin(), x_cols_.length(), false) -// ); -// -// vec probs = vec(probs_.begin(), probs_.length(), false); -// -// mat output_quantiles(probs.size(), x_vals.n_rows); -// mat output_means(1, x_vals.n_rows); -// -// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); -// denom_pred.set_size(x_input.n_rows); -// surv_pvec.set_size(x_input.n_rows); -// -// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// j = 0; -// denom_pred.fill(0); -// surv_pvec.fill(0); -// -// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ -// -// x_input.col(*jit).fill(x_vals(pd_i, j)); -// -// } -// -// for(tree = 0; tree < forest.length(); ++tree){ -// -// ostree = forest[tree]; -// -// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; -// -// rows_oobag = conv_to::from( -// ivec(rows_oobag_.begin(), -// rows_oobag_.length(), -// false) -// ); -// -// x_pred = x_input.rows(rows_oobag); -// leaf_pred.set_size(x_pred.n_rows); -// denom_pred(rows_oobag) += 1; -// -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// oobag_pred_surv_uni(pred_type); -// -// -// } -// -// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } -// -// output_means.col(pd_i) = mean(surv_pvec); -// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); -// -// -// } -// -// -// return(join_vert(output_means, output_quantiles)); -// -// } -// -// // same as above but doesn't summarize the predictions -// // [[Rcpp::export]] -// arma::mat pd_new_ice(List& forest, -// NumericMatrix& x_new_, -// IntegerVector& x_cols_, -// NumericMatrix& x_vals_, -// NumericVector& probs_, -// const double time_dbl, -// char pred_type){ -// -// -// uword pd_i; -// -// time_pred = time_dbl; -// -// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); -// -// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); -// -// uvec x_cols = conv_to::from( -// ivec(x_cols_.begin(), x_cols_.length(), false) -// ); -// -// vec probs = vec(probs_.begin(), probs_.length(), false); -// -// mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); -// vec output_ids = output_ice.unsafe_col(0); -// vec output_pds = output_ice.unsafe_col(1); -// -// uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); -// -// leaf_pred.set_size(x_pred.n_rows); -// surv_pvec.set_size(x_pred.n_rows); -// -// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// j = 0; -// -// surv_pvec.fill(0); -// -// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ -// -// x_pred.col(*jit).fill(x_vals(pd_i, j)); -// -// } -// -// for(tree = 0; tree < forest.length(); ++tree){ -// ostree = forest[tree]; -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// new_pred_surv_uni(pred_type); -// } -// -// surv_pvec /= tree; -// -// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } -// -// output_ids(pd_rows).fill(pd_i+1); -// output_pds(pd_rows) = surv_pvec; -// pd_rows += x_pred.n_rows; -// -// -// } -// -// return(output_ice); -// -// } -// -// // same as above but out-of-bag and doesn't summarize the predictions -// // [[Rcpp::export]] -// arma::mat pd_oob_ice(List& forest, -// NumericMatrix& x_new_, -// IntegerVector& x_cols_, -// NumericMatrix& x_vals_, -// NumericVector& probs_, -// const double time_dbl, -// char pred_type){ -// -// -// uword pd_i; -// -// time_pred = time_dbl; -// -// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); -// -// uvec x_cols = conv_to::from( -// ivec(x_cols_.begin(), x_cols_.length(), false) -// ); -// -// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); -// -// mat output_ice(x_vals.n_rows * x_input.n_rows, 2); -// vec output_ids = output_ice.unsafe_col(0); -// vec output_pds = output_ice.unsafe_col(1); -// -// uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); -// -// denom_pred.set_size(x_input.n_rows); -// surv_pvec.set_size(x_input.n_rows); -// -// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ -// -// // Abort the routine if user has pressed Ctrl + C or Escape in R. -// Rcpp::checkUserInterrupt(); -// -// j = 0; -// denom_pred.fill(0); -// surv_pvec.fill(0); -// -// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ -// -// x_input.col(*jit).fill(x_vals(pd_i, j)); -// -// } -// -// for(tree = 0; tree < forest.length(); ++tree){ -// -// ostree = forest[tree]; -// -// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; -// -// rows_oobag = conv_to::from( -// ivec(rows_oobag_.begin(), -// rows_oobag_.length(), -// false) -// ); -// -// x_pred = x_input.rows(rows_oobag); -// leaf_pred.set_size(x_pred.n_rows); -// denom_pred(rows_oobag) += 1; -// -// ostree_mem_xfer(); -// ostree_pred_leaf(); -// oobag_pred_surv_uni(pred_type); -// -// -// } -// -// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } -// -// output_ids(pd_rows).fill(pd_i+1); -// output_pds(pd_rows) = surv_pvec; -// pd_rows += x_input.n_rows; -// -// -// } -// -// return(output_ice); -// -// } + +#include +#include + +// [[Rcpp::depends(RcppArmadillo)]] + + +using namespace Rcpp; +using namespace arma; + +// ---------------------------------------------------------------------------- +// ---------------------------- global parameters ----------------------------- +// ---------------------------------------------------------------------------- + +// special note: dont change these doubles to uword, +// even though some of them could be uwords; +// operations involving uwords and doubles are not +// straightforward and may break the routine. +// also: double + uword is slower than double + double. + +double + weight_avg, + weight_events, + w_node_sum, + denom_events, + denom, + cph_eps, + // the n_ variables could be integers but it + // is safer and faster when they are doubles + n_events, + n_events_total, + n_events_right, + n_events_left, + n_risk, + n_risk_right, + n_risk_left, + n_risk_sub, + g_risk, + temp1, + temp2, + temp3, + halving, + stat_current, + stat_best, + w_node_person, + xb, + risk, + loglik, + cutpoint, + observed, + expected, + V, + pred_t0, + leaf_min_obs, + leaf_min_events, + split_min_events, + split_min_obs, + split_min_stat, + time_pred, + ll_second, + ll_init, + net_alpha; + +int + // verbose=0, + max_retry, + n_retry, + tree, + mtry_int, + net_df_target, + oobag_eval_every; + +char + type_beta, + type_oobag_eval, + oobag_pred_type, + oobag_importance_type, + pred_type_dflt = 'S'; + +// armadillo unsigned integers +uword + i, + j, + k, + iter, + mtry, + mtry_temp, + person, + person_leaf, + person_ref_index, + n_vars, + n_rows, + cph_method, + cph_iter_max, + n_split, + nodes_max_guess, + nodes_max_true, + n_cols_to_sample, + nn_left, + leaf_node_counter, + leaf_node_index_counter, + leaf_node_col, + oobag_eval_counter; + +bool + break_loop, // a delayed break statement + oobag_pred, + oobag_importance, + use_tree_seed, + cph_do_scale; + +// armadillo vectors (doubles) +vec + vec_temp, + times_pred, + eval_oobag, + node_assignments, + nodes_grown, + surv_pvec, + surv_pvec_output, + denom_pred, + beta_current, + beta_new, + beta_fit, + vi_pval_numer, + vi_pval_denom, + cutpoints, + w_input, + w_inbag, + w_user, + w_node, + group, + u, + a, + a2, + XB, + Risk; + +// armadillo unsigned integer vectors +uvec + iit_vals, + jit_vals, + rows_inbag, + rows_oobag, + rows_node, + rows_leaf, + rows_node_combined, + cols_to_sample_01, + cols_to_sample, + cols_node, + leaf_node_index, + nodes_to_grow, + nodes_to_grow_next, + obs_in_node, + children_left, + leaf_pred; + +// armadillo iterators for unsigned integer vectors +uvec::iterator + iit, + iit_best, + jit, + node; + +// armadillo matrices (doubles) +mat + x_input, + x_transforms, + y_input, + x_inbag, + y_inbag, + x_node, + y_node, + x_pred, + // x_mean, + vmat, + cmat, + cmat2, + betas, + leaf_node, + leaf_nodes, + surv_pmat; + +umat + col_indices, + leaf_indices; + +cube + surv_pcube; + +List ostree; + +NumericMatrix + beta_placeholder, + xx, + yy; + +CharacterVector yy_names = CharacterVector::create("time","status"); + +NumericVector ww; + +Environment base_env("package:base"); + +Function set_seed_r = base_env["set.seed"]; + +// Set difference for arma vectors +// +// @description the same as setdiff() in R +// +// @param x first vector +// @param y second vector +// +// [[Rcpp::export]] +arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { + + std::vector a = conv_to< std::vector >::from(sort(x)); + std::vector b = conv_to< std::vector >::from(sort(y)); + std::vector out; + + std::set_difference(a.begin(), a.end(), + b.begin(), b.end(), + std::inserter(out, out.end())); + + return conv_to::from(out); + +} + +// ---------------------------------------------------------------------------- +// ---------------------------- scaling functions ----------------------------- +// ---------------------------------------------------------------------------- + +// scale observations in predictor matrix +// +// @description this scales inputs in the same way as +// the survival::coxph() function. The main reasons we do this +// are to avoid exponential overflow and to prevent the scale +// of inputs from impacting the estimated beta coefficients. +// E.g., you can try multiplying numeric inputs by 100 prior +// to calling orsf() with orsf_control_fast(do_scale = FALSE) +// and you will see that you get back a different forest. +// +// @param x_node matrix of predictors +// @param w_node replication weights +// @param x_transforms matrix used to store the means and scales +// +// @return modified x_node and x_transform filled with values +// +void x_node_scale(){ + + // set aside memory for outputs + // first column holds the mean values + // second column holds the scale values + + x_transforms.zeros(n_vars, 2); + vec means = x_transforms.unsafe_col(0); // Reference to column 1 + vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + + w_node_sum = sum(w_node); + + for(i = 0; i < n_vars; i++) { + + means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; + + x_node.col(i) -= means.at(i); + + scales.at(i) = sum(w_node % abs(x_node.col(i))); + + if(scales(i) > 0) + scales.at(i) = w_node_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x_node.col(i) *= scales.at(i); + + } + +} + +// same as above function, but just the means +// (currently not used) +void x_node_means(){ + + x_transforms.zeros(n_vars, 1); + w_node_sum = sum(w_node); + + for(i = 0; i < n_vars; i++) { + + x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; + + } + +} + +// Same as x_node_scale, but this can be called from R +// [[Rcpp::export]] +List x_node_scale_exported(NumericMatrix& x_, + NumericVector& w_){ + + x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); + w_node = vec(w_.begin(), w_.length(), false); + n_vars = x_node.n_cols; + + x_node_scale(); + + return( + List::create( + _["x_scaled"] = x_node, + _["x_transforms"] = x_transforms + ) + ); + +} + +// ---------------------------------------------------------------------------- +// -------------------------- leaf_surv functions ----------------------------- +// ---------------------------------------------------------------------------- + +// Create kaplan-meier survival curve in leaf node +// +// @description Modifies leaf_nodes by adding data from the current node, +// where the current node is one that is too small to be split and will +// be converted to a leaf. +// +// @param y the outcome matrix in the current leaf +// @param w the weights vector in the current leaf +// @param leaf_indices a matrix that indicates where leaf nodes are +// inside of leaf_nodes. leaf_indices has three columns: +// - first column: the id for the leaf +// - second column: starting row for the leaf +// - third column: ending row for the leaf +// @param leaf_node_index_counter keeps track of where we are in leaf_node +// @param leaf_node_counter keeps track of which leaf node we are in +// @param leaf_nodes a matrix with three columns: +// - first column: time +// - second column: survival probability +// - third column: cumulative hazard + +void leaf_kaplan(const arma::mat& y, + const arma::vec& w){ + + leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; + i = leaf_node_counter; + + // find the first unique event time + person = 0; + + while(y.at(person, 1) == 0){ + person++; + } + + // now person corresponds to the first event time + leaf_nodes.at(i, 0) = y.at(person, 0); // see above + temp2 = y.at(person, 0); + + i++; + + // find the rest of the unique event times + for( ; person < y.n_rows; person++){ + + if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ + + leaf_nodes.at(i, 0) = y.at(person,0); + temp2 = y.at(person, 0); + i++; + + } + + } + + // reset for kaplan meier loop + n_risk = sum(w); + person = 0; + temp1 = 1.0; + temp3 = 0.0; + + do { + + n_events = 0; + n_risk_sub = 0; + temp2 = y.at(person, 0); + + while(y.at(person, 0) == temp2){ + + n_risk_sub += w.at(person); + n_events += y.at(person, 1) * w.at(person); + + if(person == y.n_rows-1) break; + + person++; + + } + + // only do km if a death was observed + + if(n_events > 0){ + + temp1 = temp1 * (n_risk - n_events) / n_risk; + + temp3 = temp3 + n_events / n_risk; + + leaf_nodes.at(leaf_node_counter, 1) = temp1; + leaf_nodes.at(leaf_node_counter, 2) = temp3; + leaf_node_counter++; + + } + + n_risk -= n_risk_sub; + + } while (leaf_node_counter < i); + + + leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; + leaf_node_index_counter++; + + if(leaf_node_index_counter >= leaf_indices.n_rows){ + leaf_indices.insert_rows(leaf_indices.n_rows, 10); + } + +} + +// Same as above, but this function can be called from R and is +// used to run tests with testthat (hence the name). Note: this +// needs to be updated to include CHF, which was added to the +// function above recently. +// [[Rcpp::export]] +arma::mat leaf_kaplan_testthat(const arma::mat& y, + const arma::vec& w){ + + + leaf_nodes.set_size(y.n_rows, 3); + leaf_node_counter = 0; + + // find the first unique event time + person = 0; + + while(y.at(person, 1) == 0){ + person++; + } + + // now person corresponds to the first event time + leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above + temp2 = y.at(person, 0); + + leaf_node_counter++; + + // find the rest of the unique event times + for( ; person < y.n_rows; person++){ + + if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ + + leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); + temp2 = y.at(person, 0); + leaf_node_counter++; + + } + + } + + + // reset for kaplan meier loop + i = leaf_node_counter; + n_risk = sum(w); + person = 0; + temp1 = 1.0; + leaf_node_counter = 0; + + + do { + + n_events = 0; + n_risk_sub = 0; + temp2 = y.at(person, 0); + + while(y.at(person, 0) == temp2){ + + n_risk_sub += w.at(person); + n_events += y.at(person, 1) * w.at(person); + + if(person == y.n_rows-1) break; + + person++; + + } + + // only do km if a death was observed + + if(n_events > 0){ + + temp1 = temp1 * (n_risk - n_events) / n_risk; + leaf_nodes.at(leaf_node_counter, 1) = temp1; + leaf_node_counter++; + + } + + n_risk -= n_risk_sub; + + } while (leaf_node_counter < i); + + leaf_nodes.resize(leaf_node_counter, 3); + + return(leaf_nodes); + +} + + + + +// ---------------------------------------------------------------------------- +// ---------------------------- cholesky functions ---------------------------- +// ---------------------------------------------------------------------------- + +// cholesky decomposition +// +// @description this function is copied from the survival package and +// translated into arma. +// +// @param vmat matrix with covariance estimates +// @param n_vars the number of predictors used in the current node +// +// prepares vmat for cholesky_solve() + + +void cholesky(){ + + double eps_chol = 0; + double toler = 1e-8; + double pivot; + + for(i = 0; i < n_vars; i++){ + + if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); + + // copy upper right values to bottom left + for(j = (i+1); j eps_chol) { + + for(j = (i+1); j < n_vars; j++){ + + temp1 = vmat.at(j,i) / pivot; + vmat.at(j,i) = temp1; + vmat.at(j,j) -= temp1*temp1*pivot; + + for(k = (j+1); k < n_vars; k++){ + + vmat.at(k, j) -= temp1 * vmat.at(k, i); + + } + + } + + } else { + + vmat.at(i, i) = 0; + + } + + } + +} + +// solve cholesky decomposition +// +// @description this function is copied from the survival package and +// translated into arma. Prepares u, the vector used to update beta. +// +// @param vmat matrix with covariance estimates +// @param n_vars the number of predictors used in the current node +// +// +void cholesky_solve(){ + + for (i = 0; i < n_vars; i++) { + + temp1 = u[i]; + + for (j = 0; j < i; j++){ + + temp1 -= u[j] * vmat.at(i, j); + u[i] = temp1; + + } + + } + + + for (i = n_vars; i >= 1; i--){ + + if (vmat.at(i-1, i-1) == 0){ + + u[i-1] = 0; + + } else { + + temp1 = u[i-1] / vmat.at(i-1, i-1); + + for (j = i; j < n_vars; j++){ + temp1 -= u[j] * vmat.at(j, i-1); + } + + u[i-1] = temp1; + + } + + } + +} + +// invert the cholesky in the lower triangle +// +// @description this function is copied from the survival package and +// translated into arma. Inverts vmat +// +// @param vmat matrix with covariance estimates +// @param n_vars the number of predictors used in the current node +// + +void cholesky_invert(){ + + for (i=0; i0) { + + // take full advantage of the cholesky's diagonal of 1's + vmat.at(i,i) = 1.0 / vmat.at(i,i); + + for (j=(i+1); j 0) { + + if (cph_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= weight_events * log(denom); + + for (i=0; i 0) { + + if (cph_method == 0 || n_events == 1) { // Breslow + + denom += denom_events; + loglik -= denom_events * log(denom); + + for (i=0; i 1 && stat_best < R_PosInf){ + + for(iter = 1; iter < cph_iter_max; iter++){ + + // if(verbose > 0){ + // + // Rcout << "--------- Newt-Raph algo; iter " << iter; + // Rcout << " ---------" << std::endl; + // Rcout << "beta: " << beta_new.t(); + // Rcout << "loglik: " << stat_best; + // Rcout << std::endl; + // Rcout << "------------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // + // } + + // do the next iteration + stat_current = newtraph_cph_iter(beta_new); + + cholesky(); + + // don't go trying to fix this, just use the last + // set of valid coefficients + if(std::isinf(stat_current)) break; + + // check for convergence + // break the loop if the new ll is ~ same as old best ll + if(fabs(1 - stat_best / stat_current) < cph_eps){ + break; + } + + if(stat_current < stat_best){ // it's not converging! + + halving++; // get more aggressive when it doesn't work + + // reduce the magnitude by which beta_new modifies beta_current + for (i = 0; i < n_vars; i++){ + beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); + } + + // yeah its not technically the best but I need to do this for + // more reasonable output when verbose = true; I should remove + // this line when verbosity is taken out. + stat_best = stat_current; + + } else { // it's converging! + + halving = 0; + stat_best = stat_current; + + cholesky_solve(); + + for (i = 0; i < n_vars; i++) { + + beta_current[i] = beta_new[i]; + beta_new[i] = beta_new[i] + u[i]; + + } + + } + + } + + } + + // invert vmat + cholesky_invert(); + + for (i=0; i < n_vars; i++) { + + beta_current[i] = beta_new[i]; + + if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ + beta_current[i] = 0; + } + + if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ + vmat.at(i, i) = 1.0; + } + + // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; + + if(cph_do_scale){ + beta_current.at(i) *= x_transforms.at(i, 1); + vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); + } + + // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; + + if(oobag_importance_type == 'A'){ + + if(beta_current.at(i) != 0){ + + temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), + 1, false, false); + + if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; + + } + + vi_pval_denom[cols_node[i]]++; + + } + + } + + // if(verbose > 1) Rcout << std::endl; + + return(beta_current); + +} + +// same function as above, but exported to R for testing +// [[Rcpp::export]] +arma::vec newtraph_cph_testthat(NumericMatrix& x_in, + NumericMatrix& y_in, + NumericVector& w_in, + int method, + double cph_eps_, + int iter_max){ + + + x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); + y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); + w_node = vec(w_in.begin(), w_in.length(), false); + + cph_do_scale = true; + + cph_method = method; + cph_eps = cph_eps_; + cph_iter_max = iter_max; + n_vars = x_node.n_cols; + + vi_pval_numer.zeros(x_node.n_cols); + vi_pval_denom.zeros(x_node.n_cols); + cols_node = regspace(0, x_node.n_cols - 1); + + x_node_scale(); + + vec out = newtraph_cph(); + + return(out); + +} + +// ---------------------------------------------------------------------------- +// ---------------------------- node functions -------------------------------- +// ---------------------------------------------------------------------------- + +// Log rank test w/multiple cutpoints +// +// this function returns a cutpoint obtaining a local maximum +// of the log-rank test (lrt) statistic. The default value (+Inf) +// is really for diagnostic purposes. Put another way, if the +// return value is +Inf (an impossible value for a cutpoint), +// that means that we didn't find any valid cut-points and +// the node cannot be grown with the current XB. +// +// if there is a valid cut-point, then the main side effect +// of this function is to modify the group vector, which +// will be used to assign observations to the two new nodes. +// +// @param group the vector that determines which node to send each +// observation to (left node = 0, right node = 1) +// @param y_node matrix of outcomes +// @param w_node vector of weights +// @param XB linear combination of predictors +// +// the group vector is modified by this function and the value returned +// is the maximal log-rank statistic across all the possible cutpoints. +double lrt_multi(){ + + break_loop = false; + + // group should be initialized as all 0s + group.zeros(y_node.n_rows); + + // initialize at the lowest possible LRT stat value + stat_best = 0; + + // sort XB- we need to iterate over the sorted indices + iit_vals = sort_index(XB, "ascend"); + + // unsafe columns point to cols in y_node. + vec y_status = y_node.unsafe_col(1); + vec y_time = y_node.unsafe_col(0); + + // first determine the lowest value of XB that will + // be a valid cut-point to split a node. A valid cut-point + // is one that, if used, will result in at least leaf_min_obs + // and leaf_min_events in both the left and right node. + + n_events = 0; + n_risk = 0; + + // if(verbose > 1){ + // Rcout << "----- finding cut-point boundaries -----" << std::endl; + // } + + // Iterate through the sorted values of XB, in ascending order. + + for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ + + n_events += y_status[*iit] * w_node[*iit]; + n_risk += w_node[*iit]; + + // If we want to make the current value of XB a cut-point, we need + // to make sure the next value of XB isn't equal to this current value. + // Otherwise, we will have the same value of XB in both groups! + + // if(verbose > 1){ + // Rcout << XB[*iit] << " ---- "; + // Rcout << XB[*(iit+1)] << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + + if(XB[*iit] != XB[*(iit+1)]){ + + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; + // Rcout << " - n_events, left node: " << n_events << std::endl; + // Rcout << " - n_risk, left node: " << n_risk << std::endl; + // Rcout << std::endl; + // } + + break; + + } + + } + + } + + // if(verbose > 1){ + // if(iit >= iit_vals.end()-1) { + // Rcout << "Could not find a valid lower cut-point" << std::endl; + // } + // } + + + j = iit - iit_vals.begin(); + + // got to reset these before finding the upper limit + n_events=0; + n_risk=0; + + // do the first step in the loop manually since we need to + // refer to iit+1 in all proceeding steps. + + for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ + + n_events += y_status[*iit] * w_node[*iit]; + n_risk += w_node[*iit]; + group[*iit] = 1; + + // if(verbose > 1){ + // Rcout << XB[*iit] << " ---- "; + // Rcout << XB(*(iit-1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + + if ( XB[*iit] != XB[*(iit-1)] ) { + + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // iit value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if iit currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --iit; + + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; + // Rcout << " - n_events, right node: " << n_events << std::endl; + // Rcout << " - n_risk, right node: " << n_risk << std::endl; + // } + + break; + + } + + } + + } + + // number of steps taken + k = iit + 1 - iit_vals.begin(); + + // if(verbose > 1){ + // Rcout << "----------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; + // } + + // initialize cut-point as the value of XB iit currently points to. + iit_best = iit; + + // what happens if we don't have enough events or obs to split? + // the first valid lower cut-point (at iit_vals(k)) is > the first + // valid upper cutpoint (current value of n_risk). Put another way, + // k (the number of steps taken from beginning of the XB vec) + // will be > n_rows - p, where the difference on the RHS is + // telling us where we are after taking p steps from the end + // of the XB vec. Returning the infinite cp is a red flag. + + // if(verbose > 1){ + // Rcout << "j: " << j << std::endl; + // Rcout << "k: " << k << std::endl; + // } + + if (j > k){ + + // if(verbose > 1) { + // Rcout << "Could not find a cut-point for this XB" << std::endl; + // } + + return(R_PosInf); + } + + // if(verbose > 1){ + // + // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + // Rcout << "n potential cutpoints: " << k-j << std::endl; + // + // } + + + // adjust k to indicate the number of valid cut-points + k -= j; + + if(k > n_split){ + + jit_vals = linspace(0, k, n_split); + + } else { + + // what happens if there are only 5 potential cut-points + // but the value of n_split is > 5? We will just check out + // the 5 valid cutpoints. + jit_vals = linspace(0, k, k); + + } + + vec_temp.resize( jit_vals.size() ); + + // protection from going out of bounds with jit_vals(k) below + if(j == 0) jit_vals.at(jit_vals.size()-1)--; + + // put the indices of potential cut-points into vec_temp + for(k = 0; k < vec_temp.size(); k++){ + vec_temp[k] = XB.at(*(iit_best - jit_vals[k])); + } + + // back to how it was! + if(j == 0) jit_vals.at(jit_vals.size()-1)++; + + // if(verbose > 1){ + // + // Rcout << "cut-points chosen: "; + // + // Rcout << vec_temp.t(); + // + // Rcout << "----------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + bool do_lrt = true; + + k = 0; + j = 1; + + // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ + + + // if(verbose > 1){ + // Rcout << "jit points to " << *jit << std::endl; + // } + + // switch group values from 0 to 1 until you get to the next cut-point + for( ; j < *jit; j++){ + group[*iit] = 1; + --iit; + } + + if(jit == jit_vals.begin() || + jit == jit_vals.end()-1){ + + do_lrt = true; + + } else { + + if( vec_temp[k] == vec_temp[k+1] || + vec_temp[k] == vec_temp[0] || + *jit <= 1){ + + do_lrt = false; + + } else { + + while( XB[*iit] == XB[*(iit - 1)] ){ + + group[*iit] = 1; + --iit; + ++j; + + // if(verbose > 1){ + // Rcout << "cutpoint dropped down one spot: "; + // Rcout << XB[*iit] << std::endl; + // } + + } + + do_lrt = true; + + } + + } + + ++k; + + if(do_lrt){ + + n_risk=0; + g_risk=0; + + observed=0; + expected=0; + + V=0; + + break_loop = false; + + i = y_node.n_rows-1; + + // if(verbose > 1){ + // Rcout << "sum(group==1): " << sum(group) << "; "; + // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + // Rcout << std::endl; + // if(verbose > 1){ + // Rcout << "group:" << std::endl; + // Rcout << group(iit_vals).t() << std::endl; + // } + // } + + + // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += group[i] * w_node[i]; + observed += y_status[i] * group[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but turns out its faster to multiply by 0 than + // it is to check whether n_events is > 0 + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + stat_current = pow(expected-observed, 2) / V; + + // if(verbose > 1){ + // + // Rcout << "-------- log-rank test results --------" << std::endl; + // Rcout << "cutpoint: " << XB[*iit] << std::endl; + // Rcout << "lrt stat: " << stat_current << std::endl; + // Rcout << "---------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + if(stat_current > stat_best){ + iit_best = iit; + stat_best = stat_current; + n_events_right = observed; + n_risk_right = g_risk; + n_risk_left = n_risk - g_risk; + } + + } + // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + } + + // if the log-rank test does not detect a difference at 0.05 alpha, + // maybe it's not a good idea to split this node. + + if(stat_best < split_min_stat) return(R_PosInf); + + // if(verbose > 1){ + // Rcout << "Best LRT stat: " << stat_best << std::endl; + // } + + // rewind iit until it is back where it was when we got the + // best lrt stat. While rewinding iit, also reset the group + // values so that group is as it was when we got the best + // lrt stat. + + + while(iit <= iit_best){ + group[*iit] = 0; + ++iit; + } + + // XB at *iit_best is the cut-point that maximized the log-rank test + return(XB[*iit_best]); + +} + +// this function is the same as above, but is exported to R for testing +// [[Rcpp::export]] +List lrt_multi_testthat(NumericMatrix& y_node_, + NumericVector& w_node_, + NumericVector& XB_, + int n_split_, + int leaf_min_events_, + int leaf_min_obs_ +){ + + y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); + w_node = vec(w_node_.begin(), w_node_.length(), false); + XB = vec(XB_.begin(), XB_.length(), false); + + n_split = n_split_; + leaf_min_events = leaf_min_events_; + leaf_min_obs = leaf_min_obs_; + + // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - + // + // this function returns a cutpoint obtaining a local maximum + // of the log-rank test (lrt) statistic. The default value (+Inf) + // is really for diagnostic purposes. Put another way, if the + // return value is +Inf (an impossible value for a cutpoint), + // that means that we didn't find any valid cut-points and + // the node cannot be grown with the current XB. + // + // if there is a valid cut-point, then the main side effect + // of this function is to modify the group vector, which + // will be used to assign observations to the two new nodes. + // + // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + break_loop = false; + + vec cutpoints_used(n_split); + vec lrt_statistics(n_split); + uword list_counter = 0; + + // group should be initialized as all 0s + group.zeros(y_node.n_rows); + + // initialize at the lowest possible LRT stat value + stat_best = 0; + + // sort XB- we need to iterate over the sorted indices + iit_vals = sort_index(XB, "ascend"); + + // unsafe columns point to cols in y_node. + vec y_status = y_node.unsafe_col(1); + vec y_time = y_node.unsafe_col(0); + + // first determine the lowest value of XB that will + // be a valid cut-point to split a node. A valid cut-point + // is one that, if used, will result in at least leaf_min_obs + // and leaf_min_events in both the left and right node. + + n_events = 0; + n_risk = 0; + + // if(verbose > 1){ + // Rcout << "----- finding cut-point boundaries -----" << std::endl; + // } + + // Iterate through the sorted values of XB, in ascending order. + + for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ + + n_events += y_status(*iit) * w_node(*iit); + n_risk += w_node(*iit); + + // If we want to make the current value of XB a cut-point, we need + // to make sure the next value of XB isn't equal to this current value. + // Otherwise, we will have the same value of XB in both groups! + + // if(verbose > 1){ + // Rcout << XB(*iit) << " ---- "; + // Rcout << XB(*(iit+1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + + if(XB(*iit) != XB(*(iit+1))){ + + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs) { + + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; + // Rcout << " - n_events, left node: " << n_events << std::endl; + // Rcout << " - n_risk, left node: " << n_risk << std::endl; + // Rcout << std::endl; + // } + + break; + + } + + } + + } + + // if(verbose > 1){ + // if(iit >= iit_vals.end()-1) { + // Rcout << "Could not find a valid lower cut-point" << std::endl; + // } + // } + + + j = iit - iit_vals.begin(); + + // got to reset these before finding the upper limit + n_events=0; + n_risk=0; + + // do the first step in the loop manually since we need to + // refer to iit+1 in all proceeding steps. + + for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ + + n_events += y_status(*iit) * w_node(*iit); + n_risk += w_node(*iit); + group(*iit) = 1; + + // if(verbose > 1){ + // Rcout << XB(*iit) << " ---- "; + // Rcout << XB(*(iit-1)) << " ---- "; + // Rcout << n_events << " ---- "; + // Rcout << n_risk << std::endl; + // } + + if(XB(*iit) != XB(*(iit-1))){ + + // if(verbose > 1){ + // Rcout << "********* New cut-point here ********" << std::endl; + // } + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // iit value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if iit currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --iit; + + // if(verbose > 1){ + // Rcout << std::endl; + // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; + // Rcout << " - n_events, right node: " << n_events << std::endl; + // Rcout << " - n_risk, right node: " << n_risk << std::endl; + // } + + break; + + } + + } + + } + + // number of steps taken + k = iit + 1 - iit_vals.begin(); + + // if(verbose > 1){ + // Rcout << "----------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; + // } + + // initialize cut-point as the value of XB iit currently points to. + iit_best = iit; + + // what happens if we don't have enough events or obs to split? + // the first valid lower cut-point (at iit_vals(k)) is > the first + // valid upper cutpoint (current value of n_risk). Put another way, + // k (the number of steps taken from beginning of the XB vec) + // will be > n_rows - p, where the difference on the RHS is + // telling us where we are after taking p steps from the end + // of the XB vec. Returning the infinite cp is a red flag. + + // if(verbose > 1){ + // Rcout << "j: " << j << std::endl; + // Rcout << "k: " << k << std::endl; + // } + + if (j > k){ + + // if(verbose > 1) { + // Rcout << "Could not find a cut-point for this XB" << std::endl; + // } + + return(R_PosInf); + } + + // if(verbose > 1){ + // + // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; + // Rcout << "n potential cutpoints: " << k-j << std::endl; + // + // } + + // what happens if there are only 5 potential cut-points + // but the value of n_split is > 5? We will just check out + // the 5 valid cutpoints. + + // adjust k to indicate steps taken in the outer loop. + k -= j; + + if(k > n_split){ + + jit_vals = linspace(0, k, n_split); + + } else { + + jit_vals = linspace(0, k, k); + + } + + vec_temp.resize( jit_vals.size() ); + + if(j == 0) jit_vals(jit_vals.size()-1)--; + + for(k = 0; k < vec_temp.size(); k++){ + vec_temp(k) = XB(*(iit_best - jit_vals(k))); + } + + if(j == 0) jit_vals(jit_vals.size()-1)++; + + + // if(verbose > 1){ + // + // Rcout << "cut-points chosen: "; + // + // Rcout << vec_temp.t(); + // + // Rcout << "----------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + bool do_lrt = true; + + k = 0; + j = 1; + + // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ + + + // if(verbose > 1){ + // Rcout << "jit points to " << *jit << std::endl; + // } + + for( ; j < *jit; j++){ + group(*iit) = 1; + --iit; + } + + if(jit == jit_vals.begin() || + jit == jit_vals.end()-1){ + + do_lrt = true; + + } else { + + if( vec_temp(k) == vec_temp(k+1) || + vec_temp(k) == vec_temp(0) || + *jit <= 1){ + + do_lrt = false; + + } else { + + while(XB(*iit) == XB(*(iit - 1))){ + + group(*iit) = 1; + --iit; + ++j; + + // if(verbose > 1){ + // Rcout << "cutpoint dropped down one spot: "; + // Rcout << XB(*iit) << std::endl; + // } + + } + + do_lrt = true; + + } + + } + + ++k; + + if(do_lrt){ + + cutpoints_used(list_counter) = XB(*iit); + + n_risk=0; + g_risk=0; + + observed=0; + expected=0; + + V=0; + + break_loop = false; + + i = y_node.n_rows-1; + + // if(verbose > 1){ + // Rcout << "sum(group==1): " << sum(group) << "; "; + // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); + // Rcout << std::endl; + // if(verbose > 1){ + // Rcout << "group:" << std::endl; + // Rcout << group(iit_vals).t() << std::endl; + // } + // } + + + // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += group[i] * w_node[i]; + observed += y_status[i] * group[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but turns out its faster to multiply by 0 than + // it is to check whether n_events is > 0 + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + stat_current = pow(expected-observed, 2) / V; + + lrt_statistics(list_counter) = stat_current; + + list_counter++; + + // if(verbose > 1){ + // + // Rcout << "-------- log-rank test results --------" << std::endl; + // Rcout << "cutpoint: " << XB(*iit) << std::endl; + // Rcout << "lrt stat: " << stat_current << std::endl; + // Rcout << "---------------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + if(stat_current > stat_best){ + iit_best = iit; + stat_best = stat_current; + n_events_right = observed; + n_risk_right = g_risk; + n_risk_left = n_risk - g_risk; + } + + } + // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + } + + // if the log-rank test does not detect a difference at 0.05 alpha, + // maybe it's not a good idea to split this node. + + if(stat_best < 3.841459) return(R_PosInf); + + // if(verbose > 1){ + // Rcout << "Best LRT stat: " << stat_best << std::endl; + // } + + // rewind iit until it is back where it was when we got the + // best lrt stat. While rewinding iit, also reset the group + // values so that group is as it was when we got the best + // lrt stat. + + + while(iit <= iit_best){ + group(*iit) = 0; + ++iit; + } + + return(List::create(_["cutpoints"] = cutpoints_used, + _["statistic"] = lrt_statistics)); + +} + + +// out-of-bag prediction for single prediction horizon +// +// @param pred_type indicates what type of prediction to compute +// @param leaf_pred a vector indicating which leaf each observation +// landed in. +// @param leaf_indices a matrix that contains indices for each leaf node +// inside of leaf_nodes +// @param leaf_nodes a matrix with ids, survival, and cumulative hazard +// functions for each leaf node. +// +// @return matrix with predictions, dimension n by 1 + +void oobag_pred_surv_uni(char pred_type){ + + iit_vals = sort_index(leaf_pred, "ascend"); + iit = iit_vals.begin(); + + switch(pred_type){ + + case 'S': case 'R': + + leaf_node_col = 1; + pred_t0 = 1; + break; + + case 'H': + + leaf_node_col = 2; + pred_t0 = 0; + break; + + } + + do { + + person_leaf = leaf_pred[*iit]; + + // find the current leaf + for(i = 0; i < leaf_indices.n_rows; i++){ + if(leaf_indices.at(i, 0) == person_leaf){ + break; + } + } + + // get submat view for this leaf + leaf_node = leaf_nodes.rows(leaf_indices(i, 1), + leaf_indices(i, 2)); + + // if(verbose > 1){ + // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; + // } + + i = 0; + + if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ + + for(; i < leaf_node.n_rows; i++){ + if (leaf_node.at(i, 0) > time_pred){ + if(i == 0) + temp1 = pred_t0; + else + temp1 = leaf_node.at(i-1, leaf_node_col); + break; + } else if (leaf_node.at(i, 0) == time_pred){ + temp1 = leaf_node.at(i, leaf_node_col); + break; + } + } + + } else { + + // go here if prediction horizon > max time in current leaf. + temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); + + } + + // running mean: mean_k = mean_{k-1} + (new val - old val) / k + // compute new val - old val + // be careful, every oob row has a different denom! + temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; + surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; + ++iit; + + if(iit < iit_vals.end()){ + + while(person_leaf == leaf_pred(*iit)){ + + temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; + surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; + + ++iit; + + if (iit == iit_vals.end()) break; + + } + + } + + } while (iit < iit_vals.end()); + + // if(verbose > 0){ + // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; + // } + +} + +// out-of-bag prediction evaluation, Harrell's C-statistic +// +// @param pred_type indicates what type of prediction to compute +// @param y_input matrix of outcomes from input +// +// @return the C-statistic + +double oobag_c_harrell(char pred_type){ + + vec time = y_input.unsafe_col(0); + vec status = y_input.unsafe_col(1); + iit_vals = find(status == 1); + + k = y_input.n_rows; + + double total=0, concordant=0; + + switch(pred_type){ + + case 'S': case 'R': + for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { + + for(j = *iit + 1; j < k; ++j){ + + if (time[j] > time[*iit]) { // ties not counted + + total++; + + // for survival, current value > next vals is good + // risk is the same as survival until just before we output + // the oobag predictions, when we say pvec = 1-pvec, + if (surv_pvec[j] > surv_pvec[*iit]){ + + concordant++; + + } else if (surv_pvec[j] == surv_pvec[*iit]){ + + concordant+= 0.5; + + } + + } + + } + + } + break; + + case 'H': + for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { + + for(j = *iit + 1; j < k; ++j){ + + if (time[j] > time[*iit]) { // ties not counted + + total++; + + // for risk & chf current value < next vals is good. + if (surv_pvec[j] < surv_pvec[*iit]){ + + concordant++; + + } else if (surv_pvec[j] == surv_pvec[*iit]){ + + concordant+= 0.5; + + } + + } + + } + + } + break; + } + + return(concordant / total); + +} + +// same function as above but exported to R for testing +// [[Rcpp::export]] +double oobag_c_harrell_testthat(NumericMatrix y_mat, + NumericVector s_vec) { + + y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); + surv_pvec = vec(s_vec.begin(), s_vec.length(), false); + + return(oobag_c_harrell(pred_type_dflt)); + +} + +// this function is the same as oobag_pred_surv_uni, +// but it operates on new data rather than out-of-bag data +// and it allows for multiple prediction horizons instead of one +void new_pred_surv_multi(char pred_type){ + + // allocate memory for output + // surv_pvec.zeros(x_pred.n_rows); + + surv_pvec.set_size(times_pred.size()); + iit_vals = sort_index(leaf_pred, "ascend"); + iit = iit_vals.begin(); + + switch(pred_type){ + + case 'S': case 'R': + + leaf_node_col = 1; + pred_t0 = 1; + break; + + case 'H': + + leaf_node_col = 2; + pred_t0 = 0; + break; + + } + + do { + + person_leaf = leaf_pred(*iit); + + for(i = 0; i < leaf_indices.n_rows; i++){ + if(leaf_indices.at(i, 0) == person_leaf){ + break; + } + } + + leaf_node = leaf_nodes.rows(leaf_indices(i, 1), + leaf_indices(i, 2)); + + // if(verbose > 1){ + // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; + // } + + i = 0; + + for(j = 0; j < times_pred.size(); j++){ + + time_pred = times_pred.at(j); + + if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ + + for(; i < leaf_node.n_rows; i++){ + + if (leaf_node.at(i, 0) > time_pred){ + + if(i == 0) + temp1 = pred_t0; + else + temp1 = leaf_node.at(i-1, leaf_node_col); + + break; + + } else if (leaf_node.at(i, 0) == time_pred){ + + temp1 = leaf_node.at(i, leaf_node_col); + break; + + } + + } + + } else { + + // go here if prediction horizon > max time in current leaf. + temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); + + } + + surv_pvec.at(j) = temp1; + + } + + surv_pmat.row(*iit) += surv_pvec.t(); + ++iit; + + if(iit < iit_vals.end()){ + + while(person_leaf == leaf_pred.at(*iit)){ + + surv_pmat.row(*iit) += surv_pvec.t(); + ++iit; + + if (iit == iit_vals.end()) break; + + } + + } + + } while (iit < iit_vals.end()); + +} + +// this function is the same as new_pred_surv_multi, +// but only uses one prediction horizon +void new_pred_surv_uni(char pred_type){ + + iit_vals = sort_index(leaf_pred, "ascend"); + iit = iit_vals.begin(); + + switch(pred_type){ + + case 'S': case 'R': + + leaf_node_col = 1; + pred_t0 = 1; + break; + + case 'H': + + leaf_node_col = 2; + pred_t0 = 0; + break; + + } + + do { + + person_leaf = leaf_pred(*iit); + + for(i = 0; i < leaf_indices.n_rows; i++){ + if(leaf_indices.at(i, 0) == person_leaf){ + break; + } + } + + leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), + leaf_indices.at(i, 2)); + + // if(verbose > 1){ + // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; + // } + + i = 0; + + if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ + + for(; i < leaf_node.n_rows; i++){ + if (leaf_node.at(i, 0) > time_pred){ + + if(i == 0){ + + temp1 = pred_t0; + + } else { + + temp1 = leaf_node.at(i - 1, leaf_node_col); + + // experimental - does not seem to help! + // weighted average of surv est from before and after time of pred + // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); + // + // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + + // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; + + } + + break; + + } else if (leaf_node.at(i, 0) == time_pred){ + temp1 = leaf_node.at(i, leaf_node_col); + break; + } + } + + } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ + + temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); + + } else { + + // go here if prediction horizon > max time in current leaf. + temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); + + // --- EXPERIMENTAL ADD-ON --- // + // if you are predicting beyond the max time in a node, + // then determine how much further out you are and assume + // the survival probability decays at the same rate. + + // temp2 = (1.0 - temp1) * + // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; + // + // temp1 = temp1 * (1.0-temp2); + + } + + surv_pvec.at(*iit) += temp1; + ++iit; + + if(iit < iit_vals.end()){ + + while(person_leaf == leaf_pred.at(*iit)){ + + surv_pvec.at(*iit) += temp1; + ++iit; + + if (iit == iit_vals.end()) break; + + } + + } + + } while (iit < iit_vals.end()); + + // if(verbose > 1){ + // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; + // } + +} + + +// ---------------------------------------------------------------------------- +// --------------------------- ostree functions ------------------------------- +// ---------------------------------------------------------------------------- + +// increase the memory allocated to a tree +// +// this function is used if the initial memory allocation isn't enough +// to grow the tree. It modifies all elements of the tree, including +// betas, col_indices, children_left, and cutpoints +// +void ostree_size_buffer(){ + + // if(verbose > 1){ + // Rcout << "---------- buffering outputs ----------" << std::endl; + // Rcout << "betas before: " << std::endl << betas.t() << std::endl; + // } + + betas.insert_cols(betas.n_cols, 10); + // x_mean.insert_cols(x_mean.n_cols, 10); + col_indices.insert_cols(col_indices.n_cols, 10); + children_left.insert_rows(children_left.size(), 10); + cutpoints.insert_rows(cutpoints.size(), 10); + + // if(verbose > 1){ + // Rcout << "betas after: " << std::endl << betas.t() << std::endl; + // Rcout << "---------------------------------------"; + // Rcout << std::endl << std::endl; + // } + + +} + +// transfer memory from R into arma types +// +// when trees are passed from R, they need to be converted back into +// arma objects. The intent of this function is to convert everything +// back into an arma object without copying any data. +// +// nothing is modified apart from types + +void ostree_mem_xfer(){ + + // no data copied according to tracemem. + // not including boot rows or x_mean (don't always need them) + + NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; + NumericMatrix betas_ = ostree["betas"]; + NumericVector cutpoints_ = ostree["cut_points"]; + IntegerMatrix col_indices_ = ostree["col_indices"]; + IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; + IntegerVector children_left_ = ostree["children_left"]; + + leaf_nodes = mat(leaf_nodes_.begin(), + leaf_nodes_.nrow(), + leaf_nodes_.ncol(), + false); + + betas = mat(betas_.begin(), + betas_.nrow(), + betas_.ncol(), + false); + + cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); + + col_indices = conv_to::from( + imat(col_indices_.begin(), + col_indices_.nrow(), + col_indices_.ncol(), + false) + ); + + leaf_indices = conv_to::from( + imat(leaf_indices_.begin(), + leaf_indices_.nrow(), + leaf_indices_.ncol(), + false) + ); + + children_left = conv_to::from( + ivec(children_left_.begin(), + children_left_.length(), + false) + ); + +} + +// drop observations down the tree +// +// @description Determine the leaves that are assigned to new data. +// +// @param children_left vector of child node ids (right node = left node + 1) +// @param x_pred matrix of predictors from new data +// +// @return a vector indicating which leaf each observation was mapped to +void ostree_pred_leaf(){ + + // reset values + // this is needed for pred_leaf since every obs gets a new leaf in + // the next tree, but it isn't needed for pred_surv because survival + // probs get aggregated over all the trees. + leaf_pred.fill(0); + + for(i = 0; i < betas.n_cols; i++){ + + if(children_left[i] != 0){ + + if(i == 0){ + obs_in_node = regspace(0, 1, leaf_pred.size()-1); + } else { + obs_in_node = find(leaf_pred == i); + } + + + if(obs_in_node.size() > 0){ + + // Fastest sub-matrix multiplication i can think of. + // Matrix product = linear combination of columns + // (this is faster b/c armadillo is great at making + // pointers to the columns of an arma mat) + // I had to stop using this b/c it fails on + // XB.zeros(obs_in_node.size()); + // + // uvec col_indices_i = col_indices.unsafe_col(i); + // + // j = 0; + // + // jit = col_indices_i.begin(); + // + // for(; jit < col_indices_i.end(); ++jit, ++j){ + // + // vec x_j = x_pred.unsafe_col(*jit); + // + // XB += x_j(obs_in_node) * betas.at(j, i); + // + // } + + // this is slower but more clear matrix multiplication + XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); + + jit = obs_in_node.begin(); + + for(j = 0; j < XB.size(); ++j, ++jit){ + + if(XB[j] <= cutpoints[i]) { + + leaf_pred[*jit] = children_left[i]; + + } else { + + leaf_pred[*jit] = children_left[i]+1; + + } + + } + + // if(verbose > 0){ + // + // uvec in_left = find(leaf_pred == children_left(i)); + // uvec in_right = find(leaf_pred == children_left(i)+1); + // + // Rcout << "N to node_" << children_left(i) << ": "; + // Rcout << in_left.size() << "; "; + // Rcout << "N to node_" << children_left(i)+1 << ": "; + // Rcout << in_right.size() << std::endl; + // + // } + + } + + } + + } + + + +} + +// same as above but exported to R for testins +// [[Rcpp::export]] +arma::uvec ostree_pred_leaf_testthat(List& tree, + NumericMatrix& x_pred_){ + + + x_pred = mat(x_pred_.begin(), + x_pred_.nrow(), + x_pred_.ncol(), + false); + + leaf_pred.set_size(x_pred.n_rows); + + ostree = tree; + ostree_mem_xfer(); + ostree_pred_leaf(); + + return(leaf_pred); + +} + +// Fit an oblique survival tree +// +// @description used in orsf_fit, which has parameters defined below. +// +// @param f_beta the function used to find linear combinations of predictors +// +// @return a fitted oblique survival tree +// +List ostree_fit(Function f_beta){ + + betas.fill(0); + // x_mean.fill(0); + col_indices.fill(0); + cutpoints.fill(0); + children_left.fill(0); + node_assignments.fill(0); + leaf_nodes.fill(0); + + node_assignments.zeros(x_inbag.n_rows); + nodes_to_grow.zeros(1); + nodes_max_true = 0; + leaf_node_counter = 0; + leaf_node_index_counter = 0; + + // ---------------------- + // ---- main do loop ---- + // ---------------------- + + do { + + nodes_to_grow_next.set_size(0); + + // if(verbose > 0){ + // + // Rcout << "----------- nodes to grow -----------" << std::endl; + // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; + // Rcout << "-------------------------------------" << std::endl << + // std::endl << std::endl; + // + // + // } + + for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ + + if(nodes_to_grow[0] == 0){ + + // when growing the first node, there is no need to find + // which rows are in the node. + rows_node = linspace(0, + x_inbag.n_rows-1, + x_inbag.n_rows); + + } else { + + // identify which rows are in the current node. + rows_node = find(node_assignments == *node); + + } + + y_node = y_inbag.rows(rows_node); + w_node = w_inbag(rows_node); + + // if(verbose > 0){ + // + // n_risk = sum(w_node); + // n_events = sum(y_node.col(1) % w_node); + // Rcout << "-------- Growing node " << *node << " --------" << std::endl; + // Rcout << "No. of observations in node: " << n_risk << std::endl; + // Rcout << "No. of events in node: " << n_events << std::endl; + // Rcout << "No. of rows in node: " << w_node.size() << std::endl; + // Rcout << "--------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // + // } + + // initialize an impossible cut-point value + // if cutpoint is still infinite later, node should not be split + cutpoint = R_PosInf; + + // ------------------------------------------------------------------ + // ---- sample a random subset of columns with non-zero variance ---- + // ------------------------------------------------------------------ + + mtry_int = mtry; + cols_to_sample_01.fill(0); + + // constant columns are constant in the rows where events occurred + + for(j = 0; j < cols_to_sample_01.size(); j++){ + + temp1 = R_PosInf; + + for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ + + if(y_inbag.at(*iit, 1) == 1){ + + if (temp1 < R_PosInf){ + + if(x_inbag.at(*iit, j) != temp1){ + + cols_to_sample_01[j] = 1; + break; + + } + + } else { + + temp1 = x_inbag.at(*iit, j); + + } + + } + + } + + } + + n_cols_to_sample = sum(cols_to_sample_01); + + if(n_cols_to_sample >= 1){ + + n_events_total = sum(y_node.col(1) % w_node); + + if(n_cols_to_sample < mtry){ + + mtry_int = n_cols_to_sample; + + // if(verbose > 0){ + // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; + // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; + // Rcout << std::endl; + // Rcout << "-------------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // } + + } + + if (type_beta == 'C'){ + + // make sure there are at least 3 event per predictor variable. + // (if using CPH) + while(n_events_total / mtry_int < 3 && mtry_int > 1){ + --mtry_int; + } + + } + + + n_cols_to_sample = mtry_int; + + // if(verbose > 0){ + // Rcout << "n_events: " << n_events_total << std::endl; + // Rcout << "mtry: " << mtry_int << std::endl; + // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; + // } + + if(mtry_int >= 1){ + + cols_to_sample = find(cols_to_sample_01); + + // re-try hinge point + n_retry = 0; + cutpoint = R_PosInf; + + while(n_retry <= max_retry){ + + // if(n_retry > 0) Rcout << "trying again!" << std::endl; + + cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, + mtry_int, + false); + + x_node = x_inbag(rows_node, cols_node); + + // here is where n_vars gets updated to match the current node + // originally it matched the number of variables in the input x. + + n_vars = x_node.n_cols; + + if(cph_do_scale){ + x_node_scale(); + } + + // if(verbose > 0){ + // + // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); + // Rcout << "x node scaled: " << std::endl; + // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); + // Rcout << std::endl; + // + // } + + switch(type_beta) { + + case 'C' : + + beta_fit = newtraph_cph(); + + if(cph_do_scale){ + for(i = 0; i < x_transforms.n_rows; i++){ + x_node.col(i) /= x_transforms(i,1); + x_node.col(i) += x_transforms(i,0); + } + + } + + break; + + case 'N' : + + xx = wrap(x_node); + yy = wrap(y_node); + ww = wrap(w_node); + colnames(yy) = yy_names; + + beta_placeholder = f_beta(xx, yy, ww, + net_alpha, + net_df_target); + + beta_fit = mat(beta_placeholder.begin(), + beta_placeholder.nrow(), + beta_placeholder.ncol(), + false); + + break; + + case 'U' : + + xx = wrap(x_node); + yy = wrap(y_node); + ww = wrap(w_node); + colnames(yy) = yy_names; + + beta_placeholder = f_beta(xx, yy, ww); + + beta_fit = mat(beta_placeholder.begin(), + beta_placeholder.nrow(), + beta_placeholder.ncol(), + false); + + break; + + } + + + if(any(beta_fit)){ + + // if(verbose > 0){ + // + // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); + // Rcout << "x node unscaled: " << std::endl; + // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); + // Rcout << std::endl; + // + // } + + XB = x_node * beta_fit; + cutpoint = lrt_multi(); + + } + + if(!std::isinf(cutpoint)) break; + n_retry++; + + } + + } + + } + + if(!std::isinf(cutpoint)){ + + // make new nodes if a valid cutpoint was found + nn_left = nodes_max_true + 1; + nodes_max_true = nodes_max_true + 2; + + + // if(verbose > 0){ + // + // Rcout << "-------- New nodes created --------" << std::endl; + // Rcout << "Left node: " << nn_left << std::endl; + // Rcout << "Right node: " << nodes_max_true << std::endl; + // Rcout << "-----------------------------------" << std::endl << + // std::endl << std::endl; + // + // } + + n_events_left = n_events_total - n_events_right; + + // if(verbose > 0){ + // Rcout << "n_events_left: " << n_events_left << std::endl; + // Rcout << "n_risk_left: " << n_risk_left << std::endl; + // Rcout << "n_events_right: " << n_events_right << std::endl; + // Rcout << "n_risk_right: " << n_risk_right << std::endl; + // } + + i=0; + + for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ + + node_assignments[*iit] = nn_left + group[i]; + + } + + if(n_events_left >= 2*leaf_min_events && + n_risk_left >= 2*leaf_min_obs && + n_events_left >= split_min_events && + n_risk_left >= split_min_obs){ + + nodes_to_grow_next = join_cols(nodes_to_grow_next, + uvec{nn_left}); + + } else { + + rows_leaf = find(group==0); + leaf_indices(leaf_node_index_counter, 0) = nn_left; + leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); + + // if(verbose > 0){ + // Rcout << "-------- creating a new leaf --------" << std::endl; + // Rcout << "name: node_" << nn_left << std::endl; + // Rcout << "n_obs: " << sum(w_node(rows_leaf)); + // Rcout << std::endl; + // Rcout << "n_events: "; + // vec_temp = y_node.col(1); + // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); + // Rcout << std::endl; + // Rcout << "------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // } + + } + + if(n_events_right >= 2*leaf_min_events && + n_risk_right >= 2*leaf_min_obs && + n_events_right >= split_min_events && + n_risk_right >= split_min_obs){ + + nodes_to_grow_next = join_cols(nodes_to_grow_next, + uvec{nodes_max_true}); + + } else { + + rows_leaf = find(group==1); + leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; + leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); + + // if(verbose > 0){ + // Rcout << "-------- creating a new leaf --------" << std::endl; + // Rcout << "name: node_" << nodes_max_true << std::endl; + // Rcout << "n_obs: " << sum(w_node(rows_leaf)); + // Rcout << std::endl; + // Rcout << "n_events: "; + // vec_temp = y_node.col(1); + // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); + // Rcout << std::endl; + // Rcout << "------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // } + + } + + if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); + + for(i = 0; i < n_cols_to_sample; i++){ + betas.at(i, *node) = beta_fit[i]; + // x_mean.at(i, *node) = x_transforms(i, 0); + col_indices.at(i, *node) = cols_node[i]; + } + + children_left[*node] = nn_left; + cutpoints[*node] = cutpoint; + + } else { + + // make a leaf node if a valid cutpoint could not be found + leaf_indices(leaf_node_index_counter, 0) = *node; + leaf_kaplan(y_node, w_node); + + // if(verbose > 0){ + // Rcout << "-------- creating a new leaf --------" << std::endl; + // Rcout << "name: node_" << *node << std::endl; + // Rcout << "n_obs: " << sum(w_node) << std::endl; + // Rcout << "n_events: " << sum(w_node % y_node.col(1)); + // Rcout << std::endl; + // Rcout << "Couldn't find a cutpoint??" << std::endl; + // Rcout << "------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // } + + } + + } + + nodes_to_grow = nodes_to_grow_next; + + } while (nodes_to_grow.size() > 0); + + return( + List::create( + + _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), + + _["leaf_node_index"] = conv_to::from( + leaf_indices.rows(span(0, leaf_node_index_counter-1)) + ), + + _["betas"] = betas.cols(span(0, nodes_max_true)), + + // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), + + _["col_indices"] = conv_to::from( + col_indices.cols(span(0, nodes_max_true)) + ), + + _["cut_points"] = cutpoints(span(0, nodes_max_true)), + + _["children_left"] = conv_to::from( + children_left(span(0, nodes_max_true)) + ), + + _["rows_oobag"] = conv_to::from(rows_oobag) + + ) + ); + + +} + +// ---------------------------------------------------------------------------- +// ---------------------------- orsf functions -------------------------------- +// ---------------------------------------------------------------------------- + +// fit an oblique random survival forest. +// +// @param x matrix of predictors +// @param y matrix of outcomes +// @param weights vector of weights +// @param n_tree number of trees to fit +// @param n_split_ number of splits to try with lrt +// @param mtry_ number of predictors to try +// @param leaf_min_events_ min number of events in a leaf +// @param leaf_min_obs_ min number of observations in a leaf +// @param split_min_events_ min number of events to split a node +// @param split_min_obs_ min number of observations to split a node +// @param split_min_stat_ min lrt to split a node +// @param cph_method_ method for ties +// @param cph_eps_ criteria for convergence of newton raphson algorithm +// @param cph_iter_max_ max number of newton raphson iterations +// @param cph_do_scale_ to scale or not to scale +// @param net_alpha_ alpha parameter for glmnet +// @param net_df_target_ degrees of freedom for glmnet +// @param oobag_pred_ whether to predict out-of-bag preds or not +// @param oobag_pred_type_ what type of out-of-bag preds to compute +// @param oobag_pred_horizon_ out-of-bag prediction horizon +// @param oobag_eval_every_ trees between each evaluation of oob error +// @param oobag_importance_ to compute importance or not +// @param oobag_importance_type_ type of importance to compute +// @param tree_seeds vector of seeds to set before each tree is fit +// @param max_retry_ max number of retries for linear combinations +// @param f_beta function to find linear combinations of predictors +// @param type_beta_ what type of linear combination to find +// @param f_oobag_eval function to evaluate out-of-bag error +// @param type_oobag_eval_ whether to use default or custom out-of-bag error +// +// @return an orsf_fit object sent back to R + +// [[Rcpp::export]] +List orsf_fit(NumericMatrix& x, + NumericMatrix& y, + NumericVector& weights, + const int& n_tree, + const int& n_split_, + const int& mtry_, + const double& leaf_min_events_, + const double& leaf_min_obs_, + const double& split_min_events_, + const double& split_min_obs_, + const double& split_min_stat_, + const int& cph_method_, + const double& cph_eps_, + const int& cph_iter_max_, + const bool& cph_do_scale_, + const double& net_alpha_, + const int& net_df_target_, + const bool& oobag_pred_, + const char& oobag_pred_type_, + const double& oobag_pred_horizon_, + const int& oobag_eval_every_, + const bool& oobag_importance_, + const char& oobag_importance_type_, + IntegerVector& tree_seeds, + const int& max_retry_, + Function f_beta, + const char& type_beta_, + Function f_oobag_eval, + const char& type_oobag_eval_, + const bool verbose_progress){ + + + // convert inputs into arma objects + x_input = mat(x.begin(), x.nrow(), x.ncol(), false); + + y_input = mat(y.begin(), y.nrow(), y.ncol(), false); + + w_user = vec(weights.begin(), weights.length(), false); + + // these change later in ostree_fit() + n_rows = x_input.n_rows; + n_vars = x_input.n_cols; + + // initialize the variable importance (vi) vectors + vi_pval_numer.zeros(n_vars); + vi_pval_denom.zeros(n_vars); + + // if(verbose > 0){ + // Rcout << "------------ dimensions ------------" << std::endl; + // Rcout << "N obs total: " << n_rows << std::endl; + // Rcout << "N columns total: " << n_vars << std::endl; + // Rcout << "------------------------------------"; + // Rcout << std::endl << std::endl << std::endl; + // } + + n_split = n_split_; + mtry = mtry_; + leaf_min_events = leaf_min_events_; + leaf_min_obs = leaf_min_obs_; + split_min_events = split_min_events_; + split_min_obs = split_min_obs_; + split_min_stat = split_min_stat_; + cph_method = cph_method_; + cph_eps = cph_eps_; + cph_iter_max = cph_iter_max_; + cph_do_scale = cph_do_scale_; + net_alpha = net_alpha_; + net_df_target = net_df_target_; + oobag_pred = oobag_pred_; + oobag_pred_type = oobag_pred_type_; + oobag_eval_every = oobag_eval_every_; + oobag_eval_counter = 0; + oobag_importance = oobag_importance_; + oobag_importance_type = oobag_importance_type_; + use_tree_seed = tree_seeds.length() > 0; + max_retry = max_retry_; + type_beta = type_beta_; + type_oobag_eval = type_oobag_eval_; + temp1 = 1.0 / n_rows; + + if(cph_iter_max > 1) cph_do_scale = true; + + if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; + + if(cph_iter_max == 1) cph_do_scale = false; + + + if(oobag_pred){ + + time_pred = oobag_pred_horizon_; + + if(time_pred == 0) time_pred = median(y_input.col(0)); + + eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); + + } else { + + eval_oobag.set_size(0); + + } + + // if(verbose > 0){ + // Rcout << "------------ input variables ------------" << std::endl; + // Rcout << "n_split: " << n_split << std::endl; + // Rcout << "mtry: " << mtry << std::endl; + // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; + // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; + // Rcout << "cph_method: " << cph_method << std::endl; + // Rcout << "cph_eps: " << cph_eps << std::endl; + // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; + // Rcout << "-----------------------------------------" << std::endl; + // Rcout << std::endl << std::endl; + // } + + // ---------------------------------------------------- + // ---- sample weights to mimic a bootstrap sample ---- + // ---------------------------------------------------- + + // s is the number of times you might get selected into + // a bootstrap sample. Realistically this won't be >10, + // but it could technically be as big as n_row. + IntegerVector s = seq(0, 10); + + // compute probability of being selected into the bootstrap + // 0 times, 1, times, ..., 9 times, or 10 times. + NumericVector probs = dbinom(s, n_rows, temp1, false); + + // --------------------------------------------- + // ---- preallocate memory for tree outputs ---- + // --------------------------------------------- + + cols_to_sample_01.zeros(n_vars); + leaf_nodes.zeros(n_rows, 3); + + if(oobag_pred){ + + surv_pvec.zeros(n_rows); + denom_pred.zeros(n_rows); + + } else { + + surv_pvec.set_size(0); + denom_pred.set_size(0); + + } + + // guessing the number of nodes needed to grow a tree + nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); + + betas.zeros(mtry, nodes_max_guess); + // x_mean.zeros(mtry, nodes_max_guess); + col_indices.zeros(mtry, nodes_max_guess); + cutpoints.zeros(nodes_max_guess); + children_left.zeros(nodes_max_guess); + leaf_indices.zeros(nodes_max_guess, 3); + + // some great variable names here + List forest(n_tree); + + for(tree = 0; tree < n_tree; ){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + // -------------------------------------------- + // ---- initialize parameters to grow tree ---- + // -------------------------------------------- + + // rows_inbag = find(w_inbag != 0); + + if(use_tree_seed) set_seed_r(tree_seeds[tree]); + + w_input = as(sample(s, n_rows, true, probs)); + + // if the user gives a weight vector, then each bootstrap weight + // should be multiplied by the corresponding user weight. + if(w_user.size() > 0) w_input = w_input % w_user; + + rows_oobag = find(w_input == 0); + rows_inbag = regspace(0, n_rows-1); + rows_inbag = std_setdiff(rows_inbag, rows_oobag); + w_inbag = w_input(rows_inbag); + + // if(verbose > 0){ + // + // Rcout << "------------ boot weights ------------" << std::endl; + // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; + // Rcout << "total: " << sum(w_inbag) << std::endl; + // Rcout << "N > 0: " << rows_inbag.size() << std::endl; + // Rcout << "--------------------------------------" << + // std::endl << std::endl << std::endl; + // + // } + + x_inbag = x_input.rows(rows_inbag); + y_inbag = y_input.rows(rows_inbag); + + if(oobag_pred){ + x_pred = x_input.rows(rows_oobag); + leaf_pred.set_size(rows_oobag.size()); + } + + // if(verbose > 0){ + // + // uword temp_uword_1, temp_uword_2; + // + // if(x_inbag.n_rows < 5) + // temp_uword_1 = x_inbag.n_rows-1; + // else + // temp_uword_1 = 5; + // + // if(x_inbag.n_cols < 5) + // temp_uword_2 = x_inbag.n_cols-1; + // else + // temp_uword_2 = 4; + // + // Rcout << "x inbag: " << std::endl << + // x_inbag.submat(0, 0, + // temp_uword_1, + // temp_uword_2) << std::endl; + // + // } + + if(verbose_progress){ + Rcout << "\r growing tree no. " << tree << " of " << n_tree; + } + + + forest[tree] = ostree_fit(f_beta); + + // add 1 to tree here instead of end of loop + // (more convenient to compute tree % oobag_eval_every) + tree++; + + + if(oobag_pred){ + + denom_pred(rows_oobag) += 1; + ostree_pred_leaf(); + oobag_pred_surv_uni(oobag_pred_type); + + if(tree % oobag_eval_every == 0){ + + switch(type_oobag_eval) { + + // H stands for Harrell's C-statistic + case 'H' : + + eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); + oobag_eval_counter++; + + break; + + // U stands for a user-supplied function + case 'U' : + + ww = wrap(surv_pvec); + + eval_oobag[oobag_eval_counter] = as( + f_oobag_eval(y, ww) + ); + + oobag_eval_counter++; + + break; + + } + + + } + + } + + } + + if(verbose_progress){ + Rcout << std::endl; + } + + vec vimp(x_input.n_cols); + + // ANOVA importance + if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; + + // if we are computing variable importance, surv_pvec is about + // to get modified, and we don't want to return the modified + // version of surv_pvec. + // So make a deep copy if oobag_importance is true. + // Make a shallow copy if oobag_importance is false + surv_pvec_output = vec(surv_pvec.begin(), + surv_pvec.size(), + oobag_importance); + + if(oobag_importance && n_tree > 0){ + + uvec betas_to_flip; + // vec betas_temp; + oobag_eval_counter--; + + for(uword variable = 0; variable < x_input.n_cols; ++variable){ + + surv_pvec.fill(0); + denom_pred.fill(0); + + for(tree = 0; tree < n_tree; ++tree){ + + ostree = forest[tree]; + + IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; + + rows_oobag = conv_to::from( + ivec(rows_oobag_.begin(), + rows_oobag_.length(), + false) + ); + + x_pred = x_input.rows(rows_oobag); + + if(oobag_importance_type == 'P'){ + x_pred.col(variable) = shuffle(x_pred.col(variable)); + } + + ostree_mem_xfer(); + + + if(oobag_importance_type == 'N'){ + betas_to_flip = find(col_indices == variable); + //betas_temp = betas.elem( betas_to_flip ); + betas.elem( betas_to_flip ) *= (-1); + //betas.elem( betas_to_flip ) *= 0; + } + + denom_pred(rows_oobag) += 1; + + leaf_pred.set_size(rows_oobag.size()); + + ostree_pred_leaf(); + + oobag_pred_surv_uni(oobag_pred_type); + + if(oobag_importance_type == 'N'){ + betas.elem( betas_to_flip ) *= (-1); + // betas.elem( betas_to_flip ) = betas_temp; + } + + } + + switch(type_oobag_eval) { + + // H stands for Harrell's C-statistic + case 'H' : + + vimp(variable) = eval_oobag[oobag_eval_counter] - + oobag_c_harrell(oobag_pred_type); + + break; + + // U stands for a user-supplied function + case 'U' : + + ww = wrap(surv_pvec); + + vimp(variable) = + eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); + + + break; + + } + + } + + } + + if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; + + return( + List::create( + _["forest"] = forest, + _["pred_oobag"] = surv_pvec_output, + _["pred_horizon"] = time_pred, + _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, + _["stat_type"] = type_oobag_eval), + _["importance"] = vimp + ) + ); + + +} + +// @description compute negation importance +// +// @param x matrix of predictors +// @param y outcome matrix +// @param forest forest object from an orsf_fit +// @param last_eval_stat the last estimate of out-of-bag error +// @param time_pred_ the prediction horizon +// @param f_oobag_eval function used to evaluate out-of-bag error +// @param pred_type_ the type of prediction to compute +// @param type_oobag_eval_ custom or default out-of-bag predictions +// +// @return a vector of importance values +// +// [[Rcpp::export]] +arma::vec orsf_oob_negate_vi(NumericMatrix& x, + NumericMatrix& y, + List& forest, + const double& last_eval_stat, + const double& time_pred_, + Function f_oobag_eval, + const char& pred_type_, + const char& type_oobag_eval_){ + + x_input = mat(x.begin(), x.nrow(), x.ncol(), false); + y_input = mat(y.begin(), y.nrow(), y.ncol(), false); + + time_pred = time_pred_; + type_oobag_eval = type_oobag_eval_; + oobag_pred_type = pred_type_; + + vec vimp(x_input.n_cols); + + uvec betas_to_flip; + // vec betas_temp; + uword variable; + + denom_pred.set_size(x_input.n_rows); + surv_pvec.set_size(x_input.n_rows); + + for(variable = 0; variable < x_input.n_cols; ++variable){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + surv_pvec.fill(0); + denom_pred.fill(0); + + for(tree = 0; tree < forest.length(); ++tree){ + + ostree = forest[tree]; + + IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; + + rows_oobag = conv_to::from( + ivec(rows_oobag_.begin(), + rows_oobag_.length(), + false) + ); + + x_pred = x_input.rows(rows_oobag); + + ostree_mem_xfer(); + + betas_to_flip = find(col_indices == variable); + + // betas_temp = betas.elem( betas_to_flip ); + // betas.elem( betas_to_flip ) *= 0; + + betas.elem( betas_to_flip ) *= (-1); + + denom_pred(rows_oobag) += 1; + + leaf_pred.set_size(rows_oobag.size()); + + ostree_pred_leaf(); + + oobag_pred_surv_uni(oobag_pred_type); + + betas.elem( betas_to_flip ) *= (-1); + // betas.elem( betas_to_flip ) = betas_temp; + + } + + switch(type_oobag_eval) { + + // H stands for Harrell's C-statistic + case 'H' : + + vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); + + break; + + // U stands for a user-supplied function + case 'U' : + + ww = wrap(surv_pvec); + + vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); + + break; + + } + + } + + return(vimp); + +} + +// same as above but computes permutation importance instead of negation +// [[Rcpp::export]] +arma::vec orsf_oob_permute_vi(NumericMatrix& x, + NumericMatrix& y, + List& forest, + const double& last_eval_stat, + const double& time_pred_, + Function f_oobag_eval, + const char& pred_type_, + const char& type_oobag_eval_){ + + x_input = mat(x.begin(), x.nrow(), x.ncol(), false); + y_input = mat(y.begin(), y.nrow(), y.ncol(), false); + + time_pred = time_pred_; + type_oobag_eval = type_oobag_eval_; + oobag_pred_type = pred_type_; + + vec vimp(x_input.n_cols); + + uword variable; + + denom_pred.set_size(x_input.n_rows); + surv_pvec.set_size(x_input.n_rows); + + for(variable = 0; variable < x_input.n_cols; ++variable){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + surv_pvec.fill(0); + denom_pred.fill(0); + + for(tree = 0; tree < forest.length(); ++tree){ + + ostree = forest[tree]; + + IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; + + rows_oobag = conv_to::from( + ivec(rows_oobag_.begin(), + rows_oobag_.length(), + false) + ); + + x_pred = x_input.rows(rows_oobag); + + x_pred.col(variable) = shuffle(x_pred.col(variable)); + + ostree_mem_xfer(); + + denom_pred(rows_oobag) += 1; + + leaf_pred.set_size(rows_oobag.size()); + + ostree_pred_leaf(); + + oobag_pred_surv_uni(oobag_pred_type); + + // x_variable = x_variable_original; + // x_input.col(variable) = x_variable; + + } + + switch(type_oobag_eval) { + + // H stands for Harrell's C-statistic + case 'H' : + + vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); + + break; + + // U stands for a user-supplied function + case 'U' : + + ww = wrap(surv_pvec); + + vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); + + break; + + } + + } + + return(vimp); + +} + +// predictions from an oblique random survival forest +// +// @description makes predictions based on a single horizon +// +// @param forest forest object from orsf_fit object +// @param x_new matrix of predictors +// @param time_dbl prediction horizon +// @param pred_type type of prediction to compute +// +// [[Rcpp::export]] +arma::mat orsf_pred_uni(List& forest, + NumericMatrix& x_new, + double time_dbl, + char pred_type){ + + x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); + time_pred = time_dbl; + + // memory for outputs + leaf_pred.set_size(x_pred.n_rows); + surv_pvec.zeros(x_pred.n_rows); + + for(tree = 0; tree < forest.length(); ++tree){ + ostree = forest[tree]; + ostree_mem_xfer(); + ostree_pred_leaf(); + new_pred_surv_uni(pred_type); + } + + surv_pvec /= tree; + + if(pred_type == 'R'){ + return(1 - surv_pvec); + } else { + return(surv_pvec); + } + +} + +// same as above but makes predictions for multiple horizons +// [[Rcpp::export]] +arma::mat orsf_pred_multi(List& forest, + NumericMatrix& x_new, + NumericVector& time_vec, + char pred_type){ + + x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); + times_pred = vec(time_vec.begin(), time_vec.length(), false); + + // memory for outputs + // initial values don't matter for leaf_pred, + // but do matter for surv_pmat + leaf_pred.set_size(x_pred.n_rows); + surv_pmat.zeros(x_pred.n_rows, times_pred.size()); + + for(tree = 0; tree < forest.length(); ++tree){ + ostree = forest[tree]; + ostree_mem_xfer(); + ostree_pred_leaf(); + new_pred_surv_multi(pred_type); + } + + surv_pmat /= tree; + + if(pred_type == 'R'){ + return(1 - surv_pmat); + } else { + return(surv_pmat); + } + +} + +// partial dependence for new data +// +// @description calls predict on the data with a predictor fixed +// and then summarizes the predictions. +// +// @param forest a forest object from an orsf_fit object +// @param x_new_ matrix of predictors +// @param x_cols_ columns of variables of interest +// @param x_vals_ values to set these columsn to +// @param probs_ for quantiles +// @param time_dbl prediction horizon +// @param pred_type prediction type +// +// @return matrix with partial dependence +// [[Rcpp::export]] +arma::mat pd_new_smry(List& forest, + NumericMatrix& x_new_, + IntegerVector& x_cols_, + NumericMatrix& x_vals_, + NumericVector& probs_, + const double time_dbl, + char pred_type){ + + + uword pd_i; + + time_pred = time_dbl; + + x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); + + mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); + + uvec x_cols = conv_to::from( + ivec(x_cols_.begin(), x_cols_.length(), false) + ); + + vec probs = vec(probs_.begin(), probs_.length(), false); + + mat output_quantiles(probs.size(), x_vals.n_rows); + mat output_means(1, x_vals.n_rows); + + leaf_pred.set_size(x_pred.n_rows); + surv_pvec.set_size(x_pred.n_rows); + + for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + j = 0; + + surv_pvec.fill(0); + + for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ + + x_pred.col(*jit).fill(x_vals(pd_i, j)); + + } + + for(tree = 0; tree < forest.length(); ++tree){ + ostree = forest[tree]; + ostree_mem_xfer(); + ostree_pred_leaf(); + new_pred_surv_uni(pred_type); + } + + surv_pvec /= tree; + + if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } + + output_means.col(pd_i) = mean(surv_pvec); + output_quantiles.col(pd_i) = quantile(surv_pvec, probs); + + + } + + return(join_vert(output_means, output_quantiles)); + +} + + +// same as above but for out-of-bag data +// [[Rcpp::export]] +arma::mat pd_oob_smry(List& forest, + NumericMatrix& x_new_, + IntegerVector& x_cols_, + NumericMatrix& x_vals_, + NumericVector& probs_, + const double time_dbl, + char pred_type){ + + + uword pd_i; + + time_pred = time_dbl; + + mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); + + uvec x_cols = conv_to::from( + ivec(x_cols_.begin(), x_cols_.length(), false) + ); + + vec probs = vec(probs_.begin(), probs_.length(), false); + + mat output_quantiles(probs.size(), x_vals.n_rows); + mat output_means(1, x_vals.n_rows); + + x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); + denom_pred.set_size(x_input.n_rows); + surv_pvec.set_size(x_input.n_rows); + + for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + j = 0; + denom_pred.fill(0); + surv_pvec.fill(0); + + for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ + + x_input.col(*jit).fill(x_vals(pd_i, j)); + + } + + for(tree = 0; tree < forest.length(); ++tree){ + + ostree = forest[tree]; + + IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; + + rows_oobag = conv_to::from( + ivec(rows_oobag_.begin(), + rows_oobag_.length(), + false) + ); + + x_pred = x_input.rows(rows_oobag); + leaf_pred.set_size(x_pred.n_rows); + denom_pred(rows_oobag) += 1; + + ostree_mem_xfer(); + ostree_pred_leaf(); + oobag_pred_surv_uni(pred_type); + + + } + + if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } + + output_means.col(pd_i) = mean(surv_pvec); + output_quantiles.col(pd_i) = quantile(surv_pvec, probs); + + + } + + + return(join_vert(output_means, output_quantiles)); + +} + +// same as above but doesn't summarize the predictions +// [[Rcpp::export]] +arma::mat pd_new_ice(List& forest, + NumericMatrix& x_new_, + IntegerVector& x_cols_, + NumericMatrix& x_vals_, + NumericVector& probs_, + const double time_dbl, + char pred_type){ + + + uword pd_i; + + time_pred = time_dbl; + + x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); + + mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); + + uvec x_cols = conv_to::from( + ivec(x_cols_.begin(), x_cols_.length(), false) + ); + + vec probs = vec(probs_.begin(), probs_.length(), false); + + mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); + vec output_ids = output_ice.unsafe_col(0); + vec output_pds = output_ice.unsafe_col(1); + + uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); + + leaf_pred.set_size(x_pred.n_rows); + surv_pvec.set_size(x_pred.n_rows); + + for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + j = 0; + + surv_pvec.fill(0); + + for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ + + x_pred.col(*jit).fill(x_vals(pd_i, j)); + + } + + for(tree = 0; tree < forest.length(); ++tree){ + ostree = forest[tree]; + ostree_mem_xfer(); + ostree_pred_leaf(); + new_pred_surv_uni(pred_type); + } + + surv_pvec /= tree; + + if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } + + output_ids(pd_rows).fill(pd_i+1); + output_pds(pd_rows) = surv_pvec; + pd_rows += x_pred.n_rows; + + + } + + return(output_ice); + +} + +// same as above but out-of-bag and doesn't summarize the predictions +// [[Rcpp::export]] +arma::mat pd_oob_ice(List& forest, + NumericMatrix& x_new_, + IntegerVector& x_cols_, + NumericMatrix& x_vals_, + NumericVector& probs_, + const double time_dbl, + char pred_type){ + + + uword pd_i; + + time_pred = time_dbl; + + mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); + + uvec x_cols = conv_to::from( + ivec(x_cols_.begin(), x_cols_.length(), false) + ); + + x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); + + mat output_ice(x_vals.n_rows * x_input.n_rows, 2); + vec output_ids = output_ice.unsafe_col(0); + vec output_pds = output_ice.unsafe_col(1); + + uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); + + denom_pred.set_size(x_input.n_rows); + surv_pvec.set_size(x_input.n_rows); + + for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ + + // Abort the routine if user has pressed Ctrl + C or Escape in R. + Rcpp::checkUserInterrupt(); + + j = 0; + denom_pred.fill(0); + surv_pvec.fill(0); + + for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ + + x_input.col(*jit).fill(x_vals(pd_i, j)); + + } + + for(tree = 0; tree < forest.length(); ++tree){ + + ostree = forest[tree]; + + IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; + + rows_oobag = conv_to::from( + ivec(rows_oobag_.begin(), + rows_oobag_.length(), + false) + ); + + x_pred = x_input.rows(rows_oobag); + leaf_pred.set_size(x_pred.n_rows); + denom_pred(rows_oobag) += 1; + + ostree_mem_xfer(); + ostree_pred_leaf(); + oobag_pred_surv_uni(pred_type); + + + } + + if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } + + output_ids(pd_rows).fill(pd_i+1); + output_pds(pd_rows) = surv_pvec; + pd_rows += x_input.n_rows; + + + } + + return(output_ice); + +} diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index d41361a0..1fbb1430 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -210,6 +210,10 @@ oobag_R_function, n_thread); + // only used for survival + vec y_times = find_unique_event_times(y); + forest->set_unique_event_times(y_times); + // Load forest object if in prediction mode if(pred_mode){ @@ -220,9 +224,10 @@ std::vector> leaf_pred_horizon = loaded_forest["leaf_pred_horizon"]; std::vector> leaf_pred_surv = loaded_forest["leaf_pred_surv"]; std::vector> leaf_pred_chf = loaded_forest["leaf_pred_chf"]; + std::vector> leaf_pred_mort = loaded_forest["leaf_pred_mort"]; forest->load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf); + leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf, leaf_pred_mort); arma::mat pred_mat = forest->predict(oobag); @@ -247,9 +252,11 @@ forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); forest_out.push_back(forest->get_leaf_pred_surv(), "leaf_pred_surv"); forest_out.push_back(forest->get_leaf_pred_chf(), "leaf_pred_chf"); + forest_out.push_back(forest->get_leaf_pred_mort(), "leaf_pred_mort"); result.push_back(forest_out, "forest"); + result.push_back(forest->get_unique_event_times(), "unique_event_times"); result.push_back(forest->vi_numer, "vi_numer"); result.push_back(forest->vi_denom, "vi_denom"); diff --git a/src/utility.cpp b/src/utility.cpp index 25686f82..ad2686cc 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -90,6 +90,38 @@ } } + vec find_unique_event_times(mat y){ + + vec result(y.n_rows); + + // times should already be sorted from low to high + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + uword person = 0, i = 1; + + // find the first event time + while(y_status[person] == 0){person++;} + // assign it to first value in result + result[0] = y_time[person]; + + // find the rest (uniques only) + for( ; person < y.n_rows; person++){ + + // loop refers to i-1 in result, so i=0 was manually done above + if(result[i-1] != y_time[person] && y_status[person] == 1){ + result[i] = y_time[person]; + i++; + } + + } + + // resize preserves data (set_size does not) + result.resize(i); + + return(result); + + } + std::string uintToString(uint number) { return std::to_string(number); } diff --git a/src/utility.h b/src/utility.h index 48ac1988..70f77ff4 100644 --- a/src/utility.h +++ b/src/utility.h @@ -24,6 +24,8 @@ aorsf may be modified and distributed under the terms of the MIT license. */ void equalSplit(std::vector& result, uint start, uint end, uint num_parts); + arma::vec find_unique_event_times(arma::mat y); + void print_mat(arma::mat& x, std::string label, From 3315fce9e1c793074b655648db15cadb7d1dcc24 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 4 Sep 2023 14:42:42 -0400 Subject: [PATCH 057/103] more unique random number generators --- src/Forest.cpp | 18 ------------------ src/Tree.cpp | 14 +++++++------- 2 files changed, 7 insertions(+), 25 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index fb6ffd97..97e3b83b 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -177,24 +177,6 @@ void Forest::grow() { init_trees(); - // if multi-threading isn't required - // if(n_thread == 1){ - // - // vec* vi_numer_ptr = &this->vi_numer; - // uvec* vi_denom_ptr = &this->vi_denom; - // - // for(uint i = 0; i < n_tree; ++i){ - // - // // Abort if user has pressed Ctrl + C or Escape in R. - // checkUserInterrupt(); - // trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - // - // } - // - // return; - // - // } - // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); // catch interrupts from threads diff --git a/src/Tree.cpp b/src/Tree.cpp index ba5de4b3..c2491e54 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -144,11 +144,11 @@ // Start with all samples OOB vec w_inbag(n, fill::zeros); - std::uniform_int_distribution unif_dist(0, n - 1); + std::uniform_int_distribution udist_rows(0, n - 1); // sample with replacement for (i = 0; i < n; ++i) { - draw = unif_dist(random_number_generator); + draw = udist_rows(random_number_generator); ++w_inbag[draw]; } @@ -174,13 +174,13 @@ std::vector temp; temp.resize(n_cols_total, false); - std::uniform_int_distribution unif_dist(0, n_cols_total - 1); + std::uniform_int_distribution udist_cols(0, n_cols_total - 1); uword i, draw; for (i = 0; i < n_cols_total; ++i) { - do { draw = unif_dist(random_number_generator); } while (temp[draw]); + do { draw = udist_cols(random_number_generator); } while (temp[draw]); temp[draw] = true; @@ -521,19 +521,19 @@ cuts_sampled.set_size(split_max_cuts); - std::uniform_int_distribution cut_sample_dist(0, cuts_all.size() - 1); + std::uniform_int_distribution udist_cuts(0, cuts_all.size() - 1); // sample without replacement for (uword i = 0; i < split_max_cuts; ++i) { - uword draw = cut_sample_dist(random_number_generator); + uword draw = udist_cuts(random_number_generator); // Ensure the drawn number is not already in the sample while (std::find(cuts_sampled.begin(), cuts_sampled.end(), cuts_all[draw]) != cuts_sampled.end()) { - draw = cut_sample_dist(random_number_generator); + draw = udist_cuts(random_number_generator); } From 58d38541c9d0ad233dc53cfbca7f406d54ab2463 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 4 Sep 2023 21:55:10 -0400 Subject: [PATCH 058/103] working shell for survival forest --- src/ForestSurvival.cpp | 15 +++++++++++++++ src/ForestSurvival.h | 29 +++++++++++++++++++++++++++++ src/orsf_oop.cpp | 3 ++- 3 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 src/ForestSurvival.cpp create mode 100644 src/ForestSurvival.h diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp new file mode 100644 index 00000000..eaae2a4e --- /dev/null +++ b/src/ForestSurvival.cpp @@ -0,0 +1,15 @@ +// Forest.cpp + +#include +#include "ForestSurvival.h" + +using namespace arma; +using namespace Rcpp; + +namespace aorsf { + +ForestSurvival::ForestSurvival() { } + +} + + diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h new file mode 100644 index 00000000..001bc6f0 --- /dev/null +++ b/src/ForestSurvival.h @@ -0,0 +1,29 @@ + +// Forest.h + +#ifndef ForestSurvival_H +#define ForestSurvival_H + +#include "Data.h" +#include "globals.h" +#include "Forest.h" + +namespace aorsf { + +class ForestSurvival: public Forest { + +public: + + ForestSurvival(); + + ForestSurvival(const ForestSurvival&) = delete; + ForestSurvival& operator=(const ForestSurvival&) = delete; + + +}; + +} + + + +#endif /* Forest_H */ diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 1fbb1430..a9c2378c 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -15,6 +15,7 @@ #include "Data.h" #include "Tree.h" #include "Forest.h" +#include "ForestSurvival.h" #include "Coxph.h" #include "NodeSplitStats.h" @@ -178,7 +179,7 @@ // R functions cannot be called from multiple threads if(lincomb_type == R_FUNCTION){ n_thread = 1; } - forest = std::make_unique(); + forest = std::make_unique(); forest->init(std::move(data), tree_seeds, From eaeaeee50df6063b1845d1459c86daab01550f63 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 4 Sep 2023 22:12:50 -0400 Subject: [PATCH 059/103] bigger shell for ForestSurvival --- src/Forest.cpp | 39 --------------------------------------- src/Forest.h | 12 ++---------- src/ForestSurvival.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ src/ForestSurvival.h | 11 +++++++++++ src/orsf_oop.cpp | 5 +++-- 5 files changed, 56 insertions(+), 51 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 97e3b83b..0e4f8899 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -11,45 +11,6 @@ namespace aorsf { Forest::Forest(){ } -void Forest::load(arma::uword n_tree, - std::vector>& forest_cutpoint, - std::vector>& forest_child_left, - std::vector>& forest_coef_values, - std::vector>& forest_coef_indices, - std::vector>& forest_leaf_pred_horizon, - std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf, - std::vector>& forest_leaf_pred_mort) { - - this->n_tree = n_tree; - - if(VERBOSITY > 0){ - Rcout << "---- loading forest from input list ----"; - Rcout << std::endl << std::endl; - } - - - // Create trees - trees.reserve(n_tree); - - for (uword i = 0; i < n_tree; ++i) { - trees.push_back( - std::make_unique(forest_cutpoint[i], - forest_child_left[i], - forest_coef_values[i], - forest_coef_indices[i], - forest_leaf_pred_horizon[i], - forest_leaf_pred_surv[i], - forest_leaf_pred_chf[i], - forest_leaf_pred_mort[i]) - ); - } - - // Create thread ranges - equalSplit(thread_ranges, 0, n_tree - 1, n_thread); - -} - void Forest::init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, diff --git a/src/Forest.h b/src/Forest.h index edc24e99..4af03cc7 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -28,17 +28,9 @@ class Forest { // deleting the copy assignment operator Forest& operator=(const Forest&) = delete; - // Methods + virtual ~Forest() = default; - void load(arma::uword n_tree, - std::vector>& forest_cutpoint, - std::vector>& forest_child_left, - std::vector>& forest_coef_values, - std::vector>& forest_coef_indices, - std::vector>& forest_leaf_pred_horizon, - std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf, - std::vector>& forest_leaf_pred_mort); + // Methods void init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index eaae2a4e..e3a9860c 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -10,6 +10,46 @@ namespace aorsf { ForestSurvival::ForestSurvival() { } +void ForestSurvival::load(arma::uword n_tree, + std::vector>& forest_cutpoint, + std::vector>& forest_child_left, + std::vector>& forest_coef_values, + std::vector>& forest_coef_indices, + std::vector>& forest_leaf_pred_horizon, + std::vector>& forest_leaf_pred_surv, + std::vector>& forest_leaf_pred_chf, + std::vector>& forest_leaf_pred_mort) { + + this->n_tree = n_tree; + + if(VERBOSITY > 0){ + Rcout << "---- loading forest from input list ----"; + Rcout << std::endl << std::endl; + } + + + // Create trees + trees.reserve(n_tree); + + for (uword i = 0; i < n_tree; ++i) { + trees.push_back( + std::make_unique(forest_cutpoint[i], + forest_child_left[i], + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_horizon[i], + forest_leaf_pred_surv[i], + forest_leaf_pred_chf[i], + forest_leaf_pred_mort[i]) + ); + } + + // Create thread ranges + equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + +} + + } diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 001bc6f0..96544d1f 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -20,6 +20,17 @@ class ForestSurvival: public Forest { ForestSurvival& operator=(const ForestSurvival&) = delete; + void load(arma::uword n_tree, + std::vector>& forest_cutpoint, + std::vector>& forest_child_left, + std::vector>& forest_coef_values, + std::vector>& forest_coef_indices, + std::vector>& forest_leaf_pred_horizon, + std::vector>& forest_leaf_pred_surv, + std::vector>& forest_leaf_pred_chf, + std::vector>& forest_leaf_pred_mort); + + }; } diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a9c2378c..a0877fe0 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -227,8 +227,9 @@ std::vector> leaf_pred_chf = loaded_forest["leaf_pred_chf"]; std::vector> leaf_pred_mort = loaded_forest["leaf_pred_mort"]; - forest->load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf, leaf_pred_mort); + auto& temp = dynamic_cast(*forest); + temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, + leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf, leaf_pred_mort); arma::mat pred_mat = forest->predict(oobag); From 4ec93cfc3d0f1558e317871cfb2834e80166bfae Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 5 Sep 2023 08:41:56 -0400 Subject: [PATCH 060/103] shell for survival trees --- src/Forest.cpp | 11 ----------- src/Forest.h | 6 +++--- src/ForestSurvival.cpp | 24 ++++++++++++++++++------ src/ForestSurvival.h | 7 +++++-- src/TreeSurvival.cpp | 20 ++++++++++++++++++++ src/TreeSurvival.h | 29 +++++++++++++++++++++++++++++ 6 files changed, 75 insertions(+), 22 deletions(-) create mode 100644 src/TreeSurvival.cpp create mode 100644 src/TreeSurvival.h diff --git a/src/Forest.cpp b/src/Forest.cpp index 0e4f8899..afa4a114 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -123,17 +123,6 @@ void Forest::init_trees(){ } -// growInternal() in ranger -void Forest::plant() { - - trees.reserve(n_tree); - - for (arma::uword i = 0; i < n_tree; ++i) { - trees.push_back(std::make_unique()); - } - -} - void Forest::grow() { init_trees(); diff --git a/src/Forest.h b/src/Forest.h index 4af03cc7..3be995fe 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -1,8 +1,8 @@ // Forest.h -#ifndef Forest_H -#define Forest_H +#ifndef FOREST_H +#define FOREST_H #include "Data.h" #include "globals.h" @@ -77,7 +77,7 @@ class Forest { vec* vi_numer_ptr, uvec* vi_denom_ptr); - void plant(); + virtual void plant() = 0; arma::mat predict(bool oobag); diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index e3a9860c..47fb2b0e 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -2,6 +2,7 @@ #include #include "ForestSurvival.h" +#include "TreeSurvival.h" using namespace arma; using namespace Rcpp; @@ -35,12 +36,12 @@ void ForestSurvival::load(arma::uword n_tree, trees.push_back( std::make_unique(forest_cutpoint[i], forest_child_left[i], - forest_coef_values[i], - forest_coef_indices[i], - forest_leaf_pred_horizon[i], - forest_leaf_pred_surv[i], - forest_leaf_pred_chf[i], - forest_leaf_pred_mort[i]) + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_horizon[i], + forest_leaf_pred_surv[i], + forest_leaf_pred_chf[i], + forest_leaf_pred_mort[i]) ); } @@ -49,6 +50,17 @@ void ForestSurvival::load(arma::uword n_tree, } +// growInternal() in ranger +void ForestSurvival::plant() { + + trees.reserve(n_tree); + + for (arma::uword i = 0; i < n_tree; ++i) { + trees.push_back(std::make_unique()); + } + +} + } diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 96544d1f..08b27b51 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -1,8 +1,8 @@ // Forest.h -#ifndef ForestSurvival_H -#define ForestSurvival_H +#ifndef FORESTSURVIVAL_H +#define FORESTSURVIVAL_H #include "Data.h" #include "globals.h" @@ -30,6 +30,9 @@ class ForestSurvival: public Forest { std::vector>& forest_leaf_pred_chf, std::vector>& forest_leaf_pred_mort); + // growInternal() in ranger + void plant() override; + }; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp new file mode 100644 index 00000000..b9befdf6 --- /dev/null +++ b/src/TreeSurvival.cpp @@ -0,0 +1,20 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#include +#include "TreeSurvival.h" +#include "Coxph.h" +#include "NodeSplitStats.h" + + using namespace arma; + using namespace Rcpp; + + namespace aorsf { + + TreeSurvival::TreeSurvival() { } + + } // namespace aorsf + diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h new file mode 100644 index 00000000..7c1f8937 --- /dev/null +++ b/src/TreeSurvival.h @@ -0,0 +1,29 @@ +/*----------------------------------------------------------------------------- + This file is part of aorsf. + Author: Byron C Jaeger + aorsf may be modified and distributed under the terms of the MIT license. +#----------------------------------------------------------------------------*/ + +#ifndef TREESURVIVAL_H_ +#define TREESURVIVAL_H_ + + +#include "Data.h" +#include "globals.h" +#include "Tree.h" + + namespace aorsf { + + class TreeSurvival: public Tree { + + public: + + TreeSurvival(); + TreeSurvival(const TreeSurvival&) = delete; + TreeSurvival& operator=(const TreeSurvival&) = delete; + + }; + + } // namespace aorsf + +#endif /* TREESURVIVAL_H_ */ From b372d5b2dc8f468e9389bd53afb28636c8f91c0b Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 5 Sep 2023 16:49:36 -0400 Subject: [PATCH 061/103] slowly transferring code to survival classes --- src/Forest.cpp | 5 - src/Forest.h | 3 - src/ForestSurvival.cpp | 14 +++ src/ForestSurvival.h | 5 + src/Tree.cpp | 93 ++++++++----------- src/Tree.h | 9 +- src/TreeSurvival.cpp | 205 +++++++++++++++++++++++++++++++++++++++++ src/TreeSurvival.h | 6 ++ src/orsf_oop.cpp | 14 ++- 9 files changed, 282 insertions(+), 72 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index afa4a114..02091aed 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -18,11 +18,9 @@ void Forest::init(std::unique_ptr input_data, VariableImportance vi_type, double vi_max_pvalue, // leaves - double leaf_min_events, double leaf_min_obs, // node splitting SplitRule split_rule, - double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, @@ -39,7 +37,6 @@ void Forest::init(std::unique_ptr input_data, // predictions PredType pred_type, bool pred_mode, - arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, @@ -51,10 +48,8 @@ void Forest::init(std::unique_ptr input_data, this->mtry = mtry; this->vi_type = vi_type; this->vi_max_pvalue = vi_max_pvalue; - this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; this->split_rule = split_rule; - this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; this->split_min_stat = split_min_stat; this->split_max_cuts = split_max_cuts; diff --git a/src/Forest.h b/src/Forest.h index 3be995fe..89269c0a 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -39,11 +39,9 @@ class Forest { VariableImportance vi_type, double vi_max_pvalue, // leaves - double leaf_min_events, double leaf_min_obs, // node splitting SplitRule split_rule, - double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, @@ -60,7 +58,6 @@ class Forest { // predictions PredType pred_type, bool pred_mode, - arma::vec pred_horizon, bool oobag_pred, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 47fb2b0e..138f8c16 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -11,6 +11,20 @@ namespace aorsf { ForestSurvival::ForestSurvival() { } +ForestSurvival::ForestSurvival(double leaf_min_events, + double split_min_events, + arma::vec& pred_horizon, + arma::vec& unique_event_times){ + + this->leaf_min_events = leaf_min_events; + this->split_min_events = split_min_events; + this->pred_horizon = pred_horizon; + this->unique_event_times = unique_event_times; + +} + + + void ForestSurvival::load(arma::uword n_tree, std::vector>& forest_cutpoint, std::vector>& forest_child_left, diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 08b27b51..d4e908b4 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -16,6 +16,11 @@ class ForestSurvival: public Forest { ForestSurvival(); + ForestSurvival(double leaf_min_events, + double split_min_events, + arma::vec& pred_horizon, + arma::vec& unique_event_times); + ForestSurvival(const ForestSurvival&) = delete; ForestSurvival& operator=(const ForestSurvival&) = delete; diff --git a/src/Tree.cpp b/src/Tree.cpp index c2491e54..3af1806b 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -266,20 +266,23 @@ y_node = y_inbag.rows(rows_node); w_node = w_inbag(rows_node); - double n_risk = sum(w_node); - double n_events = sum(y_node.col(1) % w_node); + bool result = is_node_splittable_internal(); - return(n_events >= 2*leaf_min_events && - n_risk >= 2*leaf_min_obs && - n_events >= split_min_events && - n_risk >= split_min_obs); + return(result); } + bool Tree::is_node_splittable_internal(){ - uvec Tree::find_cutpoints(){ + double n_obs = sum(w_node); - vec y_status = y_node.unsafe_col(1); + return(n_obs >= 2*leaf_min_obs && + n_obs >= split_min_obs); + + } + + + uvec Tree::find_cutpoints(){ // placeholder with values indicating invalid cps uvec output; @@ -288,7 +291,7 @@ uvec::iterator it, it_min, it_max; - double n_events = 0, n_risk = 0; + double n_obs = 0; if(VERBOSITY > 1){ Rcout << "----- finding lower bound for cut-points -----" << std::endl; @@ -297,16 +300,7 @@ // stop at end-1 b/c we access it+1 in lincomb_sort for(it = lincomb_sort.begin(); it < lincomb_sort.end()-1; ++it){ - n_events += y_status[*it] * w_node[*it]; - n_risk += w_node[*it]; - - - if(VERBOSITY > 2){ - Rcout << "current value: "<< lincomb(*it) << " -- "; - Rcout << "next: "<< lincomb(*(it+1)) << " -- "; - Rcout << "N events: " << n_events << " -- "; - Rcout << "N risk: " << n_risk << std::endl; - } + n_obs += w_node[*it]; // If we want to make the current value of lincomb a cut-point, we need // to make sure the next value of lincomb isn't equal to this current value. @@ -314,14 +308,12 @@ if(lincomb[*it] != lincomb[*(it+1)]){ - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { + if(n_obs >= leaf_min_obs) { if(VERBOSITY > 0){ Rcout << std::endl; Rcout << "lower cutpoint: " << lincomb(*it) << std::endl; - Rcout << " - n_events, left node: " << n_events << std::endl; - Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << " - n_obs, left node: " << n_obs << std::endl; Rcout << std::endl; } @@ -349,7 +341,7 @@ j = it - lincomb_sort.begin(); // reset before finding the upper limit - n_events=0, n_risk=0; + n_obs=0; if(VERBOSITY > 1){ Rcout << "----- finding upper bound for cut-points -----" << std::endl; @@ -358,20 +350,11 @@ // stop at beginning+1 b/c we access it-1 in lincomb_sort for(it = lincomb_sort.end()-1; it >= lincomb_sort.begin()+1; --it){ - n_events += y_status[*it] * w_node[*it]; - n_risk += w_node[*it]; - - if(VERBOSITY > 2){ - Rcout << "current value: "<< lincomb(*it) << " ---- "; - Rcout << "next value: "<< lincomb(*(it-1)) << " ---- "; - Rcout << "N events: " << n_events << " ---- "; - Rcout << "N risk: " << n_risk << std::endl; - } + n_obs += w_node[*it]; if(lincomb[*it] != lincomb[*(it-1)]){ - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { + if(n_obs >= leaf_min_obs) { // the upper cutpoint needs to be one step below the current // it value, because we use x <= cp to determine whether a @@ -386,8 +369,7 @@ if(VERBOSITY > 0){ Rcout << std::endl; Rcout << "upper cutpoint: " << lincomb(*it) << std::endl; - Rcout << " - n_events, right node: " << n_events << std::endl; - Rcout << " - n_risk, right node: " << n_risk << std::endl; + Rcout << " - n_obs, right node: " << n_obs << std::endl; Rcout << std::endl; } @@ -733,6 +715,23 @@ } + double Tree::compute_max_leaves(){ + + // find maximum number of leaves for this tree + // there are two ways to have maximal tree size: + vec max_leaves_2ways = { + // 1. every leaf node has exactly leaf_min_obs, + n_obs_inbag / leaf_min_obs, + // 2. every leaf node has exactly split_min_obs - 1, + n_obs_inbag / (split_min_obs - 1) + }; + + double max_leaves = std::ceil(max(max_leaves_2ways)); + + return(max_leaves); + + } + double Tree::compute_mortality(arma::mat& leaf_data){ double result = 0; @@ -781,24 +780,8 @@ node_assignments.zeros(n_rows_inbag); - // find maximum number of leaves for this tree - // there are four ways to have maximal tree size: - vec max_leaves_4ways = { - // 1. every leaf node has exactly leaf_min_obs, - n_obs_inbag / leaf_min_obs, - // 2. every leaf node has exactly leaf_min_events, - n_events_inbag / leaf_min_events, - // 3. every leaf node has exactly split_min_obs - 1, - n_obs_inbag / (split_min_obs - 1), - // 4. every leaf node has exactly split_min_events-1 - n_events_inbag / (split_min_events - 1) - }; - - // number of nodes total in binary tree is 2*L - 1, - // where L is the number of leaf nodes in the tree. - // (can prove by induction) - double max_leaves = std::ceil(max(max_leaves_4ways)); - double max_nodes = (2 * max_leaves) - 1; + this->max_leaves = compute_max_leaves(); + this->max_nodes = (2 * max_leaves) - 1; if(VERBOSITY > 0){ diff --git a/src/Tree.h b/src/Tree.h index 65a546b5..755d9674 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -68,7 +68,9 @@ bool is_node_splittable(arma::uword node_id); - arma::uvec find_cutpoints(); + virtual bool is_node_splittable_internal(); + + virtual arma::uvec find_cutpoints(); double score_logrank(); @@ -76,6 +78,8 @@ void node_sprout(arma::uword node_id); + virtual double compute_max_leaves(); + double compute_mortality(arma::mat& leaf_data); void grow(arma::vec* vi_numer, @@ -150,6 +154,9 @@ double n_obs_inbag; double n_events_inbag; + double max_nodes; + double max_leaves; + // views of data arma::mat x_inbag; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index b9befdf6..238c36c7 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -16,5 +16,210 @@ TreeSurvival::TreeSurvival() { } + double TreeSurvival::compute_max_leaves(){ + + // find maximum number of leaves for this tree + // there are four ways to have maximal tree size: + vec max_leaves_4ways = { + // 1. every leaf node has exactly leaf_min_obs, + n_obs_inbag / leaf_min_obs, + // 2. every leaf node has exactly leaf_min_events, + n_events_inbag / leaf_min_events, + // 3. every leaf node has exactly split_min_obs - 1, + n_obs_inbag / (split_min_obs - 1), + // 4. every leaf node has exactly split_min_events-1 + n_events_inbag / (split_min_events - 1) + }; + + // number of nodes total in binary tree is 2*L - 1, + // where L is the number of leaf nodes in the tree. + // (can prove by induction) + double max_leaves = std::ceil(max(max_leaves_4ways)); + + return(max_leaves); + + } + + bool TreeSurvival::is_node_splittable_internal(){ + + double n_risk = sum(w_node); + double n_events = sum(y_node.col(1) % w_node); + + return(n_events >= 2*leaf_min_events && + n_risk >= 2*leaf_min_obs && + n_events >= split_min_events && + n_risk >= split_min_obs); + + } + + uvec TreeSurvival::find_cutpoints(){ + + vec y_status = y_node.unsafe_col(1); + + // placeholder with values indicating invalid cps + uvec output; + + uword i, j, k; + + uvec::iterator it, it_min, it_max; + + double n_events = 0, n_risk = 0; + + if(VERBOSITY > 1){ + Rcout << "----- finding lower bound for cut-points -----" << std::endl; + } + + // stop at end-1 b/c we access it+1 in lincomb_sort + for(it = lincomb_sort.begin(); it < lincomb_sort.end()-1; ++it){ + + n_events += y_status[*it] * w_node[*it]; + n_risk += w_node[*it]; + + + if(VERBOSITY > 2){ + Rcout << "current value: "<< lincomb(*it) << " -- "; + Rcout << "next: "<< lincomb(*(it+1)) << " -- "; + Rcout << "N events: " << n_events << " -- "; + Rcout << "N risk: " << n_risk << std::endl; + } + + // If we want to make the current value of lincomb a cut-point, we need + // to make sure the next value of lincomb isn't equal to this current value. + // Otherwise, we will have the same value of lincomb in both groups! + + if(lincomb[*it] != lincomb[*(it+1)]){ + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + if(VERBOSITY > 0){ + Rcout << std::endl; + Rcout << "lower cutpoint: " << lincomb(*it) << std::endl; + Rcout << " - n_events, left node: " << n_events << std::endl; + Rcout << " - n_risk, left node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + it_min = it; + + if(it == lincomb_sort.end()-1) { + + if(VERBOSITY > 1){ + Rcout << "Could not find a valid cut-point" << std::endl; + } + + return(output); + + } + + // j = number of steps we have taken forward in lincomb + j = it - lincomb_sort.begin(); + + // reset before finding the upper limit + n_events=0, n_risk=0; + + if(VERBOSITY > 1){ + Rcout << "----- finding upper bound for cut-points -----" << std::endl; + } + + // stop at beginning+1 b/c we access it-1 in lincomb_sort + for(it = lincomb_sort.end()-1; it >= lincomb_sort.begin()+1; --it){ + + n_events += y_status[*it] * w_node[*it]; + n_risk += w_node[*it]; + + if(VERBOSITY > 2){ + Rcout << "current value: "<< lincomb(*it) << " ---- "; + Rcout << "next value: "<< lincomb(*(it-1)) << " ---- "; + Rcout << "N events: " << n_events << " ---- "; + Rcout << "N risk: " << n_risk << std::endl; + } + + if(lincomb[*it] != lincomb[*(it-1)]){ + + if( n_events >= leaf_min_events && + n_risk >= leaf_min_obs ) { + + // the upper cutpoint needs to be one step below the current + // it value, because we use x <= cp to determine whether a + // value x goes to the left node versus the right node. So, + // if it currently points to 3, and the next value down is 2, + // then we want to say the cut-point is 2 because then all + // values <= 2 will go left, and 3 will go right. This matters + // when 3 is the highest value in the vector. + + --it; + + if(VERBOSITY > 0){ + Rcout << std::endl; + Rcout << "upper cutpoint: " << lincomb(*it) << std::endl; + Rcout << " - n_events, right node: " << n_events << std::endl; + Rcout << " - n_risk, right node: " << n_risk << std::endl; + Rcout << std::endl; + } + + break; + + } + + } + + } + + it_max = it; + + // k = n steps from beginning of sorted lincomb to current it + k = it - lincomb_sort.begin(); + + if(j > k){ + + if(VERBOSITY > 0) { + Rcout << "Could not find valid cut-points" << std::endl; + } + + return(output); + + } + + // only one valid cutpoint + if(j == k){ + + output = {j}; + return(output); + + } + + i = 0; + uvec output_middle(k-j); + + for(it = it_min+1; + it < it_max; ++it){ + if(lincomb[*it] != lincomb[*(it+1)]){ + output_middle[i] = it - lincomb_sort.begin(); + i++; + } + } + + output_middle.resize(i); + + uvec output_left = {j}; + uvec output_right = {k}; + + output = join_vert(output_left, output_middle, output_right); + + return(output); + + } + + + } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 7c1f8937..393057e9 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -22,6 +22,12 @@ TreeSurvival(const TreeSurvival&) = delete; TreeSurvival& operator=(const TreeSurvival&) = delete; + double compute_max_leaves() override; + + bool is_node_splittable_internal() override; + + arma::uvec find_cutpoints() override; + }; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a0877fe0..6f60d984 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -179,7 +179,12 @@ // R functions cannot be called from multiple threads if(lincomb_type == R_FUNCTION){ n_thread = 1; } - forest = std::make_unique(); + vec y_times = find_unique_event_times(y); + + forest = std::make_unique(leaf_min_events, + split_min_events, + pred_horizon, + y_times); forest->init(std::move(data), tree_seeds, @@ -187,10 +192,8 @@ mtry, vi_type, vi_max_pvalue, - leaf_min_events, leaf_min_obs, split_rule, - split_min_events, split_min_obs, split_min_stat, split_max_cuts, @@ -205,16 +208,11 @@ lincomb_R_function, pred_type, pred_mode, - pred_horizon, oobag, oobag_eval_every, oobag_R_function, n_thread); - // only used for survival - vec y_times = find_unique_event_times(y); - forest->set_unique_event_times(y_times); - // Load forest object if in prediction mode if(pred_mode){ From 27f96ac5a26ba7a3671dc152c8a5b108af5fe70c Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 6 Sep 2023 10:37:30 -0400 Subject: [PATCH 062/103] prep to use arma field for leaf data --- src/Tree.cpp | 86 +++++----------------------- src/Tree.h | 4 +- src/TreeSurvival.cpp | 130 +++++++++++++++++++++++++++++++++++++++++++ src/TreeSurvival.h | 6 ++ 4 files changed, 152 insertions(+), 74 deletions(-) diff --git a/src/Tree.cpp b/src/Tree.cpp index 3af1806b..92901bf2 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -211,20 +211,15 @@ for (i = rows_node.begin(); i != rows_node.end(); ++i) { - // if event occurred for this observation - if(y_inbag.at(*i, 1) == 1){ + if(x_first_undef){ - if(x_first_undef){ + x_first_value = x_inbag.at(*i, j); + x_first_undef = false; - x_first_value = x_inbag.at(*i, j); - x_first_undef = false; - - } else { - - if(x_inbag.at(*i, j) != x_first_value){ - return(true); - } + } else { + if(x_inbag.at(*i, j) != x_first_value){ + return(true); } } @@ -234,11 +229,6 @@ if(VERBOSITY > 1){ mat x_print = x_inbag.rows(rows_node); - mat y_print = y_inbag.rows(rows_node); - - uvec rows_event = find(y_print.col(1) == 1); - x_print = x_print.rows(rows_event); - Rcout << "Column " << j << " was sampled but "; Rcout << "unique values of column " << j << " are "; Rcout << unique(x_print.col(j)) << std::endl; @@ -426,65 +416,16 @@ } - double Tree::score_logrank(){ - - double - n_risk=0, - g_risk=0, - observed=0, - expected=0, - V=0, - temp1, - temp2, - n_events; - - vec y_time = y_node.unsafe_col(0); - vec y_status = y_node.unsafe_col(1); - - bool break_loop = false; - - uword i = y_node.n_rows-1; - - // breaking condition of outer loop governed by inner loop - for (; ;){ - - temp1 = y_time[i]; + double Tree::compute_split_score(){ - n_events = 0; + // default method is to pick one completely at random + // (this won't stay the default - it's a placeholder) - for ( ; y_time[i] == temp1; i--) { + std::normal_distribution ndist_score(0, 1); - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += g_node[i] * w_node[i]; - observed += y_status[i] * g_node[i] * w_node[i]; + double result = ndist_score(random_number_generator); - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but in practice its often faster to multiply by 0 - // versus check if n_events is > 0. - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - - return(pow(expected-observed, 2) / V); + return(result); } @@ -561,7 +502,8 @@ // flip node assignments from left to right, up to the next cutpoint g_node.elem(lincomb_sort.subvec(it_start, *it)).fill(0); // compute split statistics with this cut-point - stat = score_logrank(); + stat = compute_split_score(); + // stat = score_logrank(); // update leaderboard if(stat > stat_best) { stat_best = stat; it_best = *it; } // set up next loop run diff --git a/src/Tree.h b/src/Tree.h index 755d9674..a98d1b38 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -64,7 +64,7 @@ void sample_cols(); - bool is_col_splittable(arma::uword j); + virtual bool is_col_splittable(arma::uword j); bool is_node_splittable(arma::uword node_id); @@ -72,7 +72,7 @@ virtual arma::uvec find_cutpoints(); - double score_logrank(); + virtual double compute_split_score(); double node_split(arma::uvec& cuts_all); diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 238c36c7..a123628a 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -40,6 +40,58 @@ } + bool TreeSurvival::is_col_splittable(uword j){ + + uvec::iterator i; + + // initialize as 0 but do not make comparisons until x_first_value + // is formally defined at the first instance of status == 1 + double x_first_value=0; + + bool x_first_undef = true; + + for (i = rows_node.begin(); i != rows_node.end(); ++i) { + + // if event occurred for this observation + // column is only splittable if X is non-constant among + // observations where an event occurred. + if(y_inbag.at(*i, 1) == 1){ + + if(x_first_undef){ + + x_first_value = x_inbag.at(*i, j); + x_first_undef = false; + + } else { + + if(x_inbag.at(*i, j) != x_first_value){ + return(true); + } + + } + + } + + } + + if(VERBOSITY > 1){ + + mat x_print = x_inbag.rows(rows_node); + mat y_print = y_inbag.rows(rows_node); + + uvec rows_event = find(y_print.col(1) == 1); + x_print = x_print.rows(rows_event); + + Rcout << "Column " << j << " was sampled but "; + Rcout << "unique values of column " << j << " are "; + Rcout << unique(x_print.col(j)) << std::endl; + + } + + return(false); + + } + bool TreeSurvival::is_node_splittable_internal(){ double n_risk = sum(w_node); @@ -219,6 +271,84 @@ } + double TreeSurvival::compute_split_score(){ + + double result; + + switch (split_rule) { + + case SPLIT_LOGRANK: { + result = score_logrank(); + break; + } + + } + + return(result); + + } + + double TreeSurvival::score_logrank(){ + + double + n_risk=0, + g_risk=0, + observed=0, + expected=0, + V=0, + temp1, + temp2, + n_events; + + vec y_time = y_node.unsafe_col(0); + vec y_status = y_node.unsafe_col(1); + + bool break_loop = false; + + uword i = y_node.n_rows-1; + + // breaking condition of outer loop governed by inner loop + for (; ;){ + + temp1 = y_time[i]; + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w_node[i]; + n_events += y_status[i] * w_node[i]; + g_risk += g_node[i] * w_node[i]; + observed += y_status[i] * g_node[i] * w_node[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but in practice its often faster to multiply by 0 + // versus check if n_events is > 0. + + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + + return(pow(expected-observed, 2) / V); + + } } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 393057e9..3e0e7e14 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -24,10 +24,16 @@ double compute_max_leaves() override; + bool is_col_splittable(arma::uword j) override; + bool is_node_splittable_internal() override; arma::uvec find_cutpoints() override; + double compute_split_score() override; + + double score_logrank(); + }; } // namespace aorsf From 70dec0e96bb1e75a5d5078ead3a3d6f687bb8b69 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 7 Sep 2023 00:11:20 -0400 Subject: [PATCH 063/103] survival subclass functions --- src/Forest.h | 43 +------ src/ForestSurvival.cpp | 69 +++++++++-- src/ForestSurvival.h | 12 +- src/Makevars | 1 + src/Makevars.win | 1 + src/Tree.cpp | 228 +++-------------------------------- src/Tree.h | 41 ++----- src/TreeSurvival.cpp | 264 +++++++++++++++++++++++++++++++++++++++++ src/TreeSurvival.h | 34 ++++++ src/globals.h | 2 +- src/orsf_oop.cpp | 20 ++-- 11 files changed, 406 insertions(+), 309 deletions(-) diff --git a/src/Forest.h b/src/Forest.h index 89269c0a..9ccc5fc5 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -8,6 +8,7 @@ #include "globals.h" #include "utility.h" #include "Tree.h" +#include "TreeSurvival.h" #include #include @@ -153,53 +154,15 @@ class Forest { return result; } - std::vector> get_leaf_pred_horizon() { - std::vector> result; - - result.reserve(n_tree); - - for (auto& tree : trees) { - result.push_back(tree->get_leaf_pred_horizon()); - } - - return result; - - } - std::vector> get_leaf_pred_surv() { - - std::vector> result; - - result.reserve(n_tree); - - for (auto& tree : trees) { - result.push_back(tree->get_leaf_pred_surv()); - } - - return result; - - } - std::vector> get_leaf_pred_chf() { - - std::vector> result; - - result.reserve(n_tree); - - for (auto& tree : trees) { - result.push_back(tree->get_leaf_pred_chf()); - } - - return result; - - } - std::vector> get_leaf_pred_mort() { + std::vector> get_leaf_summary() { std::vector> result; result.reserve(n_tree); for (auto& tree : trees) { - result.push_back(tree->get_leaf_pred_mort()); + result.push_back(tree->get_leaf_summary()); } return result; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 138f8c16..8a75cbcc 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -30,10 +30,10 @@ void ForestSurvival::load(arma::uword n_tree, std::vector>& forest_child_left, std::vector>& forest_coef_values, std::vector>& forest_coef_indices, - std::vector>& forest_leaf_pred_horizon, - std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf, - std::vector>& forest_leaf_pred_mort) { + std::vector>& forest_leaf_pred_indx, + std::vector>& forest_leaf_pred_prob, + std::vector>& forest_leaf_pred_chaz, + std::vector>& forest_leaf_summary) { this->n_tree = n_tree; @@ -48,14 +48,14 @@ void ForestSurvival::load(arma::uword n_tree, for (uword i = 0; i < n_tree; ++i) { trees.push_back( - std::make_unique(forest_cutpoint[i], - forest_child_left[i], - forest_coef_values[i], - forest_coef_indices[i], - forest_leaf_pred_horizon[i], - forest_leaf_pred_surv[i], - forest_leaf_pred_chf[i], - forest_leaf_pred_mort[i]) + std::make_unique(forest_cutpoint[i], + forest_child_left[i], + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_indx[i], + forest_leaf_pred_prob[i], + forest_leaf_pred_chaz[i], + forest_leaf_summary[i]) ); } @@ -75,6 +75,51 @@ void ForestSurvival::plant() { } +std::vector> ForestSurvival::get_leaf_pred_indx() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + auto& temp = dynamic_cast(*tree); + result.push_back(temp.get_leaf_pred_indx()); + } + + return result; + +} + +std::vector> ForestSurvival::get_leaf_pred_prob() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + auto& temp = dynamic_cast(*tree); + result.push_back(temp.get_leaf_pred_prob()); + } + + return result; + +} + +std::vector> ForestSurvival::get_leaf_pred_chaz() { + + std::vector> result; + + result.reserve(n_tree); + + for (auto& tree : trees) { + auto& temp = dynamic_cast(*tree); + result.push_back(temp.get_leaf_pred_chaz()); + } + + return result; + +} + } diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index d4e908b4..cd38effa 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -30,14 +30,18 @@ class ForestSurvival: public Forest { std::vector>& forest_child_left, std::vector>& forest_coef_values, std::vector>& forest_coef_indices, - std::vector>& forest_leaf_pred_horizon, - std::vector>& forest_leaf_pred_surv, - std::vector>& forest_leaf_pred_chf, - std::vector>& forest_leaf_pred_mort); + std::vector>& forest_leaf_pred_indx, + std::vector>& forest_leaf_pred_prob, + std::vector>& forest_leaf_pred_chaz, + std::vector>& forest_leaf_summary); // growInternal() in ranger void plant() override; + std::vector> get_leaf_pred_indx(); + std::vector> get_leaf_pred_prob(); + std::vector> get_leaf_pred_chaz(); + }; diff --git a/src/Makevars b/src/Makevars index 2321181e..a67362fe 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,3 +1,4 @@ CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) +CXXFLAGS += -O3 -march=native -DNDEBUG PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/Makevars.win b/src/Makevars.win index 2321181e..a67362fe 100644 --- a/src/Makevars.win +++ b/src/Makevars.win @@ -1,3 +1,4 @@ CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) +CXXFLAGS += -O3 -march=native -DNDEBUG PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/Tree.cpp b/src/Tree.cpp index 92901bf2..b9f2e319 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -45,10 +45,7 @@ std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, - std::vector& leaf_pred_horizon, - std::vector& leaf_pred_surv, - std::vector& leaf_pred_chf, - std::vector& leaf_pred_mort) : + std::vector& leaf_summary) : data(0), n_cols_total(0), n_rows_total(0), @@ -76,10 +73,7 @@ child_left(child_left), coef_values(coef_values), coef_indices(coef_indices), - leaf_pred_horizon(leaf_pred_horizon), - leaf_pred_surv(leaf_pred_surv), - leaf_pred_chf(leaf_pred_chf), - leaf_pred_mort(leaf_pred_mort){ + leaf_summary(leaf_summary){ } @@ -137,6 +131,12 @@ } + void Tree::resize_leaves(arma::uword new_size){ + + leaf_summary.resize(new_size); + + } + void Tree::sample_rows(){ uword i, draw, n = data->n_rows; @@ -558,102 +558,7 @@ Rcout << std::endl; } - // reserve as much size as could be needed (probably more) - mat leaf_data(y_node.n_rows, 3); - - uword person = 0; - - // find the first unique event time - while(y_node.at(person, 1) == 0 && person < y_node.n_rows){ - person++; - } - - // person corresponds to first event or last censor time - leaf_data.at(0, 0) = y_node.at(person, 0); - - // if no events in this node: - // (TODO: should this case even occur? consider removing) - if(person == y_node.n_rows){ - - vec temp_surv(1, arma::fill::ones); - vec temp_chf(1, arma::fill::zeros); - - leaf_pred_horizon[node_id] = leaf_data.col(0); - leaf_pred_surv[node_id] = temp_surv; - leaf_pred_chf[node_id] = temp_chf; - leaf_pred_mort[node_id] = 0.0; - - return; - - } - - double temp_time = y_node.at(person, 0); - - uword i = 1; - - // find the rest of the unique event times - for( ; person < y_node.n_rows; person++){ - - if(temp_time != y_node.at(person, 0) && y_node.at(person, 1) == 1){ - - leaf_data.at(i, 0) = y_node.at(person,0); - temp_time = y_node.at(person, 0); - i++; - - } - - } - - leaf_data.resize(i, 3); - - // reset for kaplan meier loop - person = 0; i = 0; - double n_risk = sum(w_node); - double temp_surv = 1.0; - double temp_haz = 0.0; - - do { - - double n_events = 0; - double n_risk_sub = 0; - temp_time = y_node.at(person, 0); - - while(y_node.at(person, 0) == temp_time){ - - n_risk_sub += w_node.at(person); - n_events += y_node.at(person, 1) * w_node.at(person); - - if(person == y_node.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp_surv = temp_surv * (n_risk - n_events) / n_risk; - - temp_haz = temp_haz + n_events / n_risk; - - leaf_data.at(i, 1) = temp_surv; - leaf_data.at(i, 2) = temp_haz; - i++; - - } - - n_risk -= n_risk_sub; - - } while (i < leaf_data.n_rows); - - - if(VERBOSITY > 1) print_mat(leaf_data, "leaf_data", 10, 5); - - leaf_pred_horizon[node_id] = leaf_data.col(0); - leaf_pred_surv[node_id] = leaf_data.col(1); - leaf_pred_chf[node_id] = leaf_data.col(2); - leaf_pred_mort[node_id] = compute_mortality(leaf_data); + leaf_summary[node_id] = mean(y_node.col(0)); } @@ -674,24 +579,6 @@ } - double Tree::compute_mortality(arma::mat& leaf_data){ - - double result = 0; - uword i=0, j=0; - - for( ; i < (*unique_event_times).size(); i++){ - - if((*unique_event_times)[i] >= leaf_data.at(j, 0) && - j < (leaf_data.n_rows-1)) {j++;} - - result += leaf_data.at(j, 2); - - } - - return(result); - - } - void Tree::grow(arma::vec* vi_numer, arma::uvec* vi_denom){ @@ -705,15 +592,12 @@ this->y_inbag = data->y_rows(rows_inbag); this->n_obs_inbag = sum(w_inbag); - this->n_events_inbag = sum(w_inbag % y_inbag.col(1)); this->n_rows_inbag = x_inbag.n_rows; if(VERBOSITY > 0){ Rcout << "Effective sample size: " << n_obs_inbag; Rcout << std::endl; - Rcout << "Effective number of events: " << n_events_inbag; - Rcout << std::endl; Rcout << "Number of unique rows in x: " << n_rows_inbag; Rcout << std::endl; Rcout << std::endl; @@ -741,10 +625,8 @@ child_left.resize(max_nodes); coef_values.resize(max_nodes); coef_indices.resize(max_nodes); - leaf_pred_horizon.resize(max_nodes); - leaf_pred_surv.resize(max_nodes); - leaf_pred_chf.resize(max_nodes); - leaf_pred_mort.resize(max_nodes); + // memory for leaves based on corresponding tree type + resize_leaves(max_nodes); // coordinate the order that nodes are grown. std::vector nodes_open; @@ -963,10 +845,8 @@ child_left.resize(n_nodes); coef_values.resize(n_nodes); coef_indices.resize(n_nodes); - leaf_pred_horizon.resize(n_nodes); - leaf_pred_surv.resize(n_nodes); - leaf_pred_chf.resize(n_nodes); - leaf_pred_mort.resize(n_nodes); + + resize_leaves(n_nodes); } // Tree::grow @@ -1051,89 +931,11 @@ // oobag leaf prediction has zeros for inbag rows if(oobag){ while(pred_leaf[*it] == 0){ ++it; } } - double pred_t0; - - if(pred_type == 'S' || pred_type == 'R'){ - pred_t0 = 1; - } else { - pred_t0 = 0; - } - - uword i, j; - - vec leaf_times, leaf_values; - - vec temp_vec(pred_times.size()); - double temp_dbl; - do { uword leaf_id = pred_leaf[*it]; - // copies of leaf data using same aux memory - leaf_times = vec(leaf_pred_horizon[leaf_id].begin(), - leaf_pred_horizon[leaf_id].size(), - false); - - leaf_values = vec(leaf_pred_surv[leaf_id].begin(), - leaf_pred_surv[leaf_id].size(), - false); - - if(leaf_values.is_empty()) Rcpp::stop("empty leaf"); - - // don't reset i in the loop. - // (wasteful b/c leaf_times ascend) - i = 0; - - for(j = 0; j < pred_times.size(); j++){ - - // t is the current prediction time - double t = pred_times[j]; - - // if t < t', where t' is the max time in this leaf, - // then we may find a time t* such that t* < t < t'. - // If so, prediction should be anchored to t*. - // But, there may be multiple t* < t, and we want to - // find the largest t* that is < t, so we find the - // first t** > t and assign t* to be whatever came - // right before t**. - if(t < leaf_times.back()){ - - for(; i < leaf_times.size(); i++){ - - // we found t** - if (leaf_times[i] > t){ - - if(i == 0) - // first leaf event occurred after prediction time - temp_dbl = pred_t0; - else - // t* is the time value just before t**, so use i-1 - temp_dbl = leaf_values[i-1]; - - break; - - } else if (leaf_times[i] == t){ - // pred_horizon just happens to equal a leaf time - temp_dbl = leaf_values[i]; - - break; - - } - - } - - } else { - // if t > t' use the last recorded prediction - temp_dbl = leaf_values.back(); - - } - - temp_vec[j] = temp_dbl; - - } - - (*pred_output).row(*it) += temp_vec.t(); + (*pred_output).row(*it) += leaf_summary[leaf_id]; if(oobag) (*pred_denom)[*it]++; ++it; @@ -1141,7 +943,7 @@ while(leaf_id == pred_leaf[*it]){ - (*pred_output).row(*it) += temp_vec.t(); + (*pred_output).row(*it) += leaf_summary[leaf_id]; if(oobag) (*pred_denom)[*it]++; if (it == pred_leaf_sort.end()-1){ break; } else { ++it; } diff --git a/src/Tree.h b/src/Tree.h index a98d1b38..187f9a4a 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -25,10 +25,7 @@ std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, - std::vector& leaf_pred_horizon, - std::vector& leaf_pred_surv, - std::vector& leaf_pred_chf, - std::vector& leaf_pred_mort); + std::vector& leaf_summary); // deleting the copy constructor Tree(const Tree&) = delete; @@ -59,6 +56,7 @@ Rcpp::RObject lincomb_R_function); + virtual void resize_leaves(arma::uword new_size); void sample_rows(); @@ -76,23 +74,21 @@ double node_split(arma::uvec& cuts_all); - void node_sprout(arma::uword node_id); + virtual void node_sprout(arma::uword node_id); virtual double compute_max_leaves(); - double compute_mortality(arma::mat& leaf_data); - void grow(arma::vec* vi_numer, arma::uvec* vi_denom); void predict_leaf(Data* prediction_data, bool oobag); - void predict_value(arma::mat* pred_output, - arma::vec* pred_denom, - arma::vec& pred_times, - char pred_type, - bool oobag); + virtual void predict_value(arma::mat* pred_output, + arma::vec* pred_denom, + arma::vec& pred_times, + char pred_type, + bool oobag); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); @@ -108,20 +104,8 @@ return(coef_values); } - std::vector& get_leaf_pred_horizon(){ - return(leaf_pred_horizon); - } - - std::vector& get_leaf_pred_surv(){ - return(leaf_pred_surv); - } - - std::vector& get_leaf_pred_chf(){ - return(leaf_pred_chf); - } - - std::vector& get_leaf_pred_mort(){ - return(leaf_pred_mort); + std::vector& get_leaf_summary(){ + return(leaf_summary); } std::vector& get_cutpoint(){ @@ -244,10 +228,7 @@ // std::vector coef_indices; // leaf values (only in leaf nodes) - std::vector leaf_pred_horizon; - std::vector leaf_pred_surv; - std::vector leaf_pred_chf; - std::vector leaf_pred_mort; + std::vector leaf_summary; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index a123628a..379b727c 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -16,8 +16,32 @@ TreeSurvival::TreeSurvival() { } + TreeSurvival::TreeSurvival(std::vector& cutpoint, + std::vector& child_left, + std::vector& coef_values, + std::vector& coef_indices, + std::vector& leaf_pred_indx, + std::vector& leaf_pred_prob, + std::vector& leaf_pred_chaz, + std::vector& leaf_summary) : + Tree(cutpoint, child_left, coef_values, coef_indices, leaf_summary), + leaf_pred_indx(leaf_pred_indx), + leaf_pred_prob(leaf_pred_prob), + leaf_pred_chaz(leaf_pred_chaz){ } + + void TreeSurvival::resize_leaves(arma::uword new_size) { + + leaf_pred_indx.resize(new_size); + leaf_pred_prob.resize(new_size); + leaf_pred_chaz.resize(new_size); + leaf_summary.resize(new_size); + + } + double TreeSurvival::compute_max_leaves(){ + n_events_inbag = sum(w_inbag % y_inbag.col(1)); + // find maximum number of leaves for this tree // there are four ways to have maximal tree size: vec max_leaves_4ways = { @@ -350,6 +374,246 @@ } + void TreeSurvival::node_sprout(uword node_id){ + + if(VERBOSITY > 0){ + Rcout << "sprouting new leaf with node " << node_id; + Rcout << std::endl; + Rcout << std::endl; + } + + // reserve as much size as could be needed (probably more) + mat leaf_data(y_node.n_rows, 3); + + uword person = 0; + + // find the first unique event time + while(y_node.at(person, 1) == 0 && person < y_node.n_rows){ + person++; + } + + // person corresponds to first event or last censor time + leaf_data.at(0, 0) = y_node.at(person, 0); + + // if no events in this node: + // (TODO: should this case even occur? consider removing) + if(person == y_node.n_rows){ + + vec temp_surv(1, arma::fill::ones); + vec temp_chf(1, arma::fill::zeros); + + leaf_pred_indx[node_id] = leaf_data.col(0); + leaf_pred_prob[node_id] = temp_surv; + leaf_pred_chaz[node_id] = temp_chf; + leaf_summary[node_id] = 0.0; + + return; + + } + + double temp_time = y_node.at(person, 0); + + uword i = 1; + + // find the rest of the unique event times + for( ; person < y_node.n_rows; person++){ + + if(temp_time != y_node.at(person, 0) && y_node.at(person, 1) == 1){ + + leaf_data.at(i, 0) = y_node.at(person,0); + temp_time = y_node.at(person, 0); + i++; + + } + + } + + leaf_data.resize(i, 3); + + // reset for kaplan meier loop + person = 0; i = 0; + double n_risk = sum(w_node); + double temp_surv = 1.0; + double temp_haz = 0.0; + + do { + + double n_events = 0; + double n_risk_sub = 0; + temp_time = y_node.at(person, 0); + + while(y_node.at(person, 0) == temp_time){ + + n_risk_sub += w_node.at(person); + n_events += y_node.at(person, 1) * w_node.at(person); + + if(person == y_node.n_rows-1) break; + + person++; + + } + + // only do km if a death was observed + + if(n_events > 0){ + + temp_surv = temp_surv * (n_risk - n_events) / n_risk; + + temp_haz = temp_haz + n_events / n_risk; + + leaf_data.at(i, 1) = temp_surv; + leaf_data.at(i, 2) = temp_haz; + i++; + + } + + n_risk -= n_risk_sub; + + } while (i < leaf_data.n_rows); + + + if(VERBOSITY > 1) print_mat(leaf_data, "leaf_data", 10, 5); + + leaf_pred_indx[node_id] = leaf_data.col(0); + leaf_pred_prob[node_id] = leaf_data.col(1); + leaf_pred_chaz[node_id] = leaf_data.col(2); + leaf_summary[node_id] = compute_mortality(leaf_data); + + } + + double TreeSurvival::compute_mortality(arma::mat& leaf_data){ + + double result = 0; + uword i=0, j=0; + + for( ; i < (*unique_event_times).size(); i++){ + + if((*unique_event_times)[i] >= leaf_data.at(j, 0) && + j < (leaf_data.n_rows-1)) {j++;} + + result += leaf_data.at(j, 2); + + } + + return(result); + + } + + void TreeSurvival::predict_value(arma::mat* pred_output, + arma::vec* pred_denom, + arma::vec& pred_times, + char pred_type, + bool oobag){ + + uvec pred_leaf_sort = sort_index(pred_leaf, "ascend"); + + uvec::iterator it = pred_leaf_sort.begin(); + + // oobag leaf prediction has zeros for inbag rows + if(oobag){ while(pred_leaf[*it] == 0){ ++it; } } + + double pred_t0; + + if(pred_type == 'S' || pred_type == 'R'){ + pred_t0 = 1; + } else { + pred_t0 = 0; + } + + uword i, j; + + vec leaf_times, leaf_values; + + vec temp_vec(pred_times.size()); + double temp_dbl; + + do { + + uword leaf_id = pred_leaf[*it]; + + // copies of leaf data using same aux memory + leaf_times = vec(leaf_pred_indx[leaf_id].begin(), + leaf_pred_indx[leaf_id].size(), + false); + + leaf_values = vec(leaf_pred_prob[leaf_id].begin(), + leaf_pred_prob[leaf_id].size(), + false); + + if(leaf_values.is_empty()) Rcpp::stop("empty leaf"); + + // don't reset i in the loop. + // (wasteful b/c leaf_times ascend) + i = 0; + + for(j = 0; j < pred_times.size(); j++){ + + // t is the current prediction time + double t = pred_times[j]; + + // if t < t', where t' is the max time in this leaf, + // then we may find a time t* such that t* < t < t'. + // If so, prediction should be anchored to t*. + // But, there may be multiple t* < t, and we want to + // find the largest t* that is < t, so we find the + // first t** > t and assign t* to be whatever came + // right before t**. + if(t < leaf_times.back()){ + + for(; i < leaf_times.size(); i++){ + + // we found t** + if (leaf_times[i] > t){ + + if(i == 0) + // first leaf event occurred after prediction time + temp_dbl = pred_t0; + else + // t* is the time value just before t**, so use i-1 + temp_dbl = leaf_values[i-1]; + + break; + + } else if (leaf_times[i] == t){ + // pred_horizon just happens to equal a leaf time + temp_dbl = leaf_values[i]; + + break; + + } + + } + + } else { + // if t > t' use the last recorded prediction + temp_dbl = leaf_values.back(); + + } + + temp_vec[j] = temp_dbl; + + } + + (*pred_output).row(*it) += temp_vec.t(); + if(oobag) (*pred_denom)[*it]++; + ++it; + + if(it < pred_leaf_sort.end()){ + + while(leaf_id == pred_leaf[*it]){ + + (*pred_output).row(*it) += temp_vec.t(); + if(oobag) (*pred_denom)[*it]++; + + if (it == pred_leaf_sort.end()-1){ break; } else { ++it; } + + } + + } + + } while (it < pred_leaf_sort.end()); + + } } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 3e0e7e14..ae850122 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -22,8 +22,19 @@ TreeSurvival(const TreeSurvival&) = delete; TreeSurvival& operator=(const TreeSurvival&) = delete; + TreeSurvival(std::vector& cutpoint, + std::vector& child_left, + std::vector& coef_values, + std::vector& coef_indices, + std::vector& leaf_pred_indx, + std::vector& leaf_pred_prob, + std::vector& leaf_pred_chaz, + std::vector& leaf_summary); + double compute_max_leaves() override; + void resize_leaves(arma::uword new_size) override; + bool is_col_splittable(arma::uword j) override; bool is_node_splittable_internal() override; @@ -34,6 +45,29 @@ double score_logrank(); + double compute_mortality(arma::mat& leaf_data); + + void node_sprout(uword node_id) override; + + void predict_value(arma::mat* pred_output, arma::vec* pred_denom, + arma::vec& pred_times, char pred_type, bool oobag) override; + + std::vector& get_leaf_pred_indx(){ + return(leaf_pred_indx); + } + + std::vector& get_leaf_pred_prob(){ + return(leaf_pred_prob); + } + + std::vector& get_leaf_pred_chaz(){ + return(leaf_pred_chaz); + } + + std::vector leaf_pred_indx; + std::vector leaf_pred_prob; + std::vector leaf_pred_chaz; + }; } // namespace aorsf diff --git a/src/globals.h b/src/globals.h index 1b23fc48..62bce358 100644 --- a/src/globals.h +++ b/src/globals.h @@ -32,7 +32,7 @@ // Split mode enum SplitRule { SPLIT_LOGRANK = 1, - SPLIT_GINI = 2 + SPLIT_CONCORD = 2 }; // Linear combination method diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 6f60d984..9f8a614d 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -220,14 +220,14 @@ std::vector> child_left = loaded_forest["child_left"]; std::vector> coef_values = loaded_forest["coef_values"]; std::vector> coef_indices = loaded_forest["coef_indices"]; - std::vector> leaf_pred_horizon = loaded_forest["leaf_pred_horizon"]; - std::vector> leaf_pred_surv = loaded_forest["leaf_pred_surv"]; - std::vector> leaf_pred_chf = loaded_forest["leaf_pred_chf"]; - std::vector> leaf_pred_mort = loaded_forest["leaf_pred_mort"]; + std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; + std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; + std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; + std::vector> leaf_summary = loaded_forest["leaf_summary"]; auto& temp = dynamic_cast(*forest); temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_horizon, leaf_pred_surv, leaf_pred_chf, leaf_pred_mort); + leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); arma::mat pred_mat = forest->predict(oobag); @@ -249,10 +249,12 @@ forest_out.push_back(forest->get_child_left(), "child_left"); forest_out.push_back(forest->get_coef_indices(), "coef_indices"); forest_out.push_back(forest->get_coef_values(), "coef_values"); - forest_out.push_back(forest->get_leaf_pred_horizon(), "leaf_pred_horizon"); - forest_out.push_back(forest->get_leaf_pred_surv(), "leaf_pred_surv"); - forest_out.push_back(forest->get_leaf_pred_chf(), "leaf_pred_chf"); - forest_out.push_back(forest->get_leaf_pred_mort(), "leaf_pred_mort"); + forest_out.push_back(forest->get_leaf_summary(), "leaf_summary"); + + auto& temp = dynamic_cast(*forest); + forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); + forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); + forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); result.push_back(forest_out, "forest"); From 822846ea64e0f0a2e99deb240662e5b4dfed0d36 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 8 Sep 2023 17:34:15 -0400 Subject: [PATCH 064/103] mute oobag preds from empty trees --- src/Forest.cpp | 3 +- src/ForestSurvival.cpp | 4 ++- src/Tree.cpp | 4 +-- src/Tree.h | 3 -- src/TreeSurvival.cpp | 70 +++++++++++++++++++++++++++++++++++++++++- src/TreeSurvival.h | 6 ++++ src/globals.h | 3 ++ src/orsf_oop.cpp | 1 + src/utility.cpp | 2 +- src/utility.h | 2 +- 10 files changed, 88 insertions(+), 10 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 02091aed..e918b98a 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -62,7 +62,6 @@ void Forest::init(std::unique_ptr input_data, this->lincomb_ties_method = lincomb_ties_method; this->lincomb_R_function = lincomb_R_function; this->pred_type = pred_type; - this->pred_horizon = pred_horizon; this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; this->oobag_R_function = oobag_R_function; @@ -237,6 +236,7 @@ mat Forest::predict(bool oobag) { } if(oobag){ + oob_denom.replace(0, 1); // in case an obs was never oobag. result.each_col() /= oob_denom; } else { result /= n_tree; @@ -257,6 +257,7 @@ void Forest::predict_in_threads(uint thread_idx, for (uint i = thread_ranges[thread_idx]; i < thread_ranges[thread_idx + 1]; ++i) { trees[i]->predict_leaf(prediction_data, oobag); + trees[i]->predict_value(result_ptr, denom_ptr, pred_horizon, 'S', oobag); diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 8a75cbcc..04e472f0 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -70,7 +70,9 @@ void ForestSurvival::plant() { trees.reserve(n_tree); for (arma::uword i = 0; i < n_tree; ++i) { - trees.push_back(std::make_unique()); + trees.push_back(std::make_unique(leaf_min_events, + split_min_events, + &unique_event_times)); } } diff --git a/src/Tree.cpp b/src/Tree.cpp index b9f2e319..f0b76bb7 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -509,7 +509,7 @@ // set up next loop run it_start = *it; - if(VERBOSITY > 1){ + if(VERBOSITY > 0){ mat temp = join_rows(lincomb, conv_to::from(g_node)); temp = join_rows(temp, w_node); temp = temp.rows(lincomb_sort); @@ -517,7 +517,7 @@ Rcout << std::endl; Rcout << std::endl; print_mat(temp, "lincomb & g_node & w_node", 20, 20); - Rcout << "logrank stat for this cutpoint: " << stat; + Rcout << "split stat for this cutpoint: " << stat; Rcout << std::endl; Rcout << " ------------------------------------------- "; Rcout << std::endl; diff --git a/src/Tree.h b/src/Tree.h index 187f9a4a..a83d6ea5 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -202,9 +202,6 @@ arma::uword lincomb_ties_method; Rcpp::RObject lincomb_R_function; - // prediction members - double pred_horizon; - // predicted leaf node arma::uvec pred_leaf; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 379b727c..5625f9c6 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -16,6 +16,16 @@ TreeSurvival::TreeSurvival() { } + TreeSurvival::TreeSurvival(double leaf_min_events, + double split_min_events, + arma::vec* unique_event_times){ + + this->leaf_min_events = leaf_min_events; + this->split_min_events = split_min_events; + this->unique_event_times = unique_event_times; + + } + TreeSurvival::TreeSurvival(std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, @@ -306,6 +316,11 @@ break; } + case SPLIT_CONCORD: { + result = score_concord(); + break; + } + } return(result); @@ -374,6 +389,48 @@ } + double TreeSurvival::score_concord(){ + + + vec y_time = y_node.unsafe_col(0); + vec y_status = y_node.unsafe_col(1); + + uvec event_indices = find(y_status == 1); + + uvec::iterator event; + + double total=0, concordant=0; + + for (event = event_indices.begin(); event < event_indices.end(); ++event) { + + for(uword j = *event; j < y_node.n_rows; ++j){ + + if (y_time[j] > y_time[*event]) { // ties not counted + + total += w_node[j]; + + if (g_node[j] > g_node[*event]){ + + concordant += w_node[j]; + + } else if (g_node[j] == g_node[*event]){ + + concordant += (w_node[j] / 2); + + } + + } + + } + + } + + Rcout << "concordance is: " << concordant / total << std::endl; + + return(concordant / total); + + } + void TreeSurvival::node_sprout(uword node_id){ if(VERBOSITY > 0){ @@ -510,7 +567,18 @@ uvec::iterator it = pred_leaf_sort.begin(); // oobag leaf prediction has zeros for inbag rows - if(oobag){ while(pred_leaf[*it] == 0){ ++it; } } + if(oobag){ + while(pred_leaf(*it) == 0 && it < pred_leaf_sort.end()){ + ++it; + } + } + + if(it == pred_leaf_sort.end()){ + if(VERBOSITY > 0){ + Rcout << "Tree was empty, no predictions were made" << std::endl; + } + return; + } double pred_t0; diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index ae850122..ab403ec9 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -19,9 +19,14 @@ public: TreeSurvival(); + TreeSurvival(const TreeSurvival&) = delete; TreeSurvival& operator=(const TreeSurvival&) = delete; + TreeSurvival(double leaf_min_events, + double split_min_events, + arma::vec* unique_event_times); + TreeSurvival(std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, @@ -44,6 +49,7 @@ double compute_split_score() override; double score_logrank(); + double score_concord(); double compute_mortality(arma::mat& leaf_data); diff --git a/src/globals.h b/src/globals.h index 62bce358..24a1544d 100644 --- a/src/globals.h +++ b/src/globals.h @@ -13,6 +13,9 @@ typedef unsigned int uint; + template + using svec = std::vector; + // Tree types enum TreeType { TREE_CLASSIFICATION = 1, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9f8a614d..a1337cd9 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -178,6 +178,7 @@ // R functions cannot be called from multiple threads if(lincomb_type == R_FUNCTION){ n_thread = 1; } + if(oobag_eval_every < n_tree){ n_thread = 1; } vec y_times = find_unique_event_times(y); diff --git a/src/utility.cpp b/src/utility.cpp index ad2686cc..e096a417 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -90,7 +90,7 @@ } } - vec find_unique_event_times(mat y){ + vec find_unique_event_times(mat& y){ vec result(y.n_rows); diff --git a/src/utility.h b/src/utility.h index 70f77ff4..7b6647f6 100644 --- a/src/utility.h +++ b/src/utility.h @@ -24,7 +24,7 @@ aorsf may be modified and distributed under the terms of the MIT license. */ void equalSplit(std::vector& result, uint start, uint end, uint num_parts); - arma::vec find_unique_event_times(arma::mat y); + arma::vec find_unique_event_times(arma::mat& y); void print_mat(arma::mat& x, From 2db644dab31851e421b535c178d3ef45b0d7eb52 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 11 Sep 2023 12:55:43 -0400 Subject: [PATCH 065/103] almost done separating members into survival --- src/Forest.cpp | 7 +--- src/ForestSurvival.cpp | 7 ++-- src/ForestSurvival.h | 1 - src/Tree.cpp | 23 ++++++------- src/Tree.h | 15 ++++---- src/TreeSurvival.cpp | 77 ++++++++++++++++++++++++++++++++++++------ src/TreeSurvival.h | 23 ++++++++++--- src/orsf_oop.cpp | 16 ++++----- 8 files changed, 115 insertions(+), 54 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index e918b98a..8b7d4563 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -91,15 +91,12 @@ void Forest::init_trees(){ for(uword i = 0; i < n_tree; ++i){ trees[i]->init(data.get(), - &unique_event_times, tree_seeds[i], mtry, - leaf_min_events, leaf_min_obs, vi_type, vi_max_pvalue, split_rule, - split_min_events, split_min_obs, split_min_stat, split_max_cuts, @@ -258,9 +255,7 @@ void Forest::predict_in_threads(uint thread_idx, trees[i]->predict_leaf(prediction_data, oobag); - trees[i]->predict_value(result_ptr, denom_ptr, - pred_horizon, 'S', - oobag); + trees[i]->predict_value(result_ptr, denom_ptr, 'S', oobag); // Check for user interrupt if (aborted) { diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 04e472f0..1c1d795a 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -42,7 +42,6 @@ void ForestSurvival::load(arma::uword n_tree, Rcout << std::endl << std::endl; } - // Create trees trees.reserve(n_tree); @@ -55,7 +54,8 @@ void ForestSurvival::load(arma::uword n_tree, forest_leaf_pred_indx[i], forest_leaf_pred_prob[i], forest_leaf_pred_chaz[i], - forest_leaf_summary[i]) + forest_leaf_summary[i], + pred_horizon) ); } @@ -72,7 +72,8 @@ void ForestSurvival::plant() { for (arma::uword i = 0; i < n_tree; ++i) { trees.push_back(std::make_unique(leaf_min_events, split_min_events, - &unique_event_times)); + &unique_event_times, + pred_horizon)); } } diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index cd38effa..cae11da8 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -24,7 +24,6 @@ class ForestSurvival: public Forest { ForestSurvival(const ForestSurvival&) = delete; ForestSurvival& operator=(const ForestSurvival&) = delete; - void load(arma::uword n_tree, std::vector>& forest_cutpoint, std::vector>& forest_child_left, diff --git a/src/Tree.cpp b/src/Tree.cpp index f0b76bb7..23d2eccb 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -22,10 +22,10 @@ mtry(0), vi_type(VI_NONE), vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), - leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), + // leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), leaf_min_obs(DEFAULT_LEAF_MIN_OBS), split_rule(DEFAULT_SPLITRULE), - split_min_events(DEFAULT_SPLIT_MIN_EVENTS), + // split_min_events(DEFAULT_SPLIT_MIN_EVENTS), split_min_obs(DEFAULT_SPLIT_MIN_OBS), split_min_stat(DEFAULT_SPLIT_MIN_STAT), split_max_cuts(DEFAULT_SPLIT_MAX_CUTS), @@ -53,10 +53,10 @@ mtry(0), vi_type(VI_NONE), vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), - leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), + // leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), leaf_min_obs(DEFAULT_LEAF_MIN_OBS), split_rule(DEFAULT_SPLITRULE), - split_min_events(DEFAULT_SPLIT_MIN_EVENTS), + // split_min_events(DEFAULT_SPLIT_MIN_EVENTS), split_min_obs(DEFAULT_SPLIT_MIN_OBS), split_min_stat(DEFAULT_SPLIT_MIN_STAT), split_max_cuts(DEFAULT_SPLIT_MAX_CUTS), @@ -79,15 +79,14 @@ void Tree::init(Data* data, - arma::vec* unique_event_times, int seed, arma::uword mtry, - double leaf_min_events, + // double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, double vi_max_pvalue, SplitRule split_rule, - double split_min_events, + // double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, @@ -105,17 +104,16 @@ random_number_generator.seed(seed); this->data = data; - this->unique_event_times = unique_event_times; this->n_cols_total = data->n_cols; this->n_rows_total = data->n_rows; this->seed = seed; this->mtry = mtry; - this->leaf_min_events = leaf_min_events; + // this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; this->vi_type = vi_type; this->vi_max_pvalue = vi_max_pvalue; this->split_rule = split_rule; - this->split_min_events = split_min_events; + // this->split_min_events = split_min_events; this->split_min_obs = split_min_obs; this->split_min_stat = split_min_stat; this->split_max_cuts = split_max_cuts; @@ -920,7 +918,6 @@ void Tree::predict_value(arma::mat* pred_output, arma::vec* pred_denom, - arma::vec& pred_times, char pred_type, bool oobag){ @@ -954,8 +951,10 @@ } while (it < pred_leaf_sort.end()); + } - + double Tree::compute_prediction_accuracy(){ + return(0.0); } diff --git a/src/Tree.h b/src/Tree.h index a83d6ea5..a22a2820 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -33,15 +33,14 @@ Tree& operator=(const Tree&) = delete; void init(Data* data, - arma::vec* unique_event_times, int seed, arma::uword mtry, - double leaf_min_events, + // double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, double vi_max_pvalue, SplitRule split_rule, - double split_min_events, + // double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, @@ -86,7 +85,6 @@ virtual void predict_value(arma::mat* pred_output, arma::vec* pred_denom, - arma::vec& pred_times, char pred_type, bool oobag); @@ -124,9 +122,6 @@ arma::vec* vi_numer; arma::uvec* vi_denom; - // pointer to event times in forest - arma::vec* unique_event_times; - // Pointer to original data Data* data; @@ -179,12 +174,12 @@ std::mt19937_64 random_number_generator; // tree growing members - double leaf_min_events; + // double leaf_min_events; double leaf_min_obs; // node split members SplitRule split_rule; - double split_min_events; + // double split_min_events; double split_min_obs; double split_min_stat; arma::uword split_max_cuts; @@ -227,6 +222,8 @@ // leaf values (only in leaf nodes) std::vector leaf_summary; + virtual double compute_prediction_accuracy(); + protected: diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 5625f9c6..a4dbee6f 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -18,11 +18,13 @@ TreeSurvival::TreeSurvival(double leaf_min_events, double split_min_events, - arma::vec* unique_event_times){ + arma::vec* unique_event_times, + arma::vec pred_horizon){ this->leaf_min_events = leaf_min_events; this->split_min_events = split_min_events; this->unique_event_times = unique_event_times; + this->pred_horizon = pred_horizon; } @@ -33,11 +35,13 @@ std::vector& leaf_pred_indx, std::vector& leaf_pred_prob, std::vector& leaf_pred_chaz, - std::vector& leaf_summary) : + std::vector& leaf_summary, + arma::vec pred_horizon) : Tree(cutpoint, child_left, coef_values, coef_indices, leaf_summary), leaf_pred_indx(leaf_pred_indx), leaf_pred_prob(leaf_pred_prob), - leaf_pred_chaz(leaf_pred_chaz){ } + leaf_pred_chaz(leaf_pred_chaz), + pred_horizon(pred_horizon){ } void TreeSurvival::resize_leaves(arma::uword new_size) { @@ -399,7 +403,8 @@ uvec::iterator event; - double total=0, concordant=0; + // protection from case where there are no comparables. + double total=0.001, concordant=0; for (event = event_indices.begin(); event < event_indices.end(); ++event) { @@ -409,7 +414,7 @@ total += w_node[j]; - if (g_node[j] > g_node[*event]){ + if (g_node[j] < g_node[*event]){ concordant += w_node[j]; @@ -425,8 +430,6 @@ } - Rcout << "concordance is: " << concordant / total << std::endl; - return(concordant / total); } @@ -558,7 +561,6 @@ void TreeSurvival::predict_value(arma::mat* pred_output, arma::vec* pred_denom, - arma::vec& pred_times, char pred_type, bool oobag){ @@ -592,7 +594,7 @@ vec leaf_times, leaf_values; - vec temp_vec(pred_times.size()); + vec temp_vec(pred_horizon.size()); double temp_dbl; do { @@ -614,10 +616,10 @@ // (wasteful b/c leaf_times ascend) i = 0; - for(j = 0; j < pred_times.size(); j++){ + for(j = 0; j < pred_horizon.size(); j++){ // t is the current prediction time - double t = pred_times[j]; + double t = pred_horizon[j]; // if t < t', where t' is the max time in this leaf, // then we may find a time t* such that t* < t < t'. @@ -683,5 +685,58 @@ } + double TreeSurvival::compute_prediction_accuracy(){ + + + vec y_time = y_oobag.unsafe_col(0); + vec y_status = y_oobag.unsafe_col(1); + + uvec oobag_pred_leaf = pred_leaf(rows_oobag); + + vec mortality(rows_oobag.size()); + + for(uword i = 0; i < mortality.size(); ++i){ + mortality[i] = leaf_summary[oobag_pred_leaf[i]]; + } + + Rcout << mortality << std::endl; + + // uvec event_indices = find(y_status == 1); + // + // uvec::iterator event; + // + // // protection from case where there are no comparables. + // double total=0.001, concordant=0; + // + // for (event = event_indices.begin(); event < event_indices.end(); ++event) { + // + // for(uword j = *event; j < y_node.n_rows; ++j){ + // + // if (y_time[j] > y_time[*event]) { // ties not counted + // + // total += w_node[j]; + // + // if (g_node[j] < g_node[*event]){ + // + // concordant += w_node[j]; + // + // } else if (g_node[j] == g_node[*event]){ + // + // concordant += (w_node[j] / 2); + // + // } + // + // } + // + // } + // + // } + + // return(concordant / total); + return(0.0); + + } + + } // namespace aorsf diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index ab403ec9..552c54bd 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -25,7 +25,8 @@ TreeSurvival(double leaf_min_events, double split_min_events, - arma::vec* unique_event_times); + arma::vec* unique_event_times, + arma::vec pred_horizon); TreeSurvival(std::vector& cutpoint, std::vector& child_left, @@ -34,7 +35,8 @@ std::vector& leaf_pred_indx, std::vector& leaf_pred_prob, std::vector& leaf_pred_chaz, - std::vector& leaf_summary); + std::vector& leaf_summary, + arma::vec pred_horizon); double compute_max_leaves() override; @@ -55,8 +57,10 @@ void node_sprout(uword node_id) override; - void predict_value(arma::mat* pred_output, arma::vec* pred_denom, - arma::vec& pred_times, char pred_type, bool oobag) override; + void predict_value(arma::mat* pred_output, + arma::vec* pred_denom, + char pred_type, + bool oobag) override; std::vector& get_leaf_pred_indx(){ return(leaf_pred_indx); @@ -70,10 +74,21 @@ return(leaf_pred_chaz); } + double compute_prediction_accuracy() override; + std::vector leaf_pred_indx; std::vector leaf_pred_prob; std::vector leaf_pred_chaz; + // pointer to event times in forest + arma::vec* unique_event_times; + + // prediction times + arma::vec pred_horizon; + + double leaf_min_events; + double split_min_events; + }; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a1337cd9..f10b9949 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -217,19 +217,21 @@ // Load forest object if in prediction mode if(pred_mode){ - std::vector> cutpoint = loaded_forest["cutpoint"]; - std::vector> child_left = loaded_forest["child_left"]; - std::vector> coef_values = loaded_forest["coef_values"]; - std::vector> coef_indices = loaded_forest["coef_indices"]; + std::vector> cutpoint = loaded_forest["cutpoint"]; + std::vector> child_left = loaded_forest["child_left"]; + std::vector> coef_values = loaded_forest["coef_values"]; + std::vector> coef_indices = loaded_forest["coef_indices"]; std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; - std::vector> leaf_summary = loaded_forest["leaf_summary"]; + std::vector> leaf_summary = loaded_forest["leaf_summary"]; auto& temp = dynamic_cast(*forest); temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); + // forest->load(n_tree, loaded_forest); + arma::mat pred_mat = forest->predict(oobag); result.push_back(pred_mat, "predictions"); @@ -240,9 +242,7 @@ forest->grow(); - if(oobag){ - result.push_back(forest->predict(oobag), "pred_oobag"); - } + if(oobag){ result.push_back(forest->predict(oobag), "pred_oobag"); } forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); From d3a1f48d2ffd8a7a394382b38be98fedde2a57d7 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 11 Sep 2023 15:21:30 -0400 Subject: [PATCH 066/103] done moving attributes to survival class --- src/Forest.cpp | 12 +++++++++--- src/Forest.h | 2 +- src/ForestSurvival.cpp | 6 ++++++ src/ForestSurvival.h | 4 ++++ 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/Forest.cpp b/src/Forest.cpp index 8b7d4563..ad53e804 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -197,8 +197,14 @@ void Forest::grow_in_threads(uint thread_idx, mat Forest::predict(bool oobag) { - mat result(data->n_rows, pred_horizon.size(), fill::zeros); - vec oob_denom; if(oobag) oob_denom.zeros(data->n_rows); + mat result; + vec oob_denom; + + // No. of cols in pred mat depend on the type of forest + resize_pred_mat(result); + + // oobag denominator tracks the number of times an obs is oobag + if(oobag) oob_denom.zeros(data->n_rows); progress = 0; aborted = false; @@ -212,7 +218,7 @@ mat Forest::predict(bool oobag) { for (uint i = 0; i < n_thread; ++i) { - result_threads[i].resize(data->n_rows, pred_horizon.size()); + resize_pred_mat(result_threads[i]); if(oobag) oob_denom_threads[i].zeros(data->n_rows); threads.emplace_back(&Forest::predict_in_threads, diff --git a/src/Forest.h b/src/Forest.h index 9ccc5fc5..5637e082 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -177,6 +177,7 @@ class Forest { return(unique_event_times); } + virtual void resize_pred_mat(arma::mat& p) = 0; // Member variables @@ -221,7 +222,6 @@ class Forest { // predictions PredType pred_type; - arma::vec pred_horizon; // out-of-bag bool oobag_pred; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 1c1d795a..b4449ea7 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -78,6 +78,12 @@ void ForestSurvival::plant() { } +void ForestSurvival::resize_pred_mat(arma::mat& p){ + + p.zeros(data->n_rows, pred_horizon.size()); + +} + std::vector> ForestSurvival::get_leaf_pred_indx() { std::vector> result; diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index cae11da8..e5a46b6f 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -37,10 +37,14 @@ class ForestSurvival: public Forest { // growInternal() in ranger void plant() override; + void resize_pred_mat(arma::mat& p) override; + std::vector> get_leaf_pred_indx(); std::vector> get_leaf_pred_prob(); std::vector> get_leaf_pred_chaz(); + arma::vec pred_horizon; + }; From 156fa387c80fc56f86b75d8725c539c7a687b909 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 13 Sep 2023 22:01:28 -0400 Subject: [PATCH 067/103] almost a sliver of vi permute functioning --- src/Data.h | 34 +++---- src/ForestSurvival.cpp | 4 +- src/Tree.cpp | 65 +++++++++++++- src/Tree.h | 10 ++- src/TreeSurvival.cpp | 198 +++++++++++++++++++++++------------------ src/TreeSurvival.h | 15 +++- src/globals.h | 2 +- src/orsf_oop.cpp | 6 ++ 8 files changed, 220 insertions(+), 114 deletions(-) diff --git a/src/Data.h b/src/Data.h index 6deb3a9c..7c32078e 100644 --- a/src/Data.h +++ b/src/Data.h @@ -46,34 +46,34 @@ return(n_cols); } - arma::mat x_rows(arma::uvec& vector_of_row_indices) { - return(x.rows(vector_of_row_indices)); + arma::mat x_rows(arma::uvec& row_indices) { + return(x.rows(row_indices)); } - arma::mat x_cols(arma::uvec& vector_of_column_indices) { - return(x.cols(vector_of_column_indices)); + arma::mat x_cols(arma::uvec& column_indices) { + return(x.cols(column_indices)); } - arma::mat y_rows(arma::uvec& vector_of_row_indices) { - return(y.rows(vector_of_row_indices)); + arma::mat y_rows(arma::uvec& row_indices) { + return(y.rows(row_indices)); } - arma::mat y_cols(arma::uvec& vector_of_column_indices) { - return(y.cols(vector_of_column_indices)); + arma::mat y_cols(arma::uvec& column_indices) { + return(y.cols(column_indices)); } - arma::mat x_submat(arma::uvec& vector_of_row_indices, - arma::uvec& vector_of_column_indices){ - return(x.submat(vector_of_row_indices, vector_of_column_indices)); + arma::mat x_submat(arma::uvec& row_indices, + arma::uvec& column_indices){ + return(x.submat(row_indices, column_indices)); } - arma::mat y_submat(arma::uvec& vector_of_row_indices, - arma::uvec& vector_of_column_indices){ - return(y.submat(vector_of_row_indices, vector_of_column_indices)); + arma::mat y_submat(arma::uvec& row_indices, + arma::uvec& column_indices){ + return(y.submat(row_indices, column_indices)); } - arma::vec w_subvec(arma::uvec& vector_of_indices){ - return(w(vector_of_indices)); + arma::vec w_subvec(arma::uvec& indices){ + return(w(indices)); } // member variables @@ -82,6 +82,8 @@ arma::uword n_rows; arma::vec w; + arma::vec col_restore_values; + bool has_weights; private: diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index b4449ea7..ef3f214f 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -55,7 +55,7 @@ void ForestSurvival::load(arma::uword n_tree, forest_leaf_pred_prob[i], forest_leaf_pred_chaz[i], forest_leaf_summary[i], - pred_horizon) + &pred_horizon) ); } @@ -73,7 +73,7 @@ void ForestSurvival::plant() { trees.push_back(std::make_unique(leaf_min_events, split_min_events, &unique_event_times, - pred_horizon)); + &pred_horizon)); } } diff --git a/src/Tree.cpp b/src/Tree.cpp index 23d2eccb..783e5a2e 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -953,8 +953,69 @@ } - double Tree::compute_prediction_accuracy(){ - return(0.0); + void Tree::permute_oobag_col(arma::uword j){ + + arma::vec x_oobag_j = x_oobag.unsafe_col(j); + + // make and store a copy + this->x_oobag_restore = arma::vec(x_oobag_j.begin(), x_oobag_j.size(), true); + + // shuffle the vector in-place + std::shuffle(x_oobag_j.begin(), x_oobag_j.end(), random_number_generator); + + } + + void Tree::restore_oobag_col(arma::uword j){ + + x_oobag.col(j) = x_oobag_restore; + + } + + void Tree::compute_vi_permutation(arma::vec* vi_numer) { + + x_oobag = data->x_rows(rows_oobag); + + // Compute normal prediction accuracy for each tree. Predictions already computed.. + double accuracy_normal = compute_prediction_accuracy(); + + // Randomly permute for all independent variables + for (uword pred = 0; pred < data->get_n_cols(); ++pred) { + + // Check whether the i-th variable is used in the + // tree: + bool pred_is_used = false; + + for(uint j = 0; j < coef_indices.size(); ++j){ + for(uword k = 0; k < coef_indices[j].size(); ++k){ + if(coef_indices[j][k] == pred){ + pred_is_used = true; + break; + } + } + } + + // Only do permutations if the variable is used in the tree, otherwise variable importance is 0 + if (pred_is_used) { + // Permute and compute prediction accuracy again for this permutation and save difference + + vec tmp_vec = x_oobag.col(pred); + print_vec(tmp_vec, "before permute", 5); + + permute_oobag_col(pred); + + tmp_vec = x_oobag.col(pred); + print_vec(tmp_vec, "after permute", 5); + + double accuracy_permuted = compute_prediction_accuracy(); + + double accuracy_difference = accuracy_normal - accuracy_permuted; + + (*vi_numer)[pred] += accuracy_difference; + + restore_oobag_col(pred); + + } + } } diff --git a/src/Tree.h b/src/Tree.h index a22a2820..972a6f92 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -88,6 +88,8 @@ char pred_type, bool oobag); + void compute_vi_permutation(arma::vec* vi_numer); + // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); std::vector& get_coef_indices() { @@ -118,6 +120,10 @@ return(pred_leaf); } + void permute_oobag_col(arma::uword j); + + void restore_oobag_col(arma::uword j); + // pointers to variable importance in forest arma::vec* vi_numer; arma::uvec* vi_denom; @@ -142,6 +148,8 @@ arma::mat x_oobag; arma::mat x_node; + arma::vec x_oobag_restore; + arma::mat y_inbag; arma::mat y_oobag; arma::mat y_node; @@ -222,7 +230,7 @@ // leaf values (only in leaf nodes) std::vector leaf_summary; - virtual double compute_prediction_accuracy(); + virtual double compute_prediction_accuracy() = 0; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index a4dbee6f..d07311f3 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -19,7 +19,7 @@ TreeSurvival::TreeSurvival(double leaf_min_events, double split_min_events, arma::vec* unique_event_times, - arma::vec pred_horizon){ + arma::vec* pred_horizon){ this->leaf_min_events = leaf_min_events; this->split_min_events = split_min_events; @@ -36,7 +36,7 @@ std::vector& leaf_pred_prob, std::vector& leaf_pred_chaz, std::vector& leaf_summary, - arma::vec pred_horizon) : + arma::vec* pred_horizon) : Tree(cutpoint, child_left, coef_values, coef_indices, leaf_summary), leaf_pred_indx(leaf_pred_indx), leaf_pred_prob(leaf_pred_prob), @@ -321,7 +321,7 @@ } case SPLIT_CONCORD: { - result = score_concord(); + result = compute_concordance_index(y_node, w_node, g_node); break; } @@ -393,47 +393,6 @@ } - double TreeSurvival::score_concord(){ - - - vec y_time = y_node.unsafe_col(0); - vec y_status = y_node.unsafe_col(1); - - uvec event_indices = find(y_status == 1); - - uvec::iterator event; - - // protection from case where there are no comparables. - double total=0.001, concordant=0; - - for (event = event_indices.begin(); event < event_indices.end(); ++event) { - - for(uword j = *event; j < y_node.n_rows; ++j){ - - if (y_time[j] > y_time[*event]) { // ties not counted - - total += w_node[j]; - - if (g_node[j] < g_node[*event]){ - - concordant += w_node[j]; - - } else if (g_node[j] == g_node[*event]){ - - concordant += (w_node[j] / 2); - - } - - } - - } - - } - - return(concordant / total); - - } - void TreeSurvival::node_sprout(uword node_id){ if(VERBOSITY > 0){ @@ -594,7 +553,7 @@ vec leaf_times, leaf_values; - vec temp_vec(pred_horizon.size()); + vec temp_vec((*pred_horizon).size()); double temp_dbl; do { @@ -616,10 +575,10 @@ // (wasteful b/c leaf_times ascend) i = 0; - for(j = 0; j < pred_horizon.size(); j++){ + for(j = 0; j < (*pred_horizon).size(); j++){ // t is the current prediction time - double t = pred_horizon[j]; + double t = (*pred_horizon)[j]; // if t < t', where t' is the max time in this leaf, // then we may find a time t* such that t* < t < t'. @@ -687,53 +646,116 @@ double TreeSurvival::compute_prediction_accuracy(){ + y_oobag = data->y_rows(rows_oobag); + w_oobag = data->w_subvec(rows_oobag); - vec y_time = y_oobag.unsafe_col(0); - vec y_status = y_oobag.unsafe_col(1); + predict_leaf(this->data, true); - uvec oobag_pred_leaf = pred_leaf(rows_oobag); + uvec pred_leaf_oobag = pred_leaf(rows_oobag); - vec mortality(rows_oobag.size()); + vec pred_mort_oobag(rows_oobag.size()); - for(uword i = 0; i < mortality.size(); ++i){ - mortality[i] = leaf_summary[oobag_pred_leaf[i]]; + for(uword i = 0; i < pred_mort_oobag.size(); ++i){ + pred_mort_oobag[i] = leaf_summary[pred_leaf_oobag[i]]; } - Rcout << mortality << std::endl; - - // uvec event_indices = find(y_status == 1); - // - // uvec::iterator event; - // - // // protection from case where there are no comparables. - // double total=0.001, concordant=0; - // - // for (event = event_indices.begin(); event < event_indices.end(); ++event) { - // - // for(uword j = *event; j < y_node.n_rows; ++j){ - // - // if (y_time[j] > y_time[*event]) { // ties not counted - // - // total += w_node[j]; - // - // if (g_node[j] < g_node[*event]){ - // - // concordant += w_node[j]; - // - // } else if (g_node[j] == g_node[*event]){ - // - // concordant += (w_node[j] / 2); - // - // } - // - // } - // - // } - // - // } - - // return(concordant / total); - return(0.0); + double cindex = compute_concordance_index(y_oobag, w_oobag, pred_mort_oobag); + + Rcout << cindex << std::endl; + + return cindex; + + } + + double TreeSurvival::compute_concordance_index(arma::mat& y, + arma::vec& w, + arma::vec& p){ + + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + + uvec events = find(y_status == 1); + + // protection from case where there are no comparables. + double total=0, concordant=0; + + for (uvec::iterator event = events.begin(); event < events.end(); ++event) { + + for(uword i = *event; i < y_node.n_rows; ++i){ + + if (y_time[i] > y_time[*event]) { // ties not counted + + total += w[i]; + + if (p[i] < p[*event]){ + + concordant += w[i]; + + } else if (p[i] == p[*event]){ + + concordant += (w[i] / 2); + + } + + } + + } + + } + + // it's possible there won't be any valid comparisons, so: + if(total == 0) return(0.5); + // otherwise: + return(concordant / total); + + + } + + double TreeSurvival::compute_concordance_index(arma::mat& y, + arma::vec& w, + arma::uvec& p){ + + + + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + + uvec events = find(y_status == 1); + + // protection from case where there are no comparables. + double total=0, concordant=0; + + for (uvec::iterator event = events.begin(); event < events.end(); ++event) { + + for(uword i = *event; i < y_node.n_rows; ++i){ + + if (y_time[i] > y_time[*event]) { // ties not counted + + total += w[i]; + + if (p[i] < p[*event]){ + + concordant += w[i]; + + } else if (p[i] == p[*event]){ + + concordant += (w[i] / 2); + + } + + } + + } + + } + + // it's possible there won't be any valid comparisons, so: + if(total == 0) return(0.5); + // otherwise: + return(concordant / total); + + + } diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 552c54bd..32c203f4 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -26,7 +26,7 @@ TreeSurvival(double leaf_min_events, double split_min_events, arma::vec* unique_event_times, - arma::vec pred_horizon); + arma::vec* pred_horizon); TreeSurvival(std::vector& cutpoint, std::vector& child_left, @@ -36,7 +36,7 @@ std::vector& leaf_pred_prob, std::vector& leaf_pred_chaz, std::vector& leaf_summary, - arma::vec pred_horizon); + arma::vec* pred_horizon); double compute_max_leaves() override; @@ -51,7 +51,6 @@ double compute_split_score() override; double score_logrank(); - double score_concord(); double compute_mortality(arma::mat& leaf_data); @@ -76,6 +75,14 @@ double compute_prediction_accuracy() override; + double compute_concordance_index(arma::mat& y, + arma::vec& w, + arma::vec& p); + + double compute_concordance_index(arma::mat& y, + arma::vec& w, + arma::uvec& g); + std::vector leaf_pred_indx; std::vector leaf_pred_prob; std::vector leaf_pred_chaz; @@ -84,7 +91,7 @@ arma::vec* unique_event_times; // prediction times - arma::vec pred_horizon; + arma::vec* pred_horizon; double leaf_min_events; double split_min_events; diff --git a/src/globals.h b/src/globals.h index 24a1544d..1fdb7797 100644 --- a/src/globals.h +++ b/src/globals.h @@ -28,7 +28,7 @@ enum VariableImportance { VI_NONE = 0, VI_NEGATE = 1, - VI_PERM_BREIMAN = 2, + VI_PERMUTE = 2, VI_ANOVA = 3 }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f10b9949..4088190b 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -242,6 +242,12 @@ forest->grow(); + vec* vi_ptr = &(forest->vi_numer); + + forest->trees[1]->compute_vi_permutation(vi_ptr); + + Rcout << forest->vi_numer << std::endl; + if(oobag){ result.push_back(forest->predict(oobag), "pred_oobag"); } From 46809bb4ac52de41c6ba4a296bf3d2687748e260 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 14 Sep 2023 12:37:52 -0400 Subject: [PATCH 068/103] vi permute stable but buggy --- src/Data.h | 19 +++++++++++++ src/Forest.cpp | 4 +++ src/Tree.cpp | 65 ++++++++++++++++++++++++++++---------------- src/Tree.h | 6 +--- src/TreeSurvival.cpp | 23 +++------------- src/TreeSurvival.h | 2 +- src/orsf_oop.cpp | 6 +--- 7 files changed, 71 insertions(+), 54 deletions(-) diff --git a/src/Data.h b/src/Data.h index 7c32078e..73ec5297 100644 --- a/src/Data.h +++ b/src/Data.h @@ -76,6 +76,25 @@ return(w(indices)); } + void permute_col(arma::uword j, + std::mt19937_64 random_number_generator){ + + arma::vec x_j = x.unsafe_col(j); + + // make and store a copy + this->col_restore_values = arma::vec(x_j.begin(), x_j.size(), true); + + // shuffle the vector in-place + std::shuffle(x_j.begin(), x_j.end(), random_number_generator); + + } + + void restore_col(arma::uword j){ + + x.col(j) = col_restore_values; + + } + // member variables arma::uword n_cols; diff --git a/src/Forest.cpp b/src/Forest.cpp index ad53e804..40de5308 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -176,6 +176,10 @@ void Forest::grow_in_threads(uint thread_idx, trees[i]->grow(vi_numer_ptr, vi_denom_ptr); + // if(vi_type == VI_PERMUTE){ + // trees[i]->compute_vi_permutation(vi_numer_ptr); + // } + // Check for user interrupt if (aborted) { std::unique_lock lock(mutex); diff --git a/src/Tree.cpp b/src/Tree.cpp index 783e5a2e..0867ade6 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -953,33 +953,42 @@ } - void Tree::permute_oobag_col(arma::uword j){ + double Tree::compute_prediction_accuracy(arma::vec& preds){ + return(0.0); + } - arma::vec x_oobag_j = x_oobag.unsafe_col(j); + void Tree::compute_vi_permutation(arma::vec* vi_numer) { - // make and store a copy - this->x_oobag_restore = arma::vec(x_oobag_j.begin(), x_oobag_j.size(), true); + x_oobag = data->x_rows(rows_oobag); + y_oobag = data->y_rows(rows_oobag); + w_oobag = data->w_subvec(rows_oobag); - // shuffle the vector in-place - std::shuffle(x_oobag_j.begin(), x_oobag_j.end(), random_number_generator); + std::unique_ptr data_oobag { }; - } + data_oobag = std::make_unique(x_oobag, y_oobag, w_oobag); - void Tree::restore_oobag_col(arma::uword j){ + predict_leaf(data_oobag.get(), false); - x_oobag.col(j) = x_oobag_restore; + vec pred_values(data_oobag->n_rows); - } + for(uword i = 0; i < pred_values.size(); ++i){ + pred_values[i] = leaf_summary[pred_leaf[i]]; + } - void Tree::compute_vi_permutation(arma::vec* vi_numer) { + // Compute normal prediction accuracy for each tree. Predictions already computed.. + double accuracy_normal = compute_prediction_accuracy(pred_values); - x_oobag = data->x_rows(rows_oobag); + if(VERBOSITY > 1){ + Rcout << "prediction accuracy before permutation: "; + Rcout << accuracy_normal << std::endl; + Rcout << " - mean leaf pred: "; + Rcout << mean(conv_to::from(pred_leaf)); + Rcout << std::endl << std::endl; + } - // Compute normal prediction accuracy for each tree. Predictions already computed.. - double accuracy_normal = compute_prediction_accuracy(); // Randomly permute for all independent variables - for (uword pred = 0; pred < data->get_n_cols(); ++pred) { + for (uword pred_col = 0; pred_col < data->get_n_cols(); ++pred_col) { // Check whether the i-th variable is used in the // tree: @@ -987,7 +996,7 @@ for(uint j = 0; j < coef_indices.size(); ++j){ for(uword k = 0; k < coef_indices[j].size(); ++k){ - if(coef_indices[j][k] == pred){ + if(coef_indices[j][k] == pred_col){ pred_is_used = true; break; } @@ -998,21 +1007,29 @@ if (pred_is_used) { // Permute and compute prediction accuracy again for this permutation and save difference - vec tmp_vec = x_oobag.col(pred); - print_vec(tmp_vec, "before permute", 5); + data_oobag->permute_col(pred_col, random_number_generator); - permute_oobag_col(pred); + predict_leaf(data_oobag.get(), false); - tmp_vec = x_oobag.col(pred); - print_vec(tmp_vec, "after permute", 5); + for(uword i = 0; i < pred_values.size(); ++i){ + pred_values[i] = leaf_summary[pred_leaf[i]]; + } + + double accuracy_permuted = compute_prediction_accuracy(pred_values); - double accuracy_permuted = compute_prediction_accuracy(); + if(VERBOSITY>1){ + Rcout << "prediction accuracy after permuting col " << pred_col << ": "; + Rcout << accuracy_permuted << std::endl; + Rcout << " - mean leaf pred: "; + Rcout << mean(conv_to::from(pred_leaf)); + Rcout << std::endl << std::endl; + } double accuracy_difference = accuracy_normal - accuracy_permuted; - (*vi_numer)[pred] += accuracy_difference; + (*vi_numer)[pred_col] += accuracy_difference; - restore_oobag_col(pred); + data_oobag->restore_col(pred_col); } } diff --git a/src/Tree.h b/src/Tree.h index 972a6f92..cb9367d3 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -120,10 +120,6 @@ return(pred_leaf); } - void permute_oobag_col(arma::uword j); - - void restore_oobag_col(arma::uword j); - // pointers to variable importance in forest arma::vec* vi_numer; arma::uvec* vi_denom; @@ -230,7 +226,7 @@ // leaf values (only in leaf nodes) std::vector leaf_summary; - virtual double compute_prediction_accuracy() = 0; + virtual double compute_prediction_accuracy(arma::vec& preds); diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index d07311f3..483ad2b1 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -644,24 +644,9 @@ } - double TreeSurvival::compute_prediction_accuracy(){ + double TreeSurvival::compute_prediction_accuracy(arma::vec& preds){ - y_oobag = data->y_rows(rows_oobag); - w_oobag = data->w_subvec(rows_oobag); - - predict_leaf(this->data, true); - - uvec pred_leaf_oobag = pred_leaf(rows_oobag); - - vec pred_mort_oobag(rows_oobag.size()); - - for(uword i = 0; i < pred_mort_oobag.size(); ++i){ - pred_mort_oobag[i] = leaf_summary[pred_leaf_oobag[i]]; - } - - double cindex = compute_concordance_index(y_oobag, w_oobag, pred_mort_oobag); - - Rcout << cindex << std::endl; + double cindex = compute_concordance_index(y_oobag, w_oobag, preds); return cindex; @@ -681,7 +666,7 @@ for (uvec::iterator event = events.begin(); event < events.end(); ++event) { - for(uword i = *event; i < y_node.n_rows; ++i){ + for(uword i = *event; i < y.n_rows; ++i){ if (y_time[i] > y_time[*event]) { // ties not counted @@ -727,7 +712,7 @@ for (uvec::iterator event = events.begin(); event < events.end(); ++event) { - for(uword i = *event; i < y_node.n_rows; ++i){ + for(uword i = *event; i < y.n_rows; ++i){ if (y_time[i] > y_time[*event]) { // ties not counted diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 32c203f4..ba34a40c 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -73,7 +73,7 @@ return(leaf_pred_chaz); } - double compute_prediction_accuracy() override; + double compute_prediction_accuracy(arma::vec& preds) override; double compute_concordance_index(arma::mat& y, arma::vec& w, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 4088190b..44cbbaf9 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -242,11 +242,7 @@ forest->grow(); - vec* vi_ptr = &(forest->vi_numer); - - forest->trees[1]->compute_vi_permutation(vi_ptr); - - Rcout << forest->vi_numer << std::endl; + // Rcout << forest->vi_numer << std::endl; if(oobag){ result.push_back(forest->predict(oobag), "pred_oobag"); } From 4d4e04ab6e27deb918dbd161fa4346a833625742 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 14 Sep 2023 14:21:43 -0400 Subject: [PATCH 069/103] cant use tree rng to make rng in data class --- src/Data.h | 5 ++--- src/Forest.cpp | 6 +++--- src/Tree.cpp | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/Data.h b/src/Data.h index 73ec5297..a52d92b1 100644 --- a/src/Data.h +++ b/src/Data.h @@ -76,8 +76,7 @@ return(w(indices)); } - void permute_col(arma::uword j, - std::mt19937_64 random_number_generator){ + void permute_col(arma::uword j){ arma::vec x_j = x.unsafe_col(j); @@ -85,7 +84,7 @@ this->col_restore_values = arma::vec(x_j.begin(), x_j.size(), true); // shuffle the vector in-place - std::shuffle(x_j.begin(), x_j.end(), random_number_generator); + std::shuffle(x_j.begin(), x_j.end(), std::default_random_engine()); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 40de5308..2c3ad291 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -176,9 +176,9 @@ void Forest::grow_in_threads(uint thread_idx, trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - // if(vi_type == VI_PERMUTE){ - // trees[i]->compute_vi_permutation(vi_numer_ptr); - // } + if(vi_type == VI_PERMUTE){ + trees[i]->compute_vi_permutation(vi_numer_ptr); + } // Check for user interrupt if (aborted) { diff --git a/src/Tree.cpp b/src/Tree.cpp index 0867ade6..7458ff34 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -1007,7 +1007,7 @@ if (pred_is_used) { // Permute and compute prediction accuracy again for this permutation and save difference - data_oobag->permute_col(pred_col, random_number_generator); + data_oobag->permute_col(pred_col); predict_leaf(data_oobag.get(), false); From 28bf4ea9b302c2b23e985e789527d40bb3167ff2 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 15 Sep 2023 20:49:36 -0400 Subject: [PATCH 070/103] cleanup, plus eval_oobag_every might work in threads --- R/RcppExports.R | 4 +-- src/Data.h | 4 +-- src/Forest.cpp | 19 ++++++++--- src/Forest.h | 53 ++++++++++++++++++----------- src/ForestSurvival.h | 9 +++-- src/RcppExports.cpp | 9 ++--- src/Tree.cpp | 81 ++++++++++++++++++++++---------------------- src/Tree.h | 19 ++++++----- src/TreeSurvival.cpp | 16 ++++++--- src/TreeSurvival.h | 2 +- src/globals.h | 6 ++-- src/orsf_oop.cpp | 69 ++++++++++++++++++++++--------------- 12 files changed, 172 insertions(+), 119 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 75dedd8e..4f3bacff 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -81,7 +81,7 @@ node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) } -orsf_cpp <- function(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) } diff --git a/src/Data.h b/src/Data.h index a52d92b1..d325d265 100644 --- a/src/Data.h +++ b/src/Data.h @@ -76,7 +76,7 @@ return(w(indices)); } - void permute_col(arma::uword j){ + void permute_col(arma::uword j, std::mt19937_64& rng){ arma::vec x_j = x.unsafe_col(j); @@ -84,7 +84,7 @@ this->col_restore_values = arma::vec(x_j.begin(), x_j.size(), true); // shuffle the vector in-place - std::shuffle(x_j.begin(), x_j.end(), std::default_random_engine()); + std::shuffle(x_j.begin(), x_j.end(), rng); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 2c3ad291..bd5e2f58 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -176,8 +176,8 @@ void Forest::grow_in_threads(uint thread_idx, trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - if(vi_type == VI_PERMUTE){ - trees[i]->compute_vi_permutation(vi_numer_ptr); + if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); } // Check for user interrupt @@ -231,7 +231,7 @@ mat Forest::predict(bool oobag) { &(oob_denom_threads[i])); } - showProgress("Predicting..", n_tree); + showProgress("Predicting...", n_tree); for (auto &thread : threads) { thread.join(); @@ -265,7 +265,7 @@ void Forest::predict_in_threads(uint thread_idx, trees[i]->predict_leaf(prediction_data, oobag); - trees[i]->predict_value(result_ptr, denom_ptr, 'S', oobag); + trees[i]->predict_value(result_ptr, denom_ptr, pred_type, oobag); // Check for user interrupt if (aborted) { @@ -278,6 +278,17 @@ void Forest::predict_in_threads(uint thread_idx, // Increase progress by 1 tree std::unique_lock lock(mutex); ++progress; + + if(oobag && progress % oobag_eval_every == 0){ + + mat preds = (*result_ptr) / (*denom_ptr); + + Rcout << "progress: " << progress << std::endl; + + print_mat(preds, "Preds", 5, 5); + + } + condition_variable.notify_one(); } diff --git a/src/Forest.h b/src/Forest.h index 5637e082..c1f20a72 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -67,26 +67,6 @@ class Forest { // Grow or predict void run(); - void init_trees(); - - void grow(); - - void grow_in_threads(uint thread_idx, - vec* vi_numer_ptr, - uvec* vi_denom_ptr); - - virtual void plant() = 0; - - arma::mat predict(bool oobag); - - void predict_in_threads(uint thread_idx, - Data* prediction_data, - bool oobag, - mat* result_ptr, - vec* denom_ptr); - - void showProgress(std::string operation, size_t max_progress); - std::vector> get_cutpoint() { std::vector> result; @@ -177,6 +157,39 @@ class Forest { return(unique_event_times); } + arma::vec& get_vi_numer(){ + return(vi_numer); + } + + arma::uvec& get_vi_denom(){ + return(vi_denom); + } + + virtual void plant() = 0; + + void grow(); + + arma::mat predict(bool oobag); + +protected: + + void init_trees(); + + + void grow_in_threads(uint thread_idx, + vec* vi_numer_ptr, + uvec* vi_denom_ptr); + + + + void predict_in_threads(uint thread_idx, + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr); + + void showProgress(std::string operation, size_t max_progress); + virtual void resize_pred_mat(arma::mat& p) = 0; // Member variables diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index e5a46b6f..4e6dc7cb 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -34,14 +34,17 @@ class ForestSurvival: public Forest { std::vector>& forest_leaf_pred_chaz, std::vector>& forest_leaf_summary); + std::vector> get_leaf_pred_indx(); + std::vector> get_leaf_pred_prob(); + std::vector> get_leaf_pred_chaz(); + // growInternal() in ranger void plant() override; +protected: + void resize_pred_mat(arma::mat& p) override; - std::vector> get_leaf_pred_indx(); - std::vector> get_leaf_pred_prob(); - std::vector> get_leaf_pred_chaz(); arma::vec pred_horizon; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index ea921955..7d435b34 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -334,14 +334,15 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_every, unsigned int n_thread); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_every, unsigned int n_thread); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::uword >::type tree_type_R(tree_type_RSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); Rcpp::traits::input_parameter< Rcpp::List >::type loaded_forest(loaded_forestSEXP); Rcpp::traits::input_parameter< Rcpp::RObject >::type lincomb_R_function(lincomb_R_functionSEXP); @@ -371,7 +372,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type oobag(oobagSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread)); return rcpp_result_gen; END_RCPP } @@ -397,7 +398,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 32}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 33}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index 7458ff34..78a0e4a4 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -129,6 +129,18 @@ } + void Tree::allocate_oobag_memory(){ + + if(rows_oobag.size() == 0){ + stop("attempting to allocate oob memory with empty rows_oobag"); + } + + x_oobag = data->x_rows(rows_oobag); + y_oobag = data->y_rows(rows_oobag); + w_oobag = data->w_subvec(rows_oobag); + + } + void Tree::resize_leaves(arma::uword new_size){ leaf_summary.resize(new_size); @@ -918,55 +930,36 @@ void Tree::predict_value(arma::mat* pred_output, arma::vec* pred_denom, - char pred_type, + PredType pred_type, bool oobag){ - uvec pred_leaf_sort = sort_index(pred_leaf, "ascend"); + return; - uvec::iterator it = pred_leaf_sort.begin(); - - // oobag leaf prediction has zeros for inbag rows - if(oobag){ while(pred_leaf[*it] == 0){ ++it; } } - - do { - - uword leaf_id = pred_leaf[*it]; - - (*pred_output).row(*it) += leaf_summary[leaf_id]; - if(oobag) (*pred_denom)[*it]++; - ++it; - - if(it < pred_leaf_sort.end()){ - - while(leaf_id == pred_leaf[*it]){ + } - (*pred_output).row(*it) += leaf_summary[leaf_id]; - if(oobag) (*pred_denom)[*it]++; + double Tree::compute_prediction_accuracy(arma::vec& preds){ + return(0.0); + } - if (it == pred_leaf_sort.end()-1){ break; } else { ++it; } + void Tree::negate_coef(arma::uword pred_col){ + for(uint j = 0; j < coef_indices.size(); ++j){ + for(uword k = 0; k < coef_indices[j].size(); ++k){ + if(coef_indices[j][k] == pred_col){ + coef_values[j][k] *= (-1); } - } + } - } while (it < pred_leaf_sort.end()); - - } - - double Tree::compute_prediction_accuracy(arma::vec& preds){ - return(0.0); } - void Tree::compute_vi_permutation(arma::vec* vi_numer) { - - x_oobag = data->x_rows(rows_oobag); - y_oobag = data->y_rows(rows_oobag); - w_oobag = data->w_subvec(rows_oobag); + void Tree::compute_oobag_vi(arma::vec* vi_numer, VariableImportance vi_type) { + allocate_oobag_memory(); std::unique_ptr data_oobag { }; - data_oobag = std::make_unique(x_oobag, y_oobag, w_oobag); + // using oobag = false for predict b/c data_oobag is already subsetted predict_leaf(data_oobag.get(), false); vec pred_values(data_oobag->n_rows); @@ -979,7 +972,7 @@ double accuracy_normal = compute_prediction_accuracy(pred_values); if(VERBOSITY > 1){ - Rcout << "prediction accuracy before permutation: "; + Rcout << "prediction accuracy before noising: "; Rcout << accuracy_normal << std::endl; Rcout << " - mean leaf pred: "; Rcout << mean(conv_to::from(pred_leaf)); @@ -1003,11 +996,14 @@ } } - // Only do permutations if the variable is used in the tree, otherwise variable importance is 0 + // proceed if the variable is used in the tree, otherwise vi = 0 if (pred_is_used) { - // Permute and compute prediction accuracy again for this permutation and save difference - data_oobag->permute_col(pred_col); + if(vi_type == VI_PERMUTE){ + data_oobag->permute_col(pred_col, random_number_generator); + } else if (vi_type == VI_NEGATE){ + negate_coef(pred_col); + } predict_leaf(data_oobag.get(), false); @@ -1018,7 +1014,7 @@ double accuracy_permuted = compute_prediction_accuracy(pred_values); if(VERBOSITY>1){ - Rcout << "prediction accuracy after permuting col " << pred_col << ": "; + Rcout << "prediction accuracy after noising " << pred_col << ": "; Rcout << accuracy_permuted << std::endl; Rcout << " - mean leaf pred: "; Rcout << mean(conv_to::from(pred_leaf)); @@ -1029,7 +1025,11 @@ (*vi_numer)[pred_col] += accuracy_difference; - data_oobag->restore_col(pred_col); + if(vi_type == VI_PERMUTE){ + data_oobag->restore_col(pred_col); + } else if (vi_type == VI_NEGATE){ + negate_coef(pred_col); + } } } @@ -1037,5 +1037,6 @@ + } // namespace aorsf diff --git a/src/Tree.h b/src/Tree.h index cb9367d3..8bb2d118 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -27,6 +27,8 @@ std::vector& coef_indices, std::vector& leaf_summary); + virtual ~Tree() = default; + // deleting the copy constructor Tree(const Tree&) = delete; // deleting the copy assignment operator @@ -85,10 +87,12 @@ virtual void predict_value(arma::mat* pred_output, arma::vec* pred_denom, - char pred_type, + PredType pred_type, bool oobag); - void compute_vi_permutation(arma::vec* vi_numer); + void negate_coef(arma::uword pred_col); + + void compute_oobag_vi(arma::vec* vi_numer, VariableImportance vi_type); // void grow(arma::vec& vi_numer, arma::uvec& vi_denom); @@ -120,6 +124,11 @@ return(pred_leaf); } + + protected: + + void allocate_oobag_memory(); + // pointers to variable importance in forest arma::vec* vi_numer; arma::uvec* vi_denom; @@ -228,12 +237,6 @@ virtual double compute_prediction_accuracy(arma::vec& preds); - - - protected: - - - }; } // namespace aorsf diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 483ad2b1..438abbf1 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -520,7 +520,7 @@ void TreeSurvival::predict_value(arma::mat* pred_output, arma::vec* pred_denom, - char pred_type, + PredType pred_type, bool oobag){ uvec pred_leaf_sort = sort_index(pred_leaf, "ascend"); @@ -543,10 +543,12 @@ double pred_t0; - if(pred_type == 'S' || pred_type == 'R'){ + if(pred_type == SURVIVAL || pred_type == RISK){ pred_t0 = 1; - } else { + } else if (pred_type == CUMULATIVE_HAZARD) { pred_t0 = 0; + } else { + stop("invalid pred_type"); } uword i, j; @@ -571,8 +573,7 @@ if(leaf_values.is_empty()) Rcpp::stop("empty leaf"); - // don't reset i in the loop. - // (wasteful b/c leaf_times ascend) + // don't reset i in the loop b/c leaf_times ascend i = 0; for(j = 0; j < (*pred_horizon).size(); j++){ @@ -623,6 +624,11 @@ } + // old code for running mean - should i use it? + // temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; + // surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; + + (*pred_output).row(*it) += temp_vec.t(); if(oobag) (*pred_denom)[*it]++; ++it; diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index ba34a40c..118f0a36 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -58,7 +58,7 @@ void predict_value(arma::mat* pred_output, arma::vec* pred_denom, - char pred_type, + PredType pred_type, bool oobag) override; std::vector& get_leaf_pred_indx(){ diff --git a/src/globals.h b/src/globals.h index 1fdb7797..3eba6920 100644 --- a/src/globals.h +++ b/src/globals.h @@ -19,9 +19,9 @@ // Tree types enum TreeType { TREE_CLASSIFICATION = 1, - TREE_REGRESSION = 3, - TREE_SURVIVAL = 5, - TREE_PROBABILITY = 9 + TREE_REGRESSION = 2, + TREE_SURVIVAL = 3, + TREE_PROBABILITY = 4 }; // Variable importance diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 44cbbaf9..f384c2ef 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -132,6 +132,7 @@ List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, + arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, @@ -171,6 +172,7 @@ // re-cast integer inputs from R into enumerations // see globals.h for definitions. + TreeType tree_type = (TreeType) tree_type_R; VariableImportance vi_type = (VariableImportance) vi_type_R; SplitRule split_rule = (SplitRule) split_rule_R; LinearCombo lincomb_type = (LinearCombo) lincomb_type_R; @@ -180,12 +182,20 @@ if(lincomb_type == R_FUNCTION){ n_thread = 1; } if(oobag_eval_every < n_tree){ n_thread = 1; } - vec y_times = find_unique_event_times(y); + if(tree_type == TREE_SURVIVAL){ - forest = std::make_unique(leaf_min_events, - split_min_events, - pred_horizon, - y_times); + vec unique_event_times = find_unique_event_times(y); + + forest = std::make_unique(leaf_min_events, + split_min_events, + pred_horizon, + unique_event_times); + + } else { + + Rcpp::stop("only survival trees are currently implemented"); + + } forest->init(std::move(data), tree_seeds, @@ -217,20 +227,23 @@ // Load forest object if in prediction mode if(pred_mode){ - std::vector> cutpoint = loaded_forest["cutpoint"]; - std::vector> child_left = loaded_forest["child_left"]; - std::vector> coef_values = loaded_forest["coef_values"]; - std::vector> coef_indices = loaded_forest["coef_indices"]; - std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; - std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; - std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; - std::vector> leaf_summary = loaded_forest["leaf_summary"]; + std::vector> cutpoint = loaded_forest["cutpoint"]; + std::vector> child_left = loaded_forest["child_left"]; + std::vector> coef_values = loaded_forest["coef_values"]; + std::vector> coef_indices = loaded_forest["coef_indices"]; + std::vector> leaf_summary = loaded_forest["leaf_summary"]; + + if(tree_type == TREE_SURVIVAL){ + + std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; + std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; + std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; - auto& temp = dynamic_cast(*forest); - temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); + auto& temp = dynamic_cast(*forest); + temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, + leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); - // forest->load(n_tree, loaded_forest); + } arma::mat pred_mat = forest->predict(oobag); @@ -238,12 +251,13 @@ } else { + // initialize the trees forest->plant(); + // grow the trees forest->grow(); - // Rcout << forest->vi_numer << std::endl; - + // compute out-of-bag predictions if needed if(oobag){ result.push_back(forest->predict(oobag), "pred_oobag"); } @@ -254,16 +268,17 @@ forest_out.push_back(forest->get_coef_values(), "coef_values"); forest_out.push_back(forest->get_leaf_summary(), "leaf_summary"); - auto& temp = dynamic_cast(*forest); - forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); - forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); - forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); - + if(tree_type == TREE_SURVIVAL){ + auto& temp = dynamic_cast(*forest); + forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); + forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); + forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); + result.push_back(forest->get_unique_event_times(), "unique_event_times"); + } result.push_back(forest_out, "forest"); - result.push_back(forest->get_unique_event_times(), "unique_event_times"); - result.push_back(forest->vi_numer, "vi_numer"); - result.push_back(forest->vi_denom, "vi_denom"); + result.push_back(forest->get_vi_numer(), "vi_numer"); + result.push_back(forest->get_vi_denom(), "vi_denom"); } From 10e40e75666b6850e39f53733b84446c9ff6ad20 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Sat, 16 Sep 2023 23:48:05 -0400 Subject: [PATCH 071/103] runs on workstation now (maybe) --- scratch.R | 334 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/Tree.cpp | 25 ++-- 2 files changed, 350 insertions(+), 9 deletions(-) create mode 100644 scratch.R diff --git a/scratch.R b/scratch.R new file mode 100644 index 00000000..60874726 --- /dev/null +++ b/scratch.R @@ -0,0 +1,334 @@ +library(survival) +library(tidyverse) +library(riskRegression) + + +.pbc_orsf <- pbc_orsf %>% + mutate(stage = factor(stage, ordered = F)) + +x <- model.matrix(~. -1, data = select(.pbc_orsf, -time, -status, -id)) +y <- as.matrix(.pbc_orsf[, c('time', 'status')]) + +# .flchain <- flchain |> +# rename(time = futime, status = death) |> +# select(-chapter) |> +# tidyr::drop_na() +# x <- model.matrix(~. -1, data = select(.flchain, -time, -status)) +# y <- as.matrix(.flchain[, c('time', 'status')]) + +w <- rep(1, nrow(x)) + +sorted <- + collapse::radixorder(y[, 1], # order this way for risk sets + -y[, 2]) # order this way for oob C-statistic. + +y <- y[sorted, ] +x <- x[sorted, ] +w <- w[sorted] + +f <- function(x, y, w){ + matrix(runif(ncol(x)), ncol=1) +} + +pred_horizon <- median(y[, 'time']) + +sink("orsf-output.txt") + +orsf_tree = aorsf:::orsf_cpp(x, + y, + w, + tree_type_R = 3, + tree_seeds = 1:500, + loaded_forest = list(), + n_tree = 500, + mtry = 3, + vi_type_R = 2, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 5, + leaf_min_obs = 5, + split_rule_R = 1, + split_min_events = 5, + split_min_obs = 10, + split_min_stat = 0, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-9, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = FALSE, + pred_horizon = pred_horizon, + oobag = TRUE, + oobag_eval_every = 500, + n_thread = 1) + +sink() + +orsf_tree$forest[-1] |> + as_tibble() |> + slice(1) |> + unnest(everything()) |> + mutate(node_id = seq(0, n()-1), + .before = 1) |> + print(n=100) + + +# sink("orsf-output.txt") +res_cstat_oobag <- res_ipa_oobag <- res_cstat_new <- res_ipa_new <- c() + +n_train <- nrow(pbc_orsf)/2 + +for(i in seq(5)){ + + print(i) + + train_rows <- sort(sample(nrow(x), size = n_train)) + + orsf_fit_1 = aorsf:::orsf_cpp(x[train_rows, ], + y[train_rows, ], + w[train_rows], + tree_seeds = 1:500, + loaded_forest = list(), + n_tree = 500, + mtry = 5, + vi_type_R = 3, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 1, + leaf_min_obs = 5, + split_rule_R = 1, + split_min_events = 5, + split_min_obs = 10, + split_min_stat = 0, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-9, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = FALSE, + pred_horizon = pred_horizon, + oobag = T, + oobag_eval_every = 500, + n_thread = 1) + + orsf_fit_5 = aorsf:::orsf_cpp(x[train_rows, ], + y[train_rows, ], + w[train_rows], + tree_seeds = 1:500, + loaded_forest = list(), + n_tree = 500, + mtry = 5, + vi_type_R = 3, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 1, + leaf_min_obs = 5, + split_rule_R = 1, + split_min_events = 5, + split_min_obs = 10, + split_min_stat = 0, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-9, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = FALSE, + pred_horizon = pred_horizon, + oobag = T, + oobag_eval_every = 500, + n_thread = 10) + + + expect_equal(orsf_fit_1$vi_numer, orsf_fit_5$vi_numer) + expect_equal(orsf_fit_1$vi_denom, orsf_fit_5$vi_denom) + + expect_equal(orsf_fit_1$forest, orsf_fit_5$forest) + expect_equal(orsf_fit_1$pred_oobag, orsf_fit_5$pred_oobag) + + # sink() + # + # data.frame(variable = colnames(x), + # vi = orsf_fit$vi_numer/orsf_fit$vi_denom) |> + # dplyr::arrange(vi) + # + orsf_fit_1$forest[-1] |> + as_tibble() |> + slice(1) |> + unnest(everything()) |> + mutate(node_id = seq(0, n()-1), + .before = 1) |> + print(n=100) + # + # sink("orsf-output.txt") + + orsf_pred_1 = aorsf:::orsf_cpp(x[-train_rows, ], + y[-train_rows, ], + w[-train_rows], + tree_seeds = 1:500, + loaded_forest = orsf_fit_1$forest, + n_tree = 500, + mtry = 5, + vi_type_R = 3, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 1, + leaf_min_obs = 5, + split_rule_R = 1, + split_min_events = 10, + split_min_obs = 20, + split_min_stat = 3.84, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-9, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = TRUE, + pred_horizon = c(pred_horizon), + oobag = FALSE, + oobag_eval_every = 500, + n_thread = 1) + + # sink("orsf-output.txt") + + orsf_pred_10 = aorsf:::orsf_cpp(x[-train_rows, ], + y[-train_rows, ], + w[-train_rows], + tree_seeds = 1:500, + loaded_forest = orsf_fit_1$forest, + n_tree = 500, + mtry = 5, + vi_type_R = 3, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 1, + leaf_min_obs = 5, + split_rule_R = 1, + split_min_events = 10, + split_min_obs = 20, + split_min_stat = 3.84, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-9, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = TRUE, + pred_horizon = c(pred_horizon), + oobag = FALSE, + oobag_eval_every = 500, + n_thread = 5) + + # sink() + + pred_list <- list(one_thread = 1-orsf_pred_1$predictions, + ten_thread = 1-orsf_pred_10$predictions) + + expect_equal(pred_list$one_thread, pred_list$ten_thread) + + sc_oobag = Score(object = list(1-orsf_fit_1$pred_oobag), + Surv(time, status) ~ 1, + data = as.data.frame(y)[train_rows, ], + times = pred_horizon, + summary = 'IPA') + + sc = Score(object = pred_list, + Surv(time, status) ~ 1, + data = as.data.frame(y)[-train_rows, ], + times = pred_horizon, + summary = 'IPA') + + res_cstat_oobag <- c(res_cstat_oobag, sc_oobag$AUC$score$AUC[1]) + res_ipa_oobag <- c(res_ipa_oobag, sc_oobag$Brier$score$IPA[2]) + res_cstat_new <- c(res_cstat_new, sc$AUC$score$AUC[1]) + res_ipa_new <- c(res_ipa_new, sc$Brier$score$IPA[2]) + +} + +mean(res_cstat_oobag) +mean(res_cstat_new) +mean(res_ipa_oobag) +mean(res_ipa_new) + +microbenchmark::microbenchmark( + + orsf_fit = aorsf:::orsf_cpp(x, + y, + w, + tree_seeds = c(1:500), + loaded_forest = list(), + n_tree = 500, + mtry = 3, + vi_type_R = 2, + vi_max_pvalue = 0.01, + lincomb_R_function = f, + oobag_R_function = f, + leaf_min_events = 5, + leaf_min_obs = 10, + split_rule_R = 1, + split_min_events = 10, + split_min_obs = 20, + split_min_stat = 3.84, + split_max_cuts = 5, + split_max_retry = 3, + lincomb_type_R = 1, + lincomb_eps = 1e-5, + lincomb_iter_max = 1, + lincomb_scale = TRUE, + lincomb_alpha = 1, + lincomb_df_target = 1, + lincomb_ties_method = 1, + pred_type_R = 1, + pred_mode = FALSE, + pred_horizon = pred_horizon, + oobag = TRUE, + oobag_eval_every = 500, + n_thread = 10), + + # ranger_fit = ranger::ranger(x = x, y = y, + # mtry = 3, + # num.threads = 10, + # num.trees = 500), + + rfsrc_fit = randomForestSRC::rfsrc(Surv(time, status) ~ ., + ntree = 500, + mtry = 3, + nthread = 10, + samptype = 'swr', + importance = 'permute', + nodesize = 10, + data = as.data.frame(cbind(y, x))), + + times = 3 + + +) + diff --git a/src/Tree.cpp b/src/Tree.cpp index 78a0e4a4..2f7b2521 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -177,8 +177,8 @@ void Tree::sample_cols(){ // Start empty - std::vector cols_accepted; - cols_accepted.reserve(mtry); + this->cols_node.set_size(mtry); + uint cols_accepted = 0; // Set all to not selected std::vector temp; @@ -195,17 +195,15 @@ temp[draw] = true; if(is_col_splittable(draw)){ - cols_accepted.push_back(draw); + cols_node[cols_accepted] = draw; + cols_accepted++; } - if(cols_accepted.size() == mtry) break; + if(cols_accepted == mtry) break; } - this->cols_node = uvec(cols_accepted.data(), - cols_accepted.size(), - false, - true); + if(cols_accepted < mtry) cols_node.resize(cols_accepted); } @@ -702,7 +700,9 @@ x_node = x_inbag(rows_node, cols_node); - if(VERBOSITY > 1) { + if(VERBOSITY > 0) { + + print_mat(x_node, "x_node", 20, 20); print_mat(y_node, "y_node", 20, 20); } @@ -813,6 +813,7 @@ cutpoint[*node] = cut_point; coef_values[*node] = beta_est; coef_indices[*node] = cols_node; + child_left[*node] = node_left; // re-assign observations in the current node // (note that g_node is 0 if left, 1 if right) @@ -877,6 +878,9 @@ for(i = 0; i < coef_values.size(); i++){ + if(VERBOSITY > 0) + Rcout << "moving obs in node " << i << std::endl; + // if child_left == 0, it's a leaf (no need to find next child) if(child_left[i] != 0){ @@ -892,6 +896,8 @@ lincomb = prediction_data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; + if(lincomb.size() == 0) stop("sommin wrong"); + it = obs_in_node.begin(); for(j = 0; j < lincomb.size(); ++j, ++it){ @@ -1005,6 +1011,7 @@ negate_coef(pred_col); } + predict_leaf(data_oobag.get(), false); for(uword i = 0; i < pred_values.size(); ++i){ From fd169b6de0c0c78abe3b09ffc13efc643aeda039 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 19 Sep 2023 14:32:26 -0400 Subject: [PATCH 072/103] the merge begins --- R/RcppExports.R | 68 +- R/compute_mean_leaves.R | 15 + R/orsf.R | 246 +- R/orsf_attr.R | 2 + R/penalized_cph.R | 2 + scratch.R | 27 +- src/Data.h | 12 + src/Forest.cpp | 90 +- src/Forest.h | 24 + src/ForestSurvival.cpp | 49 +- src/ForestSurvival.h | 15 + src/RcppExports.cpp | 304 +- src/Tree.cpp | 52 +- src/Tree.h | 8 +- src/TreeSurvival.cpp | 109 +- src/TreeSurvival.h | 10 +- src/globals.h | 36 +- src/orsf.cpp | 8222 ++++++++++++++--------------- src/orsf_oop.cpp | 79 +- src/utility.cpp | 117 + src/utility.h | 10 + tests/testthat/test-concordance.R | 68 + tests/testthat/test-orsf.R | 53 +- 23 files changed, 4831 insertions(+), 4787 deletions(-) create mode 100644 R/compute_mean_leaves.R create mode 100644 tests/testthat/test-concordance.R diff --git a/R/RcppExports.R b/R/RcppExports.R index 4f3bacff..bc8c880a 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -1,72 +1,16 @@ # Generated by using Rcpp::compileAttributes() -> do not edit by hand # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 -std_setdiff <- function(x, y) { - .Call(`_aorsf_std_setdiff`, x, y) -} - -x_node_scale_exported <- function(x_, w_) { - .Call(`_aorsf_x_node_scale_exported`, x_, w_) -} - -leaf_kaplan_testthat <- function(y, w) { - .Call(`_aorsf_leaf_kaplan_testthat`, y, w) -} - -newtraph_cph_testthat <- function(x_in, y_in, w_in, method, cph_eps_, iter_max) { - .Call(`_aorsf_newtraph_cph_testthat`, x_in, y_in, w_in, method, cph_eps_, iter_max) -} - -lrt_multi_testthat <- function(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) { - .Call(`_aorsf_lrt_multi_testthat`, y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_) -} - -oobag_c_harrell_testthat <- function(y_mat, s_vec) { - .Call(`_aorsf_oobag_c_harrell_testthat`, y_mat, s_vec) -} - -ostree_pred_leaf_testthat <- function(tree, x_pred_) { - .Call(`_aorsf_ostree_pred_leaf_testthat`, tree, x_pred_) -} - -orsf_fit <- function(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress) { - .Call(`_aorsf_orsf_fit`, x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress) -} - -orsf_oob_negate_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_negate_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_oob_permute_vi <- function(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) { - .Call(`_aorsf_orsf_oob_permute_vi`, x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_) -} - -orsf_pred_uni <- function(forest, x_new, time_dbl, pred_type) { - .Call(`_aorsf_orsf_pred_uni`, forest, x_new, time_dbl, pred_type) -} - -orsf_pred_multi <- function(forest, x_new, time_vec, pred_type) { - .Call(`_aorsf_orsf_pred_multi`, forest, x_new, time_vec, pred_type) -} - -pd_new_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_oob_smry <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_smry`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) -} - -pd_new_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_new_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { + .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) } -pd_oob_ice <- function(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) { - .Call(`_aorsf_pd_oob_ice`, forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type) +compute_cstat_exported_vec <- function(y, w, p, pred_is_risklike) { + .Call(`_aorsf_compute_cstat_exported_vec`, y, w, p, pred_is_risklike) } -coxph_fit_exported <- function(x_node, y_node, w_node, method, cph_eps, cph_iter_max) { - .Call(`_aorsf_coxph_fit_exported`, x_node, y_node, w_node, method, cph_eps, cph_iter_max) +compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { + .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { diff --git a/R/compute_mean_leaves.R b/R/compute_mean_leaves.R new file mode 100644 index 00000000..08ce45f6 --- /dev/null +++ b/R/compute_mean_leaves.R @@ -0,0 +1,15 @@ + + +compute_mean_leaves <- function(forest){ + + if(is.null(forest$leaf_summary)){ + return(0) + } + + collapse::fmean( + vapply(forest$leaf_summary, + function(leaf_smry) sum(leaf_smry != 0), + FUN.VALUE = integer(1)) + ) + +} diff --git a/R/orsf.R b/R/orsf.R index 473482d2..2086f612 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -312,12 +312,16 @@ orsf <- function(data, n_tree = 500, n_split = 5, n_retry = 3, + n_thread = 1, # TODO: add docs+checks mtry = NULL, leaf_min_events = 1, leaf_min_obs = 5, + split_rule = 'logrank', # TODO: add docs+checks split_min_events = 5, split_min_obs = 10, - split_min_stat = 3.841459, + split_min_stat = switch(split_rule, # TODO: update docs + "logrank" = 3.841459, + "cstat" = 0.50), oobag_pred_type = 'surv', oobag_pred_horizon = NULL, oobag_eval_every = n_tree, @@ -659,8 +663,8 @@ orsf <- function(data, } else { - # tell orsf.cpp to make its own oobag_pred_horizon by setting this to 0 - oobag_pred_horizon <- 0 + # use training data to provide sensible default + oobag_pred_horizon <- stats::median(y[, 1]) } @@ -671,56 +675,66 @@ orsf <- function(data, x_sort <- x[sorted, , drop = FALSE] y_sort <- y[sorted, , drop = FALSE] - if(is.null(weights)) weights <- double() - if(is.null(tree_seeds)) tree_seeds <- vector(mode = 'integer', length = 0L) - - orsf_out <- orsf_fit( - x = x_sort, - y = y_sort, - weights = if(length(weights) > 0) weights[sorted] else weights, - n_tree = if(no_fit) 0 else n_tree, - n_split_ = n_split, - mtry_ = mtry, - leaf_min_events_ = leaf_min_events, - leaf_min_obs_ = leaf_min_obs, - split_min_events_ = split_min_events, - split_min_obs_ = split_min_obs, - split_min_stat_ = split_min_stat, - cph_method_ = switch(tolower(cph_method), - 'breslow' = 0, - 'efron' = 1), - cph_eps_ = cph_eps, - cph_iter_max_ = cph_iter_max, - cph_do_scale_ = cph_do_scale, - net_alpha_ = net_alpha, - net_df_target_ = net_df_target, - oobag_pred_ = oobag_pred, - oobag_pred_type_ = switch(oobag_pred_type, - "none" = "N", - "surv" = "S", - "risk" = "R", - "chf" = "H"), - oobag_pred_horizon_ = oobag_pred_horizon, - oobag_eval_every_ = oobag_eval_every, - oobag_importance_ = importance %in% c("negate", "permute"), - oobag_importance_type_ = switch(importance, - "none" = "O", - "anova" = "A", - "negate" = "N", - "permute" = "P"), - #' @srrstats {G2.4a} *converting to integer in case R does that thing where it assumes the integer values you gave it are supposed to be doubles* - tree_seeds = as.integer(tree_seeds), - max_retry_ = n_retry, - f_beta = f_beta, - type_beta_ = switch(orsf_type, - 'fast' = 'C', - 'cph' = 'C', - 'net' = 'N', - 'custom' = 'U'), - f_oobag_eval = f_oobag_eval, - type_oobag_eval_ = type_oobag_eval, - verbose_progress = verbose_progress - ) + if(is.null(weights)) weights <- rep(1, nrow(x)) + + if(length(tree_seeds) == 1) set.seed(tree_seeds) + + if(is.null(tree_seeds) || length(tree_seeds) == 1) + tree_seeds <- sample(x = n_tree*2, size = n_tree, replace = FALSE) + + vi_max_pvalue = 0.01 + + orsf_out <- orsf_cpp(x = x, + y = y, + w = weights, + tree_type_R = 3, + tree_seeds = as.integer(tree_seeds), + loaded_forest = list(), + n_tree = n_tree, + mtry = mtry, + vi_type_R = switch(importance, + "none" = 0, + "negate" = 1, + "permute" = 2, + "anova" = 3), + vi_max_pvalue = vi_max_pvalue, + lincomb_R_function = f_beta, + oobag_R_function = f_oobag_eval, + leaf_min_events = leaf_min_events, + leaf_min_obs = leaf_min_obs, + split_rule_R = switch(split_rule, + "logrank" = 1, + "cstat" = 2), + split_min_events = split_min_events, + split_min_obs = split_min_obs, + split_min_stat = split_min_stat, + split_max_cuts = n_split, + split_max_retry = n_retry, + lincomb_type_R = switch(orsf_type, + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = cph_eps, + lincomb_iter_max = cph_iter_max, + lincomb_scale = cph_do_scale, + lincomb_alpha = net_alpha, + lincomb_df_target = net_df_target, + lincomb_ties_method = switch(tolower(cph_method), + 'breslow' = 0, + 'efron' = 1), + pred_type_R = switch(oobag_pred_type, + "none" = 0, + "risk" = 1, + "surv" = 2, + "chf" = 3, + "mort" = 4), + pred_mode = FALSE, + pred_horizon = oobag_pred_horizon, + oobag = oobag_pred, + oobag_eval_every = oobag_eval_every, + n_thread = n_thread) # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. @@ -743,32 +757,19 @@ orsf <- function(data, orsf_out$eval_oobag$stat_type <- switch(EXPR = orsf_out$eval_oobag$stat_type, - 'H' = "Harrell's C-statistic", - 'U' = "User-specified function") + "1" = "Harrell's C-statistic", + "2" = "User-specified function") #' @srrstats {G2.10} *drop = FALSE for type consistency* orsf_out$pred_oobag <- orsf_out$pred_oobag[unsorted, , drop = FALSE] } else { - if(oobag_pred_horizon == 0) - # this would get added by orsf_fit if oobag_pred was TRUE - orsf_out$pred_horizon <- stats::median(y[, 1]) - else orsf_out$pred_horizon <- oobag_pred_horizon } - n_leaves_mean <- 0 - - if(!no_fit) { - n_leaves_mean <- - collapse::fmean( - vapply(orsf_out$forest, - function(t) nrow(t$leaf_node_index), - FUN.VALUE = integer(1)) - ) - } + n_leaves_mean <- compute_mean_leaves(orsf_out$forest) attr(orsf_out, 'control') <- control attr(orsf_out, 'mtry') <- mtry @@ -811,11 +812,14 @@ orsf <- function(data, attr(orsf_out, 'oobag_fun') <- oobag_fun attr(orsf_out, 'oobag_pred_type') <- oobag_pred_type attr(orsf_out, 'oobag_eval_every') <- oobag_eval_every + attr(orsf_out, 'oobag_pred_horizon') <- oobag_pred_horizon attr(orsf_out, 'importance') <- importance attr(orsf_out, 'importance_values') <- orsf_out$importance attr(orsf_out, 'group_factors') <- group_factors attr(orsf_out, 'weights_user') <- weights attr(orsf_out, 'verbose_progress') <- verbose_progress + attr(orsf_out, 'vi_max_pvalue') <- vi_max_pvalue + attr(orsf_out, 'split_rule') <- split_rule attr(orsf_out, 'tree_seeds') <- if(is.null(tree_seeds)) c() else tree_seeds @@ -1027,52 +1031,59 @@ orsf_train_ <- function(object, weights <- get_weights_user(object) - orsf_out <- orsf_fit( - x = x_sort, - y = y_sort, - weights = if(length(weights) > 0) weights[sorted] else weights, - n_tree = n_tree, - n_split_ = get_n_split(object), - mtry_ = get_mtry(object), - leaf_min_events_ = get_leaf_min_events(object), - leaf_min_obs_ = get_leaf_min_obs(object), - split_min_events_ = get_split_min_events(object), - split_min_obs_ = get_split_min_obs(object), - split_min_stat_ = get_split_min_stat(object), - cph_method_ = switch(tolower(get_cph_method(object)), - 'breslow' = 0, - 'efron' = 1), - cph_eps_ = get_cph_eps(object), # - cph_iter_max_ = get_cph_iter_max(object), - cph_do_scale_ = get_cph_do_scale(object), - net_alpha_ = get_net_alpha(object), - net_df_target_ = get_net_df_target(object), - oobag_pred_ = get_oobag_pred(object), - oobag_pred_type_ = switch(get_oobag_pred_type(object), - "none" = "N", - "surv" = "S", - "risk" = "R", - "chf" = "H"), - oobag_pred_horizon_ = object$pred_horizon, - oobag_eval_every_ = oobag_eval_every, - oobag_importance_ = get_importance(object) %in% c("negate", "permute"), - oobag_importance_type_ = switch(get_importance(object), - "none" = "O", - "anova" = "A", - "negate" = "N", - "permute" = "P"), - tree_seeds = as.integer(get_tree_seeds(object)), - max_retry_ = get_n_retry(object), - f_beta = get_f_beta(object), - type_beta_ = switch(get_orsf_type(object), - 'fast' = 'C', - 'cph' = 'C', - 'net' = 'N', - 'custom' = 'U'), - f_oobag_eval = get_f_oobag_eval(object), - type_oobag_eval_ = get_type_oobag_eval(object), - verbose_progress = get_verbose_progress(object) - ) + orsf_out <- orsf_cpp(x = x, + y = y, + w = weights, + tree_type_R = 3, + tree_seeds = get_tree_seeds(object), + loaded_forest = list(), + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = switch(get_importance(object), + "none" = 0, + "negate" = 1, + "permute" = 2, + "anova" = 3), + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = switch(get_oobag_pred_type(object), + "none" = 0, + "risk" = 1, + "surv" = 2, + "chf" = 3, + "mort" = 4), + pred_mode = FALSE, + pred_horizon = get_oobag_pred_horizon(object), + oobag = get_oobag_pred(object), + oobag_eval_every = get_oobag_eval_every(object), + n_thread = 5) object$forest <- orsf_out$forest @@ -1115,10 +1126,7 @@ orsf_train_ <- function(object, } - attr(object, "n_leaves_mean") <- - mean(vapply(orsf_out$forest, - function(t) nrow(t$leaf_node_index), - FUN.VALUE = integer(1))) + attr(object, "n_leaves_mean") <- compute_mean_leaves(orsf_out$forest) attr(object, 'trained') <- TRUE diff --git a/R/orsf_attr.R b/R/orsf_attr.R index 4cab8b5f..c4589fc9 100644 --- a/R/orsf_attr.R +++ b/R/orsf_attr.R @@ -57,6 +57,8 @@ get_tree_seeds <- function(object) attr(object, 'tree_seeds') get_weights_user <- function(object) attr(object, 'weights_user') get_event_times <- function(object) attr(object, 'event_times') get_verbose_progress <- function(object) attr(object, 'verbose_progress') +get_vi_max_pvalue <- function(object) attr(object, 'vi_max_pvalue') +get_split_rule <- function(object) attr(object, 'split_rule') #' ORSF status #' diff --git a/R/penalized_cph.R b/R/penalized_cph.R index 11d98956..733d09c5 100644 --- a/R/penalized_cph.R +++ b/R/penalized_cph.R @@ -29,6 +29,8 @@ penalized_cph <- function(x_node, alpha, df_target){ + colnames(y_node) <- c('time', 'status') + suppressWarnings( fit <- try( glmnet::glmnet(x = x_node, diff --git a/scratch.R b/scratch.R index 60874726..7af8f5c7 100644 --- a/scratch.R +++ b/scratch.R @@ -1,7 +1,15 @@ -library(survival) library(tidyverse) library(riskRegression) +library(survival) +sink("orsf-output.txt") +fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_tree = 100, + n_thread = 5, + oobag_pred_type = 'risk', + split_rule = 'cstat', + split_min_stat = .5) +sink() .pbc_orsf <- pbc_orsf %>% mutate(stage = factor(stage, ordered = F)) @@ -30,9 +38,9 @@ f <- function(x, y, w){ matrix(runif(ncol(x)), ncol=1) } -pred_horizon <- median(y[, 'time']) +pred_horizon <- 200 # median(y[, 'time']) -sink("orsf-output.txt") +# sink("orsf-output.txt") orsf_tree = aorsf:::orsf_cpp(x, y, @@ -63,12 +71,12 @@ orsf_tree = aorsf:::orsf_cpp(x, lincomb_ties_method = 1, pred_type_R = 1, pred_mode = FALSE, - pred_horizon = pred_horizon, + pred_horizon = c(pred_horizon, 2*pred_horizon), oobag = TRUE, - oobag_eval_every = 500, - n_thread = 1) + oobag_eval_every = 100, + n_thread = 6) -sink() +# sink() orsf_tree$forest[-1] |> as_tibble() |> @@ -93,6 +101,7 @@ for(i in seq(5)){ orsf_fit_1 = aorsf:::orsf_cpp(x[train_rows, ], y[train_rows, ], w[train_rows], + tree_type_R = 3, tree_seeds = 1:500, loaded_forest = list(), n_tree = 500, @@ -126,6 +135,7 @@ for(i in seq(5)){ orsf_fit_5 = aorsf:::orsf_cpp(x[train_rows, ], y[train_rows, ], w[train_rows], + tree_type_R = 3, tree_seeds = 1:500, loaded_forest = list(), n_tree = 500, @@ -182,6 +192,7 @@ for(i in seq(5)){ orsf_pred_1 = aorsf:::orsf_cpp(x[-train_rows, ], y[-train_rows, ], w[-train_rows], + tree_type_R = 3, tree_seeds = 1:500, loaded_forest = orsf_fit_1$forest, n_tree = 500, @@ -217,6 +228,7 @@ for(i in seq(5)){ orsf_pred_10 = aorsf:::orsf_cpp(x[-train_rows, ], y[-train_rows, ], w[-train_rows], + tree_type_R = 3, tree_seeds = 1:500, loaded_forest = orsf_fit_1$forest, n_tree = 500, @@ -283,6 +295,7 @@ microbenchmark::microbenchmark( orsf_fit = aorsf:::orsf_cpp(x, y, w, + tree_type_R = 3, tree_seeds = c(1:500), loaded_forest = list(), n_tree = 500, diff --git a/src/Data.h b/src/Data.h index d325d265..1f0406b9 100644 --- a/src/Data.h +++ b/src/Data.h @@ -46,6 +46,18 @@ return(n_cols); } + arma::mat& get_x(){ + return(x); + } + + arma::mat& get_y(){ + return(y); + } + + arma::vec& get_w(){ + return(w); + } + arma::mat x_rows(arma::uvec& row_indices) { return(x.rows(row_indices)); } diff --git a/src/Forest.cpp b/src/Forest.cpp index bd5e2f58..d948207d 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -93,6 +93,7 @@ void Forest::init_trees(){ trees[i]->init(data.get(), tree_seeds[i], mtry, + pred_type, leaf_min_obs, vi_type, vi_max_pvalue, @@ -120,6 +121,19 @@ void Forest::grow() { // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + + if(n_thread == 1){ + // ensure safe usage of R functions and glmnet + // by growing trees in a single thread. There does + // not need to be a corresponding predict_single_thread + // function b/c the R functions are only called during + // the grow phase of the forest. + vec vi_numer(data->n_cols); + uvec vi_denom(data->n_cols); + grow_single_thread(&vi_numer, &vi_denom); + return; + } + // catch interrupts from threads aborted = false; aborted_threads = 0; @@ -165,6 +179,24 @@ void Forest::grow() { } +void Forest::grow_single_thread(vec* vi_numer_ptr, + uvec* vi_denom_ptr){ + + for (uint i = 0; i < n_tree; ++i) { + + trees[i]->grow(vi_numer_ptr, vi_denom_ptr); + + if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); + } + + Rcpp::checkUserInterrupt(); + + } + + } + + void Forest::grow_in_threads(uint thread_idx, vec* vi_numer_ptr, uvec* vi_denom_ptr) { @@ -208,7 +240,10 @@ mat Forest::predict(bool oobag) { resize_pred_mat(result); // oobag denominator tracks the number of times an obs is oobag - if(oobag) oob_denom.zeros(data->n_rows); + if(oobag){ + oob_denom.zeros(data->n_rows); + resize_oobag_eval(); + } progress = 0; aborted = false; @@ -233,13 +268,34 @@ mat Forest::predict(bool oobag) { showProgress("Predicting...", n_tree); + // wait for all threads to finish before proceeding for (auto &thread : threads) { thread.join(); } for(uint i = 0; i < n_thread; ++i){ + result += result_threads[i]; - if(oobag) oob_denom += oob_denom_threads[i]; + + if(oobag){ + + oob_denom += oob_denom_threads[i]; + + // evaluate oobag error after joining each thread + // (only safe to do this when the condition below holds) + if( n_tree/oobag_eval_every == n_thread && n_thread > 1 ){ + + mat result_scaled = result.each_col() / oob_denom; + + print_mat(result_scaled, "result scaled", 10, 10); + + uword eval_row = i; + + compute_prediction_accuracy(data.get(), eval_row, result_scaled); + + } + } + } if(oobag){ @@ -279,13 +335,15 @@ void Forest::predict_in_threads(uint thread_idx, std::unique_lock lock(mutex); ++progress; - if(oobag && progress % oobag_eval_every == 0){ + // if user wants to track oobag error over time: + if( n_thread==1 && oobag && (progress%oobag_eval_every==0) ){ - mat preds = (*result_ptr) / (*denom_ptr); + uword eval_row = (progress/oobag_eval_every) - 1; - Rcout << "progress: " << progress << std::endl; + mat preds = (*result_ptr); + preds.each_col() /= (*denom_ptr); - print_mat(preds, "Preds", 5, 5); + compute_prediction_accuracy(prediction_data, eval_row, preds); } @@ -297,6 +355,26 @@ void Forest::predict_in_threads(uint thread_idx, } +arma::uword Forest::find_max_eval_steps(){ + + uword n_evals = std::ceil(n_tree / oobag_eval_every); + + if(n_evals > n_tree) n_evals = n_tree; + + return(n_evals); + +} + +void Forest::resize_oobag_eval(){ + + uword n_evals = find_max_eval_steps(); + + oobag_eval.resize(n_evals, 1); + + Rcout << std::endl << oobag_eval << std::endl; + +} + void Forest::run() { } diff --git a/src/Forest.h b/src/Forest.h index c1f20a72..4cedf944 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -67,6 +67,19 @@ class Forest { // Grow or predict void run(); + virtual void compute_prediction_accuracy( + Data* prediction_data, + arma::uword row_fill, + arma::mat& predictions + ) = 0; + + virtual void compute_prediction_accuracy( + arma::mat& y, + arma::vec& w, + arma::uword row_fill, + arma::mat& predictions + ) = 0; + std::vector> get_cutpoint() { std::vector> result; @@ -165,6 +178,10 @@ class Forest { return(vi_denom); } + arma::mat& get_oobag_eval(){ + return(oobag_eval); + } + virtual void plant() = 0; void grow(); @@ -175,6 +192,8 @@ class Forest { void init_trees(); + void grow_single_thread(vec* vi_numer_ptr, + uvec* vi_denom_ptr); void grow_in_threads(uint thread_idx, vec* vi_numer_ptr, @@ -192,6 +211,10 @@ class Forest { virtual void resize_pred_mat(arma::mat& p) = 0; + arma::uword find_max_eval_steps(); + + virtual void resize_oobag_eval(); + // Member variables arma::uword n_tree; @@ -238,6 +261,7 @@ class Forest { // out-of-bag bool oobag_pred; + arma::mat oobag_eval; arma::uword oobag_eval_every; RObject oobag_R_function; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index ef3f214f..7271300c 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -49,13 +49,13 @@ void ForestSurvival::load(arma::uword n_tree, trees.push_back( std::make_unique(forest_cutpoint[i], forest_child_left[i], - forest_coef_values[i], - forest_coef_indices[i], - forest_leaf_pred_indx[i], - forest_leaf_pred_prob[i], - forest_leaf_pred_chaz[i], - forest_leaf_summary[i], - &pred_horizon) + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_indx[i], + forest_leaf_pred_prob[i], + forest_leaf_pred_chaz[i], + forest_leaf_summary[i], + &pred_horizon) ); } @@ -129,6 +129,41 @@ std::vector> ForestSurvival::get_leaf_pred_chaz() { } +void ForestSurvival::resize_oobag_eval(){ + + uword n_evals = find_max_eval_steps(); + + oobag_eval.resize(n_evals, pred_horizon.size()); + +} + +void ForestSurvival::compute_prediction_accuracy(Data* prediction_data, + arma::uword row_fill, + arma::mat& predictions){ + + mat y = prediction_data->get_y(); + vec w = prediction_data->get_w(); + + compute_prediction_accuracy(y, w, row_fill, predictions); + +} + +void ForestSurvival::compute_prediction_accuracy(arma::mat& y, + arma::vec& w, + arma::uword row_fill, + arma::mat& predictions){ + + bool pred_is_risklike = true; + + if(pred_type == PRED_SURVIVAL) pred_is_risklike = false; + + for(arma::uword i = 0; i < oobag_eval.n_cols; ++i){ + vec p = predictions.unsafe_col(i); + oobag_eval(row_fill, i) = compute_cstat(y, w, p, pred_is_risklike); + } + +} + } diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 4e6dc7cb..ae676975 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -21,6 +21,7 @@ class ForestSurvival: public Forest { arma::vec& pred_horizon, arma::vec& unique_event_times); + ForestSurvival(const ForestSurvival&) = delete; ForestSurvival& operator=(const ForestSurvival&) = delete; @@ -41,10 +42,24 @@ class ForestSurvival: public Forest { // growInternal() in ranger void plant() override; + void compute_prediction_accuracy( + Data* prediction_data, + arma::uword row_fill, + arma::mat& predictions + ) override; + + void compute_prediction_accuracy( + arma::mat& y, + arma::vec& w, + arma::uword row_fill, + arma::mat& predictions + ) override; + protected: void resize_pred_mat(arma::mat& p) override; + void resize_oobag_eval() override; arma::vec pred_horizon; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 7d435b34..3aeaf3a0 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -11,283 +11,47 @@ Rcpp::Rostream& Rcpp::Rcout = Rcpp::Rcpp_cout_get(); Rcpp::Rostream& Rcpp::Rcerr = Rcpp::Rcpp_cerr_get(); #endif -// std_setdiff -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y); -RcppExport SEXP _aorsf_std_setdiff(SEXP xSEXP, SEXP ySEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::uvec& >::type x(xSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type y(ySEXP); - rcpp_result_gen = Rcpp::wrap(std_setdiff(x, y)); - return rcpp_result_gen; -END_RCPP -} -// x_node_scale_exported -List x_node_scale_exported(NumericMatrix& x_, NumericVector& w_); -RcppExport SEXP _aorsf_x_node_scale_exported(SEXP x_SEXP, SEXP w_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_(x_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_(w_SEXP); - rcpp_result_gen = Rcpp::wrap(x_node_scale_exported(x_, w_)); - return rcpp_result_gen; -END_RCPP -} -// leaf_kaplan_testthat -arma::mat leaf_kaplan_testthat(const arma::mat& y, const arma::vec& w); -RcppExport SEXP _aorsf_leaf_kaplan_testthat(SEXP ySEXP, SEXP wSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< const arma::mat& >::type y(ySEXP); - Rcpp::traits::input_parameter< const arma::vec& >::type w(wSEXP); - rcpp_result_gen = Rcpp::wrap(leaf_kaplan_testthat(y, w)); - return rcpp_result_gen; -END_RCPP -} -// newtraph_cph_testthat -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, NumericMatrix& y_in, NumericVector& w_in, int method, double cph_eps_, int iter_max); -RcppExport SEXP _aorsf_newtraph_cph_testthat(SEXP x_inSEXP, SEXP y_inSEXP, SEXP w_inSEXP, SEXP methodSEXP, SEXP cph_eps_SEXP, SEXP iter_maxSEXP) { +// coxph_fit_exported +List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); +RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x_in(x_inSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y_in(y_inSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_in(w_inSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type x_node(x_nodeSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< int >::type iter_max(iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(newtraph_cph_testthat(x_in, y_in, w_in, method, cph_eps_, iter_max)); - return rcpp_result_gen; -END_RCPP -} -// lrt_multi_testthat -List lrt_multi_testthat(NumericMatrix& y_node_, NumericVector& w_node_, NumericVector& XB_, int n_split_, int leaf_min_events_, int leaf_min_obs_); -RcppExport SEXP _aorsf_lrt_multi_testthat(SEXP y_node_SEXP, SEXP w_node_SEXP, SEXP XB_SEXP, SEXP n_split_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type y_node_(y_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type w_node_(w_node_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type XB_(XB_SEXP); - Rcpp::traits::input_parameter< int >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< int >::type leaf_min_obs_(leaf_min_obs_SEXP); - rcpp_result_gen = Rcpp::wrap(lrt_multi_testthat(y_node_, w_node_, XB_, n_split_, leaf_min_events_, leaf_min_obs_)); - return rcpp_result_gen; -END_RCPP -} -// oobag_c_harrell_testthat -double oobag_c_harrell_testthat(NumericMatrix y_mat, NumericVector s_vec); -RcppExport SEXP _aorsf_oobag_c_harrell_testthat(SEXP y_matSEXP, SEXP s_vecSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix >::type y_mat(y_matSEXP); - Rcpp::traits::input_parameter< NumericVector >::type s_vec(s_vecSEXP); - rcpp_result_gen = Rcpp::wrap(oobag_c_harrell_testthat(y_mat, s_vec)); - return rcpp_result_gen; -END_RCPP -} -// ostree_pred_leaf_testthat -arma::uvec ostree_pred_leaf_testthat(List& tree, NumericMatrix& x_pred_); -RcppExport SEXP _aorsf_ostree_pred_leaf_testthat(SEXP treeSEXP, SEXP x_pred_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type tree(treeSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_pred_(x_pred_SEXP); - rcpp_result_gen = Rcpp::wrap(ostree_pred_leaf_testthat(tree, x_pred_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_fit -List orsf_fit(NumericMatrix& x, NumericMatrix& y, NumericVector& weights, const int& n_tree, const int& n_split_, const int& mtry_, const double& leaf_min_events_, const double& leaf_min_obs_, const double& split_min_events_, const double& split_min_obs_, const double& split_min_stat_, const int& cph_method_, const double& cph_eps_, const int& cph_iter_max_, const bool& cph_do_scale_, const double& net_alpha_, const int& net_df_target_, const bool& oobag_pred_, const char& oobag_pred_type_, const double& oobag_pred_horizon_, const int& oobag_eval_every_, const bool& oobag_importance_, const char& oobag_importance_type_, IntegerVector& tree_seeds, const int& max_retry_, Function f_beta, const char& type_beta_, Function f_oobag_eval, const char& type_oobag_eval_, const bool verbose_progress); -RcppExport SEXP _aorsf_orsf_fit(SEXP xSEXP, SEXP ySEXP, SEXP weightsSEXP, SEXP n_treeSEXP, SEXP n_split_SEXP, SEXP mtry_SEXP, SEXP leaf_min_events_SEXP, SEXP leaf_min_obs_SEXP, SEXP split_min_events_SEXP, SEXP split_min_obs_SEXP, SEXP split_min_stat_SEXP, SEXP cph_method_SEXP, SEXP cph_eps_SEXP, SEXP cph_iter_max_SEXP, SEXP cph_do_scale_SEXP, SEXP net_alpha_SEXP, SEXP net_df_target_SEXP, SEXP oobag_pred_SEXP, SEXP oobag_pred_type_SEXP, SEXP oobag_pred_horizon_SEXP, SEXP oobag_eval_every_SEXP, SEXP oobag_importance_SEXP, SEXP oobag_importance_type_SEXP, SEXP tree_seedsSEXP, SEXP max_retry_SEXP, SEXP f_betaSEXP, SEXP type_beta_SEXP, SEXP f_oobag_evalSEXP, SEXP type_oobag_eval_SEXP, SEXP verbose_progressSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< NumericVector& >::type weights(weightsSEXP); - Rcpp::traits::input_parameter< const int& >::type n_tree(n_treeSEXP); - Rcpp::traits::input_parameter< const int& >::type n_split_(n_split_SEXP); - Rcpp::traits::input_parameter< const int& >::type mtry_(mtry_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_events_(leaf_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type leaf_min_obs_(leaf_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_events_(split_min_events_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_obs_(split_min_obs_SEXP); - Rcpp::traits::input_parameter< const double& >::type split_min_stat_(split_min_stat_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_method_(cph_method_SEXP); - Rcpp::traits::input_parameter< const double& >::type cph_eps_(cph_eps_SEXP); - Rcpp::traits::input_parameter< const int& >::type cph_iter_max_(cph_iter_max_SEXP); - Rcpp::traits::input_parameter< const bool& >::type cph_do_scale_(cph_do_scale_SEXP); - Rcpp::traits::input_parameter< const double& >::type net_alpha_(net_alpha_SEXP); - Rcpp::traits::input_parameter< const int& >::type net_df_target_(net_df_target_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_pred_(oobag_pred_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_pred_type_(oobag_pred_type_SEXP); - Rcpp::traits::input_parameter< const double& >::type oobag_pred_horizon_(oobag_pred_horizon_SEXP); - Rcpp::traits::input_parameter< const int& >::type oobag_eval_every_(oobag_eval_every_SEXP); - Rcpp::traits::input_parameter< const bool& >::type oobag_importance_(oobag_importance_SEXP); - Rcpp::traits::input_parameter< const char& >::type oobag_importance_type_(oobag_importance_type_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< const int& >::type max_retry_(max_retry_SEXP); - Rcpp::traits::input_parameter< Function >::type f_beta(f_betaSEXP); - Rcpp::traits::input_parameter< const char& >::type type_beta_(type_beta_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - Rcpp::traits::input_parameter< const bool >::type verbose_progress(verbose_progressSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_fit(x, y, weights, n_tree, n_split_, mtry_, leaf_min_events_, leaf_min_obs_, split_min_events_, split_min_obs_, split_min_stat_, cph_method_, cph_eps_, cph_iter_max_, cph_do_scale_, net_alpha_, net_df_target_, oobag_pred_, oobag_pred_type_, oobag_pred_horizon_, oobag_eval_every_, oobag_importance_, oobag_importance_type_, tree_seeds, max_retry_, f_beta, type_beta_, f_oobag_eval, type_oobag_eval_, verbose_progress)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_negate_vi -arma::vec orsf_oob_negate_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_negate_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_negate_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_oob_permute_vi -arma::vec orsf_oob_permute_vi(NumericMatrix& x, NumericMatrix& y, List& forest, const double& last_eval_stat, const double& time_pred_, Function f_oobag_eval, const char& pred_type_, const char& type_oobag_eval_); -RcppExport SEXP _aorsf_orsf_oob_permute_vi(SEXP xSEXP, SEXP ySEXP, SEXP forestSEXP, SEXP last_eval_statSEXP, SEXP time_pred_SEXP, SEXP f_oobag_evalSEXP, SEXP pred_type_SEXP, SEXP type_oobag_eval_SEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< NumericMatrix& >::type x(xSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type y(ySEXP); - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< const double& >::type last_eval_stat(last_eval_statSEXP); - Rcpp::traits::input_parameter< const double& >::type time_pred_(time_pred_SEXP); - Rcpp::traits::input_parameter< Function >::type f_oobag_eval(f_oobag_evalSEXP); - Rcpp::traits::input_parameter< const char& >::type pred_type_(pred_type_SEXP); - Rcpp::traits::input_parameter< const char& >::type type_oobag_eval_(type_oobag_eval_SEXP); - rcpp_result_gen = Rcpp::wrap(orsf_oob_permute_vi(x, y, forest, last_eval_stat, time_pred_, f_oobag_eval, pred_type_, type_oobag_eval_)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_uni -arma::mat orsf_pred_uni(List& forest, NumericMatrix& x_new, double time_dbl, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_uni(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_uni(forest, x_new, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// orsf_pred_multi -arma::mat orsf_pred_multi(List& forest, NumericMatrix& x_new, NumericVector& time_vec, char pred_type); -RcppExport SEXP _aorsf_orsf_pred_multi(SEXP forestSEXP, SEXP x_newSEXP, SEXP time_vecSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new(x_newSEXP); - Rcpp::traits::input_parameter< NumericVector& >::type time_vec(time_vecSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_pred_multi(forest, x_new, time_vec, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_smry -arma::mat pd_new_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_oob_smry -arma::mat pd_oob_smry(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_smry(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_smry(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); - return rcpp_result_gen; -END_RCPP -} -// pd_new_ice -arma::mat pd_new_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_new_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_new_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); + Rcpp::traits::input_parameter< arma::uword >::type cph_iter_max(cph_iter_maxSEXP); + rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); return rcpp_result_gen; END_RCPP } -// pd_oob_ice -arma::mat pd_oob_ice(List& forest, NumericMatrix& x_new_, IntegerVector& x_cols_, NumericMatrix& x_vals_, NumericVector& probs_, const double time_dbl, char pred_type); -RcppExport SEXP _aorsf_pd_oob_ice(SEXP forestSEXP, SEXP x_new_SEXP, SEXP x_cols_SEXP, SEXP x_vals_SEXP, SEXP probs_SEXP, SEXP time_dblSEXP, SEXP pred_typeSEXP) { +// compute_cstat_exported_vec +double compute_cstat_exported_vec(arma::mat& y, arma::vec& w, arma::vec& p, bool pred_is_risklike); +RcppExport SEXP _aorsf_compute_cstat_exported_vec(SEXP ySEXP, SEXP wSEXP, SEXP pSEXP, SEXP pred_is_risklikeSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< List& >::type forest(forestSEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_new_(x_new_SEXP); - Rcpp::traits::input_parameter< IntegerVector& >::type x_cols_(x_cols_SEXP); - Rcpp::traits::input_parameter< NumericMatrix& >::type x_vals_(x_vals_SEXP); - Rcpp::traits::input_parameter< NumericVector& >::type probs_(probs_SEXP); - Rcpp::traits::input_parameter< const double >::type time_dbl(time_dblSEXP); - Rcpp::traits::input_parameter< char >::type pred_type(pred_typeSEXP); - rcpp_result_gen = Rcpp::wrap(pd_oob_ice(forest, x_new_, x_cols_, x_vals_, probs_, time_dbl, pred_type)); + Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type p(pSEXP); + Rcpp::traits::input_parameter< bool >::type pred_is_risklike(pred_is_risklikeSEXP); + rcpp_result_gen = Rcpp::wrap(compute_cstat_exported_vec(y, w, p, pred_is_risklike)); return rcpp_result_gen; END_RCPP } -// coxph_fit_exported -List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, arma::vec& w_node, int method, double cph_eps, arma::uword cph_iter_max); -RcppExport SEXP _aorsf_coxph_fit_exported(SEXP x_nodeSEXP, SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP methodSEXP, SEXP cph_epsSEXP, SEXP cph_iter_maxSEXP) { +// compute_cstat_exported_uvec +double compute_cstat_exported_uvec(arma::mat& y, arma::vec& w, arma::uvec& g, bool pred_is_risklike); +RcppExport SEXP _aorsf_compute_cstat_exported_uvec(SEXP ySEXP, SEXP wSEXP, SEXP gSEXP, SEXP pred_is_risklikeSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::mat& >::type x_node(x_nodeSEXP); - Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); - Rcpp::traits::input_parameter< int >::type method(methodSEXP); - Rcpp::traits::input_parameter< double >::type cph_eps(cph_epsSEXP); - Rcpp::traits::input_parameter< arma::uword >::type cph_iter_max(cph_iter_maxSEXP); - rcpp_result_gen = Rcpp::wrap(coxph_fit_exported(x_node, y_node, w_node, method, cph_eps, cph_iter_max)); + Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type g(gSEXP); + Rcpp::traits::input_parameter< bool >::type pred_is_risklike(pred_is_risklikeSEXP); + rcpp_result_gen = Rcpp::wrap(compute_cstat_exported_uvec(y, w, g, pred_is_risklike)); return rcpp_result_gen; END_RCPP } @@ -378,23 +142,9 @@ END_RCPP } static const R_CallMethodDef CallEntries[] = { - {"_aorsf_std_setdiff", (DL_FUNC) &_aorsf_std_setdiff, 2}, - {"_aorsf_x_node_scale_exported", (DL_FUNC) &_aorsf_x_node_scale_exported, 2}, - {"_aorsf_leaf_kaplan_testthat", (DL_FUNC) &_aorsf_leaf_kaplan_testthat, 2}, - {"_aorsf_newtraph_cph_testthat", (DL_FUNC) &_aorsf_newtraph_cph_testthat, 6}, - {"_aorsf_lrt_multi_testthat", (DL_FUNC) &_aorsf_lrt_multi_testthat, 6}, - {"_aorsf_oobag_c_harrell_testthat", (DL_FUNC) &_aorsf_oobag_c_harrell_testthat, 2}, - {"_aorsf_ostree_pred_leaf_testthat", (DL_FUNC) &_aorsf_ostree_pred_leaf_testthat, 2}, - {"_aorsf_orsf_fit", (DL_FUNC) &_aorsf_orsf_fit, 30}, - {"_aorsf_orsf_oob_negate_vi", (DL_FUNC) &_aorsf_orsf_oob_negate_vi, 8}, - {"_aorsf_orsf_oob_permute_vi", (DL_FUNC) &_aorsf_orsf_oob_permute_vi, 8}, - {"_aorsf_orsf_pred_uni", (DL_FUNC) &_aorsf_orsf_pred_uni, 4}, - {"_aorsf_orsf_pred_multi", (DL_FUNC) &_aorsf_orsf_pred_multi, 4}, - {"_aorsf_pd_new_smry", (DL_FUNC) &_aorsf_pd_new_smry, 7}, - {"_aorsf_pd_oob_smry", (DL_FUNC) &_aorsf_pd_oob_smry, 7}, - {"_aorsf_pd_new_ice", (DL_FUNC) &_aorsf_pd_new_ice, 7}, - {"_aorsf_pd_oob_ice", (DL_FUNC) &_aorsf_pd_oob_ice, 7}, {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, + {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, + {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, diff --git a/src/Tree.cpp b/src/Tree.cpp index 2f7b2521..8135950f 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -20,6 +20,7 @@ n_rows_total(0), seed(0), mtry(0), + pred_type(DEFAULT_PRED_TYPE), vi_type(VI_NONE), vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), // leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), @@ -51,6 +52,7 @@ n_rows_total(0), seed(0), mtry(0), + pred_type(DEFAULT_PRED_TYPE), vi_type(VI_NONE), vi_max_pvalue(DEFAULT_ANOVA_VI_PVALUE), // leaf_min_events(DEFAULT_LEAF_MIN_EVENTS), @@ -81,6 +83,7 @@ void Tree::init(Data* data, int seed, arma::uword mtry, + PredType pred_type, // double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, @@ -108,6 +111,7 @@ this->n_rows_total = data->n_rows; this->seed = seed; this->mtry = mtry; + this->pred_type = pred_type; // this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; this->vi_type = vi_type; @@ -437,7 +441,7 @@ } - double Tree::node_split(arma::uvec& cuts_all){ + double Tree::split_node(arma::uvec& cuts_all){ // sample a subset of cutpoints. uvec cuts_sampled; @@ -558,7 +562,7 @@ } - void Tree::node_sprout(uword node_id){ + void Tree::sprout_leaf(uword node_id){ if(VERBOSITY > 0){ Rcout << "sprouting new leaf with node " << node_id; @@ -674,7 +678,7 @@ // determine rows in the current node and if it can be split if(!is_node_splittable(*node)){ - node_sprout(*node); + sprout_leaf(*node); continue; } @@ -716,7 +720,7 @@ switch (lincomb_type) { - case NEWTON_RAPHSON: { + case LC_NEWTON_RAPHSON: { beta = coxph_fit(x_node, y_node, w_node, lincomb_scale, lincomb_ties_method, @@ -727,7 +731,7 @@ } - case RANDOM_COEFS: { + case LC_RANDOM_COEFS: { beta.set_size(x_node.n_cols, 1); @@ -741,19 +745,37 @@ } - case R_FUNCTION: { + case LC_GLMNET: { - // NumericMatrix xx = ; - // NumericMatrix yy = ; - // NumericVector ww = ; + NumericMatrix xx = wrap(x_node); + NumericMatrix yy = wrap(y_node); + NumericVector ww = wrap(w_node); // initialize function from tree object // (Functions can't be stored in C++ classes, but RObjects can) Function f_beta = as(lincomb_R_function); - NumericMatrix beta_R = f_beta(wrap(x_node), - wrap(y_node), - wrap(w_node)); + NumericMatrix beta_R = f_beta(xx, yy, ww, + lincomb_alpha, + lincomb_df_target); + + beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); + + break; + + } + + case LC_R_FUNCTION: { + + NumericMatrix xx = wrap(x_node); + NumericMatrix yy = wrap(y_node); + NumericVector ww = wrap(w_node); + + // initialize function from tree object + // (Functions can't be stored in C++ classes, but RObjects can) + Function f_beta = as(lincomb_R_function); + + NumericMatrix beta_R = f_beta(xx, yy, ww); beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); @@ -776,11 +798,11 @@ // empty cuts_all => no valid cutpoints => make leaf or retry if(!cuts_all.is_empty()){ - double cut_point = node_split(cuts_all); + double cut_point = split_node(cuts_all); if(cut_point < R_PosInf){ - if(vi_type == VI_ANOVA && lincomb_type == NEWTON_RAPHSON){ + if(vi_type == VI_ANOVA && lincomb_type == LC_NEWTON_RAPHSON){ // only do ANOVA variable importance when // 1. a split of the node is guaranteed @@ -835,7 +857,7 @@ } if(n_retry == split_max_retry){ - node_sprout(*node); + sprout_leaf(*node); break; } diff --git a/src/Tree.h b/src/Tree.h index 8bb2d118..fdf150ad 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -37,6 +37,7 @@ void init(Data* data, int seed, arma::uword mtry, + PredType pred_type, // double leaf_min_events, double leaf_min_obs, VariableImportance vi_type, @@ -73,9 +74,9 @@ virtual double compute_split_score(); - double node_split(arma::uvec& cuts_all); + double split_node(arma::uvec& cuts_all); - virtual void node_sprout(arma::uword node_id); + virtual void sprout_leaf(arma::uword node_id); virtual double compute_max_leaves(); @@ -179,6 +180,9 @@ arma::uword mtry; + // what type of predictions you compute + PredType pred_type; + // variable importance VariableImportance vi_type; double vi_max_pvalue; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 438abbf1..0b0c743b 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -7,6 +7,7 @@ #include #include "TreeSurvival.h" #include "Coxph.h" +#include "utility.h" #include "NodeSplitStats.h" using namespace arma; @@ -321,7 +322,7 @@ } case SPLIT_CONCORD: { - result = compute_concordance_index(y_node, w_node, g_node); + result = compute_cstat(y_node, w_node, g_node, true); break; } @@ -393,7 +394,7 @@ } - void TreeSurvival::node_sprout(uword node_id){ + void TreeSurvival::sprout_leaf(uword node_id){ if(VERBOSITY > 0){ Rcout << "sprouting new leaf with node " << node_id; @@ -543,9 +544,9 @@ double pred_t0; - if(pred_type == SURVIVAL || pred_type == RISK){ + if(pred_type == PRED_SURVIVAL || pred_type == PRED_RISK){ pred_t0 = 1; - } else if (pred_type == CUMULATIVE_HAZARD) { + } else if (pred_type == PRED_CUMULATIVE_HAZARD) { pred_t0 = 0; } else { stop("invalid pred_type"); @@ -628,6 +629,7 @@ // temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; // surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; + if(pred_type == PRED_RISK) temp_vec = 1 - temp_vec; (*pred_output).row(*it) += temp_vec.t(); if(oobag) (*pred_denom)[*it]++; @@ -652,101 +654,10 @@ double TreeSurvival::compute_prediction_accuracy(arma::vec& preds){ - double cindex = compute_concordance_index(y_oobag, w_oobag, preds); - - return cindex; - - } - - double TreeSurvival::compute_concordance_index(arma::mat& y, - arma::vec& w, - arma::vec& p){ - - vec y_time = y.unsafe_col(0); - vec y_status = y.unsafe_col(1); - - uvec events = find(y_status == 1); - - // protection from case where there are no comparables. - double total=0, concordant=0; - - for (uvec::iterator event = events.begin(); event < events.end(); ++event) { - - for(uword i = *event; i < y.n_rows; ++i){ - - if (y_time[i] > y_time[*event]) { // ties not counted - - total += w[i]; - - if (p[i] < p[*event]){ - - concordant += w[i]; - - } else if (p[i] == p[*event]){ - - concordant += (w[i] / 2); - - } - - } - - } - - } - - // it's possible there won't be any valid comparisons, so: - if(total == 0) return(0.5); - // otherwise: - return(concordant / total); - - - } - - double TreeSurvival::compute_concordance_index(arma::mat& y, - arma::vec& w, - arma::uvec& p){ - - - - vec y_time = y.unsafe_col(0); - vec y_status = y.unsafe_col(1); - - uvec events = find(y_status == 1); - - // protection from case where there are no comparables. - double total=0, concordant=0; - - for (uvec::iterator event = events.begin(); event < events.end(); ++event) { - - for(uword i = *event; i < y.n_rows; ++i){ - - if (y_time[i] > y_time[*event]) { // ties not counted - - total += w[i]; - - if (p[i] < p[*event]){ - - concordant += w[i]; - - } else if (p[i] == p[*event]){ - - concordant += (w[i] / 2); - - } - - } - - } - - } - - // it's possible there won't be any valid comparisons, so: - if(total == 0) return(0.5); - // otherwise: - return(concordant / total); - - - + return compute_cstat(y_oobag, + w_oobag, + preds, + true); } diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 118f0a36..744331a0 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -54,7 +54,7 @@ double compute_mortality(arma::mat& leaf_data); - void node_sprout(uword node_id) override; + void sprout_leaf(uword node_id) override; void predict_value(arma::mat* pred_output, arma::vec* pred_denom, @@ -75,14 +75,6 @@ double compute_prediction_accuracy(arma::vec& preds) override; - double compute_concordance_index(arma::mat& y, - arma::vec& w, - arma::vec& p); - - double compute_concordance_index(arma::mat& y, - arma::vec& w, - arma::uvec& g); - std::vector leaf_pred_indx; std::vector leaf_pred_prob; std::vector leaf_pred_chaz; diff --git a/src/globals.h b/src/globals.h index 3eba6920..bdd228a6 100644 --- a/src/globals.h +++ b/src/globals.h @@ -13,9 +13,6 @@ typedef unsigned int uint; - template - using svec = std::vector; - // Tree types enum TreeType { TREE_CLASSIFICATION = 1, @@ -38,23 +35,30 @@ SPLIT_CONCORD = 2 }; + enum EvalType { + EVAL_CONCORD = 1, + EVAL_R_FUNCTION = 2 + }; + // Linear combination method enum LinearCombo { - NEWTON_RAPHSON = 1, - RANDOM_COEFS = 2, - R_FUNCTION = 3 + LC_NEWTON_RAPHSON = 1, + LC_RANDOM_COEFS = 2, + LC_GLMNET = 3, + LC_R_FUNCTION = 4 }; // Prediction type enum PredType { - RISK = 1, - SURVIVAL = 2, - CUMULATIVE_HAZARD = 3, - MORTALITY = 4, - MEAN = 5, - PROBABILITY = 6, - CLASS = 7, - TERMINAL_NODES = 8 + PRED_NONE = 0, + PRED_RISK = 1, + PRED_SURVIVAL = 2, + PRED_CUMULATIVE_HAZARD = 3, + PRED_MORTALITY = 4, + PRED_MEAN = 5, + PRED_PROBABILITY = 6, + PRED_CLASS = 7, + PRED_TERMINAL_NODES = 8 }; // Default values @@ -77,7 +81,7 @@ const arma::uword DEFAULT_SPLIT_MAX_CUTS = 5; const arma::uword DEFAULT_MAX_RETRY = 3; - const LinearCombo DEFAULT_LINCOMB = NEWTON_RAPHSON; + const LinearCombo DEFAULT_LINCOMB = LC_NEWTON_RAPHSON; const double DEFAULT_LINCOMB_EPS = 1e-9; const arma::uword DEFAULT_LINCOMB_ITER_MAX = 20; const bool DEFAULT_LINCOMB_SCALE = true; @@ -86,7 +90,7 @@ const double DEFAULT_ANOVA_VI_PVALUE = 0.01; - const PredType DEFAULT_PRED_TYPE = RISK; + const PredType DEFAULT_PRED_TYPE = PRED_RISK; const int VERBOSITY = 0; diff --git a/src/orsf.cpp b/src/orsf.cpp index 12567884..94bf2fe1 100644 --- a/src/orsf.cpp +++ b/src/orsf.cpp @@ -1,4111 +1,4111 @@ - -#include -#include - -// [[Rcpp::depends(RcppArmadillo)]] - - -using namespace Rcpp; -using namespace arma; - -// ---------------------------------------------------------------------------- -// ---------------------------- global parameters ----------------------------- -// ---------------------------------------------------------------------------- - -// special note: dont change these doubles to uword, -// even though some of them could be uwords; -// operations involving uwords and doubles are not -// straightforward and may break the routine. -// also: double + uword is slower than double + double. - -double - weight_avg, - weight_events, - w_node_sum, - denom_events, - denom, - cph_eps, - // the n_ variables could be integers but it - // is safer and faster when they are doubles - n_events, - n_events_total, - n_events_right, - n_events_left, - n_risk, - n_risk_right, - n_risk_left, - n_risk_sub, - g_risk, - temp1, - temp2, - temp3, - halving, - stat_current, - stat_best, - w_node_person, - xb, - risk, - loglik, - cutpoint, - observed, - expected, - V, - pred_t0, - leaf_min_obs, - leaf_min_events, - split_min_events, - split_min_obs, - split_min_stat, - time_pred, - ll_second, - ll_init, - net_alpha; - -int - // verbose=0, - max_retry, - n_retry, - tree, - mtry_int, - net_df_target, - oobag_eval_every; - -char - type_beta, - type_oobag_eval, - oobag_pred_type, - oobag_importance_type, - pred_type_dflt = 'S'; - -// armadillo unsigned integers -uword - i, - j, - k, - iter, - mtry, - mtry_temp, - person, - person_leaf, - person_ref_index, - n_vars, - n_rows, - cph_method, - cph_iter_max, - n_split, - nodes_max_guess, - nodes_max_true, - n_cols_to_sample, - nn_left, - leaf_node_counter, - leaf_node_index_counter, - leaf_node_col, - oobag_eval_counter; - -bool - break_loop, // a delayed break statement - oobag_pred, - oobag_importance, - use_tree_seed, - cph_do_scale; - -// armadillo vectors (doubles) -vec - vec_temp, - times_pred, - eval_oobag, - node_assignments, - nodes_grown, - surv_pvec, - surv_pvec_output, - denom_pred, - beta_current, - beta_new, - beta_fit, - vi_pval_numer, - vi_pval_denom, - cutpoints, - w_input, - w_inbag, - w_user, - w_node, - group, - u, - a, - a2, - XB, - Risk; - -// armadillo unsigned integer vectors -uvec - iit_vals, - jit_vals, - rows_inbag, - rows_oobag, - rows_node, - rows_leaf, - rows_node_combined, - cols_to_sample_01, - cols_to_sample, - cols_node, - leaf_node_index, - nodes_to_grow, - nodes_to_grow_next, - obs_in_node, - children_left, - leaf_pred; - -// armadillo iterators for unsigned integer vectors -uvec::iterator - iit, - iit_best, - jit, - node; - -// armadillo matrices (doubles) -mat - x_input, - x_transforms, - y_input, - x_inbag, - y_inbag, - x_node, - y_node, - x_pred, - // x_mean, - vmat, - cmat, - cmat2, - betas, - leaf_node, - leaf_nodes, - surv_pmat; - -umat - col_indices, - leaf_indices; - -cube - surv_pcube; - -List ostree; - -NumericMatrix - beta_placeholder, - xx, - yy; - -CharacterVector yy_names = CharacterVector::create("time","status"); - -NumericVector ww; - -Environment base_env("package:base"); - -Function set_seed_r = base_env["set.seed"]; - -// Set difference for arma vectors -// -// @description the same as setdiff() in R -// -// @param x first vector -// @param y second vector -// -// [[Rcpp::export]] -arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { - - std::vector a = conv_to< std::vector >::from(sort(x)); - std::vector b = conv_to< std::vector >::from(sort(y)); - std::vector out; - - std::set_difference(a.begin(), a.end(), - b.begin(), b.end(), - std::inserter(out, out.end())); - - return conv_to::from(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- scaling functions ----------------------------- -// ---------------------------------------------------------------------------- - -// scale observations in predictor matrix -// -// @description this scales inputs in the same way as -// the survival::coxph() function. The main reasons we do this -// are to avoid exponential overflow and to prevent the scale -// of inputs from impacting the estimated beta coefficients. -// E.g., you can try multiplying numeric inputs by 100 prior -// to calling orsf() with orsf_control_fast(do_scale = FALSE) -// and you will see that you get back a different forest. -// -// @param x_node matrix of predictors -// @param w_node replication weights -// @param x_transforms matrix used to store the means and scales -// -// @return modified x_node and x_transform filled with values -// -void x_node_scale(){ - - // set aside memory for outputs - // first column holds the mean values - // second column holds the scale values - - x_transforms.zeros(n_vars, 2); - vec means = x_transforms.unsafe_col(0); // Reference to column 1 - vec scales = x_transforms.unsafe_col(1); // Reference to column 2 - - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; - - x_node.col(i) -= means.at(i); - - scales.at(i) = sum(w_node % abs(x_node.col(i))); - - if(scales(i) > 0) - scales.at(i) = w_node_sum / scales.at(i); - else - scales.at(i) = 1.0; // rare case of constant covariate; - - x_node.col(i) *= scales.at(i); - - } - -} - -// same as above function, but just the means -// (currently not used) -void x_node_means(){ - - x_transforms.zeros(n_vars, 1); - w_node_sum = sum(w_node); - - for(i = 0; i < n_vars; i++) { - - x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; - - } - -} - -// Same as x_node_scale, but this can be called from R -// [[Rcpp::export]] -List x_node_scale_exported(NumericMatrix& x_, - NumericVector& w_){ - - x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); - w_node = vec(w_.begin(), w_.length(), false); - n_vars = x_node.n_cols; - - x_node_scale(); - - return( - List::create( - _["x_scaled"] = x_node, - _["x_transforms"] = x_transforms - ) - ); - -} - -// ---------------------------------------------------------------------------- -// -------------------------- leaf_surv functions ----------------------------- -// ---------------------------------------------------------------------------- - -// Create kaplan-meier survival curve in leaf node -// -// @description Modifies leaf_nodes by adding data from the current node, -// where the current node is one that is too small to be split and will -// be converted to a leaf. -// -// @param y the outcome matrix in the current leaf -// @param w the weights vector in the current leaf -// @param leaf_indices a matrix that indicates where leaf nodes are -// inside of leaf_nodes. leaf_indices has three columns: -// - first column: the id for the leaf -// - second column: starting row for the leaf -// - third column: ending row for the leaf -// @param leaf_node_index_counter keeps track of where we are in leaf_node -// @param leaf_node_counter keeps track of which leaf node we are in -// @param leaf_nodes a matrix with three columns: -// - first column: time -// - second column: survival probability -// - third column: cumulative hazard - -void leaf_kaplan(const arma::mat& y, - const arma::vec& w){ - - leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; - i = leaf_node_counter; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(i, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - i++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(i, 0) = y.at(person,0); - temp2 = y.at(person, 0); - i++; - - } - - } - - // reset for kaplan meier loop - n_risk = sum(w); - person = 0; - temp1 = 1.0; - temp3 = 0.0; - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - - temp3 = temp3 + n_events / n_risk; - - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_nodes.at(leaf_node_counter, 2) = temp3; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - - leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; - leaf_node_index_counter++; - - if(leaf_node_index_counter >= leaf_indices.n_rows){ - leaf_indices.insert_rows(leaf_indices.n_rows, 10); - } - -} - -// Same as above, but this function can be called from R and is -// used to run tests with testthat (hence the name). Note: this -// needs to be updated to include CHF, which was added to the -// function above recently. -// [[Rcpp::export]] -arma::mat leaf_kaplan_testthat(const arma::mat& y, - const arma::vec& w){ - - - leaf_nodes.set_size(y.n_rows, 3); - leaf_node_counter = 0; - - // find the first unique event time - person = 0; - - while(y.at(person, 1) == 0){ - person++; - } - - // now person corresponds to the first event time - leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above - temp2 = y.at(person, 0); - - leaf_node_counter++; - - // find the rest of the unique event times - for( ; person < y.n_rows; person++){ - - if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ - - leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); - temp2 = y.at(person, 0); - leaf_node_counter++; - - } - - } - - - // reset for kaplan meier loop - i = leaf_node_counter; - n_risk = sum(w); - person = 0; - temp1 = 1.0; - leaf_node_counter = 0; - - - do { - - n_events = 0; - n_risk_sub = 0; - temp2 = y.at(person, 0); - - while(y.at(person, 0) == temp2){ - - n_risk_sub += w.at(person); - n_events += y.at(person, 1) * w.at(person); - - if(person == y.n_rows-1) break; - - person++; - - } - - // only do km if a death was observed - - if(n_events > 0){ - - temp1 = temp1 * (n_risk - n_events) / n_risk; - leaf_nodes.at(leaf_node_counter, 1) = temp1; - leaf_node_counter++; - - } - - n_risk -= n_risk_sub; - - } while (leaf_node_counter < i); - - leaf_nodes.resize(leaf_node_counter, 3); - - return(leaf_nodes); - -} - - - - -// ---------------------------------------------------------------------------- -// ---------------------------- cholesky functions ---------------------------- -// ---------------------------------------------------------------------------- - -// cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// prepares vmat for cholesky_solve() - - -void cholesky(){ - - double eps_chol = 0; - double toler = 1e-8; - double pivot; - - for(i = 0; i < n_vars; i++){ - - if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); - - // copy upper right values to bottom left - for(j = (i+1); j eps_chol) { - - for(j = (i+1); j < n_vars; j++){ - - temp1 = vmat.at(j,i) / pivot; - vmat.at(j,i) = temp1; - vmat.at(j,j) -= temp1*temp1*pivot; - - for(k = (j+1); k < n_vars; k++){ - - vmat.at(k, j) -= temp1 * vmat.at(k, i); - - } - - } - - } else { - - vmat.at(i, i) = 0; - - } - - } - -} - -// solve cholesky decomposition -// -// @description this function is copied from the survival package and -// translated into arma. Prepares u, the vector used to update beta. -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// -// -void cholesky_solve(){ - - for (i = 0; i < n_vars; i++) { - - temp1 = u[i]; - - for (j = 0; j < i; j++){ - - temp1 -= u[j] * vmat.at(i, j); - u[i] = temp1; - - } - - } - - - for (i = n_vars; i >= 1; i--){ - - if (vmat.at(i-1, i-1) == 0){ - - u[i-1] = 0; - - } else { - - temp1 = u[i-1] / vmat.at(i-1, i-1); - - for (j = i; j < n_vars; j++){ - temp1 -= u[j] * vmat.at(j, i-1); - } - - u[i-1] = temp1; - - } - - } - -} - -// invert the cholesky in the lower triangle -// -// @description this function is copied from the survival package and -// translated into arma. Inverts vmat -// -// @param vmat matrix with covariance estimates -// @param n_vars the number of predictors used in the current node -// - -void cholesky_invert(){ - - for (i=0; i0) { - - // take full advantage of the cholesky's diagonal of 1's - vmat.at(i,i) = 1.0 / vmat.at(i,i); - - for (j=(i+1); j 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= weight_events * log(denom); - - for (i=0; i 0) { - - if (cph_method == 0 || n_events == 1) { // Breslow - - denom += denom_events; - loglik -= denom_events * log(denom); - - for (i=0; i 1 && stat_best < R_PosInf){ - - for(iter = 1; iter < cph_iter_max; iter++){ - - // if(verbose > 0){ - // - // Rcout << "--------- Newt-Raph algo; iter " << iter; - // Rcout << " ---------" << std::endl; - // Rcout << "beta: " << beta_new.t(); - // Rcout << "loglik: " << stat_best; - // Rcout << std::endl; - // Rcout << "------------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // - // } - - // do the next iteration - stat_current = newtraph_cph_iter(beta_new); - - cholesky(); - - // don't go trying to fix this, just use the last - // set of valid coefficients - if(std::isinf(stat_current)) break; - - // check for convergence - // break the loop if the new ll is ~ same as old best ll - if(fabs(1 - stat_best / stat_current) < cph_eps){ - break; - } - - if(stat_current < stat_best){ // it's not converging! - - halving++; // get more aggressive when it doesn't work - - // reduce the magnitude by which beta_new modifies beta_current - for (i = 0; i < n_vars; i++){ - beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); - } - - // yeah its not technically the best but I need to do this for - // more reasonable output when verbose = true; I should remove - // this line when verbosity is taken out. - stat_best = stat_current; - - } else { // it's converging! - - halving = 0; - stat_best = stat_current; - - cholesky_solve(); - - for (i = 0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - beta_new[i] = beta_new[i] + u[i]; - - } - - } - - } - - } - - // invert vmat - cholesky_invert(); - - for (i=0; i < n_vars; i++) { - - beta_current[i] = beta_new[i]; - - if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ - beta_current[i] = 0; - } - - if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ - vmat.at(i, i) = 1.0; - } - - // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; - - if(cph_do_scale){ - beta_current.at(i) *= x_transforms.at(i, 1); - vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); - } - - // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; - - if(oobag_importance_type == 'A'){ - - if(beta_current.at(i) != 0){ - - temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), - 1, false, false); - - if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; - - } - - vi_pval_denom[cols_node[i]]++; - - } - - } - - // if(verbose > 1) Rcout << std::endl; - - return(beta_current); - -} - -// same function as above, but exported to R for testing -// [[Rcpp::export]] -arma::vec newtraph_cph_testthat(NumericMatrix& x_in, - NumericMatrix& y_in, - NumericVector& w_in, - int method, - double cph_eps_, - int iter_max){ - - - x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); - y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); - w_node = vec(w_in.begin(), w_in.length(), false); - - cph_do_scale = true; - - cph_method = method; - cph_eps = cph_eps_; - cph_iter_max = iter_max; - n_vars = x_node.n_cols; - - vi_pval_numer.zeros(x_node.n_cols); - vi_pval_denom.zeros(x_node.n_cols); - cols_node = regspace(0, x_node.n_cols - 1); - - x_node_scale(); - - vec out = newtraph_cph(); - - return(out); - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- node functions -------------------------------- -// ---------------------------------------------------------------------------- - -// Log rank test w/multiple cutpoints -// -// this function returns a cutpoint obtaining a local maximum -// of the log-rank test (lrt) statistic. The default value (+Inf) -// is really for diagnostic purposes. Put another way, if the -// return value is +Inf (an impossible value for a cutpoint), -// that means that we didn't find any valid cut-points and -// the node cannot be grown with the current XB. -// -// if there is a valid cut-point, then the main side effect -// of this function is to modify the group vector, which -// will be used to assign observations to the two new nodes. -// -// @param group the vector that determines which node to send each -// observation to (left node = 0, right node = 1) -// @param y_node matrix of outcomes -// @param w_node vector of weights -// @param XB linear combination of predictors -// -// the group vector is modified by this function and the value returned -// is the maximal log-rank statistic across all the possible cutpoints. -double lrt_multi(){ - - break_loop = false; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB[*(iit+1)] << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB[*iit] != XB[*(iit+1)]){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status[*iit] * w_node[*iit]; - n_risk += w_node[*iit]; - group[*iit] = 1; - - // if(verbose > 1){ - // Rcout << XB[*iit] << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if ( XB[*iit] != XB[*(iit-1)] ) { - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - - // adjust k to indicate the number of valid cut-points - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - // protection from going out of bounds with jit_vals(k) below - if(j == 0) jit_vals.at(jit_vals.size()-1)--; - - // put the indices of potential cut-points into vec_temp - for(k = 0; k < vec_temp.size(); k++){ - vec_temp[k] = XB.at(*(iit_best - jit_vals[k])); - } - - // back to how it was! - if(j == 0) jit_vals.at(jit_vals.size()-1)++; - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - // switch group values from 0 to 1 until you get to the next cut-point - for( ; j < *jit; j++){ - group[*iit] = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp[k] == vec_temp[k+1] || - vec_temp[k] == vec_temp[0] || - *jit <= 1){ - - do_lrt = false; - - } else { - - while( XB[*iit] == XB[*(iit - 1)] ){ - - group[*iit] = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB[*iit] << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB[*iit] << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < split_min_stat) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group[*iit] = 0; - ++iit; - } - - // XB at *iit_best is the cut-point that maximized the log-rank test - return(XB[*iit_best]); - -} - -// this function is the same as above, but is exported to R for testing -// [[Rcpp::export]] -List lrt_multi_testthat(NumericMatrix& y_node_, - NumericVector& w_node_, - NumericVector& XB_, - int n_split_, - int leaf_min_events_, - int leaf_min_obs_ -){ - - y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); - w_node = vec(w_node_.begin(), w_node_.length(), false); - XB = vec(XB_.begin(), XB_.length(), false); - - n_split = n_split_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - - // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // this function returns a cutpoint obtaining a local maximum - // of the log-rank test (lrt) statistic. The default value (+Inf) - // is really for diagnostic purposes. Put another way, if the - // return value is +Inf (an impossible value for a cutpoint), - // that means that we didn't find any valid cut-points and - // the node cannot be grown with the current XB. - // - // if there is a valid cut-point, then the main side effect - // of this function is to modify the group vector, which - // will be used to assign observations to the two new nodes. - // - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - break_loop = false; - - vec cutpoints_used(n_split); - vec lrt_statistics(n_split); - uword list_counter = 0; - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB- we need to iterate over the sorted indices - iit_vals = sort_index(XB, "ascend"); - - // unsafe columns point to cols in y_node. - vec y_status = y_node.unsafe_col(1); - vec y_time = y_node.unsafe_col(0); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - // if(verbose > 1){ - // Rcout << "----- finding cut-point boundaries -----" << std::endl; - // } - - // Iterate through the sorted values of XB, in ascending order. - - for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit+1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit+1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, left node: " << n_events << std::endl; - // Rcout << " - n_risk, left node: " << n_risk << std::endl; - // Rcout << std::endl; - // } - - break; - - } - - } - - } - - // if(verbose > 1){ - // if(iit >= iit_vals.end()-1) { - // Rcout << "Could not find a valid lower cut-point" << std::endl; - // } - // } - - - j = iit - iit_vals.begin(); - - // got to reset these before finding the upper limit - n_events=0; - n_risk=0; - - // do the first step in the loop manually since we need to - // refer to iit+1 in all proceeding steps. - - for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ - - n_events += y_status(*iit) * w_node(*iit); - n_risk += w_node(*iit); - group(*iit) = 1; - - // if(verbose > 1){ - // Rcout << XB(*iit) << " ---- "; - // Rcout << XB(*(iit-1)) << " ---- "; - // Rcout << n_events << " ---- "; - // Rcout << n_risk << std::endl; - // } - - if(XB(*iit) != XB(*(iit-1))){ - - // if(verbose > 1){ - // Rcout << "********* New cut-point here ********" << std::endl; - // } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // iit value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if iit currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --iit; - - // if(verbose > 1){ - // Rcout << std::endl; - // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; - // Rcout << " - n_events, right node: " << n_events << std::endl; - // Rcout << " - n_risk, right node: " << n_risk << std::endl; - // } - - break; - - } - - } - - } - - // number of steps taken - k = iit + 1 - iit_vals.begin(); - - // if(verbose > 1){ - // Rcout << "----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; - // } - - // initialize cut-point as the value of XB iit currently points to. - iit_best = iit; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at iit_vals(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - // if(verbose > 1){ - // Rcout << "j: " << j << std::endl; - // Rcout << "k: " << k << std::endl; - // } - - if (j > k){ - - // if(verbose > 1) { - // Rcout << "Could not find a cut-point for this XB" << std::endl; - // } - - return(R_PosInf); - } - - // if(verbose > 1){ - // - // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; - // Rcout << "n potential cutpoints: " << k-j << std::endl; - // - // } - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - - // adjust k to indicate steps taken in the outer loop. - k -= j; - - if(k > n_split){ - - jit_vals = linspace(0, k, n_split); - - } else { - - jit_vals = linspace(0, k, k); - - } - - vec_temp.resize( jit_vals.size() ); - - if(j == 0) jit_vals(jit_vals.size()-1)--; - - for(k = 0; k < vec_temp.size(); k++){ - vec_temp(k) = XB(*(iit_best - jit_vals(k))); - } - - if(j == 0) jit_vals(jit_vals.size()-1)++; - - - // if(verbose > 1){ - // - // Rcout << "cut-points chosen: "; - // - // Rcout << vec_temp.t(); - // - // Rcout << "----------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - // if(verbose > 1){ - // Rcout << "jit points to " << *jit << std::endl; - // } - - for( ; j < *jit; j++){ - group(*iit) = 1; - --iit; - } - - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( vec_temp(k) == vec_temp(k+1) || - vec_temp(k) == vec_temp(0) || - *jit <= 1){ - - do_lrt = false; - - } else { - - while(XB(*iit) == XB(*(iit - 1))){ - - group(*iit) = 1; - --iit; - ++j; - - // if(verbose > 1){ - // Rcout << "cutpoint dropped down one spot: "; - // Rcout << XB(*iit) << std::endl; - // } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - cutpoints_used(list_counter) = XB(*iit); - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - // if(verbose > 1){ - // Rcout << "sum(group==1): " << sum(group) << "; "; - // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - // Rcout << std::endl; - // if(verbose > 1){ - // Rcout << "group:" << std::endl; - // Rcout << group(iit_vals).t() << std::endl; - // } - // } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - lrt_statistics(list_counter) = stat_current; - - list_counter++; - - // if(verbose > 1){ - // - // Rcout << "-------- log-rank test results --------" << std::endl; - // Rcout << "cutpoint: " << XB(*iit) << std::endl; - // Rcout << "lrt stat: " << stat_current << std::endl; - // Rcout << "---------------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - if(stat_current > stat_best){ - iit_best = iit; - stat_best = stat_current; - n_events_right = observed; - n_risk_right = g_risk; - n_risk_left = n_risk - g_risk; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - if(stat_best < 3.841459) return(R_PosInf); - - // if(verbose > 1){ - // Rcout << "Best LRT stat: " << stat_best << std::endl; - // } - - // rewind iit until it is back where it was when we got the - // best lrt stat. While rewinding iit, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(iit <= iit_best){ - group(*iit) = 0; - ++iit; - } - - return(List::create(_["cutpoints"] = cutpoints_used, - _["statistic"] = lrt_statistics)); - -} - - -// out-of-bag prediction for single prediction horizon -// -// @param pred_type indicates what type of prediction to compute -// @param leaf_pred a vector indicating which leaf each observation -// landed in. -// @param leaf_indices a matrix that contains indices for each leaf node -// inside of leaf_nodes -// @param leaf_nodes a matrix with ids, survival, and cumulative hazard -// functions for each leaf node. -// -// @return matrix with predictions, dimension n by 1 - -void oobag_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred[*iit]; - - // find the current leaf - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - // get submat view for this leaf - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node.at(i-1, leaf_node_col); - break; - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } - - // running mean: mean_k = mean_{k-1} + (new val - old val) / k - // compute new val - old val - // be careful, every oob row has a different denom! - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred(*iit)){ - - temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 0){ - // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - -// out-of-bag prediction evaluation, Harrell's C-statistic -// -// @param pred_type indicates what type of prediction to compute -// @param y_input matrix of outcomes from input -// -// @return the C-statistic - -double oobag_c_harrell(char pred_type){ - - vec time = y_input.unsafe_col(0); - vec status = y_input.unsafe_col(1); - iit_vals = find(status == 1); - - k = y_input.n_rows; - - double total=0, concordant=0; - - switch(pred_type){ - - case 'S': case 'R': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for survival, current value > next vals is good - // risk is the same as survival until just before we output - // the oobag predictions, when we say pvec = 1-pvec, - if (surv_pvec[j] > surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - - case 'H': - for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { - - for(j = *iit + 1; j < k; ++j){ - - if (time[j] > time[*iit]) { // ties not counted - - total++; - - // for risk & chf current value < next vals is good. - if (surv_pvec[j] < surv_pvec[*iit]){ - - concordant++; - - } else if (surv_pvec[j] == surv_pvec[*iit]){ - - concordant+= 0.5; - - } - - } - - } - - } - break; - } - - return(concordant / total); - -} - -// same function as above but exported to R for testing -// [[Rcpp::export]] -double oobag_c_harrell_testthat(NumericMatrix y_mat, - NumericVector s_vec) { - - y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); - surv_pvec = vec(s_vec.begin(), s_vec.length(), false); - - return(oobag_c_harrell(pred_type_dflt)); - -} - -// this function is the same as oobag_pred_surv_uni, -// but it operates on new data rather than out-of-bag data -// and it allows for multiple prediction horizons instead of one -void new_pred_surv_multi(char pred_type){ - - // allocate memory for output - // surv_pvec.zeros(x_pred.n_rows); - - surv_pvec.set_size(times_pred.size()); - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices(i, 1), - leaf_indices(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - for(j = 0; j < times_pred.size(); j++){ - - time_pred = times_pred.at(j); - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - - if (leaf_node.at(i, 0) > time_pred){ - - if(i == 0) - temp1 = pred_t0; - else - temp1 = leaf_node.at(i-1, leaf_node_col); - - break; - - } else if (leaf_node.at(i, 0) == time_pred){ - - temp1 = leaf_node.at(i, leaf_node_col); - break; - - } - - } - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } - - surv_pvec.at(j) = temp1; - - } - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred.at(*iit)){ - - surv_pmat.row(*iit) += surv_pvec.t(); - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - -} - -// this function is the same as new_pred_surv_multi, -// but only uses one prediction horizon -void new_pred_surv_uni(char pred_type){ - - iit_vals = sort_index(leaf_pred, "ascend"); - iit = iit_vals.begin(); - - switch(pred_type){ - - case 'S': case 'R': - - leaf_node_col = 1; - pred_t0 = 1; - break; - - case 'H': - - leaf_node_col = 2; - pred_t0 = 0; - break; - - } - - do { - - person_leaf = leaf_pred(*iit); - - for(i = 0; i < leaf_indices.n_rows; i++){ - if(leaf_indices.at(i, 0) == person_leaf){ - break; - } - } - - leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), - leaf_indices.at(i, 2)); - - // if(verbose > 1){ - // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; - // } - - i = 0; - - if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ - - for(; i < leaf_node.n_rows; i++){ - if (leaf_node.at(i, 0) > time_pred){ - - if(i == 0){ - - temp1 = pred_t0; - - } else { - - temp1 = leaf_node.at(i - 1, leaf_node_col); - - // experimental - does not seem to help! - // weighted average of surv est from before and after time of pred - // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); - // - // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + - // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; - - } - - break; - - } else if (leaf_node.at(i, 0) == time_pred){ - temp1 = leaf_node.at(i, leaf_node_col); - break; - } - } - - } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ - - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - } else { - - // go here if prediction horizon > max time in current leaf. - temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); - - // --- EXPERIMENTAL ADD-ON --- // - // if you are predicting beyond the max time in a node, - // then determine how much further out you are and assume - // the survival probability decays at the same rate. - - // temp2 = (1.0 - temp1) * - // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; - // - // temp1 = temp1 * (1.0-temp2); - - } - - surv_pvec.at(*iit) += temp1; - ++iit; - - if(iit < iit_vals.end()){ - - while(person_leaf == leaf_pred.at(*iit)){ - - surv_pvec.at(*iit) += temp1; - ++iit; - - if (iit == iit_vals.end()) break; - - } - - } - - } while (iit < iit_vals.end()); - - // if(verbose > 1){ - // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; - // } - -} - - -// ---------------------------------------------------------------------------- -// --------------------------- ostree functions ------------------------------- -// ---------------------------------------------------------------------------- - -// increase the memory allocated to a tree -// -// this function is used if the initial memory allocation isn't enough -// to grow the tree. It modifies all elements of the tree, including -// betas, col_indices, children_left, and cutpoints -// -void ostree_size_buffer(){ - - // if(verbose > 1){ - // Rcout << "---------- buffering outputs ----------" << std::endl; - // Rcout << "betas before: " << std::endl << betas.t() << std::endl; - // } - - betas.insert_cols(betas.n_cols, 10); - // x_mean.insert_cols(x_mean.n_cols, 10); - col_indices.insert_cols(col_indices.n_cols, 10); - children_left.insert_rows(children_left.size(), 10); - cutpoints.insert_rows(cutpoints.size(), 10); - - // if(verbose > 1){ - // Rcout << "betas after: " << std::endl << betas.t() << std::endl; - // Rcout << "---------------------------------------"; - // Rcout << std::endl << std::endl; - // } - - -} - -// transfer memory from R into arma types -// -// when trees are passed from R, they need to be converted back into -// arma objects. The intent of this function is to convert everything -// back into an arma object without copying any data. -// -// nothing is modified apart from types - -void ostree_mem_xfer(){ - - // no data copied according to tracemem. - // not including boot rows or x_mean (don't always need them) - - NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; - NumericMatrix betas_ = ostree["betas"]; - NumericVector cutpoints_ = ostree["cut_points"]; - IntegerMatrix col_indices_ = ostree["col_indices"]; - IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; - IntegerVector children_left_ = ostree["children_left"]; - - leaf_nodes = mat(leaf_nodes_.begin(), - leaf_nodes_.nrow(), - leaf_nodes_.ncol(), - false); - - betas = mat(betas_.begin(), - betas_.nrow(), - betas_.ncol(), - false); - - cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); - - col_indices = conv_to::from( - imat(col_indices_.begin(), - col_indices_.nrow(), - col_indices_.ncol(), - false) - ); - - leaf_indices = conv_to::from( - imat(leaf_indices_.begin(), - leaf_indices_.nrow(), - leaf_indices_.ncol(), - false) - ); - - children_left = conv_to::from( - ivec(children_left_.begin(), - children_left_.length(), - false) - ); - -} - -// drop observations down the tree -// -// @description Determine the leaves that are assigned to new data. -// -// @param children_left vector of child node ids (right node = left node + 1) -// @param x_pred matrix of predictors from new data -// -// @return a vector indicating which leaf each observation was mapped to -void ostree_pred_leaf(){ - - // reset values - // this is needed for pred_leaf since every obs gets a new leaf in - // the next tree, but it isn't needed for pred_surv because survival - // probs get aggregated over all the trees. - leaf_pred.fill(0); - - for(i = 0; i < betas.n_cols; i++){ - - if(children_left[i] != 0){ - - if(i == 0){ - obs_in_node = regspace(0, 1, leaf_pred.size()-1); - } else { - obs_in_node = find(leaf_pred == i); - } - - - if(obs_in_node.size() > 0){ - - // Fastest sub-matrix multiplication i can think of. - // Matrix product = linear combination of columns - // (this is faster b/c armadillo is great at making - // pointers to the columns of an arma mat) - // I had to stop using this b/c it fails on - // XB.zeros(obs_in_node.size()); - // - // uvec col_indices_i = col_indices.unsafe_col(i); - // - // j = 0; - // - // jit = col_indices_i.begin(); - // - // for(; jit < col_indices_i.end(); ++jit, ++j){ - // - // vec x_j = x_pred.unsafe_col(*jit); - // - // XB += x_j(obs_in_node) * betas.at(j, i); - // - // } - - // this is slower but more clear matrix multiplication - XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); - - jit = obs_in_node.begin(); - - for(j = 0; j < XB.size(); ++j, ++jit){ - - if(XB[j] <= cutpoints[i]) { - - leaf_pred[*jit] = children_left[i]; - - } else { - - leaf_pred[*jit] = children_left[i]+1; - - } - - } - - // if(verbose > 0){ - // - // uvec in_left = find(leaf_pred == children_left(i)); - // uvec in_right = find(leaf_pred == children_left(i)+1); - // - // Rcout << "N to node_" << children_left(i) << ": "; - // Rcout << in_left.size() << "; "; - // Rcout << "N to node_" << children_left(i)+1 << ": "; - // Rcout << in_right.size() << std::endl; - // - // } - - } - - } - - } - - - -} - -// same as above but exported to R for testins -// [[Rcpp::export]] -arma::uvec ostree_pred_leaf_testthat(List& tree, - NumericMatrix& x_pred_){ - - - x_pred = mat(x_pred_.begin(), - x_pred_.nrow(), - x_pred_.ncol(), - false); - - leaf_pred.set_size(x_pred.n_rows); - - ostree = tree; - ostree_mem_xfer(); - ostree_pred_leaf(); - - return(leaf_pred); - -} - -// Fit an oblique survival tree -// -// @description used in orsf_fit, which has parameters defined below. -// -// @param f_beta the function used to find linear combinations of predictors -// -// @return a fitted oblique survival tree -// -List ostree_fit(Function f_beta){ - - betas.fill(0); - // x_mean.fill(0); - col_indices.fill(0); - cutpoints.fill(0); - children_left.fill(0); - node_assignments.fill(0); - leaf_nodes.fill(0); - - node_assignments.zeros(x_inbag.n_rows); - nodes_to_grow.zeros(1); - nodes_max_true = 0; - leaf_node_counter = 0; - leaf_node_index_counter = 0; - - // ---------------------- - // ---- main do loop ---- - // ---------------------- - - do { - - nodes_to_grow_next.set_size(0); - - // if(verbose > 0){ - // - // Rcout << "----------- nodes to grow -----------" << std::endl; - // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; - // Rcout << "-------------------------------------" << std::endl << - // std::endl << std::endl; - // - // - // } - - for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ - - if(nodes_to_grow[0] == 0){ - - // when growing the first node, there is no need to find - // which rows are in the node. - rows_node = linspace(0, - x_inbag.n_rows-1, - x_inbag.n_rows); - - } else { - - // identify which rows are in the current node. - rows_node = find(node_assignments == *node); - - } - - y_node = y_inbag.rows(rows_node); - w_node = w_inbag(rows_node); - - // if(verbose > 0){ - // - // n_risk = sum(w_node); - // n_events = sum(y_node.col(1) % w_node); - // Rcout << "-------- Growing node " << *node << " --------" << std::endl; - // Rcout << "No. of observations in node: " << n_risk << std::endl; - // Rcout << "No. of events in node: " << n_events << std::endl; - // Rcout << "No. of rows in node: " << w_node.size() << std::endl; - // Rcout << "--------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // - // } - - // initialize an impossible cut-point value - // if cutpoint is still infinite later, node should not be split - cutpoint = R_PosInf; - - // ------------------------------------------------------------------ - // ---- sample a random subset of columns with non-zero variance ---- - // ------------------------------------------------------------------ - - mtry_int = mtry; - cols_to_sample_01.fill(0); - - // constant columns are constant in the rows where events occurred - - for(j = 0; j < cols_to_sample_01.size(); j++){ - - temp1 = R_PosInf; - - for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ - - if(y_inbag.at(*iit, 1) == 1){ - - if (temp1 < R_PosInf){ - - if(x_inbag.at(*iit, j) != temp1){ - - cols_to_sample_01[j] = 1; - break; - - } - - } else { - - temp1 = x_inbag.at(*iit, j); - - } - - } - - } - - } - - n_cols_to_sample = sum(cols_to_sample_01); - - if(n_cols_to_sample >= 1){ - - n_events_total = sum(y_node.col(1) % w_node); - - if(n_cols_to_sample < mtry){ - - mtry_int = n_cols_to_sample; - - // if(verbose > 0){ - // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; - // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; - // Rcout << std::endl; - // Rcout << "-------------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - if (type_beta == 'C'){ - - // make sure there are at least 3 event per predictor variable. - // (if using CPH) - while(n_events_total / mtry_int < 3 && mtry_int > 1){ - --mtry_int; - } - - } - - - n_cols_to_sample = mtry_int; - - // if(verbose > 0){ - // Rcout << "n_events: " << n_events_total << std::endl; - // Rcout << "mtry: " << mtry_int << std::endl; - // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; - // } - - if(mtry_int >= 1){ - - cols_to_sample = find(cols_to_sample_01); - - // re-try hinge point - n_retry = 0; - cutpoint = R_PosInf; - - while(n_retry <= max_retry){ - - // if(n_retry > 0) Rcout << "trying again!" << std::endl; - - cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, - mtry_int, - false); - - x_node = x_inbag(rows_node, cols_node); - - // here is where n_vars gets updated to match the current node - // originally it matched the number of variables in the input x. - - n_vars = x_node.n_cols; - - if(cph_do_scale){ - x_node_scale(); - } - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node scaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - switch(type_beta) { - - case 'C' : - - beta_fit = newtraph_cph(); - - if(cph_do_scale){ - for(i = 0; i < x_transforms.n_rows; i++){ - x_node.col(i) /= x_transforms(i,1); - x_node.col(i) += x_transforms(i,0); - } - - } - - break; - - case 'N' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww, - net_alpha, - net_df_target); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - case 'U' : - - xx = wrap(x_node); - yy = wrap(y_node); - ww = wrap(w_node); - colnames(yy) = yy_names; - - beta_placeholder = f_beta(xx, yy, ww); - - beta_fit = mat(beta_placeholder.begin(), - beta_placeholder.nrow(), - beta_placeholder.ncol(), - false); - - break; - - } - - - if(any(beta_fit)){ - - // if(verbose > 0){ - // - // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); - // Rcout << "x node unscaled: " << std::endl; - // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); - // Rcout << std::endl; - // - // } - - XB = x_node * beta_fit; - cutpoint = lrt_multi(); - - } - - if(!std::isinf(cutpoint)) break; - n_retry++; - - } - - } - - } - - if(!std::isinf(cutpoint)){ - - // make new nodes if a valid cutpoint was found - nn_left = nodes_max_true + 1; - nodes_max_true = nodes_max_true + 2; - - - // if(verbose > 0){ - // - // Rcout << "-------- New nodes created --------" << std::endl; - // Rcout << "Left node: " << nn_left << std::endl; - // Rcout << "Right node: " << nodes_max_true << std::endl; - // Rcout << "-----------------------------------" << std::endl << - // std::endl << std::endl; - // - // } - - n_events_left = n_events_total - n_events_right; - - // if(verbose > 0){ - // Rcout << "n_events_left: " << n_events_left << std::endl; - // Rcout << "n_risk_left: " << n_risk_left << std::endl; - // Rcout << "n_events_right: " << n_events_right << std::endl; - // Rcout << "n_risk_right: " << n_risk_right << std::endl; - // } - - i=0; - - for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ - - node_assignments[*iit] = nn_left + group[i]; - - } - - if(n_events_left >= 2*leaf_min_events && - n_risk_left >= 2*leaf_min_obs && - n_events_left >= split_min_events && - n_risk_left >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nn_left}); - - } else { - - rows_leaf = find(group==0); - leaf_indices(leaf_node_index_counter, 0) = nn_left; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nn_left << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(n_events_right >= 2*leaf_min_events && - n_risk_right >= 2*leaf_min_obs && - n_events_right >= split_min_events && - n_risk_right >= split_min_obs){ - - nodes_to_grow_next = join_cols(nodes_to_grow_next, - uvec{nodes_max_true}); - - } else { - - rows_leaf = find(group==1); - leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; - leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << nodes_max_true << std::endl; - // Rcout << "n_obs: " << sum(w_node(rows_leaf)); - // Rcout << std::endl; - // Rcout << "n_events: "; - // vec_temp = y_node.col(1); - // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); - // Rcout << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - } - - if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); - - for(i = 0; i < n_cols_to_sample; i++){ - betas.at(i, *node) = beta_fit[i]; - // x_mean.at(i, *node) = x_transforms(i, 0); - col_indices.at(i, *node) = cols_node[i]; - } - - children_left[*node] = nn_left; - cutpoints[*node] = cutpoint; - - } else { - - // make a leaf node if a valid cutpoint could not be found - leaf_indices(leaf_node_index_counter, 0) = *node; - leaf_kaplan(y_node, w_node); - - // if(verbose > 0){ - // Rcout << "-------- creating a new leaf --------" << std::endl; - // Rcout << "name: node_" << *node << std::endl; - // Rcout << "n_obs: " << sum(w_node) << std::endl; - // Rcout << "n_events: " << sum(w_node % y_node.col(1)); - // Rcout << std::endl; - // Rcout << "Couldn't find a cutpoint??" << std::endl; - // Rcout << "------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - } - - } - - nodes_to_grow = nodes_to_grow_next; - - } while (nodes_to_grow.size() > 0); - - return( - List::create( - - _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), - - _["leaf_node_index"] = conv_to::from( - leaf_indices.rows(span(0, leaf_node_index_counter-1)) - ), - - _["betas"] = betas.cols(span(0, nodes_max_true)), - - // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), - - _["col_indices"] = conv_to::from( - col_indices.cols(span(0, nodes_max_true)) - ), - - _["cut_points"] = cutpoints(span(0, nodes_max_true)), - - _["children_left"] = conv_to::from( - children_left(span(0, nodes_max_true)) - ), - - _["rows_oobag"] = conv_to::from(rows_oobag) - - ) - ); - - -} - -// ---------------------------------------------------------------------------- -// ---------------------------- orsf functions -------------------------------- -// ---------------------------------------------------------------------------- - -// fit an oblique random survival forest. -// -// @param x matrix of predictors -// @param y matrix of outcomes -// @param weights vector of weights -// @param n_tree number of trees to fit -// @param n_split_ number of splits to try with lrt -// @param mtry_ number of predictors to try -// @param leaf_min_events_ min number of events in a leaf -// @param leaf_min_obs_ min number of observations in a leaf -// @param split_min_events_ min number of events to split a node -// @param split_min_obs_ min number of observations to split a node -// @param split_min_stat_ min lrt to split a node -// @param cph_method_ method for ties -// @param cph_eps_ criteria for convergence of newton raphson algorithm -// @param cph_iter_max_ max number of newton raphson iterations -// @param cph_do_scale_ to scale or not to scale -// @param net_alpha_ alpha parameter for glmnet -// @param net_df_target_ degrees of freedom for glmnet -// @param oobag_pred_ whether to predict out-of-bag preds or not -// @param oobag_pred_type_ what type of out-of-bag preds to compute -// @param oobag_pred_horizon_ out-of-bag prediction horizon -// @param oobag_eval_every_ trees between each evaluation of oob error -// @param oobag_importance_ to compute importance or not -// @param oobag_importance_type_ type of importance to compute -// @param tree_seeds vector of seeds to set before each tree is fit -// @param max_retry_ max number of retries for linear combinations -// @param f_beta function to find linear combinations of predictors -// @param type_beta_ what type of linear combination to find -// @param f_oobag_eval function to evaluate out-of-bag error -// @param type_oobag_eval_ whether to use default or custom out-of-bag error -// -// @return an orsf_fit object sent back to R - -// [[Rcpp::export]] -List orsf_fit(NumericMatrix& x, - NumericMatrix& y, - NumericVector& weights, - const int& n_tree, - const int& n_split_, - const int& mtry_, - const double& leaf_min_events_, - const double& leaf_min_obs_, - const double& split_min_events_, - const double& split_min_obs_, - const double& split_min_stat_, - const int& cph_method_, - const double& cph_eps_, - const int& cph_iter_max_, - const bool& cph_do_scale_, - const double& net_alpha_, - const int& net_df_target_, - const bool& oobag_pred_, - const char& oobag_pred_type_, - const double& oobag_pred_horizon_, - const int& oobag_eval_every_, - const bool& oobag_importance_, - const char& oobag_importance_type_, - IntegerVector& tree_seeds, - const int& max_retry_, - Function f_beta, - const char& type_beta_, - Function f_oobag_eval, - const char& type_oobag_eval_, - const bool verbose_progress){ - - - // convert inputs into arma objects - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - w_user = vec(weights.begin(), weights.length(), false); - - // these change later in ostree_fit() - n_rows = x_input.n_rows; - n_vars = x_input.n_cols; - - // initialize the variable importance (vi) vectors - vi_pval_numer.zeros(n_vars); - vi_pval_denom.zeros(n_vars); - - // if(verbose > 0){ - // Rcout << "------------ dimensions ------------" << std::endl; - // Rcout << "N obs total: " << n_rows << std::endl; - // Rcout << "N columns total: " << n_vars << std::endl; - // Rcout << "------------------------------------"; - // Rcout << std::endl << std::endl << std::endl; - // } - - n_split = n_split_; - mtry = mtry_; - leaf_min_events = leaf_min_events_; - leaf_min_obs = leaf_min_obs_; - split_min_events = split_min_events_; - split_min_obs = split_min_obs_; - split_min_stat = split_min_stat_; - cph_method = cph_method_; - cph_eps = cph_eps_; - cph_iter_max = cph_iter_max_; - cph_do_scale = cph_do_scale_; - net_alpha = net_alpha_; - net_df_target = net_df_target_; - oobag_pred = oobag_pred_; - oobag_pred_type = oobag_pred_type_; - oobag_eval_every = oobag_eval_every_; - oobag_eval_counter = 0; - oobag_importance = oobag_importance_; - oobag_importance_type = oobag_importance_type_; - use_tree_seed = tree_seeds.length() > 0; - max_retry = max_retry_; - type_beta = type_beta_; - type_oobag_eval = type_oobag_eval_; - temp1 = 1.0 / n_rows; - - if(cph_iter_max > 1) cph_do_scale = true; - - if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; - - if(cph_iter_max == 1) cph_do_scale = false; - - - if(oobag_pred){ - - time_pred = oobag_pred_horizon_; - - if(time_pred == 0) time_pred = median(y_input.col(0)); - - eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); - - } else { - - eval_oobag.set_size(0); - - } - - // if(verbose > 0){ - // Rcout << "------------ input variables ------------" << std::endl; - // Rcout << "n_split: " << n_split << std::endl; - // Rcout << "mtry: " << mtry << std::endl; - // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; - // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; - // Rcout << "cph_method: " << cph_method << std::endl; - // Rcout << "cph_eps: " << cph_eps << std::endl; - // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; - // Rcout << "-----------------------------------------" << std::endl; - // Rcout << std::endl << std::endl; - // } - - // ---------------------------------------------------- - // ---- sample weights to mimic a bootstrap sample ---- - // ---------------------------------------------------- - - // s is the number of times you might get selected into - // a bootstrap sample. Realistically this won't be >10, - // but it could technically be as big as n_row. - IntegerVector s = seq(0, 10); - - // compute probability of being selected into the bootstrap - // 0 times, 1, times, ..., 9 times, or 10 times. - NumericVector probs = dbinom(s, n_rows, temp1, false); - - // --------------------------------------------- - // ---- preallocate memory for tree outputs ---- - // --------------------------------------------- - - cols_to_sample_01.zeros(n_vars); - leaf_nodes.zeros(n_rows, 3); - - if(oobag_pred){ - - surv_pvec.zeros(n_rows); - denom_pred.zeros(n_rows); - - } else { - - surv_pvec.set_size(0); - denom_pred.set_size(0); - - } - - // guessing the number of nodes needed to grow a tree - nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); - - betas.zeros(mtry, nodes_max_guess); - // x_mean.zeros(mtry, nodes_max_guess); - col_indices.zeros(mtry, nodes_max_guess); - cutpoints.zeros(nodes_max_guess); - children_left.zeros(nodes_max_guess); - leaf_indices.zeros(nodes_max_guess, 3); - - // some great variable names here - List forest(n_tree); - - for(tree = 0; tree < n_tree; ){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - // -------------------------------------------- - // ---- initialize parameters to grow tree ---- - // -------------------------------------------- - - // rows_inbag = find(w_inbag != 0); - - if(use_tree_seed) set_seed_r(tree_seeds[tree]); - - w_input = as(sample(s, n_rows, true, probs)); - - // if the user gives a weight vector, then each bootstrap weight - // should be multiplied by the corresponding user weight. - if(w_user.size() > 0) w_input = w_input % w_user; - - rows_oobag = find(w_input == 0); - rows_inbag = regspace(0, n_rows-1); - rows_inbag = std_setdiff(rows_inbag, rows_oobag); - w_inbag = w_input(rows_inbag); - - // if(verbose > 0){ - // - // Rcout << "------------ boot weights ------------" << std::endl; - // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; - // Rcout << "total: " << sum(w_inbag) << std::endl; - // Rcout << "N > 0: " << rows_inbag.size() << std::endl; - // Rcout << "--------------------------------------" << - // std::endl << std::endl << std::endl; - // - // } - - x_inbag = x_input.rows(rows_inbag); - y_inbag = y_input.rows(rows_inbag); - - if(oobag_pred){ - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(rows_oobag.size()); - } - - // if(verbose > 0){ - // - // uword temp_uword_1, temp_uword_2; - // - // if(x_inbag.n_rows < 5) - // temp_uword_1 = x_inbag.n_rows-1; - // else - // temp_uword_1 = 5; - // - // if(x_inbag.n_cols < 5) - // temp_uword_2 = x_inbag.n_cols-1; - // else - // temp_uword_2 = 4; - // - // Rcout << "x inbag: " << std::endl << - // x_inbag.submat(0, 0, - // temp_uword_1, - // temp_uword_2) << std::endl; - // - // } - - if(verbose_progress){ - Rcout << "\r growing tree no. " << tree << " of " << n_tree; - } - - - forest[tree] = ostree_fit(f_beta); - - // add 1 to tree here instead of end of loop - // (more convenient to compute tree % oobag_eval_every) - tree++; - - - if(oobag_pred){ - - denom_pred(rows_oobag) += 1; - ostree_pred_leaf(); - oobag_pred_surv_uni(oobag_pred_type); - - if(tree % oobag_eval_every == 0){ - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); - oobag_eval_counter++; - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - eval_oobag[oobag_eval_counter] = as( - f_oobag_eval(y, ww) - ); - - oobag_eval_counter++; - - break; - - } - - - } - - } - - } - - if(verbose_progress){ - Rcout << std::endl; - } - - vec vimp(x_input.n_cols); - - // ANOVA importance - if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; - - // if we are computing variable importance, surv_pvec is about - // to get modified, and we don't want to return the modified - // version of surv_pvec. - // So make a deep copy if oobag_importance is true. - // Make a shallow copy if oobag_importance is false - surv_pvec_output = vec(surv_pvec.begin(), - surv_pvec.size(), - oobag_importance); - - if(oobag_importance && n_tree > 0){ - - uvec betas_to_flip; - // vec betas_temp; - oobag_eval_counter--; - - for(uword variable = 0; variable < x_input.n_cols; ++variable){ - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < n_tree; ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - if(oobag_importance_type == 'P'){ - x_pred.col(variable) = shuffle(x_pred.col(variable)); - } - - ostree_mem_xfer(); - - - if(oobag_importance_type == 'N'){ - betas_to_flip = find(col_indices == variable); - //betas_temp = betas.elem( betas_to_flip ); - betas.elem( betas_to_flip ) *= (-1); - //betas.elem( betas_to_flip ) *= 0; - } - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - if(oobag_importance_type == 'N'){ - betas.elem( betas_to_flip ) *= (-1); - // betas.elem( betas_to_flip ) = betas_temp; - } - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = eval_oobag[oobag_eval_counter] - - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = - eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); - - - break; - - } - - } - - } - - if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; - - return( - List::create( - _["forest"] = forest, - _["pred_oobag"] = surv_pvec_output, - _["pred_horizon"] = time_pred, - _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, - _["stat_type"] = type_oobag_eval), - _["importance"] = vimp - ) - ); - - -} - -// @description compute negation importance -// -// @param x matrix of predictors -// @param y outcome matrix -// @param forest forest object from an orsf_fit -// @param last_eval_stat the last estimate of out-of-bag error -// @param time_pred_ the prediction horizon -// @param f_oobag_eval function used to evaluate out-of-bag error -// @param pred_type_ the type of prediction to compute -// @param type_oobag_eval_ custom or default out-of-bag predictions -// -// @return a vector of importance values -// -// [[Rcpp::export]] -arma::vec orsf_oob_negate_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uvec betas_to_flip; - // vec betas_temp; - uword variable; - - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - ostree_mem_xfer(); - - betas_to_flip = find(col_indices == variable); - - // betas_temp = betas.elem( betas_to_flip ); - // betas.elem( betas_to_flip ) *= 0; - - betas.elem( betas_to_flip ) *= (-1); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - betas.elem( betas_to_flip ) *= (-1); - // betas.elem( betas_to_flip ) = betas_temp; - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// same as above but computes permutation importance instead of negation -// [[Rcpp::export]] -arma::vec orsf_oob_permute_vi(NumericMatrix& x, - NumericMatrix& y, - List& forest, - const double& last_eval_stat, - const double& time_pred_, - Function f_oobag_eval, - const char& pred_type_, - const char& type_oobag_eval_){ - - x_input = mat(x.begin(), x.nrow(), x.ncol(), false); - y_input = mat(y.begin(), y.nrow(), y.ncol(), false); - - time_pred = time_pred_; - type_oobag_eval = type_oobag_eval_; - oobag_pred_type = pred_type_; - - vec vimp(x_input.n_cols); - - uword variable; - - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(variable = 0; variable < x_input.n_cols; ++variable){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - surv_pvec.fill(0); - denom_pred.fill(0); - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - - x_pred.col(variable) = shuffle(x_pred.col(variable)); - - ostree_mem_xfer(); - - denom_pred(rows_oobag) += 1; - - leaf_pred.set_size(rows_oobag.size()); - - ostree_pred_leaf(); - - oobag_pred_surv_uni(oobag_pred_type); - - // x_variable = x_variable_original; - // x_input.col(variable) = x_variable; - - } - - switch(type_oobag_eval) { - - // H stands for Harrell's C-statistic - case 'H' : - - vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); - - break; - - // U stands for a user-supplied function - case 'U' : - - ww = wrap(surv_pvec); - - vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); - - break; - - } - - } - - return(vimp); - -} - -// predictions from an oblique random survival forest -// -// @description makes predictions based on a single horizon -// -// @param forest forest object from orsf_fit object -// @param x_new matrix of predictors -// @param time_dbl prediction horizon -// @param pred_type type of prediction to compute -// -// [[Rcpp::export]] -arma::mat orsf_pred_uni(List& forest, - NumericMatrix& x_new, - double time_dbl, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - time_pred = time_dbl; - - // memory for outputs - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.zeros(x_pred.n_rows); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pvec); - } else { - return(surv_pvec); - } - -} - -// same as above but makes predictions for multiple horizons -// [[Rcpp::export]] -arma::mat orsf_pred_multi(List& forest, - NumericMatrix& x_new, - NumericVector& time_vec, - char pred_type){ - - x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); - times_pred = vec(time_vec.begin(), time_vec.length(), false); - - // memory for outputs - // initial values don't matter for leaf_pred, - // but do matter for surv_pmat - leaf_pred.set_size(x_pred.n_rows); - surv_pmat.zeros(x_pred.n_rows, times_pred.size()); - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_multi(pred_type); - } - - surv_pmat /= tree; - - if(pred_type == 'R'){ - return(1 - surv_pmat); - } else { - return(surv_pmat); - } - -} - -// partial dependence for new data -// -// @description calls predict on the data with a predictor fixed -// and then summarizes the predictions. -// -// @param forest a forest object from an orsf_fit object -// @param x_new_ matrix of predictors -// @param x_cols_ columns of variables of interest -// @param x_vals_ values to set these columsn to -// @param probs_ for quantiles -// @param time_dbl prediction horizon -// @param pred_type prediction type -// -// @return matrix with partial dependence -// [[Rcpp::export]] -arma::mat pd_new_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - return(join_vert(output_means, output_quantiles)); - -} - - -// same as above but for out-of-bag data -// [[Rcpp::export]] -arma::mat pd_oob_smry(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_quantiles(probs.size(), x_vals.n_rows); - mat output_means(1, x_vals.n_rows); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_means.col(pd_i) = mean(surv_pvec); - output_quantiles.col(pd_i) = quantile(surv_pvec, probs); - - - } - - - return(join_vert(output_means, output_quantiles)); - -} - -// same as above but doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_new_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - vec probs = vec(probs_.begin(), probs_.length(), false); - - mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); - - leaf_pred.set_size(x_pred.n_rows); - surv_pvec.set_size(x_pred.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - j = 0; - - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_pred.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - ostree = forest[tree]; - ostree_mem_xfer(); - ostree_pred_leaf(); - new_pred_surv_uni(pred_type); - } - - surv_pvec /= tree; - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_pred.n_rows; - - - } - - return(output_ice); - -} - -// same as above but out-of-bag and doesn't summarize the predictions -// [[Rcpp::export]] -arma::mat pd_oob_ice(List& forest, - NumericMatrix& x_new_, - IntegerVector& x_cols_, - NumericMatrix& x_vals_, - NumericVector& probs_, - const double time_dbl, - char pred_type){ - - - uword pd_i; - - time_pred = time_dbl; - - mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); - - uvec x_cols = conv_to::from( - ivec(x_cols_.begin(), x_cols_.length(), false) - ); - - x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); - - mat output_ice(x_vals.n_rows * x_input.n_rows, 2); - vec output_ids = output_ice.unsafe_col(0); - vec output_pds = output_ice.unsafe_col(1); - - uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); - - denom_pred.set_size(x_input.n_rows); - surv_pvec.set_size(x_input.n_rows); - - for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ - - // Abort the routine if user has pressed Ctrl + C or Escape in R. - Rcpp::checkUserInterrupt(); - - j = 0; - denom_pred.fill(0); - surv_pvec.fill(0); - - for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ - - x_input.col(*jit).fill(x_vals(pd_i, j)); - - } - - for(tree = 0; tree < forest.length(); ++tree){ - - ostree = forest[tree]; - - IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; - - rows_oobag = conv_to::from( - ivec(rows_oobag_.begin(), - rows_oobag_.length(), - false) - ); - - x_pred = x_input.rows(rows_oobag); - leaf_pred.set_size(x_pred.n_rows); - denom_pred(rows_oobag) += 1; - - ostree_mem_xfer(); - ostree_pred_leaf(); - oobag_pred_surv_uni(pred_type); - - - } - - if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } - - output_ids(pd_rows).fill(pd_i+1); - output_pds(pd_rows) = surv_pvec; - pd_rows += x_input.n_rows; - - - } - - return(output_ice); - -} +// +// #include +// #include +// +// // [[Rcpp::depends(RcppArmadillo)]] +// +// +// using namespace Rcpp; +// using namespace arma; +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- global parameters ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // special note: dont change these doubles to uword, +// // even though some of them could be uwords; +// // operations involving uwords and doubles are not +// // straightforward and may break the routine. +// // also: double + uword is slower than double + double. +// +// double +// weight_avg, +// weight_events, +// w_node_sum, +// denom_events, +// denom, +// cph_eps, +// // the n_ variables could be integers but it +// // is safer and faster when they are doubles +// n_events, +// n_events_total, +// n_events_right, +// n_events_left, +// n_risk, +// n_risk_right, +// n_risk_left, +// n_risk_sub, +// g_risk, +// temp1, +// temp2, +// temp3, +// halving, +// stat_current, +// stat_best, +// w_node_person, +// xb, +// risk, +// loglik, +// cutpoint, +// observed, +// expected, +// V, +// pred_t0, +// leaf_min_obs, +// leaf_min_events, +// split_min_events, +// split_min_obs, +// split_min_stat, +// time_pred, +// ll_second, +// ll_init, +// net_alpha; +// +// int +// // verbose=0, +// max_retry, +// n_retry, +// tree, +// mtry_int, +// net_df_target, +// oobag_eval_every; +// +// char +// type_beta, +// type_oobag_eval, +// oobag_pred_type, +// oobag_importance_type, +// pred_type_dflt = 'S'; +// +// // armadillo unsigned integers +// uword +// i, +// j, +// k, +// iter, +// mtry, +// mtry_temp, +// person, +// person_leaf, +// person_ref_index, +// n_vars, +// n_rows, +// cph_method, +// cph_iter_max, +// n_split, +// nodes_max_guess, +// nodes_max_true, +// n_cols_to_sample, +// nn_left, +// leaf_node_counter, +// leaf_node_index_counter, +// leaf_node_col, +// oobag_eval_counter; +// +// bool +// break_loop, // a delayed break statement +// oobag_pred, +// oobag_importance, +// use_tree_seed, +// cph_do_scale; +// +// // armadillo vectors (doubles) +// vec +// vec_temp, +// times_pred, +// eval_oobag, +// node_assignments, +// nodes_grown, +// surv_pvec, +// surv_pvec_output, +// denom_pred, +// beta_current, +// beta_new, +// beta_fit, +// vi_pval_numer, +// vi_pval_denom, +// cutpoints, +// w_input, +// w_inbag, +// w_user, +// w_node, +// group, +// u, +// a, +// a2, +// XB, +// Risk; +// +// // armadillo unsigned integer vectors +// uvec +// iit_vals, +// jit_vals, +// rows_inbag, +// rows_oobag, +// rows_node, +// rows_leaf, +// rows_node_combined, +// cols_to_sample_01, +// cols_to_sample, +// cols_node, +// leaf_node_index, +// nodes_to_grow, +// nodes_to_grow_next, +// obs_in_node, +// children_left, +// leaf_pred; +// +// // armadillo iterators for unsigned integer vectors +// uvec::iterator +// iit, +// iit_best, +// jit, +// node; +// +// // armadillo matrices (doubles) +// mat +// x_input, +// x_transforms, +// y_input, +// x_inbag, +// y_inbag, +// x_node, +// y_node, +// x_pred, +// // x_mean, +// vmat, +// cmat, +// cmat2, +// betas, +// leaf_node, +// leaf_nodes, +// surv_pmat; +// +// umat +// col_indices, +// leaf_indices; +// +// cube +// surv_pcube; +// +// List ostree; +// +// NumericMatrix +// beta_placeholder, +// xx, +// yy; +// +// CharacterVector yy_names = CharacterVector::create("time","status"); +// +// NumericVector ww; +// +// Environment base_env("package:base"); +// +// Function set_seed_r = base_env["set.seed"]; +// +// // Set difference for arma vectors +// // +// // @description the same as setdiff() in R +// // +// // @param x first vector +// // @param y second vector +// // +// // [[Rcpp::export]] +// arma::uvec std_setdiff(arma::uvec& x, arma::uvec& y) { +// +// std::vector a = conv_to< std::vector >::from(sort(x)); +// std::vector b = conv_to< std::vector >::from(sort(y)); +// std::vector out; +// +// std::set_difference(a.begin(), a.end(), +// b.begin(), b.end(), +// std::inserter(out, out.end())); +// +// return conv_to::from(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- scaling functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // scale observations in predictor matrix +// // +// // @description this scales inputs in the same way as +// // the survival::coxph() function. The main reasons we do this +// // are to avoid exponential overflow and to prevent the scale +// // of inputs from impacting the estimated beta coefficients. +// // E.g., you can try multiplying numeric inputs by 100 prior +// // to calling orsf() with orsf_control_fast(do_scale = FALSE) +// // and you will see that you get back a different forest. +// // +// // @param x_node matrix of predictors +// // @param w_node replication weights +// // @param x_transforms matrix used to store the means and scales +// // +// // @return modified x_node and x_transform filled with values +// // +// void x_node_scale(){ +// +// // set aside memory for outputs +// // first column holds the mean values +// // second column holds the scale values +// +// x_transforms.zeros(n_vars, 2); +// vec means = x_transforms.unsafe_col(0); // Reference to column 1 +// vec scales = x_transforms.unsafe_col(1); // Reference to column 2 +// +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// means.at(i) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// x_node.col(i) -= means.at(i); +// +// scales.at(i) = sum(w_node % abs(x_node.col(i))); +// +// if(scales(i) > 0) +// scales.at(i) = w_node_sum / scales.at(i); +// else +// scales.at(i) = 1.0; // rare case of constant covariate; +// +// x_node.col(i) *= scales.at(i); +// +// } +// +// } +// +// // same as above function, but just the means +// // (currently not used) +// void x_node_means(){ +// +// x_transforms.zeros(n_vars, 1); +// w_node_sum = sum(w_node); +// +// for(i = 0; i < n_vars; i++) { +// +// x_transforms.at(i, 0) = sum( w_node % x_node.col(i) ) / w_node_sum; +// +// } +// +// } +// +// // Same as x_node_scale, but this can be called from R +// // [[Rcpp::export]] +// List x_node_scale_exported(NumericMatrix& x_, +// NumericVector& w_){ +// +// x_node = mat(x_.begin(), x_.nrow(), x_.ncol(), false); +// w_node = vec(w_.begin(), w_.length(), false); +// n_vars = x_node.n_cols; +// +// x_node_scale(); +// +// return( +// List::create( +// _["x_scaled"] = x_node, +// _["x_transforms"] = x_transforms +// ) +// ); +// +// } +// +// // ---------------------------------------------------------------------------- +// // -------------------------- leaf_surv functions ----------------------------- +// // ---------------------------------------------------------------------------- +// +// // Create kaplan-meier survival curve in leaf node +// // +// // @description Modifies leaf_nodes by adding data from the current node, +// // where the current node is one that is too small to be split and will +// // be converted to a leaf. +// // +// // @param y the outcome matrix in the current leaf +// // @param w the weights vector in the current leaf +// // @param leaf_indices a matrix that indicates where leaf nodes are +// // inside of leaf_nodes. leaf_indices has three columns: +// // - first column: the id for the leaf +// // - second column: starting row for the leaf +// // - third column: ending row for the leaf +// // @param leaf_node_index_counter keeps track of where we are in leaf_node +// // @param leaf_node_counter keeps track of which leaf node we are in +// // @param leaf_nodes a matrix with three columns: +// // - first column: time +// // - second column: survival probability +// // - third column: cumulative hazard +// +// void leaf_kaplan(const arma::mat& y, +// const arma::vec& w){ +// +// leaf_indices(leaf_node_index_counter, 1) = leaf_node_counter; +// i = leaf_node_counter; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(i, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// i++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(i, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// i++; +// +// } +// +// } +// +// // reset for kaplan meier loop +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// temp3 = 0.0; +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// +// temp3 = temp3 + n_events / n_risk; +// +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_nodes.at(leaf_node_counter, 2) = temp3; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// +// leaf_indices(leaf_node_index_counter, 2) = leaf_node_counter-1; +// leaf_node_index_counter++; +// +// if(leaf_node_index_counter >= leaf_indices.n_rows){ +// leaf_indices.insert_rows(leaf_indices.n_rows, 10); +// } +// +// } +// +// // Same as above, but this function can be called from R and is +// // used to run tests with testthat (hence the name). Note: this +// // needs to be updated to include CHF, which was added to the +// // function above recently. +// // [[Rcpp::export]] +// arma::mat leaf_kaplan_testthat(const arma::mat& y, +// const arma::vec& w){ +// +// +// leaf_nodes.set_size(y.n_rows, 3); +// leaf_node_counter = 0; +// +// // find the first unique event time +// person = 0; +// +// while(y.at(person, 1) == 0){ +// person++; +// } +// +// // now person corresponds to the first event time +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person, 0); // see above +// temp2 = y.at(person, 0); +// +// leaf_node_counter++; +// +// // find the rest of the unique event times +// for( ; person < y.n_rows; person++){ +// +// if(temp2 != y.at(person, 0) && y.at(person, 1) == 1){ +// +// leaf_nodes.at(leaf_node_counter, 0) = y.at(person,0); +// temp2 = y.at(person, 0); +// leaf_node_counter++; +// +// } +// +// } +// +// +// // reset for kaplan meier loop +// i = leaf_node_counter; +// n_risk = sum(w); +// person = 0; +// temp1 = 1.0; +// leaf_node_counter = 0; +// +// +// do { +// +// n_events = 0; +// n_risk_sub = 0; +// temp2 = y.at(person, 0); +// +// while(y.at(person, 0) == temp2){ +// +// n_risk_sub += w.at(person); +// n_events += y.at(person, 1) * w.at(person); +// +// if(person == y.n_rows-1) break; +// +// person++; +// +// } +// +// // only do km if a death was observed +// +// if(n_events > 0){ +// +// temp1 = temp1 * (n_risk - n_events) / n_risk; +// leaf_nodes.at(leaf_node_counter, 1) = temp1; +// leaf_node_counter++; +// +// } +// +// n_risk -= n_risk_sub; +// +// } while (leaf_node_counter < i); +// +// leaf_nodes.resize(leaf_node_counter, 3); +// +// return(leaf_nodes); +// +// } +// +// +// +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- cholesky functions ---------------------------- +// // ---------------------------------------------------------------------------- +// +// // cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // prepares vmat for cholesky_solve() +// +// +// void cholesky(){ +// +// double eps_chol = 0; +// double toler = 1e-8; +// double pivot; +// +// for(i = 0; i < n_vars; i++){ +// +// if(vmat.at(i,i) > eps_chol) eps_chol = vmat.at(i,i); +// +// // copy upper right values to bottom left +// for(j = (i+1); j eps_chol) { +// +// for(j = (i+1); j < n_vars; j++){ +// +// temp1 = vmat.at(j,i) / pivot; +// vmat.at(j,i) = temp1; +// vmat.at(j,j) -= temp1*temp1*pivot; +// +// for(k = (j+1); k < n_vars; k++){ +// +// vmat.at(k, j) -= temp1 * vmat.at(k, i); +// +// } +// +// } +// +// } else { +// +// vmat.at(i, i) = 0; +// +// } +// +// } +// +// } +// +// // solve cholesky decomposition +// // +// // @description this function is copied from the survival package and +// // translated into arma. Prepares u, the vector used to update beta. +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// // +// void cholesky_solve(){ +// +// for (i = 0; i < n_vars; i++) { +// +// temp1 = u[i]; +// +// for (j = 0; j < i; j++){ +// +// temp1 -= u[j] * vmat.at(i, j); +// u[i] = temp1; +// +// } +// +// } +// +// +// for (i = n_vars; i >= 1; i--){ +// +// if (vmat.at(i-1, i-1) == 0){ +// +// u[i-1] = 0; +// +// } else { +// +// temp1 = u[i-1] / vmat.at(i-1, i-1); +// +// for (j = i; j < n_vars; j++){ +// temp1 -= u[j] * vmat.at(j, i-1); +// } +// +// u[i-1] = temp1; +// +// } +// +// } +// +// } +// +// // invert the cholesky in the lower triangle +// // +// // @description this function is copied from the survival package and +// // translated into arma. Inverts vmat +// // +// // @param vmat matrix with covariance estimates +// // @param n_vars the number of predictors used in the current node +// // +// +// void cholesky_invert(){ +// +// for (i=0; i0) { +// +// // take full advantage of the cholesky's diagonal of 1's +// vmat.at(i,i) = 1.0 / vmat.at(i,i); +// +// for (j=(i+1); j 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= weight_events * log(denom); +// +// for (i=0; i 0) { +// +// if (cph_method == 0 || n_events == 1) { // Breslow +// +// denom += denom_events; +// loglik -= denom_events * log(denom); +// +// for (i=0; i 1 && stat_best < R_PosInf){ +// +// for(iter = 1; iter < cph_iter_max; iter++){ +// +// // if(verbose > 0){ +// // +// // Rcout << "--------- Newt-Raph algo; iter " << iter; +// // Rcout << " ---------" << std::endl; +// // Rcout << "beta: " << beta_new.t(); +// // Rcout << "loglik: " << stat_best; +// // Rcout << std::endl; +// // Rcout << "------------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // +// // } +// +// // do the next iteration +// stat_current = newtraph_cph_iter(beta_new); +// +// cholesky(); +// +// // don't go trying to fix this, just use the last +// // set of valid coefficients +// if(std::isinf(stat_current)) break; +// +// // check for convergence +// // break the loop if the new ll is ~ same as old best ll +// if(fabs(1 - stat_best / stat_current) < cph_eps){ +// break; +// } +// +// if(stat_current < stat_best){ // it's not converging! +// +// halving++; // get more aggressive when it doesn't work +// +// // reduce the magnitude by which beta_new modifies beta_current +// for (i = 0; i < n_vars; i++){ +// beta_new[i] = (beta_new[i]+halving*beta_current[i]) / (halving+1.0); +// } +// +// // yeah its not technically the best but I need to do this for +// // more reasonable output when verbose = true; I should remove +// // this line when verbosity is taken out. +// stat_best = stat_current; +// +// } else { // it's converging! +// +// halving = 0; +// stat_best = stat_current; +// +// cholesky_solve(); +// +// for (i = 0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// beta_new[i] = beta_new[i] + u[i]; +// +// } +// +// } +// +// } +// +// } +// +// // invert vmat +// cholesky_invert(); +// +// for (i=0; i < n_vars; i++) { +// +// beta_current[i] = beta_new[i]; +// +// if(std::isinf(beta_current[i]) || std::isnan(beta_current[i])){ +// beta_current[i] = 0; +// } +// +// if(std::isinf(vmat.at(i, i)) || std::isnan(vmat.at(i, i))){ +// vmat.at(i, i) = 1.0; +// } +// +// // if(verbose > 0) Rcout << "scaled beta: " << beta_current[i] << "; "; +// +// if(cph_do_scale){ +// beta_current.at(i) *= x_transforms.at(i, 1); +// vmat.at(i, i) *= x_transforms.at(i, 1) * x_transforms.at(i, 1); +// } +// +// // if(verbose > 0) Rcout << "un-scaled beta: " << beta_current[i] << std::endl; +// +// if(oobag_importance_type == 'A'){ +// +// if(beta_current.at(i) != 0){ +// +// temp1 = R::pchisq(pow(beta_current[i], 2) / vmat.at(i, i), +// 1, false, false); +// +// if(temp1 < 0.01) vi_pval_numer[cols_node[i]]++; +// +// } +// +// vi_pval_denom[cols_node[i]]++; +// +// } +// +// } +// +// // if(verbose > 1) Rcout << std::endl; +// +// return(beta_current); +// +// } +// +// // same function as above, but exported to R for testing +// // [[Rcpp::export]] +// arma::vec newtraph_cph_testthat(NumericMatrix& x_in, +// NumericMatrix& y_in, +// NumericVector& w_in, +// int method, +// double cph_eps_, +// int iter_max){ +// +// +// x_node = mat(x_in.begin(), x_in.nrow(), x_in.ncol(), false); +// y_node = mat(y_in.begin(), y_in.nrow(), y_in.ncol(), false); +// w_node = vec(w_in.begin(), w_in.length(), false); +// +// cph_do_scale = true; +// +// cph_method = method; +// cph_eps = cph_eps_; +// cph_iter_max = iter_max; +// n_vars = x_node.n_cols; +// +// vi_pval_numer.zeros(x_node.n_cols); +// vi_pval_denom.zeros(x_node.n_cols); +// cols_node = regspace(0, x_node.n_cols - 1); +// +// x_node_scale(); +// +// vec out = newtraph_cph(); +// +// return(out); +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- node functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // Log rank test w/multiple cutpoints +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // @param group the vector that determines which node to send each +// // observation to (left node = 0, right node = 1) +// // @param y_node matrix of outcomes +// // @param w_node vector of weights +// // @param XB linear combination of predictors +// // +// // the group vector is modified by this function and the value returned +// // is the maximal log-rank statistic across all the possible cutpoints. +// double lrt_multi(){ +// +// break_loop = false; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB[*(iit+1)] << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB[*iit] != XB[*(iit+1)]){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status[*iit] * w_node[*iit]; +// n_risk += w_node[*iit]; +// group[*iit] = 1; +// +// // if(verbose > 1){ +// // Rcout << XB[*iit] << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if ( XB[*iit] != XB[*(iit-1)] ) { +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB[*iit] << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// +// // adjust k to indicate the number of valid cut-points +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// // protection from going out of bounds with jit_vals(k) below +// if(j == 0) jit_vals.at(jit_vals.size()-1)--; +// +// // put the indices of potential cut-points into vec_temp +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp[k] = XB.at(*(iit_best - jit_vals[k])); +// } +// +// // back to how it was! +// if(j == 0) jit_vals.at(jit_vals.size()-1)++; +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// // switch group values from 0 to 1 until you get to the next cut-point +// for( ; j < *jit; j++){ +// group[*iit] = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp[k] == vec_temp[k+1] || +// vec_temp[k] == vec_temp[0] || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while( XB[*iit] == XB[*(iit - 1)] ){ +// +// group[*iit] = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB[*iit] << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB[*iit] << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < split_min_stat) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group[*iit] = 0; +// ++iit; +// } +// +// // XB at *iit_best is the cut-point that maximized the log-rank test +// return(XB[*iit_best]); +// +// } +// +// // this function is the same as above, but is exported to R for testing +// // [[Rcpp::export]] +// List lrt_multi_testthat(NumericMatrix& y_node_, +// NumericVector& w_node_, +// NumericVector& XB_, +// int n_split_, +// int leaf_min_events_, +// int leaf_min_obs_ +// ){ +// +// y_node = mat(y_node_.begin(), y_node_.nrow(), y_node_.ncol(), false); +// w_node = vec(w_node_.begin(), w_node_.length(), false); +// XB = vec(XB_.begin(), XB_.length(), false); +// +// n_split = n_split_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// +// // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - +// // +// // this function returns a cutpoint obtaining a local maximum +// // of the log-rank test (lrt) statistic. The default value (+Inf) +// // is really for diagnostic purposes. Put another way, if the +// // return value is +Inf (an impossible value for a cutpoint), +// // that means that we didn't find any valid cut-points and +// // the node cannot be grown with the current XB. +// // +// // if there is a valid cut-point, then the main side effect +// // of this function is to modify the group vector, which +// // will be used to assign observations to the two new nodes. +// // +// // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// break_loop = false; +// +// vec cutpoints_used(n_split); +// vec lrt_statistics(n_split); +// uword list_counter = 0; +// +// // group should be initialized as all 0s +// group.zeros(y_node.n_rows); +// +// // initialize at the lowest possible LRT stat value +// stat_best = 0; +// +// // sort XB- we need to iterate over the sorted indices +// iit_vals = sort_index(XB, "ascend"); +// +// // unsafe columns point to cols in y_node. +// vec y_status = y_node.unsafe_col(1); +// vec y_time = y_node.unsafe_col(0); +// +// // first determine the lowest value of XB that will +// // be a valid cut-point to split a node. A valid cut-point +// // is one that, if used, will result in at least leaf_min_obs +// // and leaf_min_events in both the left and right node. +// +// n_events = 0; +// n_risk = 0; +// +// // if(verbose > 1){ +// // Rcout << "----- finding cut-point boundaries -----" << std::endl; +// // } +// +// // Iterate through the sorted values of XB, in ascending order. +// +// for(iit = iit_vals.begin(); iit < iit_vals.end()-1; ++iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// +// // If we want to make the current value of XB a cut-point, we need +// // to make sure the next value of XB isn't equal to this current value. +// // Otherwise, we will have the same value of XB in both groups! +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit+1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit+1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs) { +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "lower cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, left node: " << n_events << std::endl; +// // Rcout << " - n_risk, left node: " << n_risk << std::endl; +// // Rcout << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // if(verbose > 1){ +// // if(iit >= iit_vals.end()-1) { +// // Rcout << "Could not find a valid lower cut-point" << std::endl; +// // } +// // } +// +// +// j = iit - iit_vals.begin(); +// +// // got to reset these before finding the upper limit +// n_events=0; +// n_risk=0; +// +// // do the first step in the loop manually since we need to +// // refer to iit+1 in all proceeding steps. +// +// for(iit = iit_vals.end()-1; iit >= iit_vals.begin()+1; --iit){ +// +// n_events += y_status(*iit) * w_node(*iit); +// n_risk += w_node(*iit); +// group(*iit) = 1; +// +// // if(verbose > 1){ +// // Rcout << XB(*iit) << " ---- "; +// // Rcout << XB(*(iit-1)) << " ---- "; +// // Rcout << n_events << " ---- "; +// // Rcout << n_risk << std::endl; +// // } +// +// if(XB(*iit) != XB(*(iit-1))){ +// +// // if(verbose > 1){ +// // Rcout << "********* New cut-point here ********" << std::endl; +// // } +// +// if( n_events >= leaf_min_events && +// n_risk >= leaf_min_obs ) { +// +// // the upper cutpoint needs to be one step below the current +// // iit value, because we use x <= cp to determine whether a +// // value x goes to the left node versus the right node. So, +// // if iit currently points to 3, and the next value down is 2, +// // then we want to say the cut-point is 2 because then all +// // values <= 2 will go left, and 3 will go right. This matters +// // when 3 is the highest value in the vector. +// +// --iit; +// +// // if(verbose > 1){ +// // Rcout << std::endl; +// // Rcout << "upper cutpoint: " << XB(*iit) << std::endl; +// // Rcout << " - n_events, right node: " << n_events << std::endl; +// // Rcout << " - n_risk, right node: " << n_risk << std::endl; +// // } +// +// break; +// +// } +// +// } +// +// } +// +// // number of steps taken +// k = iit + 1 - iit_vals.begin(); +// +// // if(verbose > 1){ +// // Rcout << "----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // Rcout << "sorted XB: " << std::endl << XB(iit_vals).t() << std::endl; +// // } +// +// // initialize cut-point as the value of XB iit currently points to. +// iit_best = iit; +// +// // what happens if we don't have enough events or obs to split? +// // the first valid lower cut-point (at iit_vals(k)) is > the first +// // valid upper cutpoint (current value of n_risk). Put another way, +// // k (the number of steps taken from beginning of the XB vec) +// // will be > n_rows - p, where the difference on the RHS is +// // telling us where we are after taking p steps from the end +// // of the XB vec. Returning the infinite cp is a red flag. +// +// // if(verbose > 1){ +// // Rcout << "j: " << j << std::endl; +// // Rcout << "k: " << k << std::endl; +// // } +// +// if (j > k){ +// +// // if(verbose > 1) { +// // Rcout << "Could not find a cut-point for this XB" << std::endl; +// // } +// +// return(R_PosInf); +// } +// +// // if(verbose > 1){ +// // +// // Rcout << "----- initializing log-rank test cutpoints -----" << std::endl; +// // Rcout << "n potential cutpoints: " << k-j << std::endl; +// // +// // } +// +// // what happens if there are only 5 potential cut-points +// // but the value of n_split is > 5? We will just check out +// // the 5 valid cutpoints. +// +// // adjust k to indicate steps taken in the outer loop. +// k -= j; +// +// if(k > n_split){ +// +// jit_vals = linspace(0, k, n_split); +// +// } else { +// +// jit_vals = linspace(0, k, k); +// +// } +// +// vec_temp.resize( jit_vals.size() ); +// +// if(j == 0) jit_vals(jit_vals.size()-1)--; +// +// for(k = 0; k < vec_temp.size(); k++){ +// vec_temp(k) = XB(*(iit_best - jit_vals(k))); +// } +// +// if(j == 0) jit_vals(jit_vals.size()-1)++; +// +// +// // if(verbose > 1){ +// // +// // Rcout << "cut-points chosen: "; +// // +// // Rcout << vec_temp.t(); +// // +// // Rcout << "----------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// bool do_lrt = true; +// +// k = 0; +// j = 1; +// +// // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ +// +// +// // if(verbose > 1){ +// // Rcout << "jit points to " << *jit << std::endl; +// // } +// +// for( ; j < *jit; j++){ +// group(*iit) = 1; +// --iit; +// } +// +// if(jit == jit_vals.begin() || +// jit == jit_vals.end()-1){ +// +// do_lrt = true; +// +// } else { +// +// if( vec_temp(k) == vec_temp(k+1) || +// vec_temp(k) == vec_temp(0) || +// *jit <= 1){ +// +// do_lrt = false; +// +// } else { +// +// while(XB(*iit) == XB(*(iit - 1))){ +// +// group(*iit) = 1; +// --iit; +// ++j; +// +// // if(verbose > 1){ +// // Rcout << "cutpoint dropped down one spot: "; +// // Rcout << XB(*iit) << std::endl; +// // } +// +// } +// +// do_lrt = true; +// +// } +// +// } +// +// ++k; +// +// if(do_lrt){ +// +// cutpoints_used(list_counter) = XB(*iit); +// +// n_risk=0; +// g_risk=0; +// +// observed=0; +// expected=0; +// +// V=0; +// +// break_loop = false; +// +// i = y_node.n_rows-1; +// +// // if(verbose > 1){ +// // Rcout << "sum(group==1): " << sum(group) << "; "; +// // Rcout << "sum(group==1 * w_node): " << sum(group % w_node); +// // Rcout << std::endl; +// // if(verbose > 1){ +// // Rcout << "group:" << std::endl; +// // Rcout << group(iit_vals).t() << std::endl; +// // } +// // } +// +// +// // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - +// for (; ;){ +// +// temp1 = y_time[i]; +// +// n_events = 0; +// +// for ( ; y_time[i] == temp1; i--) { +// +// n_risk += w_node[i]; +// n_events += y_status[i] * w_node[i]; +// g_risk += group[i] * w_node[i]; +// observed += y_status[i] * group[i] * w_node[i]; +// +// if(i == 0){ +// break_loop = true; +// break; +// } +// +// } +// +// // should only do these calculations if n_events > 0, +// // but turns out its faster to multiply by 0 than +// // it is to check whether n_events is > 0 +// +// temp2 = g_risk / n_risk; +// expected += n_events * temp2; +// +// // update variance if n_risk > 1 (if n_risk == 1, variance is 0) +// // definitely check if n_risk is > 1 b/c otherwise divide by 0 +// if (n_risk > 1){ +// temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); +// V += temp1 * (1 - temp2); +// } +// +// if(break_loop) break; +// +// } +// // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// stat_current = pow(expected-observed, 2) / V; +// +// lrt_statistics(list_counter) = stat_current; +// +// list_counter++; +// +// // if(verbose > 1){ +// // +// // Rcout << "-------- log-rank test results --------" << std::endl; +// // Rcout << "cutpoint: " << XB(*iit) << std::endl; +// // Rcout << "lrt stat: " << stat_current << std::endl; +// // Rcout << "---------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// if(stat_current > stat_best){ +// iit_best = iit; +// stat_best = stat_current; +// n_events_right = observed; +// n_risk_right = g_risk; +// n_risk_left = n_risk - g_risk; +// } +// +// } +// // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - +// +// } +// +// // if the log-rank test does not detect a difference at 0.05 alpha, +// // maybe it's not a good idea to split this node. +// +// if(stat_best < 3.841459) return(R_PosInf); +// +// // if(verbose > 1){ +// // Rcout << "Best LRT stat: " << stat_best << std::endl; +// // } +// +// // rewind iit until it is back where it was when we got the +// // best lrt stat. While rewinding iit, also reset the group +// // values so that group is as it was when we got the best +// // lrt stat. +// +// +// while(iit <= iit_best){ +// group(*iit) = 0; +// ++iit; +// } +// +// return(List::create(_["cutpoints"] = cutpoints_used, +// _["statistic"] = lrt_statistics)); +// +// } +// +// +// // out-of-bag prediction for single prediction horizon +// // +// // @param pred_type indicates what type of prediction to compute +// // @param leaf_pred a vector indicating which leaf each observation +// // landed in. +// // @param leaf_indices a matrix that contains indices for each leaf node +// // inside of leaf_nodes +// // @param leaf_nodes a matrix with ids, survival, and cumulative hazard +// // functions for each leaf node. +// // +// // @return matrix with predictions, dimension n by 1 +// +// void oobag_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred[*iit]; +// +// // find the current leaf +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// // get submat view for this leaf +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node.at(i-1, leaf_node_col); +// break; +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// // running mean: mean_k = mean_{k-1} + (new val - old val) / k +// // compute new val - old val +// // be careful, every oob row has a different denom! +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred(*iit)){ +// +// temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; +// surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; +// +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 0){ +// // Rcout << "surv_pvec:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// // out-of-bag prediction evaluation, Harrell's C-statistic +// // +// // @param pred_type indicates what type of prediction to compute +// // @param y_input matrix of outcomes from input +// // +// // @return the C-statistic +// +// double oobag_c_harrell(char pred_type){ +// +// vec time = y_input.unsafe_col(0); +// vec status = y_input.unsafe_col(1); +// iit_vals = find(status == 1); +// +// k = y_input.n_rows; +// +// double total=0, concordant=0; +// +// switch(pred_type){ +// +// case 'S': case 'R': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for survival, current value > next vals is good +// // risk is the same as survival until just before we output +// // the oobag predictions, when we say pvec = 1-pvec, +// if (surv_pvec[j] > surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// +// case 'H': +// for (iit = iit_vals.begin(); iit < iit_vals.end(); ++iit) { +// +// for(j = *iit + 1; j < k; ++j){ +// +// if (time[j] > time[*iit]) { // ties not counted +// +// total++; +// +// // for risk & chf current value < next vals is good. +// if (surv_pvec[j] < surv_pvec[*iit]){ +// +// concordant++; +// +// } else if (surv_pvec[j] == surv_pvec[*iit]){ +// +// concordant+= 0.5; +// +// } +// +// } +// +// } +// +// } +// break; +// } +// +// return(concordant / total); +// +// } +// +// // same function as above but exported to R for testing +// // [[Rcpp::export]] +// double oobag_c_harrell_testthat(NumericMatrix y_mat, +// NumericVector s_vec) { +// +// y_input = mat(y_mat.begin(), y_mat.nrow(), y_mat.ncol(), false); +// surv_pvec = vec(s_vec.begin(), s_vec.length(), false); +// +// return(oobag_c_harrell(pred_type_dflt)); +// +// } +// +// // this function is the same as oobag_pred_surv_uni, +// // but it operates on new data rather than out-of-bag data +// // and it allows for multiple prediction horizons instead of one +// void new_pred_surv_multi(char pred_type){ +// +// // allocate memory for output +// // surv_pvec.zeros(x_pred.n_rows); +// +// surv_pvec.set_size(times_pred.size()); +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices(i, 1), +// leaf_indices(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// for(j = 0; j < times_pred.size(); j++){ +// +// time_pred = times_pred.at(j); +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// +// if (leaf_node.at(i, 0) > time_pred){ +// +// if(i == 0) +// temp1 = pred_t0; +// else +// temp1 = leaf_node.at(i-1, leaf_node_col); +// +// break; +// +// } else if (leaf_node.at(i, 0) == time_pred){ +// +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// +// } +// +// } +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } +// +// surv_pvec.at(j) = temp1; +// +// } +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred.at(*iit)){ +// +// surv_pmat.row(*iit) += surv_pvec.t(); +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// } +// +// // this function is the same as new_pred_surv_multi, +// // but only uses one prediction horizon +// void new_pred_surv_uni(char pred_type){ +// +// iit_vals = sort_index(leaf_pred, "ascend"); +// iit = iit_vals.begin(); +// +// switch(pred_type){ +// +// case 'S': case 'R': +// +// leaf_node_col = 1; +// pred_t0 = 1; +// break; +// +// case 'H': +// +// leaf_node_col = 2; +// pred_t0 = 0; +// break; +// +// } +// +// do { +// +// person_leaf = leaf_pred(*iit); +// +// for(i = 0; i < leaf_indices.n_rows; i++){ +// if(leaf_indices.at(i, 0) == person_leaf){ +// break; +// } +// } +// +// leaf_node = leaf_nodes.rows(leaf_indices.at(i, 1), +// leaf_indices.at(i, 2)); +// +// // if(verbose > 1){ +// // Rcout << "leaf_node:" << std::endl << leaf_node << std::endl; +// // } +// +// i = 0; +// +// if(time_pred < leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// for(; i < leaf_node.n_rows; i++){ +// if (leaf_node.at(i, 0) > time_pred){ +// +// if(i == 0){ +// +// temp1 = pred_t0; +// +// } else { +// +// temp1 = leaf_node.at(i - 1, leaf_node_col); +// +// // experimental - does not seem to help! +// // weighted average of surv est from before and after time of pred +// // temp2 = leaf_node(i, 0) - leaf_node(i-1, 0); +// // +// // temp1 = leaf_node(i, 1) * (time_pred - leaf_node(i-1,0)) / temp2 + +// // leaf_node(i-1, 1) * (leaf_node(i,0) - time_pred) / temp2; +// +// } +// +// break; +// +// } else if (leaf_node.at(i, 0) == time_pred){ +// temp1 = leaf_node.at(i, leaf_node_col); +// break; +// } +// } +// +// } else if (time_pred == leaf_node.at(leaf_node.n_rows - 1, 0)){ +// +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// } else { +// +// // go here if prediction horizon > max time in current leaf. +// temp1 = leaf_node.at(leaf_node.n_rows - 1, leaf_node_col); +// +// // --- EXPERIMENTAL ADD-ON --- // +// // if you are predicting beyond the max time in a node, +// // then determine how much further out you are and assume +// // the survival probability decays at the same rate. +// +// // temp2 = (1.0 - temp1) * +// // (time_pred - leaf_node(leaf_node.n_rows - 1, 0)) / time_pred; +// // +// // temp1 = temp1 * (1.0-temp2); +// +// } +// +// surv_pvec.at(*iit) += temp1; +// ++iit; +// +// if(iit < iit_vals.end()){ +// +// while(person_leaf == leaf_pred.at(*iit)){ +// +// surv_pvec.at(*iit) += temp1; +// ++iit; +// +// if (iit == iit_vals.end()) break; +// +// } +// +// } +// +// } while (iit < iit_vals.end()); +// +// // if(verbose > 1){ +// // Rcout << "pred_surv:" << std::endl << surv_pvec.t() << std::endl; +// // } +// +// } +// +// +// // ---------------------------------------------------------------------------- +// // --------------------------- ostree functions ------------------------------- +// // ---------------------------------------------------------------------------- +// +// // increase the memory allocated to a tree +// // +// // this function is used if the initial memory allocation isn't enough +// // to grow the tree. It modifies all elements of the tree, including +// // betas, col_indices, children_left, and cutpoints +// // +// void ostree_size_buffer(){ +// +// // if(verbose > 1){ +// // Rcout << "---------- buffering outputs ----------" << std::endl; +// // Rcout << "betas before: " << std::endl << betas.t() << std::endl; +// // } +// +// betas.insert_cols(betas.n_cols, 10); +// // x_mean.insert_cols(x_mean.n_cols, 10); +// col_indices.insert_cols(col_indices.n_cols, 10); +// children_left.insert_rows(children_left.size(), 10); +// cutpoints.insert_rows(cutpoints.size(), 10); +// +// // if(verbose > 1){ +// // Rcout << "betas after: " << std::endl << betas.t() << std::endl; +// // Rcout << "---------------------------------------"; +// // Rcout << std::endl << std::endl; +// // } +// +// +// } +// +// // transfer memory from R into arma types +// // +// // when trees are passed from R, they need to be converted back into +// // arma objects. The intent of this function is to convert everything +// // back into an arma object without copying any data. +// // +// // nothing is modified apart from types +// +// void ostree_mem_xfer(){ +// +// // no data copied according to tracemem. +// // not including boot rows or x_mean (don't always need them) +// +// NumericMatrix leaf_nodes_ = ostree["leaf_nodes"]; +// NumericMatrix betas_ = ostree["betas"]; +// NumericVector cutpoints_ = ostree["cut_points"]; +// IntegerMatrix col_indices_ = ostree["col_indices"]; +// IntegerMatrix leaf_indices_ = ostree["leaf_node_index"]; +// IntegerVector children_left_ = ostree["children_left"]; +// +// leaf_nodes = mat(leaf_nodes_.begin(), +// leaf_nodes_.nrow(), +// leaf_nodes_.ncol(), +// false); +// +// betas = mat(betas_.begin(), +// betas_.nrow(), +// betas_.ncol(), +// false); +// +// cutpoints = vec(cutpoints_.begin(), cutpoints_.length(), false); +// +// col_indices = conv_to::from( +// imat(col_indices_.begin(), +// col_indices_.nrow(), +// col_indices_.ncol(), +// false) +// ); +// +// leaf_indices = conv_to::from( +// imat(leaf_indices_.begin(), +// leaf_indices_.nrow(), +// leaf_indices_.ncol(), +// false) +// ); +// +// children_left = conv_to::from( +// ivec(children_left_.begin(), +// children_left_.length(), +// false) +// ); +// +// } +// +// // drop observations down the tree +// // +// // @description Determine the leaves that are assigned to new data. +// // +// // @param children_left vector of child node ids (right node = left node + 1) +// // @param x_pred matrix of predictors from new data +// // +// // @return a vector indicating which leaf each observation was mapped to +// void ostree_pred_leaf(){ +// +// // reset values +// // this is needed for pred_leaf since every obs gets a new leaf in +// // the next tree, but it isn't needed for pred_surv because survival +// // probs get aggregated over all the trees. +// leaf_pred.fill(0); +// +// for(i = 0; i < betas.n_cols; i++){ +// +// if(children_left[i] != 0){ +// +// if(i == 0){ +// obs_in_node = regspace(0, 1, leaf_pred.size()-1); +// } else { +// obs_in_node = find(leaf_pred == i); +// } +// +// +// if(obs_in_node.size() > 0){ +// +// // Fastest sub-matrix multiplication i can think of. +// // Matrix product = linear combination of columns +// // (this is faster b/c armadillo is great at making +// // pointers to the columns of an arma mat) +// // I had to stop using this b/c it fails on +// // XB.zeros(obs_in_node.size()); +// // +// // uvec col_indices_i = col_indices.unsafe_col(i); +// // +// // j = 0; +// // +// // jit = col_indices_i.begin(); +// // +// // for(; jit < col_indices_i.end(); ++jit, ++j){ +// // +// // vec x_j = x_pred.unsafe_col(*jit); +// // +// // XB += x_j(obs_in_node) * betas.at(j, i); +// // +// // } +// +// // this is slower but more clear matrix multiplication +// XB = x_pred(obs_in_node, col_indices.col(i)) * betas.col(i); +// +// jit = obs_in_node.begin(); +// +// for(j = 0; j < XB.size(); ++j, ++jit){ +// +// if(XB[j] <= cutpoints[i]) { +// +// leaf_pred[*jit] = children_left[i]; +// +// } else { +// +// leaf_pred[*jit] = children_left[i]+1; +// +// } +// +// } +// +// // if(verbose > 0){ +// // +// // uvec in_left = find(leaf_pred == children_left(i)); +// // uvec in_right = find(leaf_pred == children_left(i)+1); +// // +// // Rcout << "N to node_" << children_left(i) << ": "; +// // Rcout << in_left.size() << "; "; +// // Rcout << "N to node_" << children_left(i)+1 << ": "; +// // Rcout << in_right.size() << std::endl; +// // +// // } +// +// } +// +// } +// +// } +// +// +// +// } +// +// // same as above but exported to R for testins +// // [[Rcpp::export]] +// arma::uvec ostree_pred_leaf_testthat(List& tree, +// NumericMatrix& x_pred_){ +// +// +// x_pred = mat(x_pred_.begin(), +// x_pred_.nrow(), +// x_pred_.ncol(), +// false); +// +// leaf_pred.set_size(x_pred.n_rows); +// +// ostree = tree; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// +// return(leaf_pred); +// +// } +// +// // Fit an oblique survival tree +// // +// // @description used in orsf_fit, which has parameters defined below. +// // +// // @param f_beta the function used to find linear combinations of predictors +// // +// // @return a fitted oblique survival tree +// // +// List ostree_fit(Function f_beta){ +// +// betas.fill(0); +// // x_mean.fill(0); +// col_indices.fill(0); +// cutpoints.fill(0); +// children_left.fill(0); +// node_assignments.fill(0); +// leaf_nodes.fill(0); +// +// node_assignments.zeros(x_inbag.n_rows); +// nodes_to_grow.zeros(1); +// nodes_max_true = 0; +// leaf_node_counter = 0; +// leaf_node_index_counter = 0; +// +// // ---------------------- +// // ---- main do loop ---- +// // ---------------------- +// +// do { +// +// nodes_to_grow_next.set_size(0); +// +// // if(verbose > 0){ +// // +// // Rcout << "----------- nodes to grow -----------" << std::endl; +// // Rcout << "nodes: "<< nodes_to_grow.t() << std::endl; +// // Rcout << "-------------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // +// // } +// +// for(node = nodes_to_grow.begin(); node != nodes_to_grow.end(); ++node){ +// +// if(nodes_to_grow[0] == 0){ +// +// // when growing the first node, there is no need to find +// // which rows are in the node. +// rows_node = linspace(0, +// x_inbag.n_rows-1, +// x_inbag.n_rows); +// +// } else { +// +// // identify which rows are in the current node. +// rows_node = find(node_assignments == *node); +// +// } +// +// y_node = y_inbag.rows(rows_node); +// w_node = w_inbag(rows_node); +// +// // if(verbose > 0){ +// // +// // n_risk = sum(w_node); +// // n_events = sum(y_node.col(1) % w_node); +// // Rcout << "-------- Growing node " << *node << " --------" << std::endl; +// // Rcout << "No. of observations in node: " << n_risk << std::endl; +// // Rcout << "No. of events in node: " << n_events << std::endl; +// // Rcout << "No. of rows in node: " << w_node.size() << std::endl; +// // Rcout << "--------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // +// // } +// +// // initialize an impossible cut-point value +// // if cutpoint is still infinite later, node should not be split +// cutpoint = R_PosInf; +// +// // ------------------------------------------------------------------ +// // ---- sample a random subset of columns with non-zero variance ---- +// // ------------------------------------------------------------------ +// +// mtry_int = mtry; +// cols_to_sample_01.fill(0); +// +// // constant columns are constant in the rows where events occurred +// +// for(j = 0; j < cols_to_sample_01.size(); j++){ +// +// temp1 = R_PosInf; +// +// for(iit = rows_node.begin()+1; iit != rows_node.end(); ++iit){ +// +// if(y_inbag.at(*iit, 1) == 1){ +// +// if (temp1 < R_PosInf){ +// +// if(x_inbag.at(*iit, j) != temp1){ +// +// cols_to_sample_01[j] = 1; +// break; +// +// } +// +// } else { +// +// temp1 = x_inbag.at(*iit, j); +// +// } +// +// } +// +// } +// +// } +// +// n_cols_to_sample = sum(cols_to_sample_01); +// +// if(n_cols_to_sample >= 1){ +// +// n_events_total = sum(y_node.col(1) % w_node); +// +// if(n_cols_to_sample < mtry){ +// +// mtry_int = n_cols_to_sample; +// +// // if(verbose > 0){ +// // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; +// // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; +// // Rcout << std::endl; +// // Rcout << "-------------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// if (type_beta == 'C'){ +// +// // make sure there are at least 3 event per predictor variable. +// // (if using CPH) +// while(n_events_total / mtry_int < 3 && mtry_int > 1){ +// --mtry_int; +// } +// +// } +// +// +// n_cols_to_sample = mtry_int; +// +// // if(verbose > 0){ +// // Rcout << "n_events: " << n_events_total << std::endl; +// // Rcout << "mtry: " << mtry_int << std::endl; +// // Rcout << "n_events per column: " << n_events_total/mtry_int << std::endl; +// // } +// +// if(mtry_int >= 1){ +// +// cols_to_sample = find(cols_to_sample_01); +// +// // re-try hinge point +// n_retry = 0; +// cutpoint = R_PosInf; +// +// while(n_retry <= max_retry){ +// +// // if(n_retry > 0) Rcout << "trying again!" << std::endl; +// +// cols_node = Rcpp::RcppArmadillo::sample(cols_to_sample, +// mtry_int, +// false); +// +// x_node = x_inbag(rows_node, cols_node); +// +// // here is where n_vars gets updated to match the current node +// // originally it matched the number of variables in the input x. +// +// n_vars = x_node.n_cols; +// +// if(cph_do_scale){ +// x_node_scale(); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node scaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// switch(type_beta) { +// +// case 'C' : +// +// beta_fit = newtraph_cph(); +// +// if(cph_do_scale){ +// for(i = 0; i < x_transforms.n_rows; i++){ +// x_node.col(i) /= x_transforms(i,1); +// x_node.col(i) += x_transforms(i,0); +// } +// +// } +// +// break; +// +// case 'N' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww, +// net_alpha, +// net_df_target); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// case 'U' : +// +// xx = wrap(x_node); +// yy = wrap(y_node); +// ww = wrap(w_node); +// colnames(yy) = yy_names; +// +// beta_placeholder = f_beta(xx, yy, ww); +// +// beta_fit = mat(beta_placeholder.begin(), +// beta_placeholder.nrow(), +// beta_placeholder.ncol(), +// false); +// +// break; +// +// } +// +// +// if(any(beta_fit)){ +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1 = min(uvec {x_node.n_rows, 5}); +// // Rcout << "x node unscaled: " << std::endl; +// // Rcout << x_node.submat(0, 0, temp_uword_1-1, x_node.n_cols-1); +// // Rcout << std::endl; +// // +// // } +// +// XB = x_node * beta_fit; +// cutpoint = lrt_multi(); +// +// } +// +// if(!std::isinf(cutpoint)) break; +// n_retry++; +// +// } +// +// } +// +// } +// +// if(!std::isinf(cutpoint)){ +// +// // make new nodes if a valid cutpoint was found +// nn_left = nodes_max_true + 1; +// nodes_max_true = nodes_max_true + 2; +// +// +// // if(verbose > 0){ +// // +// // Rcout << "-------- New nodes created --------" << std::endl; +// // Rcout << "Left node: " << nn_left << std::endl; +// // Rcout << "Right node: " << nodes_max_true << std::endl; +// // Rcout << "-----------------------------------" << std::endl << +// // std::endl << std::endl; +// // +// // } +// +// n_events_left = n_events_total - n_events_right; +// +// // if(verbose > 0){ +// // Rcout << "n_events_left: " << n_events_left << std::endl; +// // Rcout << "n_risk_left: " << n_risk_left << std::endl; +// // Rcout << "n_events_right: " << n_events_right << std::endl; +// // Rcout << "n_risk_right: " << n_risk_right << std::endl; +// // } +// +// i=0; +// +// for(iit = rows_node.begin(); iit != rows_node.end(); ++iit, ++i){ +// +// node_assignments[*iit] = nn_left + group[i]; +// +// } +// +// if(n_events_left >= 2*leaf_min_events && +// n_risk_left >= 2*leaf_min_obs && +// n_events_left >= split_min_events && +// n_risk_left >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nn_left}); +// +// } else { +// +// rows_leaf = find(group==0); +// leaf_indices(leaf_node_index_counter, 0) = nn_left; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nn_left << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(n_events_right >= 2*leaf_min_events && +// n_risk_right >= 2*leaf_min_obs && +// n_events_right >= split_min_events && +// n_risk_right >= split_min_obs){ +// +// nodes_to_grow_next = join_cols(nodes_to_grow_next, +// uvec{nodes_max_true}); +// +// } else { +// +// rows_leaf = find(group==1); +// leaf_indices(leaf_node_index_counter, 0) = nodes_max_true; +// leaf_kaplan(y_node.rows(rows_leaf), w_node(rows_leaf)); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << nodes_max_true << std::endl; +// // Rcout << "n_obs: " << sum(w_node(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "n_events: "; +// // vec_temp = y_node.col(1); +// // Rcout << sum(w_node(rows_leaf) % vec_temp(rows_leaf)); +// // Rcout << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// } +// +// if(nodes_max_true >= betas.n_cols) ostree_size_buffer(); +// +// for(i = 0; i < n_cols_to_sample; i++){ +// betas.at(i, *node) = beta_fit[i]; +// // x_mean.at(i, *node) = x_transforms(i, 0); +// col_indices.at(i, *node) = cols_node[i]; +// } +// +// children_left[*node] = nn_left; +// cutpoints[*node] = cutpoint; +// +// } else { +// +// // make a leaf node if a valid cutpoint could not be found +// leaf_indices(leaf_node_index_counter, 0) = *node; +// leaf_kaplan(y_node, w_node); +// +// // if(verbose > 0){ +// // Rcout << "-------- creating a new leaf --------" << std::endl; +// // Rcout << "name: node_" << *node << std::endl; +// // Rcout << "n_obs: " << sum(w_node) << std::endl; +// // Rcout << "n_events: " << sum(w_node % y_node.col(1)); +// // Rcout << std::endl; +// // Rcout << "Couldn't find a cutpoint??" << std::endl; +// // Rcout << "------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// } +// +// } +// +// nodes_to_grow = nodes_to_grow_next; +// +// } while (nodes_to_grow.size() > 0); +// +// return( +// List::create( +// +// _["leaf_nodes"] = leaf_nodes.rows(span(0, leaf_node_counter-1)), +// +// _["leaf_node_index"] = conv_to::from( +// leaf_indices.rows(span(0, leaf_node_index_counter-1)) +// ), +// +// _["betas"] = betas.cols(span(0, nodes_max_true)), +// +// // _["x_mean"] = x_mean.cols(span(0, nodes_max_true)), +// +// _["col_indices"] = conv_to::from( +// col_indices.cols(span(0, nodes_max_true)) +// ), +// +// _["cut_points"] = cutpoints(span(0, nodes_max_true)), +// +// _["children_left"] = conv_to::from( +// children_left(span(0, nodes_max_true)) +// ), +// +// _["rows_oobag"] = conv_to::from(rows_oobag) +// +// ) +// ); +// +// +// } +// +// // ---------------------------------------------------------------------------- +// // ---------------------------- orsf functions -------------------------------- +// // ---------------------------------------------------------------------------- +// +// // fit an oblique random survival forest. +// // +// // @param x matrix of predictors +// // @param y matrix of outcomes +// // @param weights vector of weights +// // @param n_tree number of trees to fit +// // @param n_split_ number of splits to try with lrt +// // @param mtry_ number of predictors to try +// // @param leaf_min_events_ min number of events in a leaf +// // @param leaf_min_obs_ min number of observations in a leaf +// // @param split_min_events_ min number of events to split a node +// // @param split_min_obs_ min number of observations to split a node +// // @param split_min_stat_ min lrt to split a node +// // @param cph_method_ method for ties +// // @param cph_eps_ criteria for convergence of newton raphson algorithm +// // @param cph_iter_max_ max number of newton raphson iterations +// // @param cph_do_scale_ to scale or not to scale +// // @param net_alpha_ alpha parameter for glmnet +// // @param net_df_target_ degrees of freedom for glmnet +// // @param oobag_pred_ whether to predict out-of-bag preds or not +// // @param oobag_pred_type_ what type of out-of-bag preds to compute +// // @param oobag_pred_horizon_ out-of-bag prediction horizon +// // @param oobag_eval_every_ trees between each evaluation of oob error +// // @param oobag_importance_ to compute importance or not +// // @param oobag_importance_type_ type of importance to compute +// // @param tree_seeds vector of seeds to set before each tree is fit +// // @param max_retry_ max number of retries for linear combinations +// // @param f_beta function to find linear combinations of predictors +// // @param type_beta_ what type of linear combination to find +// // @param f_oobag_eval function to evaluate out-of-bag error +// // @param type_oobag_eval_ whether to use default or custom out-of-bag error +// // +// // @return an orsf_fit object sent back to R +// +// // [[Rcpp::export]] +// List orsf_fit(NumericMatrix& x, +// NumericMatrix& y, +// NumericVector& weights, +// const int& n_tree, +// const int& n_split_, +// const int& mtry_, +// const double& leaf_min_events_, +// const double& leaf_min_obs_, +// const double& split_min_events_, +// const double& split_min_obs_, +// const double& split_min_stat_, +// const int& cph_method_, +// const double& cph_eps_, +// const int& cph_iter_max_, +// const bool& cph_do_scale_, +// const double& net_alpha_, +// const int& net_df_target_, +// const bool& oobag_pred_, +// const char& oobag_pred_type_, +// const double& oobag_pred_horizon_, +// const int& oobag_eval_every_, +// const bool& oobag_importance_, +// const char& oobag_importance_type_, +// IntegerVector& tree_seeds, +// const int& max_retry_, +// Function f_beta, +// const char& type_beta_, +// Function f_oobag_eval, +// const char& type_oobag_eval_, +// const bool verbose_progress){ +// +// +// // convert inputs into arma objects +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// w_user = vec(weights.begin(), weights.length(), false); +// +// // these change later in ostree_fit() +// n_rows = x_input.n_rows; +// n_vars = x_input.n_cols; +// +// // initialize the variable importance (vi) vectors +// vi_pval_numer.zeros(n_vars); +// vi_pval_denom.zeros(n_vars); +// +// // if(verbose > 0){ +// // Rcout << "------------ dimensions ------------" << std::endl; +// // Rcout << "N obs total: " << n_rows << std::endl; +// // Rcout << "N columns total: " << n_vars << std::endl; +// // Rcout << "------------------------------------"; +// // Rcout << std::endl << std::endl << std::endl; +// // } +// +// n_split = n_split_; +// mtry = mtry_; +// leaf_min_events = leaf_min_events_; +// leaf_min_obs = leaf_min_obs_; +// split_min_events = split_min_events_; +// split_min_obs = split_min_obs_; +// split_min_stat = split_min_stat_; +// cph_method = cph_method_; +// cph_eps = cph_eps_; +// cph_iter_max = cph_iter_max_; +// cph_do_scale = cph_do_scale_; +// net_alpha = net_alpha_; +// net_df_target = net_df_target_; +// oobag_pred = oobag_pred_; +// oobag_pred_type = oobag_pred_type_; +// oobag_eval_every = oobag_eval_every_; +// oobag_eval_counter = 0; +// oobag_importance = oobag_importance_; +// oobag_importance_type = oobag_importance_type_; +// use_tree_seed = tree_seeds.length() > 0; +// max_retry = max_retry_; +// type_beta = type_beta_; +// type_oobag_eval = type_oobag_eval_; +// temp1 = 1.0 / n_rows; +// +// if(cph_iter_max > 1) cph_do_scale = true; +// +// if((type_beta == 'N') || (type_beta == 'U')) cph_do_scale = false; +// +// if(cph_iter_max == 1) cph_do_scale = false; +// +// +// if(oobag_pred){ +// +// time_pred = oobag_pred_horizon_; +// +// if(time_pred == 0) time_pred = median(y_input.col(0)); +// +// eval_oobag.set_size(std::floor(n_tree / oobag_eval_every)); +// +// } else { +// +// eval_oobag.set_size(0); +// +// } +// +// // if(verbose > 0){ +// // Rcout << "------------ input variables ------------" << std::endl; +// // Rcout << "n_split: " << n_split << std::endl; +// // Rcout << "mtry: " << mtry << std::endl; +// // Rcout << "leaf_min_events: " << leaf_min_events << std::endl; +// // Rcout << "leaf_min_obs: " << leaf_min_obs << std::endl; +// // Rcout << "cph_method: " << cph_method << std::endl; +// // Rcout << "cph_eps: " << cph_eps << std::endl; +// // Rcout << "cph_iter_max: " << cph_iter_max << std::endl; +// // Rcout << "-----------------------------------------" << std::endl; +// // Rcout << std::endl << std::endl; +// // } +// +// // ---------------------------------------------------- +// // ---- sample weights to mimic a bootstrap sample ---- +// // ---------------------------------------------------- +// +// // s is the number of times you might get selected into +// // a bootstrap sample. Realistically this won't be >10, +// // but it could technically be as big as n_row. +// IntegerVector s = seq(0, 10); +// +// // compute probability of being selected into the bootstrap +// // 0 times, 1, times, ..., 9 times, or 10 times. +// NumericVector probs = dbinom(s, n_rows, temp1, false); +// +// // --------------------------------------------- +// // ---- preallocate memory for tree outputs ---- +// // --------------------------------------------- +// +// cols_to_sample_01.zeros(n_vars); +// leaf_nodes.zeros(n_rows, 3); +// +// if(oobag_pred){ +// +// surv_pvec.zeros(n_rows); +// denom_pred.zeros(n_rows); +// +// } else { +// +// surv_pvec.set_size(0); +// denom_pred.set_size(0); +// +// } +// +// // guessing the number of nodes needed to grow a tree +// nodes_max_guess = std::ceil(0.5 * n_rows / leaf_min_events); +// +// betas.zeros(mtry, nodes_max_guess); +// // x_mean.zeros(mtry, nodes_max_guess); +// col_indices.zeros(mtry, nodes_max_guess); +// cutpoints.zeros(nodes_max_guess); +// children_left.zeros(nodes_max_guess); +// leaf_indices.zeros(nodes_max_guess, 3); +// +// // some great variable names here +// List forest(n_tree); +// +// for(tree = 0; tree < n_tree; ){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// // -------------------------------------------- +// // ---- initialize parameters to grow tree ---- +// // -------------------------------------------- +// +// // rows_inbag = find(w_inbag != 0); +// +// if(use_tree_seed) set_seed_r(tree_seeds[tree]); +// +// w_input = as(sample(s, n_rows, true, probs)); +// +// // if the user gives a weight vector, then each bootstrap weight +// // should be multiplied by the corresponding user weight. +// if(w_user.size() > 0) w_input = w_input % w_user; +// +// rows_oobag = find(w_input == 0); +// rows_inbag = regspace(0, n_rows-1); +// rows_inbag = std_setdiff(rows_inbag, rows_oobag); +// w_inbag = w_input(rows_inbag); +// +// // if(verbose > 0){ +// // +// // Rcout << "------------ boot weights ------------" << std::endl; +// // Rcout << "pr(inbag): " << 1-pow(1-temp1,n_rows) << std::endl; +// // Rcout << "total: " << sum(w_inbag) << std::endl; +// // Rcout << "N > 0: " << rows_inbag.size() << std::endl; +// // Rcout << "--------------------------------------" << +// // std::endl << std::endl << std::endl; +// // +// // } +// +// x_inbag = x_input.rows(rows_inbag); +// y_inbag = y_input.rows(rows_inbag); +// +// if(oobag_pred){ +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(rows_oobag.size()); +// } +// +// // if(verbose > 0){ +// // +// // uword temp_uword_1, temp_uword_2; +// // +// // if(x_inbag.n_rows < 5) +// // temp_uword_1 = x_inbag.n_rows-1; +// // else +// // temp_uword_1 = 5; +// // +// // if(x_inbag.n_cols < 5) +// // temp_uword_2 = x_inbag.n_cols-1; +// // else +// // temp_uword_2 = 4; +// // +// // Rcout << "x inbag: " << std::endl << +// // x_inbag.submat(0, 0, +// // temp_uword_1, +// // temp_uword_2) << std::endl; +// // +// // } +// +// if(verbose_progress){ +// Rcout << "\r growing tree no. " << tree << " of " << n_tree; +// } +// +// +// forest[tree] = ostree_fit(f_beta); +// +// // add 1 to tree here instead of end of loop +// // (more convenient to compute tree % oobag_eval_every) +// tree++; +// +// +// if(oobag_pred){ +// +// denom_pred(rows_oobag) += 1; +// ostree_pred_leaf(); +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(tree % oobag_eval_every == 0){ +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// eval_oobag[oobag_eval_counter] = oobag_c_harrell(oobag_pred_type); +// oobag_eval_counter++; +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// eval_oobag[oobag_eval_counter] = as( +// f_oobag_eval(y, ww) +// ); +// +// oobag_eval_counter++; +// +// break; +// +// } +// +// +// } +// +// } +// +// } +// +// if(verbose_progress){ +// Rcout << std::endl; +// } +// +// vec vimp(x_input.n_cols); +// +// // ANOVA importance +// if(oobag_importance_type == 'A') vimp = vi_pval_numer / vi_pval_denom; +// +// // if we are computing variable importance, surv_pvec is about +// // to get modified, and we don't want to return the modified +// // version of surv_pvec. +// // So make a deep copy if oobag_importance is true. +// // Make a shallow copy if oobag_importance is false +// surv_pvec_output = vec(surv_pvec.begin(), +// surv_pvec.size(), +// oobag_importance); +// +// if(oobag_importance && n_tree > 0){ +// +// uvec betas_to_flip; +// // vec betas_temp; +// oobag_eval_counter--; +// +// for(uword variable = 0; variable < x_input.n_cols; ++variable){ +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < n_tree; ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// if(oobag_importance_type == 'P'){ +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// } +// +// ostree_mem_xfer(); +// +// +// if(oobag_importance_type == 'N'){ +// betas_to_flip = find(col_indices == variable); +// //betas_temp = betas.elem( betas_to_flip ); +// betas.elem( betas_to_flip ) *= (-1); +// //betas.elem( betas_to_flip ) *= 0; +// } +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// if(oobag_importance_type == 'N'){ +// betas.elem( betas_to_flip ) *= (-1); +// // betas.elem( betas_to_flip ) = betas_temp; +// } +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = eval_oobag[oobag_eval_counter] - +// oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = +// eval_oobag[oobag_eval_counter] - as(f_oobag_eval(y, ww)); +// +// +// break; +// +// } +// +// } +// +// } +// +// if(oobag_pred_type == 'R') surv_pvec_output = 1 - surv_pvec_output; +// +// return( +// List::create( +// _["forest"] = forest, +// _["pred_oobag"] = surv_pvec_output, +// _["pred_horizon"] = time_pred, +// _["eval_oobag"] = List::create(_["stat_values"] = eval_oobag, +// _["stat_type"] = type_oobag_eval), +// _["importance"] = vimp +// ) +// ); +// +// +// } +// +// // @description compute negation importance +// // +// // @param x matrix of predictors +// // @param y outcome matrix +// // @param forest forest object from an orsf_fit +// // @param last_eval_stat the last estimate of out-of-bag error +// // @param time_pred_ the prediction horizon +// // @param f_oobag_eval function used to evaluate out-of-bag error +// // @param pred_type_ the type of prediction to compute +// // @param type_oobag_eval_ custom or default out-of-bag predictions +// // +// // @return a vector of importance values +// // +// // [[Rcpp::export]] +// arma::vec orsf_oob_negate_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uvec betas_to_flip; +// // vec betas_temp; +// uword variable; +// +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// ostree_mem_xfer(); +// +// betas_to_flip = find(col_indices == variable); +// +// // betas_temp = betas.elem( betas_to_flip ); +// // betas.elem( betas_to_flip ) *= 0; +// +// betas.elem( betas_to_flip ) *= (-1); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// betas.elem( betas_to_flip ) *= (-1); +// // betas.elem( betas_to_flip ) = betas_temp; +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // same as above but computes permutation importance instead of negation +// // [[Rcpp::export]] +// arma::vec orsf_oob_permute_vi(NumericMatrix& x, +// NumericMatrix& y, +// List& forest, +// const double& last_eval_stat, +// const double& time_pred_, +// Function f_oobag_eval, +// const char& pred_type_, +// const char& type_oobag_eval_){ +// +// x_input = mat(x.begin(), x.nrow(), x.ncol(), false); +// y_input = mat(y.begin(), y.nrow(), y.ncol(), false); +// +// time_pred = time_pred_; +// type_oobag_eval = type_oobag_eval_; +// oobag_pred_type = pred_type_; +// +// vec vimp(x_input.n_cols); +// +// uword variable; +// +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(variable = 0; variable < x_input.n_cols; ++variable){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// surv_pvec.fill(0); +// denom_pred.fill(0); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// +// x_pred.col(variable) = shuffle(x_pred.col(variable)); +// +// ostree_mem_xfer(); +// +// denom_pred(rows_oobag) += 1; +// +// leaf_pred.set_size(rows_oobag.size()); +// +// ostree_pred_leaf(); +// +// oobag_pred_surv_uni(oobag_pred_type); +// +// // x_variable = x_variable_original; +// // x_input.col(variable) = x_variable; +// +// } +// +// switch(type_oobag_eval) { +// +// // H stands for Harrell's C-statistic +// case 'H' : +// +// vimp(variable) = last_eval_stat - oobag_c_harrell(oobag_pred_type); +// +// break; +// +// // U stands for a user-supplied function +// case 'U' : +// +// ww = wrap(surv_pvec); +// +// vimp(variable) = last_eval_stat - as(f_oobag_eval(y, ww)); +// +// break; +// +// } +// +// } +// +// return(vimp); +// +// } +// +// // predictions from an oblique random survival forest +// // +// // @description makes predictions based on a single horizon +// // +// // @param forest forest object from orsf_fit object +// // @param x_new matrix of predictors +// // @param time_dbl prediction horizon +// // @param pred_type type of prediction to compute +// // +// // [[Rcpp::export]] +// arma::mat orsf_pred_uni(List& forest, +// NumericMatrix& x_new, +// double time_dbl, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// time_pred = time_dbl; +// +// // memory for outputs +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.zeros(x_pred.n_rows); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pvec); +// } else { +// return(surv_pvec); +// } +// +// } +// +// // same as above but makes predictions for multiple horizons +// // [[Rcpp::export]] +// arma::mat orsf_pred_multi(List& forest, +// NumericMatrix& x_new, +// NumericVector& time_vec, +// char pred_type){ +// +// x_pred = mat(x_new.begin(), x_new.nrow(), x_new.ncol(), false); +// times_pred = vec(time_vec.begin(), time_vec.length(), false); +// +// // memory for outputs +// // initial values don't matter for leaf_pred, +// // but do matter for surv_pmat +// leaf_pred.set_size(x_pred.n_rows); +// surv_pmat.zeros(x_pred.n_rows, times_pred.size()); +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_multi(pred_type); +// } +// +// surv_pmat /= tree; +// +// if(pred_type == 'R'){ +// return(1 - surv_pmat); +// } else { +// return(surv_pmat); +// } +// +// } +// +// // partial dependence for new data +// // +// // @description calls predict on the data with a predictor fixed +// // and then summarizes the predictions. +// // +// // @param forest a forest object from an orsf_fit object +// // @param x_new_ matrix of predictors +// // @param x_cols_ columns of variables of interest +// // @param x_vals_ values to set these columsn to +// // @param probs_ for quantiles +// // @param time_dbl prediction horizon +// // @param pred_type prediction type +// // +// // @return matrix with partial dependence +// // [[Rcpp::export]] +// arma::mat pd_new_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// +// // same as above but for out-of-bag data +// // [[Rcpp::export]] +// arma::mat pd_oob_smry(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_quantiles(probs.size(), x_vals.n_rows); +// mat output_means(1, x_vals.n_rows); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_means.col(pd_i) = mean(surv_pvec); +// output_quantiles.col(pd_i) = quantile(surv_pvec, probs); +// +// +// } +// +// +// return(join_vert(output_means, output_quantiles)); +// +// } +// +// // same as above but doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_new_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// x_pred = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// vec probs = vec(probs_.begin(), probs_.length(), false); +// +// mat output_ice(x_vals.n_rows * x_pred.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_pred.n_rows - 1); +// +// leaf_pred.set_size(x_pred.n_rows); +// surv_pvec.set_size(x_pred.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// j = 0; +// +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_pred.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// ostree = forest[tree]; +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// new_pred_surv_uni(pred_type); +// } +// +// surv_pvec /= tree; +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_pred.n_rows; +// +// +// } +// +// return(output_ice); +// +// } +// +// // same as above but out-of-bag and doesn't summarize the predictions +// // [[Rcpp::export]] +// arma::mat pd_oob_ice(List& forest, +// NumericMatrix& x_new_, +// IntegerVector& x_cols_, +// NumericMatrix& x_vals_, +// NumericVector& probs_, +// const double time_dbl, +// char pred_type){ +// +// +// uword pd_i; +// +// time_pred = time_dbl; +// +// mat x_vals = mat(x_vals_.begin(), x_vals_.nrow(), x_vals_.ncol(), false); +// +// uvec x_cols = conv_to::from( +// ivec(x_cols_.begin(), x_cols_.length(), false) +// ); +// +// x_input = mat(x_new_.begin(), x_new_.nrow(), x_new_.ncol(), false); +// +// mat output_ice(x_vals.n_rows * x_input.n_rows, 2); +// vec output_ids = output_ice.unsafe_col(0); +// vec output_pds = output_ice.unsafe_col(1); +// +// uvec pd_rows = regspace(0, 1, x_input.n_rows - 1); +// +// denom_pred.set_size(x_input.n_rows); +// surv_pvec.set_size(x_input.n_rows); +// +// for(pd_i = 0; pd_i < x_vals.n_rows; pd_i++){ +// +// // Abort the routine if user has pressed Ctrl + C or Escape in R. +// Rcpp::checkUserInterrupt(); +// +// j = 0; +// denom_pred.fill(0); +// surv_pvec.fill(0); +// +// for(jit = x_cols.begin(); jit < x_cols.end(); ++jit, ++j){ +// +// x_input.col(*jit).fill(x_vals(pd_i, j)); +// +// } +// +// for(tree = 0; tree < forest.length(); ++tree){ +// +// ostree = forest[tree]; +// +// IntegerMatrix rows_oobag_ = ostree["rows_oobag"]; +// +// rows_oobag = conv_to::from( +// ivec(rows_oobag_.begin(), +// rows_oobag_.length(), +// false) +// ); +// +// x_pred = x_input.rows(rows_oobag); +// leaf_pred.set_size(x_pred.n_rows); +// denom_pred(rows_oobag) += 1; +// +// ostree_mem_xfer(); +// ostree_pred_leaf(); +// oobag_pred_surv_uni(pred_type); +// +// +// } +// +// if(pred_type == 'R'){ surv_pvec = 1 - surv_pvec; } +// +// output_ids(pd_rows).fill(pd_i+1); +// output_pds(pd_rows) = surv_pvec; +// pd_rows += x_input.n_rows; +// +// +// } +// +// return(output_ice); +// +// } diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f384c2ef..9ff8fbef 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -21,25 +21,13 @@ #include #include - // [[Rcpp::depends(RcppArmadillo)]] + +// [[Rcpp::depends(RcppArmadillo)]] using namespace Rcpp; using namespace arma; using namespace aorsf; - - // @description sample weights to mimic a bootstrap sample - // arma::vec bootstrap_sample_testthat(arma::mat& x, - // arma::mat& y, - // arma::vec& w) { - // - // Data data = Data(x, y, w); - // Data* data_ptr = &data; - // return bootstrap_sample(data_ptr); - // - // } - - // [[Rcpp::export]] List coxph_fit_exported(arma::mat& x_node, arma::mat& y_node, @@ -66,6 +54,22 @@ } + // [[Rcpp::export]] + double compute_cstat_exported_vec( + arma::mat& y, + arma::vec& w, + arma::vec& p, + bool pred_is_risklike + ){ return compute_cstat(y, w, p, pred_is_risklike); } + + // [[Rcpp::export]] + double compute_cstat_exported_uvec( + arma::mat& y, + arma::vec& w, + arma::uvec& g, + bool pred_is_risklike + ){ return compute_cstat(y, w, g, pred_is_risklike); } + // [[Rcpp::export]] List node_find_cps_exported(arma::mat& y_node, arma::vec& w_node, @@ -179,8 +183,17 @@ PredType pred_type = (PredType) pred_type_R; // R functions cannot be called from multiple threads - if(lincomb_type == R_FUNCTION){ n_thread = 1; } - if(oobag_eval_every < n_tree){ n_thread = 1; } + if(lincomb_type == LC_R_FUNCTION || lincomb_type == LC_GLMNET){ + n_thread = 1; + } + + // usually need to set n_thread to 1 if oobag pred is monitored + if(oobag_eval_every < n_tree){ + // specifically if this isn't true we need to go single thread + if(n_tree/oobag_eval_every != n_thread){ + n_thread = 1; + } + } if(tree_type == TREE_SURVIVAL){ @@ -258,7 +271,23 @@ forest->grow(); // compute out-of-bag predictions if needed - if(oobag){ result.push_back(forest->predict(oobag), "pred_oobag"); } + if(oobag){ + + mat pred_oobag = forest->predict(oobag); + + result.push_back(pred_oobag, "pred_oobag"); + + if(oobag_eval_every == n_tree){ + forest->compute_prediction_accuracy(y, w, 0, pred_oobag); + } + + List eval_oobag_out = List::create( + _["stat_values"] = forest->get_oobag_eval(), + _["stat_type"] = 1 + ); + + result.push_back(eval_oobag_out, "eval_oobag"); + } forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); @@ -274,12 +303,24 @@ forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); result.push_back(forest->get_unique_event_times(), "unique_event_times"); + result.push_back(pred_horizon, "pred_horizon"); } result.push_back(forest_out, "forest"); - result.push_back(forest->get_vi_numer(), "vi_numer"); - result.push_back(forest->get_vi_denom(), "vi_denom"); + vec vi_output; + + if(vi_type != VI_NONE){ + + if(vi_type == VI_ANOVA){ + vi_output = forest->get_vi_numer() / forest->get_vi_denom(); + } else { + vi_output = forest->get_vi_numer() / n_tree; + } + + } + + result.push_back(vi_output, "importance"); } diff --git a/src/utility.cpp b/src/utility.cpp index e096a417..dff45ce2 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -160,5 +160,122 @@ return result; } + double compute_cstat(arma::mat& y, + arma::vec& w, + arma::vec& p, + bool pred_is_risklike){ + + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + + uvec events = find(y_status == 1); + + // protection from case where there are no comparables. + double total=0, concordant=0; + + for (uvec::iterator event = events.begin(); event < events.end(); ++event) { + + for(uword i = *event; i < y.n_rows; ++i){ + + if (y_time[i] > y_time[*event]) { // ties not counted + + total += w[i]; + + if (p[i] < p[*event]){ + + concordant += w[i]; + + } else if (p[i] == p[*event]){ + + concordant += (w[i] / 2); + + } + + } + + } + + } + + // it's possible there won't be any valid comparisons, so: + if(total == 0) return(0.5); + + // code above assumes higher predictions mean more risk, + if(pred_is_risklike) return(concordant / total); + // if that isn't true (e.g., a survival prediction): + return(1 - (concordant / total)); + + } + + + double compute_cstat(arma::mat& y, + arma::vec& w, + arma::uvec& g, + bool pred_is_risklike){ + + // note: g must have only values of 0 and 1 to use this. + // note: this is a little different in its approach than + // the analogous function for vec g. The reason it + // is different is that I've benchmarked these across + // big and small data and this version works best for + // uvec g while the analogous approach works best for + // vec g. + + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + + double total=0, concordant=0; + + for (uword i = 0; i < y.n_rows; ++i) { + + if(y_status[i] == 1){ + + bool g_0 = g[i] == 0; + + for(uword j = i; j < y.n_rows; ++j){ + // ties not counted + if (y_time[j] > y_time[i]) { + + total += w[j]; + + // time_i < time_j, and person i had an event, + // => if risk_i > risk_j we are concordant. + // if risk_i is 0, risk_j cannot be less than risk_i + // => best case scenario is a tie, i.e., g[j] == 0 + // => if g[j] is 0, we want to add 1/2 to concordant + // => if g[j] is 1, we want to do nothing + // => subtract 1 from g, multiply by -1, divide by 2 + if(g_0){ + + if(g[j] == 0) concordant += (w[j]/2); + + } else if (g[j] == 1){ + + // if risk_i is 1 and risk_j is 1, a tie + concordant += (w[j]/2); + + } else { + + // if risk_i is 1 and risk_j is 0, concordance + concordant += (w[j]); + + } + + } + + } + + } + + } + + // it's possible there won't be any valid comparisons, so: + if(total == 0) return(0.5); + // code above assumes higher predictions mean more risk, + if(pred_is_risklike) return(concordant / total); + // if that isn't true (e.g., a survival prediction): + return(1 - (concordant / total)); + + } } diff --git a/src/utility.h b/src/utility.h index 7b6647f6..ac06f0a8 100644 --- a/src/utility.h +++ b/src/utility.h @@ -62,6 +62,16 @@ aorsf may be modified and distributed under the terms of the MIT license. return (R_ToplevelExec(chkIntFn, NULL) == FALSE); } + double compute_cstat(arma::mat& y, + arma::vec& w, + arma::vec& p, + bool pred_is_risklike); + + double compute_cstat(arma::mat& y, + arma::vec& w, + arma::uvec& g, + bool pred_is_risklike); + } diff --git a/tests/testthat/test-concordance.R b/tests/testthat/test-concordance.R new file mode 100644 index 00000000..4c84f728 --- /dev/null +++ b/tests/testthat/test-concordance.R @@ -0,0 +1,68 @@ + +test_that( + desc = 'C-statistic is close to survival::concordance', + code = { + + y_mat <- as.matrix(pbc_orsf[, c('time', 'status')]) + s_vec <- pbc_orsf$bili[sorted] + + sorted <- + collapse::radixorder(y_mat[, 'time'], # order this way for risk sets + -y_mat[, 'status']) # order this way for oob C-statistic. + + + y_mat <- y_mat[sorted, ] + s_vec <- s_vec[sorted] + + s_uvec <- as.integer(s_vec > 1) + + survival_vec <- survival::concordancefit( + y = survival::Surv(y_mat), + x = 1-s_vec + )$concordance + + survival_uvec <- survival::concordancefit( + y = survival::Surv(y_mat), + x = 1-s_uvec + )$concordance + + w <- rep(1, nrow(y_mat)) + + aorsf_vec <- compute_cstat_exported_vec( + y_mat, w, s_vec, pred_is_risklike = TRUE + ) + + aorsf_uvec <- compute_cstat_exported_uvec( + y_mat, w, s_uvec, pred_is_risklike = TRUE + ) + + # close enough to cstat from survival + expect_lt(abs(survival_vec - aorsf_vec), 0.01) + expect_lt(abs(survival_uvec - aorsf_uvec), 0.01) + + + + } +) + +# # aorsf about 2 times faster +# microbenchmark::microbenchmark( +# survival = survival::concordancefit( +# y = survival::Surv(y_mat), +# x = s_vec +# ), +# aorsf = compute_cstat_exported_vec( +# y_mat, w, s_vec, pred_is_risklike = FALSE +# ) +# ) +# +# # aorsf about 2 times faster +# microbenchmark::microbenchmark( +# survival = survival::concordancefit( +# y = survival::Surv(y_mat), +# x = s_uvec +# ), +# aorsf = compute_cstat_exported_uvec( +# y_mat, w, s_uvec, pred_is_risklike = FALSE +# ) +# ) diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 113c8533..390fffd5 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -307,51 +307,28 @@ test_that( miss_check_with_vi <- sapply(fit_with_vi, no_miss_list) for(i in seq_along(miss_check_no_vi)){ - if(!is_empty(miss_check_no_vi[[i]])) - expect_true(sum(miss_check_no_vi[[i]]) == 0) - } - - for(i in seq_along(miss_check_with_vi)){ - if(!is_empty(miss_check_with_vi[[i]])) - expect_true(sum(miss_check_with_vi[[i]]) == 0) - } - - - } -) - - - - + if(!is_empty(miss_check_no_vi[[i]])){ + if(is.matrix(miss_check_no_vi[[i]])){ + miss_check_no_vi[[i]] <- unlist(miss_check_no_vi[[i]]) + } + expect_true(sum(miss_check_no_vi[[i]]) == 0) -test_that( - desc = 'oobag error is reproducible from an orsf_fit object', - code = { - - y_mat <- as.matrix(fit_no_vi$data[, c('time', 'status')]) - s_vec <- fit_no_vi$pred_oobag - - tt <- survival::concordancefit( - y = survival::Surv(pbc_orsf$time, pbc_orsf$status), - x = fit_no_vi$pred_oobag - ) + } - denom <- sum(tt$count[c('concordant', - 'discordant', - 'tied.y')]) + } - target <- as.numeric(tt$concordance) + for(i in seq_along(miss_check_with_vi)){ + if(!is_empty(miss_check_with_vi[[i]])){ - bcj <- cstat_bcj(y_mat, s_vec) + if(is.matrix(miss_check_with_vi[[i]])){ + miss_check_with_vi[[i]] <- unlist(miss_check_with_vi[[i]]) + } + expect_true(sum(miss_check_with_vi[[i]]) == 0) - expect_equal( - bcj, - as.numeric(fit_no_vi$eval_oobag$stat_values) - ) + } + } - # cstat_bcj close enough to cstat from survival - expect_lt(abs(target - bcj), 0.001) } ) From 22e671a27c1d695e127326716cf478bc5333d0b3 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 19 Sep 2023 14:46:52 -0400 Subject: [PATCH 073/103] drop unused node split code --- scratch.R | 1 + src/NodeSplitStats.cpp | 751 ----------------------------------------- src/NodeSplitStats.h | 67 ---- src/Tree.cpp | 2 +- src/TreeSurvival.cpp | 2 +- src/orsf_oop.cpp | 61 ---- 6 files changed, 3 insertions(+), 881 deletions(-) delete mode 100644 src/NodeSplitStats.cpp delete mode 100644 src/NodeSplitStats.h diff --git a/scratch.R b/scratch.R index 7af8f5c7..7eb36621 100644 --- a/scratch.R +++ b/scratch.R @@ -6,6 +6,7 @@ sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_tree = 100, n_thread = 5, + # control = orsf_control_net(), oobag_pred_type = 'risk', split_rule = 'cstat', split_min_stat = .5) diff --git a/src/NodeSplitStats.cpp b/src/NodeSplitStats.cpp deleted file mode 100644 index bcfae616..00000000 --- a/src/NodeSplitStats.cpp +++ /dev/null @@ -1,751 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#include -#include "globals.h" -#include "NodeSplitStats.h" - - using namespace arma; - using namespace Rcpp; - - namespace aorsf { - - arma::uvec node_find_cps(arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - arma::uvec& XB_sorted, - double leaf_min_events, - double leaf_min_obs){ - - - vec y_status = y_node.unsafe_col(1); - - // placeholder with values indicating invalid cps - uvec output; - - uword i, j, k; - - uvec::iterator XB_iter, XB_iter_min, XB_iter_max; - - double n_events = 0, n_risk = 0; - - if(VERBOSITY > 0){ - Rcout << "----- finding a lower bound for cut-points -----" << std::endl; - } - - // stop at end-1 b/c we access XB_iter+1 in XB_sorted - for(XB_iter = XB_sorted.begin(); - XB_iter < XB_sorted.end()-1; - ++XB_iter){ - - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; - - - if(VERBOSITY > 1){ - Rcout << "current XB"<< XB(*XB_iter) << " ---- "; - Rcout << "next XB"<< XB(*(XB_iter+1)) << " ---- "; - Rcout << "N events" << n_events << " ---- "; - Rcout << "N risk" << n_risk << std::endl; - } - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - if(XB[*XB_iter] != XB[*(XB_iter+1)]){ - - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, left node: " << n_events << std::endl; - Rcout << " - n_risk, left node: " << n_risk << std::endl; - Rcout << std::endl; - } - - break; - - } - - } - - } - - XB_iter_min = XB_iter; - - if(XB_iter == XB_sorted.end()-1) { - - if(VERBOSITY > 1){ - Rcout << "Could not find a valid lower cut-point" << std::endl; - } - - return(output); - - } - - // j = number of steps we have taken forward in XB - j = XB_iter - XB_sorted.begin(); - - // reset before finding the upper limit - n_events=0, n_risk=0; - - // stop at beginning+1 b/c we access XB_iter-1 in XB_sorted - for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ - - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; - - if(VERBOSITY > 1){ - Rcout << XB(*XB_iter) << " ---- "; - Rcout << XB(*(XB_iter-1)) << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } - - if(XB(*XB_iter) != XB(*(XB_iter-1))){ - - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // XB_iter value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if XB_iter currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --XB_iter; - - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, right node: " << n_events << std::endl; - Rcout << " - n_risk, right node: " << n_risk << std::endl; - } - - break; - - } - - } - - } - - XB_iter_max = XB_iter; - - // k = n steps from beginning of sorted XB to current XB_iter - k = XB_iter - XB_sorted.begin(); - - if(VERBOSITY > 1){ - Rcout << "N steps from beginning to first cp: " << j << std::endl; - Rcout << "N steps from beginning to last cp: " << k << std::endl; - } - - if(j > k){ - - if(VERBOSITY > 1) { - Rcout << "Could not find valid cut-points" << std::endl; - } - - return(output); - - } - - // only one valid cutpoint - if(j == k){ - - uvec output = {j}; - return(output); - - } - - i = 0; - uvec output_middle(k-j); - - for(XB_iter = XB_iter_min+1; XB_iter < XB_iter_max; ++XB_iter){ - if(XB(*XB_iter) != XB(*(XB_iter+1))){ - output_middle[i] = XB_iter - XB_sorted.begin(); - i++; - } - } - - output_middle.resize(i); - - uvec output_left = {j}; - uvec output_right = {k}; - - output = join_vert(output_left, output_middle, output_right); - - return(output); - - - } - - void node_fill_group(arma::vec& group, - arma::uvec& XB_sorted, - arma::uword start, - arma::uword stop, - double value){ - - group.elem(XB_sorted.subvec(start, stop)).fill(value); - - } - - - // arma::uword node_adjust_mtry(){ - // - // } - - // - // n_cols_to_sample = sum(cols_to_sample_01); - // - // if(n_cols_to_sample > 1){ - // - // n_events_total = sum(y_node.col(1) % w_node); - // - // if(n_cols_to_sample < mtry){ - // - // mtry_int = n_cols_to_sample; - // - // // if(verbose > 0){ - // // Rcout << " ---- >=1 constant column in node rows ----" << std::endl; - // // Rcout << "mtry reduced to " << mtry_temp << " from " << mtry; - // // Rcout << std::endl; - // // Rcout << "-------------------------------------------" << std::endl; - // // Rcout << std::endl << std::endl; - // // } - // - // } - // - // if (type_beta == 'C'){ - // - // // make sure there are at least 3 event per predictor variable. - // // (if using CPH) - // while(n_events_total / mtry_int < 3 && mtry_int > 1){ - // --mtry_int; - // } - // - // } - // - // - // n_cols_to_sample = mtry_int; - - double node_compute_lrt(arma::mat& y_node, - arma::vec& w_node, - arma::vec& group){ - - double n_risk=0, g_risk=0, observed=0, expected=0, V=0; - double temp1, temp2, n_events; - - vec y_time = y_node.unsafe_col(0); - vec y_status = y_node.unsafe_col(1); - - bool break_loop = false; - - uword i = y_node.n_rows-1; - - if(VERBOSITY > 1){ - Rcout << "sum(group==1): " << sum(group) << "; "; - Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - Rcout << std::endl; - } - - // breaking condition of outer loop governed by inner loop - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - - return(pow(expected-observed, 2) / V); - - } - - List lrt_multi(mat& y_node, - mat& w_node, - vec& XB, - uword n_split, - double split_min_stat, - double leaf_min_events, - double leaf_min_obs){ - - // about this function - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - // this function returns a cutpoint obtaining a local maximum - // of the log-rank test (lrt) statistic. The default value (+Inf) - // is really for diagnostic purposes. Put another way, if the - // return value is +Inf (an impossible value for a cutpoint), - // that means that we didn't find any valid cut-points and - // the node cannot be grown with the current XB. - // - // if there is a valid cut-point, then the main side effect - // of this function is to modify the group vector, which - // will be used to assign observations to the two new nodes. - // - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - bool break_loop = false; - - vec - group(y_node.n_rows, fill::zeros), - cutpoints_found, - cutpoints_used(n_split), - lrt_statistics(n_split); - - double - stat_best = 0, // initialize at the lowest possible LRT stat value - n_events = 0, - n_risk = 0, - g_risk = 0, - stat_current, - observed, - expected, - V, - temp1, - temp2; - - uword i, j, k, list_counter = 0; - - uvec - jit_vals, - // sort XB- we need to iterate over the sorted indices - XB_sorted = sort_index(XB, "ascend"); - - uvec::iterator - XB_iter, - jit, - XB_iter_best; - - - // group should be initialized as all 0s - group.zeros(y_node.n_rows); - - // initialize at the lowest possible LRT stat value - stat_best = 0; - - // sort XB to iterate over the sorted indices - XB_sorted = sort_index(XB, "ascend"); - - // unsafe_cols point to cols in y_node. - vec y_time = y_node.unsafe_col(0); - vec y_status = y_node.unsafe_col(1); - - // first determine the lowest value of XB that will - // be a valid cut-point to split a node. A valid cut-point - // is one that, if used, will result in at least leaf_min_obs - // and leaf_min_events in both the left and right node. - - n_events = 0; - n_risk = 0; - - if(VERBOSITY > 1){ - Rcout << "----- finding cut-point boundaries -----" << std::endl; - } - - // Iterate through the sorted values of XB, in ascending order. - - for(XB_iter = XB_sorted.begin(); XB_iter < XB_sorted.end()-1; ++XB_iter){ - - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; - - // If we want to make the current value of XB a cut-point, we need - // to make sure the next value of XB isn't equal to this current value. - // Otherwise, we will have the same value of XB in both groups! - - if(VERBOSITY > 1){ - Rcout << XB(*XB_iter) << " ---- "; - Rcout << XB(*(XB_iter+1)) << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } - - if(XB(*XB_iter) != XB(*(XB_iter+1))){ - - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs) { - - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "lower cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, left node: " << n_events << std::endl; - Rcout << " - n_risk, left node: " << n_risk << std::endl; - Rcout << std::endl; - } - - break; - - } - - } - - } - - if(VERBOSITY > 1){ - if(XB_iter >= XB_sorted.end()-1) { - Rcout << "Could not find a valid lower cut-point" << std::endl; - } - } - - // set j to be the number of steps we have taken forward in XB - j = XB_iter - XB_sorted.begin(); - - // reset before finding the upper limit - n_events=0; - n_risk=0; - - // go from end to beginning to find upper cutpoint - for(XB_iter = XB_sorted.end()-1; XB_iter >= XB_sorted.begin()+1; --XB_iter){ - - n_events += y_status[*XB_iter] * w_node[*XB_iter]; - n_risk += w_node[*XB_iter]; - group[*XB_iter] = 1; - - if(VERBOSITY > 1){ - Rcout << XB(*XB_iter) << " ---- "; - Rcout << XB(*(XB_iter-1)) << " ---- "; - Rcout << n_events << " ---- "; - Rcout << n_risk << std::endl; - } - - if(XB(*XB_iter) != XB(*(XB_iter-1))){ - - if(VERBOSITY > 1){ - Rcout << "********* New cut-point here ********" << std::endl; - } - - if( n_events >= leaf_min_events && - n_risk >= leaf_min_obs ) { - - // the upper cutpoint needs to be one step below the current - // XB_iter value, because we use x <= cp to determine whether a - // value x goes to the left node versus the right node. So, - // if XB_iter currently points to 3, and the next value down is 2, - // then we want to say the cut-point is 2 because then all - // values <= 2 will go left, and 3 will go right. This matters - // when 3 is the highest value in the vector. - - --XB_iter; - - if(VERBOSITY > 1){ - Rcout << std::endl; - Rcout << "upper cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << " - n_events, right node: " << n_events << std::endl; - Rcout << " - n_risk, right node: " << n_risk << std::endl; - } - - break; - - } - - } - - } - - // k = n steps from beginning of sorted XB to current XB_iter - k = XB_iter + 1 - XB_sorted.begin(); - - if(VERBOSITY > 1){ - Rcout << "----------------------------------------" << std::endl; - Rcout << std::endl << std::endl; - Rcout << "sorted XB: " << std::endl << XB(XB_sorted).t() << std::endl; - } - - // initialize cut-point as the value of XB that XB_iter currently - // points to, which is the upper cut-point of XB. - XB_iter_best = XB_iter; - - // what happens if we don't have enough events or obs to split? - // the first valid lower cut-point (at XB_sorted(k)) is > the first - // valid upper cutpoint (current value of n_risk). Put another way, - // k (the number of steps taken from beginning of the XB vec) - // will be > n_rows - p, where the difference on the RHS is - // telling us where we are after taking p steps from the end - // of the XB vec. Returning the infinite cp is a red flag. - - if(VERBOSITY > 1){ - Rcout << "N steps from beginning to first cp: " << j << std::endl; - Rcout << "N steps from beginning to last cp: " << k << std::endl; - Rcout << "n potential cutpoints: " << k-j << std::endl; - } - - if (j > k){ - - if(VERBOSITY > 1) { - Rcout << "Could not find a cut-point for this XB" << std::endl; - } - - return(List::create(_["cutpoints"] = R_PosInf, - _["statistic"] = R_PosInf)); - - } - - // set k to be number of steps b/t lower and upper cutpoint. - k -= j; - - if(VERBOSITY > 1){ - Rcout << "----- initializing cutpoints -----" << std::endl; - } - - // what happens if there are only 5 potential cut-points - // but the value of n_split is > 5? We will just check out - // the 5 valid cutpoints. - if(k > n_split){ - // there is enough space to find n_split or more cutpoints - jit_vals = linspace(0, k, n_split); - } else { - // there is less than enough space to find n_split cutpoints, - // so find as many as we can (i.e., k). - jit_vals = linspace(0, k, k); - } - - cutpoints_found.resize( jit_vals.size() ); - - if(j == 0) jit_vals(jit_vals.size()-1)--; - - for(k = 0; k < cutpoints_found.size(); k++){ - cutpoints_found(k) = XB(*(XB_iter_best - jit_vals(k))); - } - - if(j == 0) jit_vals(jit_vals.size()-1)++; - - - if(VERBOSITY > 1){ - - Rcout << "cut-points chosen: "; - - Rcout << cutpoints_found.t(); - - Rcout << "----------------------------------------" << std::endl << - std::endl << std::endl; - - } - - bool do_lrt = true; - - k = 0; - j = 1; - - // begin outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - for(jit = jit_vals.begin(); jit != jit_vals.end(); ++jit){ - - - for( ; j < *jit; j++){ - group(*XB_iter) = 1; - --XB_iter; - } - - // always do the test if we are on a boundary of jit - if(jit == jit_vals.begin() || - jit == jit_vals.end()-1){ - - do_lrt = true; - - } else { - - if( cutpoints_found(k) == cutpoints_found(k+1) || - cutpoints_found(k) == cutpoints_found(0) || - *jit <= 1){ - - Rcout << "SKIP" << std::endl; - - do_lrt = false; - - } else { - - while(XB(*XB_iter) == XB(*(XB_iter - 1))){ - - group(*XB_iter) = 1; - --XB_iter; - ++j; - - if(VERBOSITY > 1){ - Rcout << "cutpoint dropped down one spot: "; - Rcout << XB(*XB_iter) << std::endl; - } - - } - - do_lrt = true; - - } - - } - - ++k; - - if(do_lrt){ - - cutpoints_used(list_counter) = XB(*XB_iter); - - n_risk=0; - g_risk=0; - - observed=0; - expected=0; - - V=0; - - break_loop = false; - - i = y_node.n_rows-1; - - if(VERBOSITY > 1){ - Rcout << "sum(group==1): " << sum(group) << "; "; - Rcout << "sum(group==1 * w_node): " << sum(group % w_node); - Rcout << std::endl; - if(VERBOSITY > 1){ - Rcout << "group:" << std::endl; - Rcout << group(XB_sorted).t() << std::endl; - } - } - - - // begin inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - for (; ;){ - - temp1 = y_time[i]; - - n_events = 0; - - for ( ; y_time[i] == temp1; i--) { - - n_risk += w_node[i]; - n_events += y_status[i] * w_node[i]; - g_risk += group[i] * w_node[i]; - observed += y_status[i] * group[i] * w_node[i]; - - if(i == 0){ - break_loop = true; - break; - } - - } - - // should only do these calculations if n_events > 0, - // but turns out its faster to multiply by 0 than - // it is to check whether n_events is > 0 - - temp2 = g_risk / n_risk; - expected += n_events * temp2; - - // update variance if n_risk > 1 (if n_risk == 1, variance is 0) - // definitely check if n_risk is > 1 b/c otherwise divide by 0 - if (n_risk > 1){ - temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); - V += temp1 * (1 - temp2); - } - - if(break_loop) break; - - } - // end inner loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - stat_current = pow(expected-observed, 2) / V; - - lrt_statistics(list_counter) = stat_current; - - list_counter++; - - if(VERBOSITY > 1){ - - Rcout << "-------- log-rank test results --------" << std::endl; - Rcout << "cutpoint: " << XB(*XB_iter) << std::endl; - Rcout << "lrt stat: " << stat_current << std::endl; - Rcout << "---------------------------------------" << std::endl << - std::endl << std::endl; - - } - - if(stat_current > stat_best){ - XB_iter_best = XB_iter; - stat_best = stat_current; - } - - } - // end outer loop - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - } - - // if the log-rank test does not detect a difference at 0.05 alpha, - // maybe it's not a good idea to split this node. - - // if(stat_best < 3.841459) return( - // List::create(_["cutpoints"] = R_PosInf, - // _["statistic"] = R_PosInf) - // ); - - if(VERBOSITY > 1){ - Rcout << "Best LRT stat: " << stat_best << std::endl; - } - - // rewind XB_iter until it is back where it was when we got the - // best lrt stat. While rewinding XB_iter, also reset the group - // values so that group is as it was when we got the best - // lrt stat. - - - while(XB_iter <= XB_iter_best){ - group(*XB_iter) = 0; - ++XB_iter; - } - - return(List::create(_["cutpoints"] = cutpoints_used, - _["statistic"] = lrt_statistics, - _["cutpoints_found"] = cutpoints_found)); - - } - - } - diff --git a/src/NodeSplitStats.h b/src/NodeSplitStats.h deleted file mode 100644 index 4c51113b..00000000 --- a/src/NodeSplitStats.h +++ /dev/null @@ -1,67 +0,0 @@ -/*----------------------------------------------------------------------------- - This file is part of aorsf. - Author: Byron C Jaeger - aorsf may be modified and distributed under the terms of the MIT license. -#----------------------------------------------------------------------------*/ - -#ifndef NODESPLITSTATS_H -#define NODESPLITSTATS_H - -#include -#include - - - namespace aorsf { - - arma::uvec node_find_cps(arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - arma::uvec& XB_sorted, - double leaf_min_events, - double leaf_min_obs); - - void node_fill_group(arma::vec& group, - arma::uvec& XB_sorted, - arma::uword start, - arma::uword stop, - double value); - - - double node_compute_lrt(arma::mat& y_node, - arma::vec& w_node, - arma::vec& group); - - // Log rank test w/multiple cutpoints - // - // this function returns a cutpoint obtaining a local maximum - // of the log-rank test (lrt) statistic. The default value (+Inf) - // is really for diagnostic purposes. Put another way, if the - // return value is +Inf (an impossible value for a cutpoint), - // that means that we didn't find any valid cut-points and - // the node cannot be grown with the current XB. - // - // if there is a valid cut-point, then the main side effect - // of this function is to modify the group vector, which - // will be used to assign observations to the two new nodes. - // - // @param group the vector that determines which node to send each - // observation to (left node = 0, right node = 1) - // @param y_node matrix of outcomes - // @param w_node vector of weights - // @param XB linear combination of predictors - // - // the group vector is modified by this function and the value returned - // is the maximal log-rank statistic across all the possible cutpoints. - Rcpp::List lrt_multi(arma::mat& y_node, - arma::mat& w_node, - arma::vec& XB, - arma::uword n_split, - double split_min_stat, - double leaf_min_events, - double leaf_min_obs); - - - } - -#endif /* NODESPLITSTATS_H */ - diff --git a/src/Tree.cpp b/src/Tree.cpp index 8135950f..f6ca77b9 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -7,7 +7,7 @@ #include #include "Tree.h" #include "Coxph.h" -#include "NodeSplitStats.h" +// #include "NodeSplitStats.h" using namespace arma; using namespace Rcpp; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 0b0c743b..8ba80e56 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -8,7 +8,7 @@ #include "TreeSurvival.h" #include "Coxph.h" #include "utility.h" -#include "NodeSplitStats.h" +// #include "NodeSplitStats.h" using namespace arma; using namespace Rcpp; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9ff8fbef..41a6d6a8 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -70,67 +70,6 @@ bool pred_is_risklike ){ return compute_cstat(y, w, g, pred_is_risklike); } - // [[Rcpp::export]] - List node_find_cps_exported(arma::mat& y_node, - arma::vec& w_node, - arma::vec& XB, - double leaf_min_events, - double leaf_min_obs){ - - // sort XB to iterate over the sorted indices - uvec XB_sorted = sort_index(XB, "ascend"); - - uvec cp_index = node_find_cps(y_node, - w_node, - XB, - XB_sorted, - leaf_min_events, - leaf_min_obs); - - // vec group(y_node.n_rows, fill::zeros); - // uvec::iterator XB_iter; - // uword j = 0; - // XB_iter = XB_sorted.begin(); - // while(j <= cp_index(0)){ - // group(*XB_iter) = 1; - // ++XB_iter; - // ++j; - // } - - - - return( - List::create( - _["cp_index"] = cp_index, - _["XB_sorted"] = XB_sorted - ) - ); - - - } - - // [[Rcpp::export]] - double node_compute_lrt_exported(arma::mat& y_node, - arma::vec& w_node, - arma::vec& group){ - - double out = node_compute_lrt(y_node, w_node, group); - - return(out); - - } - - // [[Rcpp::export]] - void node_fill_group_exported(arma::vec& group, - arma::uvec& XB_sorted, - arma::uword start, - arma::uword stop, - double value){ - - node_fill_group(group, XB_sorted, start, stop, value); - - } - // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] List orsf_cpp(arma::mat& x, From fa548facfdba8e9ef79d7bec3e6313edf7ee7275 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Wed, 20 Sep 2023 20:45:37 -0400 Subject: [PATCH 074/103] back from conf --- R/RcppExports.R | 16 +---- R/orsf.R | 69 +++++++++++------- R/orsf_attr.R | 2 + R/orsf_vi.R | 4 +- scratch.R | 3 + src/Forest.cpp | 50 ++++++++++--- src/Forest.h | 11 ++- src/ForestSurvival.cpp | 20 +++--- src/ForestSurvival.h | 3 +- src/RcppExports.cpp | 55 ++------------- src/globals.h | 1 + src/orsf_oop.cpp | 140 ++++++++++++++++++------------------- tests/testthat/test-orsf.R | 134 +++++++++++++++++------------------ 13 files changed, 255 insertions(+), 253 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index bc8c880a..6fcd3178 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,19 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -node_find_cps_exported <- function(y_node, w_node, XB, leaf_min_events, leaf_min_obs) { - .Call(`_aorsf_node_find_cps_exported`, y_node, w_node, XB, leaf_min_events, leaf_min_obs) -} - -node_compute_lrt_exported <- function(y_node, w_node, group) { - .Call(`_aorsf_node_compute_lrt_exported`, y_node, w_node, group) -} - -node_fill_group_exported <- function(group, XB_sorted, start, stop, value) { - invisible(.Call(`_aorsf_node_fill_group_exported`, group, XB_sorted, start, stop, value)) -} - -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest) } diff --git a/R/orsf.R b/R/orsf.R index 2086f612..4722e1df 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -364,6 +364,12 @@ orsf <- function(data, attach_data = attach_data ) + #TODO: more polish + if(split_rule == "cstat" && split_min_stat >= 1){ + stop("If split_rule is 'cstat', split_min_stat must be < 1", + call. = FALSE) + } + oobag_pred <- oobag_pred_type != 'none' orsf_type <- attr(control, 'type') @@ -412,16 +418,21 @@ orsf <- function(data, ) + if(importance %in% c("permute", "negate") && !oobag_pred){ + oobag_pred <- TRUE # Should I add a warning? + oobag_pred_type <- 'surv' + } + if(is.null(oobag_fun)){ f_oobag_eval <- function(x) x - type_oobag_eval <- 'H' + type_oobag_eval <- if(oobag_pred) 'cstat' else 'none' } else { check_oobag_fun(oobag_fun) f_oobag_eval <- oobag_fun - type_oobag_eval <- 'U' + type_oobag_eval <- 'user' } @@ -432,11 +443,6 @@ orsf <- function(data, net_alpha <- control_net$net_alpha net_df_target <- control_net$net_df_target - if(importance %in% c("permute", "negate") && !oobag_pred){ - oobag_pred <- TRUE # Should I add a warning? - oobag_pred_type <- 'surv' - } - formula_terms <- suppressWarnings(stats::terms(formula, data=data)) @@ -733,14 +739,18 @@ orsf <- function(data, pred_mode = FALSE, pred_horizon = oobag_pred_horizon, oobag = oobag_pred, + oobag_eval_type_R = switch(type_oobag_eval, + 'none' = 0, + 'cstat' = 1, + 'user' = 2), oobag_eval_every = oobag_eval_every, - n_thread = n_thread) + n_thread = n_thread, + write_forest = !no_fit) # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. orsf_out$data <- if(attach_data) data else NULL - if(importance != 'none'){ rownames(orsf_out$importance) <- colnames(x) orsf_out$importance <- @@ -749,26 +759,25 @@ orsf <- function(data, if(oobag_pred){ - # put the oob predictions into the same order as the training data. unsorted <- collapse::radixorder(sorted) - # clear labels for oobag evaluation type + # makes labels for oobag evaluation type orsf_out$eval_oobag$stat_type <- - switch(EXPR = orsf_out$eval_oobag$stat_type, + switch(EXPR = as.character(orsf_out$eval_oobag$stat_type), + "0" = "None", "1" = "Harrell's C-statistic", "2" = "User-specified function") + #' @srrstats {G2.10} *drop = FALSE for type consistency* orsf_out$pred_oobag <- orsf_out$pred_oobag[unsorted, , drop = FALSE] - } else { - - orsf_out$pred_horizon <- oobag_pred_horizon - } + orsf_out$pred_horizon <- oobag_pred_horizon + n_leaves_mean <- compute_mean_leaves(orsf_out$forest) attr(orsf_out, 'control') <- control @@ -820,6 +829,7 @@ orsf <- function(data, attr(orsf_out, 'verbose_progress') <- verbose_progress attr(orsf_out, 'vi_max_pvalue') <- vi_max_pvalue attr(orsf_out, 'split_rule') <- split_rule + attr(orsf_out, 'n_thread') <- n_thread attr(orsf_out, 'tree_seeds') <- if(is.null(tree_seeds)) c() else tree_seeds @@ -1015,6 +1025,10 @@ orsf_train_ <- function(object, x <- prep_x_from_orsf(object) } + if(is.null(n_tree)){ + n_tree <- get_n_tree(object) + } + if(is.null(sorted)){ sorted <- collapse::radixorder(y[, 1], # order this way for risk sets @@ -1025,8 +1039,6 @@ orsf_train_ <- function(object, x_sort <- x[sorted, ] y_sort <- y[sorted, ] - if(is.null(n_tree)) n_tree <- get_n_tree(object) - oobag_eval_every <- min(n_tree, get_oobag_eval_every(object)) weights <- get_weights_user(object) @@ -1037,7 +1049,7 @@ orsf_train_ <- function(object, tree_type_R = 3, tree_seeds = get_tree_seeds(object), loaded_forest = list(), - n_tree = get_n_tree(object), + n_tree = n_tree, mtry = get_mtry(object), vi_type_R = switch(get_importance(object), "none" = 0, @@ -1082,15 +1094,20 @@ orsf_train_ <- function(object, pred_mode = FALSE, pred_horizon = get_oobag_pred_horizon(object), oobag = get_oobag_pred(object), + oobag_eval_type_R = switch(get_type_oobag_eval(object), + 'none' = 0, + 'cstat' = 1, + 'user' = 2), oobag_eval_every = get_oobag_eval_every(object), - n_thread = 5) + n_thread = get_n_thread(object), + write_forest = TRUE) - object$forest <- orsf_out$forest object$pred_oobag <- orsf_out$pred_oobag - object$pred_horizon <- orsf_out$pred_horizon object$eval_oobag <- orsf_out$eval_oobag + object$forest <- orsf_out$forest object$importance <- orsf_out$importance + object$pred_horizon <- get_oobag_pred_horizon(object) if(get_importance(object) != 'none'){ @@ -1118,9 +1135,10 @@ orsf_train_ <- function(object, # clear labels for oobag evaluation type object$eval_oobag$stat_type <- - switch(EXPR = object$eval_oobag$stat_type, - 'H' = "Harrell's C-statistic", - 'U' = "User-specified function") + switch(EXPR = as.character(object$eval_oobag$stat_type), + "0" = "None", + "1" = "Harrell's C-statistic", + "2" = "User-specified function") object$pred_oobag <- object$pred_oobag[unsorted, , drop = FALSE] @@ -1130,7 +1148,6 @@ orsf_train_ <- function(object, attr(object, 'trained') <- TRUE - object } diff --git a/R/orsf_attr.R b/R/orsf_attr.R index c4589fc9..64bdc97b 100644 --- a/R/orsf_attr.R +++ b/R/orsf_attr.R @@ -59,6 +59,8 @@ get_event_times <- function(object) attr(object, 'event_times') get_verbose_progress <- function(object) attr(object, 'verbose_progress') get_vi_max_pvalue <- function(object) attr(object, 'vi_max_pvalue') get_split_rule <- function(object) attr(object, 'split_rule') +get_n_thread <- function(object) attr(object, 'n_thread') + #' ORSF status #' diff --git a/R/orsf_vi.R b/R/orsf_vi.R index 60b8398a..a3590954 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -234,13 +234,13 @@ orsf_vi_oobag_ <- function(object, type_vi, oobag_fun){ if(is.null(oobag_fun)){ f_oobag_eval <- function(x) x - type_oobag_eval <- 'H' + type_oobag_eval <- 'cstat' } else { check_oobag_fun(oobag_fun) f_oobag_eval <- oobag_fun - type_oobag_eval <- 'U' + type_oobag_eval <- 'user' } diff --git a/scratch.R b/scratch.R index 7eb36621..b93047ed 100644 --- a/scratch.R +++ b/scratch.R @@ -12,6 +12,9 @@ fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, split_min_stat = .5) sink() +fit$eval_oobag + + .pbc_orsf <- pbc_orsf %>% mutate(stage = factor(stage, ordered = F)) diff --git a/src/Forest.cpp b/src/Forest.cpp index d948207d..376f9182 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -61,6 +61,7 @@ void Forest::init(std::unique_ptr input_data, this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; this->lincomb_R_function = lincomb_R_function; + this->pred_mode = pred_mode; this->pred_type = pred_type; this->oobag_pred = oobag_pred; this->oobag_eval_every = oobag_eval_every; @@ -86,6 +87,36 @@ void Forest::init(std::unique_ptr input_data, } +void Forest::run(bool verbose, bool oobag){ + + if(pred_mode){ + + this->predictions = predict(oobag); + + } else { + + // initialize the trees + plant(); + + // grow the trees + grow(); + + // compute out-of-bag predictions if needed + if(oobag){ + + this->predictions = predict(oobag); + + if(oobag_eval_every == n_tree){ + compute_prediction_accuracy(data->get_y(), data->get_w(), 0, predictions); + } + + } + + } + + +} + void Forest::init_trees(){ for(uword i = 0; i < n_tree; ++i){ @@ -128,9 +159,9 @@ void Forest::grow() { // not need to be a corresponding predict_single_thread // function b/c the R functions are only called during // the grow phase of the forest. - vec vi_numer(data->n_cols); - uvec vi_denom(data->n_cols); - grow_single_thread(&vi_numer, &vi_denom); + vec* vi_numer_ptr = &vi_numer; + uvec* vi_denom_ptr = &vi_denom; + grow_single_thread(vi_numer_ptr, vi_denom_ptr); return; } @@ -239,10 +270,13 @@ mat Forest::predict(bool oobag) { // No. of cols in pred mat depend on the type of forest resize_pred_mat(result); + // Slots to hold oobag prediction accuracy + // (needs to be resized even if !oobag) + resize_oobag_eval(); + // oobag denominator tracks the number of times an obs is oobag if(oobag){ oob_denom.zeros(data->n_rows); - resize_oobag_eval(); } progress = 0; @@ -357,6 +391,8 @@ void Forest::predict_in_threads(uint thread_idx, arma::uword Forest::find_max_eval_steps(){ + if(!oobag_pred) return(0); + uword n_evals = std::ceil(n_tree / oobag_eval_every); if(n_evals > n_tree) n_evals = n_tree; @@ -371,12 +407,6 @@ void Forest::resize_oobag_eval(){ oobag_eval.resize(n_evals, 1); - Rcout << std::endl << oobag_eval << std::endl; - -} - -void Forest::run() { - } void Forest::showProgress(std::string operation, size_t max_progress) { diff --git a/src/Forest.h b/src/Forest.h index 4cedf944..69984fac 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -65,7 +65,7 @@ class Forest { uint n_thread); // Grow or predict - void run(); + // void run(bool verbose, bool oobag); virtual void compute_prediction_accuracy( Data* prediction_data, @@ -182,6 +182,12 @@ class Forest { return(oobag_eval); } + arma::mat& get_predictions(){ + return(predictions); + } + + void run(bool verbose, bool oobag); + virtual void plant() = 0; void grow(); @@ -257,8 +263,11 @@ class Forest { RObject lincomb_R_function; // predictions + bool pred_mode; PredType pred_type; + arma::mat predictions; + // out-of-bag bool oobag_pred; arma::mat oobag_eval; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 7271300c..59e2acfc 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -13,13 +13,11 @@ ForestSurvival::ForestSurvival() { } ForestSurvival::ForestSurvival(double leaf_min_events, double split_min_events, - arma::vec& pred_horizon, - arma::vec& unique_event_times){ + arma::vec& pred_horizon){ this->leaf_min_events = leaf_min_events; this->split_min_events = split_min_events; this->pred_horizon = pred_horizon; - this->unique_event_times = unique_event_times; } @@ -49,13 +47,13 @@ void ForestSurvival::load(arma::uword n_tree, trees.push_back( std::make_unique(forest_cutpoint[i], forest_child_left[i], - forest_coef_values[i], - forest_coef_indices[i], - forest_leaf_pred_indx[i], - forest_leaf_pred_prob[i], - forest_leaf_pred_chaz[i], - forest_leaf_summary[i], - &pred_horizon) + forest_coef_values[i], + forest_coef_indices[i], + forest_leaf_pred_indx[i], + forest_leaf_pred_prob[i], + forest_leaf_pred_chaz[i], + forest_leaf_summary[i], + &pred_horizon) ); } @@ -67,6 +65,8 @@ void ForestSurvival::load(arma::uword n_tree, // growInternal() in ranger void ForestSurvival::plant() { + this->unique_event_times = find_unique_event_times(data->get_y()); + trees.reserve(n_tree); for (arma::uword i = 0; i < n_tree; ++i) { diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index ae676975..e1dfa69e 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -18,8 +18,7 @@ class ForestSurvival: public Forest { ForestSurvival(double leaf_min_events, double split_min_events, - arma::vec& pred_horizon, - arma::vec& unique_event_times); + arma::vec& pred_horizon); ForestSurvival(const ForestSurvival&) = delete; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 3aeaf3a0..578c81bd 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -55,51 +55,9 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } -// node_find_cps_exported -List node_find_cps_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& XB, double leaf_min_events, double leaf_min_obs); -RcppExport SEXP _aorsf_node_find_cps_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP XBSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type XB(XBSEXP); - Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); - Rcpp::traits::input_parameter< double >::type leaf_min_obs(leaf_min_obsSEXP); - rcpp_result_gen = Rcpp::wrap(node_find_cps_exported(y_node, w_node, XB, leaf_min_events, leaf_min_obs)); - return rcpp_result_gen; -END_RCPP -} -// node_compute_lrt_exported -double node_compute_lrt_exported(arma::mat& y_node, arma::vec& w_node, arma::vec& group); -RcppExport SEXP _aorsf_node_compute_lrt_exported(SEXP y_nodeSEXP, SEXP w_nodeSEXP, SEXP groupSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::mat& >::type y_node(y_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type w_node(w_nodeSEXP); - Rcpp::traits::input_parameter< arma::vec& >::type group(groupSEXP); - rcpp_result_gen = Rcpp::wrap(node_compute_lrt_exported(y_node, w_node, group)); - return rcpp_result_gen; -END_RCPP -} -// node_fill_group_exported -void node_fill_group_exported(arma::vec& group, arma::uvec& XB_sorted, arma::uword start, arma::uword stop, double value); -RcppExport SEXP _aorsf_node_fill_group_exported(SEXP groupSEXP, SEXP XB_sortedSEXP, SEXP startSEXP, SEXP stopSEXP, SEXP valueSEXP) { -BEGIN_RCPP - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< arma::vec& >::type group(groupSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type XB_sorted(XB_sortedSEXP); - Rcpp::traits::input_parameter< arma::uword >::type start(startSEXP); - Rcpp::traits::input_parameter< arma::uword >::type stop(stopSEXP); - Rcpp::traits::input_parameter< double >::type value(valueSEXP); - node_fill_group_exported(group, XB_sorted, start, stop, value); - return R_NilValue; -END_RCPP -} // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_every, unsigned int n_thread); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -134,9 +92,11 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< arma::vec >::type pred_horizon(pred_horizonSEXP); Rcpp::traits::input_parameter< bool >::type oobag(oobagSEXP); + Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_type_R(oobag_eval_type_RSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_every, n_thread)); + Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest)); return rcpp_result_gen; END_RCPP } @@ -145,10 +105,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_node_find_cps_exported", (DL_FUNC) &_aorsf_node_find_cps_exported, 5}, - {"_aorsf_node_compute_lrt_exported", (DL_FUNC) &_aorsf_node_compute_lrt_exported, 3}, - {"_aorsf_node_fill_group_exported", (DL_FUNC) &_aorsf_node_fill_group_exported, 5}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 33}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 35}, {NULL, NULL, 0} }; diff --git a/src/globals.h b/src/globals.h index bdd228a6..4260620a 100644 --- a/src/globals.h +++ b/src/globals.h @@ -36,6 +36,7 @@ }; enum EvalType { + EVAL_NONE = 0, EVAL_CONCORD = 1, EVAL_R_FUNCTION = 2 }; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 41a6d6a8..9ec5f01e 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -17,7 +17,6 @@ #include "Forest.h" #include "ForestSurvival.h" #include "Coxph.h" -#include "NodeSplitStats.h" #include #include @@ -72,41 +71,43 @@ // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] - List orsf_cpp(arma::mat& x, - arma::mat& y, - arma::vec& w, - arma::uword tree_type_R, - Rcpp::IntegerVector& tree_seeds, - Rcpp::List loaded_forest, - Rcpp::RObject lincomb_R_function, - Rcpp::RObject oobag_R_function, - arma::uword n_tree, - arma::uword mtry, - arma::uword vi_type_R, - double vi_max_pvalue, - double leaf_min_events, - double leaf_min_obs, - arma::uword split_rule_R, - double split_min_events, - double split_min_obs, - double split_min_stat, - arma::uword split_max_cuts, - arma::uword split_max_retry, - arma::uword lincomb_type_R, - double lincomb_eps, - arma::uword lincomb_iter_max, - bool lincomb_scale, - double lincomb_alpha, - arma::uword lincomb_df_target, - arma::uword lincomb_ties_method, - bool pred_mode, - arma::uword pred_type_R, - arma::vec pred_horizon, - bool oobag, - arma::uword oobag_eval_every, - unsigned int n_thread){ - - List result, forest_out; + List orsf_cpp(arma::mat& x, + arma::mat& y, + arma::vec& w, + arma::uword tree_type_R, + Rcpp::IntegerVector& tree_seeds, + Rcpp::List loaded_forest, + Rcpp::RObject lincomb_R_function, + Rcpp::RObject oobag_R_function, + arma::uword n_tree, + arma::uword mtry, + arma::uword vi_type_R, + double vi_max_pvalue, + double leaf_min_events, + double leaf_min_obs, + arma::uword split_rule_R, + double split_min_events, + double split_min_obs, + double split_min_stat, + arma::uword split_max_cuts, + arma::uword split_max_retry, + arma::uword lincomb_type_R, + double lincomb_eps, + arma::uword lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + arma::uword lincomb_df_target, + arma::uword lincomb_ties_method, + bool pred_mode, + arma::uword pred_type_R, + arma::vec pred_horizon, + bool oobag, + arma::uword oobag_eval_type_R, + arma::uword oobag_eval_every, + unsigned int n_thread, + bool write_forest){ + + List result; std::unique_ptr forest { }; std::unique_ptr data { }; @@ -120,9 +121,12 @@ SplitRule split_rule = (SplitRule) split_rule_R; LinearCombo lincomb_type = (LinearCombo) lincomb_type_R; PredType pred_type = (PredType) pred_type_R; + EvalType oobag_eval_type = (EvalType) oobag_eval_type_R; // R functions cannot be called from multiple threads - if(lincomb_type == LC_R_FUNCTION || lincomb_type == LC_GLMNET){ + if(lincomb_type == LC_R_FUNCTION || + lincomb_type == LC_GLMNET || + oobag_eval_type == EVAL_R_FUNCTION){ n_thread = 1; } @@ -136,12 +140,9 @@ if(tree_type == TREE_SURVIVAL){ - vec unique_event_times = find_unique_event_times(y); - forest = std::make_unique(leaf_min_events, split_min_events, - pred_horizon, - unique_event_times); + pred_horizon); } else { @@ -185,6 +186,7 @@ std::vector> coef_indices = loaded_forest["coef_indices"]; std::vector> leaf_summary = loaded_forest["leaf_summary"]; + if(tree_type == TREE_SURVIVAL){ std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; @@ -197,38 +199,30 @@ } - arma::mat pred_mat = forest->predict(oobag); - - result.push_back(pred_mat, "predictions"); + } - } else { + forest->run(false, oobag); - // initialize the trees - forest->plant(); + if(pred_mode){ - // grow the trees - forest->grow(); + result.push_back(forest->get_predictions(), "predictions"); - // compute out-of-bag predictions if needed - if(oobag){ + } else { - mat pred_oobag = forest->predict(oobag); + if (oobag) result.push_back(forest->get_predictions(), "pred_oobag"); - result.push_back(pred_oobag, "pred_oobag"); + List eval_oobag_out; + eval_oobag_out.push_back(forest->get_oobag_eval(), "stat_values"); + eval_oobag_out.push_back(oobag_eval_type_R, "stat_type"); + result.push_back(eval_oobag_out, "eval_oobag"); - if(oobag_eval_every == n_tree){ - forest->compute_prediction_accuracy(y, w, 0, pred_oobag); - } + } - List eval_oobag_out = List::create( - _["stat_values"] = forest->get_oobag_eval(), - _["stat_type"] = 1 - ); - result.push_back(eval_oobag_out, "eval_oobag"); - } + if(write_forest){ + List forest_out; forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); forest_out.push_back(forest->get_cutpoint(), "cutpoint"); forest_out.push_back(forest->get_child_left(), "child_left"); @@ -241,28 +235,30 @@ forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); - result.push_back(forest->get_unique_event_times(), "unique_event_times"); - result.push_back(pred_horizon, "pred_horizon"); + // consider dropping unique_event_times; is it needed after grow()? + // result.push_back(forest->get_unique_event_times(), "unique_event_times"); } result.push_back(forest_out, "forest"); - vec vi_output; + } - if(vi_type != VI_NONE){ + if(vi_type != VI_NONE){ - if(vi_type == VI_ANOVA){ - vi_output = forest->get_vi_numer() / forest->get_vi_denom(); - } else { - vi_output = forest->get_vi_numer() / n_tree; - } + vec vi_output; + if(vi_type == VI_ANOVA){ + vi_output = forest->get_vi_numer() / forest->get_vi_denom(); + } else { + vi_output = forest->get_vi_numer() / n_tree; } result.push_back(vi_output, "importance"); } - return(result); + + + return(result); } diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 390fffd5..2d6de9b6 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -23,7 +23,13 @@ no_miss_list <- function(l){ } add_noise <- function(x, eps = .Machine$double.eps){ - x + rnorm(length(x), mean = 0, sd = eps) + + noise <- rnorm(length(x), mean = 0, sd = eps/2) + noise <- pmin(noise, eps) + noise <- pmax(noise, -eps) + + x + noise + } change_scale <- function(x, mult_by = 10){ @@ -526,22 +532,31 @@ for(i in vars){ } -set.seed(329) fit_orsf <- - orsf(pbc_orsf, Surv(time, status) ~ . - id) -set.seed(329) + orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_thread = 1, + n_tree = 10, + tree_seeds = 1:10) + fit_orsf_2 <- - orsf(pbc_orsf, Surv(time, status) ~ . - id) -set.seed(329) + orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_thread = 5, + n_tree = 10, + tree_seeds = 1:10) + fit_orsf_noise <- - orsf(pbc_noise, Surv(time, status) ~ . - id) -set.seed(329) + orsf(pbc_noise, Surv(time, status) ~ . - id, + n_tree = 10, + tree_seeds = 1:10) + fit_orsf_scale <- - orsf(pbc_scale, Surv(time, status) ~ . - id) + orsf(pbc_scale, Surv(time, status) ~ . - id, + n_tree = 10, + tree_seeds = 1:10) #' @srrstats {ML7.1} *Demonstrate effect of numeric scaling of input data.* test_that( - desc = 'scaling/noising inputs does not impact model behavior', + desc = 'outputs are robust to multi-threading, scaling, and noising', code = { expect_lt( @@ -584,42 +599,39 @@ test_that( 0.1 ) - for(i in 1:10){ - expect_equal(fit_orsf$forest[[i]]$leaf_nodes, - fit_orsf_2$forest[[i]]$leaf_nodes) - expect_equal(fit_orsf$forest[[i]]$leaf_nodes, - fit_orsf_scale$forest[[i]]$leaf_nodes) - expect_equal(fit_orsf$forest[[i]]$leaf_nodes, - fit_orsf_noise$forest[[i]]$leaf_nodes) - } + expect_equal(fit_orsf$forest, + fit_orsf_2$forest) - } -) + expect_equal(fit_orsf$importance, + fit_orsf_2$importance) -# testing the seed behavior when no_fit is TRUE. You should get the same -# forest whether you train with orsf() or with orsf_train(). + expect_equal(fit_orsf$forest$rows_oobag, + fit_orsf_noise$forest$rows_oobag) + expect_equal(fit_orsf$forest$rows_oobag, + fit_orsf_scale$forest$rows_oobag) -object <- orsf(pbc_orsf, Surv(time, status) ~ . - id, no_fit = TRUE) -set.seed(329) -fit_orsf_3 <- orsf_train(object) + expect_equal(fit_orsf$forest$leaf_summary, + fit_orsf_scale$forest$leaf_summary) + + expect_equal(fit_orsf$forest$leaf_summary, + fit_orsf_noise$forest$leaf_summary) + + } +) test_that( desc = 'results are identical if a forest is fitted under the same random seed', code = { - # testing a subset of trees for identical betas + object <- orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_tree = 10, + tree_seeds = 1:10, + no_fit = TRUE) + fit_orsf_3 <- orsf_train(object) - for(i in seq(get_n_tree(fit_orsf))){ - expect_equal( - object = fit_orsf$forest[[i]]$betas, - expected = fit_orsf_2$forest[[i]]$betas - ) - expect_equal( - object = fit_orsf$forest[[i]]$betas, - expected = fit_orsf_3$forest[[i]]$betas - ) - } + expect_equal(fit_orsf$forest, + fit_orsf_3$forest) attr_orsf <- attributes(fit_orsf) attr_orsf_3 <- attributes(fit_orsf_3) @@ -678,12 +690,6 @@ test_that( fit_3$eval_oobag$stat_values ) - for(i in seq(get_n_tree(fit_2))){ - - expect_equal(fit_1$forest[[i]]$rows_oobag, - fit_2$forest[[i]]$rows_oobag) - - } } ) @@ -697,7 +703,7 @@ if(Sys.getenv("run_all_aorsf_tests") == 'yes'){ # testing the seed behavior when no_fit is TRUE. You should get the same # forest whether you train with orsf() or with orsf_train(). - for(.n_tree in c(100, 250, 1000, 2500)){ + for(.n_tree in c(100, 250, 1000)){ object <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_tree = .n_tree, no_fit = TRUE, @@ -857,13 +863,13 @@ test_that( expect_equal(get_split_min_obs(fit_cph), inputs$split_min_obs[i]) expect_equal(fit_cph$pred_horizon, inputs$oobag_pred_horizon[i]) - expect_length(fit_cph$forest, n = get_n_tree(fit_cph)) + expect_length(fit_cph$forest$rows_oobag, n = get_n_tree(fit_cph)) if(inputs$oobag_pred_type[i] != 'none'){ expect_length(fit_cph$eval_oobag$stat_values, 1) expect_equal(nrow(fit_cph$pred_oobag), get_n_obs(fit_cph)) } else { - expect_equal(dim(fit_cph$eval_oobag$stat_values), c(0, 1)) + expect_equal(dim(fit_cph$eval_oobag$stat_values), c(0, 0)) } fit_net <- orsf(data = pbc_orsf, @@ -892,13 +898,13 @@ test_that( expect_equal(get_split_min_obs(fit_net), inputs$split_min_obs[i]) expect_equal(fit_net$pred_horizon, inputs$oobag_pred_horizon[i]) - expect_length(fit_net$forest, n = get_n_tree(fit_net)) + expect_length(fit_cph$forest$rows_oobag, n = get_n_tree(fit_cph)) if(inputs$oobag_pred_type[i] != 'none'){ expect_length(fit_net$eval_oobag$stat_values, 1) expect_equal(nrow(fit_net$pred_oobag), get_n_obs(fit_net)) } else { - expect_equal(dim(fit_net$eval_oobag$stat_values), c(0, 1)) + expect_equal(dim(fit_net$eval_oobag$stat_values), c(0, 0)) } } @@ -944,7 +950,7 @@ set.seed(329) fit_unwtd <- orsf(pbc_orsf, Surv(time, status) ~ . - id) fit_wtd <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - weights = pbc_orsf$id) + weights = rep(2, nrow(pbc_orsf))) test_that( desc = 'weights work as intended', @@ -954,12 +960,6 @@ test_that( expect_gt(get_n_leaves_mean(fit_wtd), get_n_leaves_mean(fit_unwtd)) - # and in this case less accurate b/c the weights were random and extreme - expect_lt( - fit_wtd$eval_oobag$stat_values, - fit_unwtd$eval_oobag$stat_values - ) - } ) @@ -996,19 +996,19 @@ test_that( ) # high pred horizon - -test_that( - desc = 'higher pred horizon is not allowed for summary', - code = { - - fit_bad_oob_horizon <- orsf(time + status ~ ., data = pbc_orsf, - oobag_pred_horizon = 7000) - - expect_error(orsf_summarize_uni(fit_bad_oob_horizon), - regexp = 'prediction horizon') - - } -) +# TODO: move this to test file for summarize +# test_that( +# desc = 'higher pred horizon is not allowed for summary', +# code = { +# +# fit_bad_oob_horizon <- orsf(time + status ~ ., data = pbc_orsf, +# oobag_pred_horizon = 7000) +# +# expect_error(orsf_summarize_uni(fit_bad_oob_horizon), +# regexp = 'prediction horizon') +# +# } +# ) # Similar to obliqueRSF? From 9e5e39cab6eaa963460b48b43cb88b5078107f93 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 20 Sep 2023 21:12:13 -0400 Subject: [PATCH 075/103] no_fit does prevent fit now --- R/orsf.R | 6 ++- scratch.R | 78 +++----------------------------------- tests/testthat/test-orsf.R | 2 +- 3 files changed, 11 insertions(+), 75 deletions(-) diff --git a/R/orsf.R b/R/orsf.R index 4722e1df..7c015bab 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -696,7 +696,7 @@ orsf <- function(data, tree_type_R = 3, tree_seeds = as.integer(tree_seeds), loaded_forest = list(), - n_tree = n_tree, + n_tree = if(no_fit) 0 else n_tree, mtry = mtry, vi_type_R = switch(importance, "none" = 0, @@ -745,7 +745,9 @@ orsf <- function(data, 'user' = 2), oobag_eval_every = oobag_eval_every, n_thread = n_thread, - write_forest = !no_fit) + write_forest = TRUE) + + # browser() # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. diff --git a/scratch.R b/scratch.R index b93047ed..e54c616a 100644 --- a/scratch.R +++ b/scratch.R @@ -2,87 +2,21 @@ library(tidyverse) library(riskRegression) library(survival) -sink("orsf-output.txt") +# sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_tree = 100, n_thread = 5, # control = orsf_control_net(), - oobag_pred_type = 'risk', + oobag_pred_type = 'none', split_rule = 'cstat', - split_min_stat = .5) -sink() + split_min_stat = .5, + no_fit = TRUE) +# sink() fit$eval_oobag -.pbc_orsf <- pbc_orsf %>% - mutate(stage = factor(stage, ordered = F)) - -x <- model.matrix(~. -1, data = select(.pbc_orsf, -time, -status, -id)) -y <- as.matrix(.pbc_orsf[, c('time', 'status')]) - -# .flchain <- flchain |> -# rename(time = futime, status = death) |> -# select(-chapter) |> -# tidyr::drop_na() -# x <- model.matrix(~. -1, data = select(.flchain, -time, -status)) -# y <- as.matrix(.flchain[, c('time', 'status')]) - -w <- rep(1, nrow(x)) - -sorted <- - collapse::radixorder(y[, 1], # order this way for risk sets - -y[, 2]) # order this way for oob C-statistic. - -y <- y[sorted, ] -x <- x[sorted, ] -w <- w[sorted] - -f <- function(x, y, w){ - matrix(runif(ncol(x)), ncol=1) -} - -pred_horizon <- 200 # median(y[, 'time']) - -# sink("orsf-output.txt") - -orsf_tree = aorsf:::orsf_cpp(x, - y, - w, - tree_type_R = 3, - tree_seeds = 1:500, - loaded_forest = list(), - n_tree = 500, - mtry = 3, - vi_type_R = 2, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 5, - leaf_min_obs = 5, - split_rule_R = 1, - split_min_events = 5, - split_min_obs = 10, - split_min_stat = 0, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-9, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = FALSE, - pred_horizon = c(pred_horizon, 2*pred_horizon), - oobag = TRUE, - oobag_eval_every = 100, - n_thread = 6) - -# sink() - -orsf_tree$forest[-1] |> +fit$forest[-1] |> as_tibble() |> slice(1) |> unnest(everything()) |> diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 2d6de9b6..213c64b2 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -32,7 +32,7 @@ add_noise <- function(x, eps = .Machine$double.eps){ } -change_scale <- function(x, mult_by = 10){ +change_scale <- function(x, mult_by = 1/2){ x * mult_by } From 341d6434e5fe64ba03a3ccc048993f47c0d94526 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Wed, 20 Sep 2023 21:46:28 -0400 Subject: [PATCH 076/103] hiccups from update --- scratch.R | 7 +++---- src/Forest.cpp | 7 ++++--- src/Forest.h | 4 ++-- src/Tree.cpp | 12 ++---------- src/Tree.h | 2 +- src/orsf_oop.cpp | 2 +- 6 files changed, 13 insertions(+), 21 deletions(-) diff --git a/scratch.R b/scratch.R index e54c616a..c6823f9d 100644 --- a/scratch.R +++ b/scratch.R @@ -5,12 +5,11 @@ library(survival) # sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_tree = 100, - n_thread = 5, + n_thread = 1, # control = orsf_control_net(), - oobag_pred_type = 'none', + oobag_pred_type = 'surv', split_rule = 'cstat', - split_min_stat = .5, - no_fit = TRUE) + split_min_stat = .5) # sink() fit$eval_oobag diff --git a/src/Forest.cpp b/src/Forest.cpp index 376f9182..620851aa 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -91,7 +91,7 @@ void Forest::run(bool verbose, bool oobag){ if(pred_mode){ - this->predictions = predict(oobag); + this->pred_values = predict(oobag); } else { @@ -104,10 +104,11 @@ void Forest::run(bool verbose, bool oobag){ // compute out-of-bag predictions if needed if(oobag){ - this->predictions = predict(oobag); + this->pred_values = predict(oobag); if(oobag_eval_every == n_tree){ - compute_prediction_accuracy(data->get_y(), data->get_w(), 0, predictions); + // if oobag_eval_every < n_tree, this is done during grow() + compute_prediction_accuracy(data->get_y(), data->get_w(), 0, pred_values); } } diff --git a/src/Forest.h b/src/Forest.h index 69984fac..14543604 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -183,7 +183,7 @@ class Forest { } arma::mat& get_predictions(){ - return(predictions); + return(pred_values); } void run(bool verbose, bool oobag); @@ -266,7 +266,7 @@ class Forest { bool pred_mode; PredType pred_type; - arma::mat predictions; + arma::mat pred_values; // out-of-bag bool oobag_pred; diff --git a/src/Tree.cpp b/src/Tree.cpp index f6ca77b9..c66622d4 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -7,7 +7,8 @@ #include #include "Tree.h" #include "Coxph.h" -// #include "NodeSplitStats.h" + +#include using namespace arma; using namespace Rcpp; @@ -956,15 +957,6 @@ } - void Tree::predict_value(arma::mat* pred_output, - arma::vec* pred_denom, - PredType pred_type, - bool oobag){ - - return; - - } - double Tree::compute_prediction_accuracy(arma::vec& preds){ return(0.0); } diff --git a/src/Tree.h b/src/Tree.h index fdf150ad..c0e5fc84 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -89,7 +89,7 @@ virtual void predict_value(arma::mat* pred_output, arma::vec* pred_denom, PredType pred_type, - bool oobag); + bool oobag) = 0; void negate_coef(arma::uword pred_col); diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9ec5f01e..ba8a833b 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -205,7 +205,7 @@ if(pred_mode){ - result.push_back(forest->get_predictions(), "predictions"); + result.push_back(forest->get_predictions(), "pred_new"); } else { From eeeb14193013e8d844311adcd4736a3ae7d751fc Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Thu, 21 Sep 2023 11:52:11 -0400 Subject: [PATCH 077/103] mort oobag! Still working out workflow of it --- R/check.R | 13 ++--- scratch.R | 47 ++++++++++++++--- src/Forest.cpp | 92 ++++++++++++++++++++++++++++++---- src/Forest.h | 7 +++ src/TreeSurvival.cpp | 117 +++++++++++++++++++++++++++---------------- src/globals.h | 2 +- src/orsf_oop.cpp | 1 + 7 files changed, 212 insertions(+), 67 deletions(-) diff --git a/R/check.R b/R/check.R index bb6bdbaf..c653b329 100644 --- a/R/check.R +++ b/R/check.R @@ -916,18 +916,19 @@ check_orsf_inputs <- function(data = NULL, arg_name = 'oobag_pred_type', expected_length = 1) - if(oobag_pred_type == 'mort') stop( - "Out-of-bag mortality predictions aren't supported yet. ", - " Sorry for the inconvenience - we plan on including this option", - " in a future update.", - call. = FALSE - ) + # if(oobag_pred_type == 'mort') stop( + # "Out-of-bag mortality predictions aren't supported yet. ", + # " Sorry for the inconvenience - we plan on including this option", + # " in a future update.", + # call. = FALSE + # ) check_arg_is_valid(arg_value = oobag_pred_type, arg_name = 'oobag_pred_type', valid_options = c("none", "surv", "risk", + "mort", "chf")) } diff --git a/scratch.R b/scratch.R index c6823f9d..b11fdc1d 100644 --- a/scratch.R +++ b/scratch.R @@ -2,14 +2,47 @@ library(tidyverse) library(riskRegression) library(survival) -# sink("orsf-output.txt") +sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 100, - n_thread = 1, - # control = orsf_control_net(), - oobag_pred_type = 'surv', - split_rule = 'cstat', - split_min_stat = .5) + n_tree = 500, + oobag_eval_every = 50, + n_thread = 10, + oobag_pred_type = 'mort', + split_rule = 'logrank', + importance = 'negate', + split_min_stat = 3) +sink() +orsf_vi(fit) + + +library(randomForestSRC) + +microbenchmark::microbenchmark( + aorsf_1 = orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_tree = 500, + mtry = 3, + leaf_min_obs = 10, + n_split = 5, + importance = 'permute', + n_thread = 1), + aorsf_5 = orsf(pbc_orsf, Surv(time, status) ~ . - id, + n_tree = 500, + mtry = 3, + leaf_min_obs = 10, + n_split = 5, + importance = 'permute', + n_thread = 5), + rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., + ntree = 500, + mtry = 3, + nthread = 10, + samptype = 'swr', + importance = 'permute', + nodesize = 10, + nsplit = 5, + data = as.data.frame(pbc_orsf)) +) + # sink() fit$eval_oobag diff --git a/src/Forest.cpp b/src/Forest.cpp index 620851aa..d7535b09 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -38,6 +38,7 @@ void Forest::init(std::unique_ptr input_data, PredType pred_type, bool pred_mode, bool oobag_pred, + EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, uint n_thread){ @@ -64,6 +65,7 @@ void Forest::init(std::unique_ptr input_data, this->pred_mode = pred_mode; this->pred_type = pred_type; this->oobag_pred = oobag_pred; + this->oobag_eval_type = oobag_eval_type; this->oobag_eval_every = oobag_eval_every; this->oobag_R_function = oobag_R_function; this->n_thread = n_thread; @@ -97,20 +99,16 @@ void Forest::run(bool verbose, bool oobag){ // initialize the trees plant(); - // grow the trees grow(); // compute out-of-bag predictions if needed if(oobag){ - this->pred_values = predict(oobag); + } - if(oobag_eval_every == n_tree){ - // if oobag_eval_every < n_tree, this is done during grow() - compute_prediction_accuracy(data->get_y(), data->get_w(), 0, pred_values); - } - + if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + compute_oobag_vi(); } } @@ -240,10 +238,73 @@ void Forest::grow_in_threads(uint thread_idx, trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ - trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); + // Check for user interrupt + if (aborted) { + std::unique_lock lock(mutex); + ++aborted_threads; + condition_variable.notify_one(); + return; } + // Increase progress by 1 tree + std::unique_lock lock(mutex); + ++progress; + condition_variable.notify_one(); + + } + + } + +} + +void Forest::compute_oobag_vi() { + + // catch interrupts from threads + aborted = false; + aborted_threads = 0; + + // show progress from threads + progress = 0; + + std::vector threads; + std::vector vi_numer_threads(n_thread); + // no denominator b/c it is equal to n_tree for all oob vi methods + + threads.reserve(n_thread); + + for (uint i = 0; i < n_thread; ++i) { + + vi_numer_threads[i].zeros(data->n_cols); + + threads.emplace_back(&Forest::compute_oobag_vi_in_threads, + this, i, &(vi_numer_threads[i])); + } + + showProgress("Computing variable importance...", n_tree); + + for (auto &thread : threads) { + thread.join(); + } + + if (aborted_threads > 0) { + throw std::runtime_error("User interrupt."); + } + + for(uint i = 0; i < n_thread; ++i){ + vi_numer += vi_numer_threads[i]; + } + +} + + +void Forest::compute_oobag_vi_in_threads(uint thread_idx, vec* vi_numer_ptr) { + + if (thread_ranges.size() > thread_idx + 1) { + + for(uint i=thread_ranges[thread_idx]; icompute_oobag_vi(vi_numer_ptr, vi_type); + // Check for user interrupt if (aborted) { std::unique_lock lock(mutex); @@ -318,26 +379,35 @@ mat Forest::predict(bool oobag) { // evaluate oobag error after joining each thread // (only safe to do this when the condition below holds) - if( n_tree/oobag_eval_every == n_thread && n_thread > 1 ){ + if(n_tree/oobag_eval_every == n_thread && n_thread>1 && i t and assign t* to be whatever came - // right before t**. - if(t < leaf_times.back()){ + // t is the current prediction time + double t = (*pred_horizon)[j]; - for(; i < leaf_times.size(); i++){ + // if t < t', where t' is the max time in this leaf, + // then we may find a time t* such that t* < t < t'. + // If so, prediction should be anchored to t*. + // But, there may be multiple t* < t, and we want to + // find the largest t* that is < t, so we find the + // first t** > t and assign t* to be whatever came + // right before t**. + if(t < leaf_times.back()){ - // we found t** - if (leaf_times[i] > t){ + for(; i < leaf_times.size(); i++){ - if(i == 0) - // first leaf event occurred after prediction time - temp_dbl = pred_t0; - else - // t* is the time value just before t**, so use i-1 - temp_dbl = leaf_values[i-1]; + // we found t** + if (leaf_times[i] > t){ - break; + if(i == 0) + // first leaf event occurred after prediction time + temp_dbl = pred_t0; + else + // t* is the time value just before t**, so use i-1 + temp_dbl = leaf_values[i-1]; - } else if (leaf_times[i] == t){ - // pred_horizon just happens to equal a leaf time - temp_dbl = leaf_values[i]; + break; - break; + } else if (leaf_times[i] == t){ + // pred_horizon just happens to equal a leaf time + temp_dbl = leaf_values[i]; + + break; + + } } + } else { + // if t > t' use the last recorded prediction + temp_dbl = leaf_values.back(); + } - } else { - // if t > t' use the last recorded prediction - temp_dbl = leaf_values.back(); + temp_vec[j] = temp_dbl; } - temp_vec[j] = temp_dbl; - } // old code for running mean - should i use it? @@ -654,10 +690,7 @@ double TreeSurvival::compute_prediction_accuracy(arma::vec& preds){ - return compute_cstat(y_oobag, - w_oobag, - preds, - true); + return compute_cstat(y_oobag, w_oobag, preds, true); } diff --git a/src/globals.h b/src/globals.h index 4260620a..3314053a 100644 --- a/src/globals.h +++ b/src/globals.h @@ -54,7 +54,7 @@ PRED_NONE = 0, PRED_RISK = 1, PRED_SURVIVAL = 2, - PRED_CUMULATIVE_HAZARD = 3, + PRED_CHAZ = 3, PRED_MORTALITY = 4, PRED_MEAN = 5, PRED_PROBABILITY = 6, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index ba8a833b..373a57f6 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -173,6 +173,7 @@ pred_type, pred_mode, oobag, + oobag_eval_type, oobag_eval_every, oobag_R_function, n_thread); From b9453e0b42eaf387dc8cc37df33bbeb79471d3dc Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Fri, 22 Sep 2023 23:43:00 -0400 Subject: [PATCH 078/103] oob functions allowed --- R/RcppExports.R | 4 +- R/check.R | 22 +++-- R/oobag_c_harrell.R | 49 ++--------- R/orsf.R | 39 +++++---- R/orsf_attr.R | 2 +- src/Forest.cpp | 175 +++++++++++++++++++++++++------------ src/Forest.h | 40 +++++---- src/ForestSurvival.cpp | 34 ++++--- src/ForestSurvival.h | 10 +-- src/RcppExports.cpp | 9 +- src/Tree.cpp | 6 +- src/TreeSurvival.cpp | 1 + src/orsf_oop.cpp | 18 ++-- src/utility.cpp | 12 +-- tests/testthat/test-orsf.R | 53 ++++++----- vignettes/oobag.Rmd | 37 ++++---- 16 files changed, 282 insertions(+), 229 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 6fcd3178..00761fac 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest) } diff --git a/R/check.R b/R/check.R index c653b329..04ee0216 100644 --- a/R/check.R +++ b/R/check.R @@ -1616,8 +1616,8 @@ check_oobag_fun <- function(oobag_fun){ oobag_fun_args <- names(formals(oobag_fun)) - if(length(oobag_fun_args) != 2) stop( - "oobag_fun should have 2 input arguments but instead has ", + if(length(oobag_fun_args) != 3) stop( + "oobag_fun should have 3 input arguments but instead has ", length(oobag_fun_args), call. = FALSE ) @@ -1628,8 +1628,14 @@ check_oobag_fun <- function(oobag_fun){ call. = FALSE ) - if(oobag_fun_args[2] != 's_vec') stop( - "the second input argument of oobag_fun should be named 's_vec' ", + if(oobag_fun_args[2] != 'w_vec') stop( + "the second input argument of oobag_fun should be named 'w_vec' ", + "but is instead named '", oobag_fun_args[1], "'", + call. = FALSE + ) + + if(oobag_fun_args[3] != 's_vec') stop( + "the third input argument of oobag_fun should be named 's_vec' ", "but is instead named '", oobag_fun_args[2], "'", call. = FALSE ) @@ -1638,9 +1644,12 @@ check_oobag_fun <- function(oobag_fun){ test_status <- rep(c(0,1), each = 50) .y_mat <- cbind(time = test_time, status = test_status) + .w_vec <- rep(1, times = 100) .s_vec <- seq(0.9, 0.1, length.out = 100) - test_output <- try(oobag_fun(y_mat = .y_mat, s_vec = .s_vec), + test_output <- try(oobag_fun(y_mat = .y_mat, + w_vec = .w_vec, + s_vec = .s_vec), silent = FALSE) if(is_error(test_output)){ @@ -1650,8 +1659,9 @@ check_oobag_fun <- function(oobag_fun){ "test_time <- seq(from = 1, to = 5, length.out = 100)\n", "test_status <- rep(c(0,1), each = 50)\n\n", "y_mat <- cbind(time = test_time, status = test_status)\n", + "w_vec <- rep(1, times = 100)\n", "s_vec <- seq(0.9, 0.1, length.out = 100)\n\n", - "test_output <- oobag_fun(y_mat = y_mat, s_vec = s_vec)\n\n", + "test_output <- oobag_fun(y_mat = y_mat, w_vec = w_vec, s_vec = s_vec)\n\n", "test_output should be a numeric value of length 1", call. = FALSE) diff --git a/R/oobag_c_harrell.R b/R/oobag_c_harrell.R index 3e22ca23..03734cb8 100644 --- a/R/oobag_c_harrell.R +++ b/R/oobag_c_harrell.R @@ -12,50 +12,13 @@ #' @noRd #' -oobag_c_harrell <- function(y_mat, s_vec){ +oobag_c_survival <- function(y_mat, w_vec, s_vec){ - sorted <- order(y_mat[, 1], -y_mat[, 2]) + survival::concordancefit( + y = survival::Surv(y_mat), + x = s_vec + )$concordance - y_mat <- y_mat[sorted, ] - s_vec <- s_vec[sorted] - - time = y_mat[, 1] - status = y_mat[, 2] - events = which(status == 1) - - k = nrow(y_mat) - - total <- 0 - concordant <- 0 - - for(i in events){ - - if(i+1 <= k){ - - for(j in seq(i+1, k)){ - - if(time[j] > time[i]){ - - total <- total + 1 - - if(s_vec[j] > s_vec[i]){ - - concordant <- concordant + 1 - - } else if (s_vec[j] == s_vec[i]){ - - concordant <- concordant + 0.5 - - } - - } - - } - - } - - } +} - concordant / total -} diff --git a/R/orsf.R b/R/orsf.R index 7c015bab..e5aff569 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -678,10 +678,11 @@ orsf <- function(data, collapse::radixorder(y[, 1], # order this way for risk sets -y[, 2]) # order this way for oob C-statistic. + if(is.null(weights)) weights <- rep(1, nrow(x)) + x_sort <- x[sorted, , drop = FALSE] y_sort <- y[sorted, , drop = FALSE] - - if(is.null(weights)) weights <- rep(1, nrow(x)) + w_sort <- weights[sorted] if(length(tree_seeds) == 1) set.seed(tree_seeds) @@ -690,13 +691,13 @@ orsf <- function(data, vi_max_pvalue = 0.01 - orsf_out <- orsf_cpp(x = x, - y = y, - w = weights, + orsf_out <- orsf_cpp(x = x_sort, + y = y_sort, + w = w_sort, tree_type_R = 3, tree_seeds = as.integer(tree_seeds), loaded_forest = list(), - n_tree = if(no_fit) 0 else n_tree, + n_tree = n_tree, mtry = mtry, vi_type_R = switch(importance, "none" = 0, @@ -745,21 +746,20 @@ orsf <- function(data, 'user' = 2), oobag_eval_every = oobag_eval_every, n_thread = n_thread, - write_forest = TRUE) - - # browser() + write_forest = TRUE, + run_forest = !no_fit) # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. orsf_out$data <- if(attach_data) data else NULL - if(importance != 'none'){ + if(importance != 'none' && !no_fit){ rownames(orsf_out$importance) <- colnames(x) orsf_out$importance <- rev(orsf_out$importance[order(orsf_out$importance), , drop=TRUE]) } - if(oobag_pred){ + if(oobag_pred && !no_fit){ # put the oob predictions into the same order as the training data. unsorted <- collapse::radixorder(sorted) @@ -833,7 +833,7 @@ orsf <- function(data, attr(orsf_out, 'split_rule') <- split_rule attr(orsf_out, 'n_thread') <- n_thread - attr(orsf_out, 'tree_seeds') <- if(is.null(tree_seeds)) c() else tree_seeds + attr(orsf_out, 'tree_seeds') <- tree_seeds #' @srrstats {ML5.0a} *orsf output has its own class* class(orsf_out) <- "orsf_fit" @@ -1037,17 +1037,17 @@ orsf_train_ <- function(object, -y[, 2]) # order this way for oob C-statistic. } + weights <- get_weights_user(object) x_sort <- x[sorted, ] y_sort <- y[sorted, ] + w_sort <- weights[sorted] oobag_eval_every <- min(n_tree, get_oobag_eval_every(object)) - weights <- get_weights_user(object) - - orsf_out <- orsf_cpp(x = x, - y = y, - w = weights, + orsf_out <- orsf_cpp(x = x_sort, + y = y_sort, + w = w_sort, tree_type_R = 3, tree_seeds = get_tree_seeds(object), loaded_forest = list(), @@ -1100,9 +1100,10 @@ orsf_train_ <- function(object, 'none' = 0, 'cstat' = 1, 'user' = 2), - oobag_eval_every = get_oobag_eval_every(object), + oobag_eval_every = oobag_eval_every, n_thread = get_n_thread(object), - write_forest = TRUE) + write_forest = TRUE, + run_forest = TRUE) object$pred_oobag <- orsf_out$pred_oobag diff --git a/R/orsf_attr.R b/R/orsf_attr.R index 64bdc97b..d42fd1c4 100644 --- a/R/orsf_attr.R +++ b/R/orsf_attr.R @@ -82,7 +82,7 @@ is_trained <- function(object) attr(object, 'trained') #' #' @noRd #' -contains_oobag <- function(object) {!is_empty(object$pred_oobag)} +contains_oobag <- function(object) {!is_empty(object$eval_oobag$stat_values)} #' Determine whether object has variable importance estimates #' diff --git a/src/Forest.cpp b/src/Forest.cpp index d7535b09..7dbdc791 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -72,14 +72,15 @@ void Forest::init(std::unique_ptr input_data, if(vi_type != VI_NONE){ vi_numer.zeros(data->get_n_cols()); - if(vi_type == VI_ANOVA){ vi_denom.zeros(data->get_n_cols()); } - } - if(VERBOSITY > 0){ + // oobag denominator tracks the number of times an obs is oobag + oobag_denom.zeros(data->get_n_rows()); + + if(VERBOSITY > 0){ Rcout << "------------ input data dimensions ------------" << std::endl; Rcout << "N obs total: " << data->get_n_rows() << std::endl; Rcout << "N columns total: " << data->get_n_cols() << std::endl; @@ -181,12 +182,12 @@ void Forest::grow() { vi_numer_threads[i].zeros(data->n_cols); if(vi_type == VI_ANOVA) vi_denom_threads[i].zeros(data->n_cols); - threads.emplace_back(&Forest::grow_in_threads, this, i, + threads.emplace_back(&Forest::grow_multi_thread, this, i, &(vi_numer_threads[i]), &(vi_denom_threads[i])); } - showProgress("Growing trees...", n_tree); + show_progress("Growing trees...", n_tree); for (auto &thread : threads) { thread.join(); @@ -227,7 +228,7 @@ void Forest::grow_single_thread(vec* vi_numer_ptr, } -void Forest::grow_in_threads(uint thread_idx, +void Forest::grow_multi_thread(uint thread_idx, vec* vi_numer_ptr, uvec* vi_denom_ptr) { @@ -266,6 +267,12 @@ void Forest::compute_oobag_vi() { // show progress from threads progress = 0; + if(n_thread == 1){ + vec* vi_numer_ptr = &vi_numer; + compute_oobag_vi_single_thread(vi_numer_ptr); + return; + } + std::vector threads; std::vector vi_numer_threads(n_thread); // no denominator b/c it is equal to n_tree for all oob vi methods @@ -276,11 +283,11 @@ void Forest::compute_oobag_vi() { vi_numer_threads[i].zeros(data->n_cols); - threads.emplace_back(&Forest::compute_oobag_vi_in_threads, + threads.emplace_back(&Forest::compute_oobag_vi_multi_thread, this, i, &(vi_numer_threads[i])); } - showProgress("Computing variable importance...", n_tree); + show_progress("Computing variable importance...", n_tree); for (auto &thread : threads) { thread.join(); @@ -296,8 +303,19 @@ void Forest::compute_oobag_vi() { } +void Forest::compute_oobag_vi_single_thread(vec* vi_numer_ptr) { + + for(uint i = 0; i < n_tree; ++i){ + + trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); + + Rcpp::checkUserInterrupt(); + + } + +} -void Forest::compute_oobag_vi_in_threads(uint thread_idx, vec* vi_numer_ptr) { +void Forest::compute_oobag_vi_multi_thread(uint thread_idx, vec* vi_numer_ptr) { if (thread_ranges.size() > thread_idx + 1) { @@ -324,10 +342,23 @@ void Forest::compute_oobag_vi_in_threads(uint thread_idx, vec* vi_numer_ptr) { } +void Forest::compute_prediction_accuracy(Data* prediction_data, + arma::mat& prediction_values, + arma::uword row_fill){ + + uvec valid_observations = find(oobag_denom > 0); + + mat y_valid = prediction_data->y_rows(valid_observations); + vec w_valid = prediction_data->w_subvec(valid_observations); + mat p_valid = prediction_values(valid_observations); + + compute_prediction_accuracy(y_valid, w_valid, p_valid, row_fill); + +} + mat Forest::predict(bool oobag) { mat result; - vec oob_denom; // No. of cols in pred mat depend on the type of forest resize_pred_mat(result); @@ -336,73 +367,76 @@ mat Forest::predict(bool oobag) { // (needs to be resized even if !oobag) resize_oobag_eval(); - // oobag denominator tracks the number of times an obs is oobag - if(oobag){ - oob_denom.zeros(data->n_rows); - } - progress = 0; aborted = false; aborted_threads = 0; - std::vector threads; - std::vector result_threads(n_thread); - std::vector oob_denom_threads(n_thread); + if(n_thread == 1){ + // ensure safe usage of R functions + predict_single_thread(data.get(), oobag, result); - threads.reserve(n_thread); + } else { - for (uint i = 0; i < n_thread; ++i) { + std::vector threads; + std::vector result_threads(n_thread); + std::vector oobag_denom_threads(n_thread); - resize_pred_mat(result_threads[i]); - if(oobag) oob_denom_threads[i].zeros(data->n_rows); + threads.reserve(n_thread); - threads.emplace_back(&Forest::predict_in_threads, - this, i, data.get(), oobag, - &(result_threads[i]), - &(oob_denom_threads[i])); - } + for (uint i = 0; i < n_thread; ++i) { - showProgress("Predicting...", n_tree); + resize_pred_mat(result_threads[i]); + if(oobag) oobag_denom_threads[i].zeros(data->n_rows); - // wait for all threads to finish before proceeding - for (auto &thread : threads) { - thread.join(); - } + threads.emplace_back(&Forest::predict_multi_thread, + this, i, data.get(), oobag, + &(result_threads[i]), + &(oobag_denom_threads[i])); + } - for(uint i = 0; i < n_thread; ++i){ + show_progress("Predicting...", n_tree); - result += result_threads[i]; + // wait for all threads to finish before proceeding + for (auto &thread : threads) { + thread.join(); + } - if(oobag){ + for(uint i = 0; i < n_thread; ++i){ + + result += result_threads[i]; - oob_denom += oob_denom_threads[i]; + if(oobag){ - // evaluate oobag error after joining each thread - // (only safe to do this when the condition below holds) - if(n_tree/oobag_eval_every == n_thread && n_thread>1 && i1 && ipredict_leaf(prediction_data, oobag); + + trees[i]->predict_value(&result, &oobag_denom, pred_type, oobag); + + progress++; + + // if user wants to track oobag error over time: + if(oobag && (progress % oobag_eval_every == 0) ){ + + uword eval_row = (progress / oobag_eval_every) - 1; + + + mat preds = result.each_col() / oobag_denom; + compute_prediction_accuracy(prediction_data, preds, eval_row); + + } + + } + +} + +void Forest::predict_multi_thread(uint thread_idx, + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr) { if (thread_ranges.size() > thread_idx + 1) { @@ -448,7 +509,7 @@ void Forest::predict_in_threads(uint thread_idx, mat preds = (*result_ptr); preds.each_col() /= (*denom_ptr); - compute_prediction_accuracy(prediction_data, eval_row, preds); + compute_prediction_accuracy(prediction_data, preds, eval_row); } @@ -468,6 +529,8 @@ arma::uword Forest::find_max_eval_steps(){ if(n_evals > n_tree) n_evals = n_tree; + if(n_evals < 1) n_evals = 1; + return(n_evals); } @@ -480,7 +543,7 @@ void Forest::resize_oobag_eval(){ } -void Forest::showProgress(std::string operation, size_t max_progress) { +void Forest::show_progress(std::string operation, size_t max_progress) { using std::chrono::steady_clock; using std::chrono::duration_cast; diff --git a/src/Forest.h b/src/Forest.h index d7fedf91..ac2e6f05 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -69,16 +69,16 @@ class Forest { // void run(bool verbose, bool oobag); virtual void compute_prediction_accuracy( - Data* prediction_data, - arma::uword row_fill, - arma::mat& predictions - ) = 0; + Data* prediction_data, + arma::mat& prediction_values, + arma::uword row_fill + ); virtual void compute_prediction_accuracy( arma::mat& y, arma::vec& w, - arma::uword row_fill, - arma::mat& predictions + arma::mat& predictions, + arma::uword row_fill ) = 0; std::vector> get_cutpoint() { @@ -202,24 +202,27 @@ class Forest { void grow_single_thread(vec* vi_numer_ptr, uvec* vi_denom_ptr); - void grow_in_threads(uint thread_idx, - vec* vi_numer_ptr, - uvec* vi_denom_ptr); - + void grow_multi_thread(uint thread_idx, + vec* vi_numer_ptr, + uvec* vi_denom_ptr); + void predict_single_thread(Data* prediction_data, + bool oobag, + mat& result); - void predict_in_threads(uint thread_idx, - Data* prediction_data, - bool oobag, - mat* result_ptr, - vec* denom_ptr); + void predict_multi_thread(uint thread_idx, + Data* prediction_data, + bool oobag, + mat* result_ptr, + vec* denom_ptr); void compute_oobag_vi(); - void compute_oobag_vi_in_threads(uint thread_idx, - vec* vi_numer_ptr); + void compute_oobag_vi_single_thread(vec* vi_numer_ptr); + + void compute_oobag_vi_multi_thread(uint thread_idx, vec* vi_numer_ptr); - void showProgress(std::string operation, size_t max_progress); + void show_progress(std::string operation, size_t max_progress); virtual void resize_pred_mat(arma::mat& p) = 0; @@ -276,6 +279,7 @@ class Forest { // out-of-bag bool oobag_pred; + arma::vec oobag_denom; arma::mat oobag_eval; EvalType oobag_eval_type; arma::uword oobag_eval_every; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 59e2acfc..52739af1 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -137,26 +137,34 @@ void ForestSurvival::resize_oobag_eval(){ } -void ForestSurvival::compute_prediction_accuracy(Data* prediction_data, - arma::uword row_fill, - arma::mat& predictions){ - - mat y = prediction_data->get_y(); - vec w = prediction_data->get_w(); - - compute_prediction_accuracy(y, w, row_fill, predictions); - -} - void ForestSurvival::compute_prediction_accuracy(arma::mat& y, arma::vec& w, - arma::uword row_fill, - arma::mat& predictions){ + arma::mat& predictions, + arma::uword row_fill){ bool pred_is_risklike = true; if(pred_type == PRED_SURVIVAL) pred_is_risklike = false; + + if(oobag_eval_type == EVAL_R_FUNCTION){ + + // initialize function from tree object + // (Functions can't be stored in C++ classes, but Robjects can) + Function f_oobag_eval = as(oobag_R_function); + NumericMatrix y_ = wrap(y); + NumericVector w_ = wrap(w); + + for(arma::uword i = 0; i < oobag_eval.n_cols; ++i){ + vec p = predictions.col(i); + NumericVector p_ = wrap(p); + NumericVector R_result = f_oobag_eval(y_, w_, p_); + oobag_eval(row_fill, i) = R_result[0]; + } + return; + } + + for(arma::uword i = 0; i < oobag_eval.n_cols; ++i){ vec p = predictions.unsafe_col(i); oobag_eval(row_fill, i) = compute_cstat(y, w, p, pred_is_risklike); diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index e1dfa69e..2161d0ad 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -41,17 +41,11 @@ class ForestSurvival: public Forest { // growInternal() in ranger void plant() override; - void compute_prediction_accuracy( - Data* prediction_data, - arma::uword row_fill, - arma::mat& predictions - ) override; - void compute_prediction_accuracy( arma::mat& y, arma::vec& w, - arma::uword row_fill, - arma::mat& predictions + arma::mat& predictions, + arma::uword row_fill ) override; protected: diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 578c81bd..e09c8c63 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -56,8 +56,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -96,7 +96,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest)); + Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest)); return rcpp_result_gen; END_RCPP } @@ -105,7 +106,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 35}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 36}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index c66622d4..bf1b6a7f 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -857,7 +857,7 @@ } - if(n_retry == split_max_retry){ + if(n_retry >= split_max_retry){ sprout_leaf(*node); break; } @@ -955,6 +955,10 @@ } + if(VERBOSITY > 0){ + Rcout << "---- done with leaf predictions ----" << std::endl; + } + } double Tree::compute_prediction_accuracy(arma::vec& preds){ diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index c65768fe..bec3d1c9 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -559,6 +559,7 @@ vec leaf_times, leaf_values; vec temp_vec((*pred_horizon).size()); + double temp_dbl; do { diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 373a57f6..3f78d5f6 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -105,7 +105,8 @@ arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, - bool write_forest){ + bool write_forest, + bool run_forest){ List result; @@ -202,7 +203,10 @@ } - forest->run(false, oobag); + if(run_forest){ + forest->run(false, oobag); + } + if(pred_mode){ @@ -248,10 +252,12 @@ vec vi_output; - if(vi_type == VI_ANOVA){ - vi_output = forest->get_vi_numer() / forest->get_vi_denom(); - } else { - vi_output = forest->get_vi_numer() / n_tree; + if(run_forest){ + if(vi_type == VI_ANOVA){ + vi_output = forest->get_vi_numer() / forest->get_vi_denom(); + } else { + vi_output = forest->get_vi_numer() / n_tree; + } } result.push_back(vi_output, "importance"); diff --git a/src/utility.cpp b/src/utility.cpp index dff45ce2..572a0683 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -161,9 +161,9 @@ } double compute_cstat(arma::mat& y, - arma::vec& w, - arma::vec& p, - bool pred_is_risklike){ + arma::vec& w, + arma::vec& p, + bool pred_is_risklike){ vec y_time = y.unsafe_col(0); vec y_status = y.unsafe_col(1); @@ -209,9 +209,9 @@ double compute_cstat(arma::mat& y, - arma::vec& w, - arma::uvec& g, - bool pred_is_risklike){ + arma::vec& w, + arma::uvec& g, + bool pred_is_risklike){ // note: g must have only values of 0 and 1 to use this. // note: this is a little different in its approach than diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 213c64b2..a443555c 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -3,13 +3,6 @@ library(survival) # for Surv # misc functions used for tests ---- -cstat_bcj <- function(y_mat, s_vec){ - - sorted <- order( y_mat[, 1], -y_mat[, 2]) - oobag_c_harrell_testthat(y_mat[sorted, ], s_vec[sorted, ]) - -} - no_miss_list <- function(l){ sapply(l, function(x){ @@ -535,24 +528,24 @@ for(i in vars){ fit_orsf <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_thread = 1, - n_tree = 10, - tree_seeds = 1:10) + n_tree = 100, + tree_seeds = 1:100) fit_orsf_2 <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_thread = 5, - n_tree = 10, - tree_seeds = 1:10) + n_tree = 100, + tree_seeds = 1:100) fit_orsf_noise <- orsf(pbc_noise, Surv(time, status) ~ . - id, - n_tree = 10, - tree_seeds = 1:10) + n_tree = 100, + tree_seeds = 1:100) fit_orsf_scale <- orsf(pbc_scale, Surv(time, status) ~ . - id, - n_tree = 10, - tree_seeds = 1:10) + n_tree = 100, + tree_seeds = 1:100) #' @srrstats {ML7.1} *Demonstrate effect of numeric scaling of input data.* test_that( @@ -614,9 +607,6 @@ test_that( expect_equal(fit_orsf$forest$leaf_summary, fit_orsf_scale$forest$leaf_summary) - expect_equal(fit_orsf$forest$leaf_summary, - fit_orsf_noise$forest$leaf_summary) - } ) @@ -625,8 +615,8 @@ test_that( code = { object <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 10, - tree_seeds = 1:10, + n_tree = 100, + tree_seeds = 1:100, no_fit = TRUE) fit_orsf_3 <- orsf_train(object) @@ -654,13 +644,13 @@ test_that( desc = 'oob rows identical with same tree seeds, oob error correct for user-specified function', code = { - tree_seeds = sample.int(n = 50000, size = 10) + tree_seeds = sample.int(n = 50000, size = 100) bad_tree_seeds <- c(1,2,3) expect_error( orsf(data = pbc_orsf, formula = time+status~.-id, - n_tree = 10, + n_tree = 100, mtry = 2, tree_seeds = bad_tree_seeds), regexp = 'the number of trees' @@ -668,26 +658,33 @@ test_that( fit_1 <- orsf(data = pbc_orsf, formula = time+status~.-id, - n_tree = 10, + n_tree = 100, mtry = 2, tree_seeds = tree_seeds) fit_2 <- orsf(data = pbc_orsf, formula = time+status~.-id, - n_tree = 10, + n_tree = 100, mtry = 6, tree_seeds = tree_seeds) + expect_equal(fit_1$forest$rows_oobag, + fit_2$forest$rows_oobag) + fit_3 <- orsf(data = pbc_orsf, formula = time+status~.-id, - n_tree = 10, + n_tree = 100, mtry = 6, - oobag_fun = oobag_c_harrell, + oobag_fun = oobag_c_survival, tree_seeds = tree_seeds) expect_equal( - fit_2$eval_oobag$stat_values, - fit_3$eval_oobag$stat_values + oobag_c_survival( + y_mat = as.matrix(pbc_orsf[,c("time", "status")]), + w_vec = rep(1, nrow(pbc_orsf)), + s_vec = fit_3$pred_oobag + ), + as.numeric(fit_3$eval_oobag$stat_values) ) } diff --git a/vignettes/oobag.Rmd b/vignettes/oobag.Rmd index 72dfb5b4..bb08eafe 100644 --- a/vignettes/oobag.Rmd +++ b/vignettes/oobag.Rmd @@ -18,7 +18,7 @@ knitr::opts_chunk$set( ```{r setup} -library(aorsf) +# library(aorsf) library(survival) library(SurvMetrics) @@ -39,7 +39,7 @@ Let's fit an oblique random survival forest and plot the distribution of the ens fit <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, oobag_pred_type = 'surv', - oobag_pred_horizon = 3500) + oobag_pred_horizon = 2000) hist(fit$pred_oobag, main = 'Ensemble out-of-bag survival predictions at t=3,500') @@ -69,7 +69,8 @@ As each out-of-bag data set contains about one-third of the training set, the ou fit <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, n_tree = 50, - oobag_pred_horizon = 3500, + oobag_pred_type = 'surv', + oobag_pred_horizon = 2000, oobag_eval_every = 1) plot( @@ -90,7 +91,7 @@ In some cases, you may want more control over how out-of-bag error is estimated. ```{r} -oobag_fun_brier <- function(y_mat, s_vec){ +oobag_fun_brier <- function(y_mat, w_vec, s_vec){ # output is numeric vector of length 1 as.numeric( @@ -98,7 +99,7 @@ oobag_fun_brier <- function(y_mat, s_vec){ object = Surv(time = y_mat[, 1], event = y_mat[, 2]), pre_sp = s_vec, # t_star in Brier() should match oob_pred_horizon in orsf() - t_star = 3500 + t_star = 2000 ) ) @@ -109,7 +110,7 @@ There are two ways to apply your own function to compute out-of-bag error. First ```{r} -oobag_fun_brier(y_mat = fit$data[, c('time', 'status')], +oobag_fun_brier(y_mat = pbc_orsf[,c('time', 'status')], s_vec = fit$pred_oobag) ``` @@ -120,13 +121,13 @@ Second, you can pass your function into `orsf()`, and it will be used in place o fit <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, - n_tree = 50, - oobag_pred_horizon = 3500, + n_tree = 500, + oobag_pred_horizon = 2000, oobag_fun = oobag_fun_brier, - oobag_eval_every = 1) + oobag_eval_every = 25) plot( - x = seq(1, 50, by = 1), + x = seq(25, 500, by = 25), y = fit$eval_oobag$stat_values, main = 'Out-of-bag error computed after each new tree is grown.', sub = 'For the Brier score, lower values indicate more accurate predictions', @@ -140,13 +141,13 @@ We can also compute a time-dependent C-statistic instead of Harrell's C-statisti ```{r} -oobag_fun_tdep_cstat <- function(y_mat, s_vec){ +oobag_fun_tdep_cstat <- function(y_mat, w_vec, s_vec){ as.numeric( SurvMetrics::Cindex( object = Surv(time = y_mat[, 1], event = y_mat[, 2]), predicted = s_vec, - t_star = 3500 + t_star = 2000 ) ) @@ -155,7 +156,7 @@ oobag_fun_tdep_cstat <- function(y_mat, s_vec){ fit <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, n_tree = 50, - oobag_pred_horizon = 3500, + oobag_pred_horizon = 2000, oobag_fun = oobag_fun_tdep_cstat, oobag_eval_every = 1) @@ -210,11 +211,11 @@ Negation importance is based on the out-of-bag error, so of course you may be cu ```{r} fit_tdep_cstat <- orsf(data = pbc_orsf, - formula = Surv(time, status) ~ . - id, - n_tree = 500, - oobag_pred_horizon = 3500, - oobag_fun = oobag_fun_tdep_cstat, - importance = 'negate') + formula = Surv(time, status) ~ . - id, + n_tree = 50, + oobag_pred_horizon = 2000, + oobag_fun = oobag_fun_tdep_cstat, + importance = 'negate') fit_tdep_cstat$importance From aac2a1c6466d488718c0ba80809faae371beaf9c Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 23 Sep 2023 13:49:57 -0400 Subject: [PATCH 079/103] much closer to survival::concordance --- R/{oobag_c_harrell.R => oobag_c_survival.R} | 10 ++- src/utility.cpp | 19 ++--- tests/testthat/test-concordance.R | 85 +++++++++++---------- 3 files changed, 62 insertions(+), 52 deletions(-) rename R/{oobag_c_harrell.R => oobag_c_survival.R} (60%) diff --git a/R/oobag_c_harrell.R b/R/oobag_c_survival.R similarity index 60% rename from R/oobag_c_harrell.R rename to R/oobag_c_survival.R index 03734cb8..425c87d8 100644 --- a/R/oobag_c_harrell.R +++ b/R/oobag_c_survival.R @@ -14,9 +14,13 @@ oobag_c_survival <- function(y_mat, w_vec, s_vec){ - survival::concordancefit( - y = survival::Surv(y_mat), - x = s_vec + data <- as.data.frame(cbind(y_mat, s_vec)) + names(data) = c("time", "status", "x") + + survival::concordance( + survival::Surv(time, status) ~ x, + data = data, + weights = w_vec )$concordance } diff --git a/src/utility.cpp b/src/utility.cpp index 572a0683..9326b56f 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -177,17 +177,18 @@ for(uword i = *event; i < y.n_rows; ++i){ - if (y_time[i] > y_time[*event]) { // ties not counted + // tied events not counted + if (y_time[i] > y_time[*event] || y_status[i] == 0) { - total += w[i]; + total += ( (w[i] + w[*event]) / 2 ); if (p[i] < p[*event]){ - concordant += w[i]; + concordant += ( (w[i]+w[*event]) / 2 ); } else if (p[i] == p[*event]){ - concordant += (w[i] / 2); + concordant += ( (w[i]+w[*event]) / 4 ); } @@ -234,9 +235,9 @@ for(uword j = i; j < y.n_rows; ++j){ // ties not counted - if (y_time[j] > y_time[i]) { + if (y_time[j] > y_time[i] || y_status[j] == 0) { - total += w[j]; + total += ( (w[i]+w[j]) / 2 ); // time_i < time_j, and person i had an event, // => if risk_i > risk_j we are concordant. @@ -247,17 +248,17 @@ // => subtract 1 from g, multiply by -1, divide by 2 if(g_0){ - if(g[j] == 0) concordant += (w[j]/2); + if(g[j] == 0) concordant += ( (w[i]+w[j]) / 4 ); } else if (g[j] == 1){ // if risk_i is 1 and risk_j is 1, a tie - concordant += (w[j]/2); + concordant += ( (w[i]+w[j]) / 4 ); } else { // if risk_i is 1 and risk_j is 0, concordance - concordant += (w[j]); + concordant += ( (w[i]+w[j]) / 2 ); } diff --git a/tests/testthat/test-concordance.R b/tests/testthat/test-concordance.R index 4c84f728..0c0f4cb2 100644 --- a/tests/testthat/test-concordance.R +++ b/tests/testthat/test-concordance.R @@ -3,66 +3,71 @@ test_that( desc = 'C-statistic is close to survival::concordance', code = { + library(survival) y_mat <- as.matrix(pbc_orsf[, c('time', 'status')]) - s_vec <- pbc_orsf$bili[sorted] sorted <- - collapse::radixorder(y_mat[, 'time'], # order this way for risk sets - -y_mat[, 'status']) # order this way for oob C-statistic. - + collapse::radixorder(y_mat[, 'time'], -y_mat[, 'status']) y_mat <- y_mat[sorted, ] - s_vec <- s_vec[sorted] - s_uvec <- as.integer(s_vec > 1) + x_vars <- c("bili", "chol", "trig") + + set.seed(329) + + n_runs <- 100 + + diffs_vec <- diffs_uvec<- diffs_vec_wtd <- diffs_uvec_wtd <- + vector(mode = 'numeric', length = n_runs) + + for(i in seq(n_runs)){ + + x_var <- sample(x_vars, 1) + + s_vec <- pbc_orsf[[x_var]][sorted] + rnorm(nrow(y_mat), mean=0, sd=1) + s_uvec <- as.integer(s_vec > 1) + + w_1s <- rep(1, nrow(y_mat)) + w_rs <- sample(1:5, nrow(y_mat), replace = TRUE) - survival_vec <- survival::concordancefit( - y = survival::Surv(y_mat), - x = 1-s_vec - )$concordance + survival_vec <- 1-oobag_c_survival(y_mat, w_1s, s_vec) + survival_vec_wtd <- 1-oobag_c_survival(y_mat, w_rs, s_vec) - survival_uvec <- survival::concordancefit( - y = survival::Surv(y_mat), - x = 1-s_uvec - )$concordance + survival_uvec <- 1-oobag_c_survival(y_mat, w_1s, s_uvec) + survival_uvec_wtd <- 1-oobag_c_survival(y_mat, w_rs, s_uvec) - w <- rep(1, nrow(y_mat)) + aorsf_vec <- compute_cstat_exported_vec(y_mat, w_1s, s_vec, TRUE) + aorsf_vec_wtd <- compute_cstat_exported_vec(y_mat, w_rs, s_vec, TRUE) - aorsf_vec <- compute_cstat_exported_vec( - y_mat, w, s_vec, pred_is_risklike = TRUE - ) + aorsf_uvec <- compute_cstat_exported_uvec(y_mat, w_1s, s_uvec, TRUE) + aorsf_uvec_wtd <- compute_cstat_exported_uvec(y_mat, w_rs, s_uvec, TRUE) - aorsf_uvec <- compute_cstat_exported_uvec( - y_mat, w, s_uvec, pred_is_risklike = TRUE - ) + diffs_vec[i] <- abs(survival_vec - aorsf_vec) + diffs_uvec[i] <- abs(survival_uvec - aorsf_uvec) - # close enough to cstat from survival - expect_lt(abs(survival_vec - aorsf_vec), 0.01) - expect_lt(abs(survival_uvec - aorsf_uvec), 0.01) + diffs_vec_wtd[i] <- abs(survival_vec_wtd - aorsf_vec_wtd) + diffs_uvec_wtd[i] <- abs(survival_uvec_wtd - aorsf_uvec_wtd) + } + # unweighted is basically identical to cstat from survival + expect_lt(mean(diffs_vec), 0.001) + expect_lt(mean(diffs_uvec), 0.001) + # weighted is very close + expect_lt(mean(diffs_vec_wtd), 0.01) + expect_lt(mean(diffs_uvec_wtd), 0.01) } ) -# # aorsf about 2 times faster +# # aorsf about 3 times faster, probably b/c survival::concordance +# # does a lot more, e.g. variance estimation # microbenchmark::microbenchmark( -# survival = survival::concordancefit( -# y = survival::Surv(y_mat), -# x = s_vec -# ), -# aorsf = compute_cstat_exported_vec( -# y_mat, w, s_vec, pred_is_risklike = FALSE -# ) +# survival = oobag_c_survival(y_mat, w_rs, s_vec), +# aorsf = compute_cstat_exported_vec(y_mat, w_rs, s_vec, F) # ) # -# # aorsf about 2 times faster # microbenchmark::microbenchmark( -# survival = survival::concordancefit( -# y = survival::Surv(y_mat), -# x = s_uvec -# ), -# aorsf = compute_cstat_exported_uvec( -# y_mat, w, s_uvec, pred_is_risklike = FALSE -# ) +# survival = oobag_c_survival(y_mat, w_rs, s_uvec), +# aorsf = compute_cstat_exported_uvec(y_mat, w_rs, s_uvec, F) # ) From cb4476cf39295f0e79a2b6f51cf15ec48c0a34ea Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sat, 23 Sep 2023 21:37:31 -0400 Subject: [PATCH 080/103] starting to make verbosity more flexible --- R/RcppExports.R | 4 +- R/check.R | 16 +++-- R/orsf.R | 8 ++- scratch.R | 9 +-- src/Forest.cpp | 39 ++++++++--- src/Forest.h | 6 +- src/ForestSurvival.cpp | 1 + src/RcppExports.cpp | 9 +-- src/Tree.cpp | 128 ++++++++++++++++--------------------- src/Tree.h | 6 +- src/TreeSurvival.cpp | 5 +- src/orsf_oop.cpp | 6 +- src/utility.cpp | 25 ++++++-- src/utility.h | 1 + tests/testthat/test-orsf.R | 94 ++++++++++++--------------- 15 files changed, 191 insertions(+), 166 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 00761fac..27bc4b9b 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) } diff --git a/R/check.R b/R/check.R index 04ee0216..61ed4d6a 100644 --- a/R/check.R +++ b/R/check.R @@ -939,13 +939,17 @@ check_orsf_inputs <- function(data = NULL, arg_name = 'oobag_pred_horizon', expected_type = 'numeric') - check_arg_length(arg_value = oobag_pred_horizon, - arg_name = 'oobag_pred_horizon', - expected_length = 1) + # check_arg_length(arg_value = oobag_pred_horizon, + # arg_name = 'oobag_pred_horizon', + # expected_length = 1) - check_arg_gteq(arg_value = oobag_pred_horizon, - arg_name = 'oobag_pred_horizon', - bound = 0) + for(i in seq_along(oobag_pred_horizon)){ + + check_arg_gteq(arg_value = oobag_pred_horizon[i], + arg_name = 'oobag_pred_horizon', + bound = 0) + + } } diff --git a/R/orsf.R b/R/orsf.R index e5aff569..f6b1f6ea 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -662,7 +662,7 @@ orsf <- function(data, if(!is.null(oobag_pred_horizon)){ - if(oobag_pred_horizon <= 0) + if(any(oobag_pred_horizon <= 0)) stop("Out of bag prediction horizon (oobag_pred_horizon) must be > 0", call. = FALSE) @@ -747,7 +747,8 @@ orsf <- function(data, oobag_eval_every = oobag_eval_every, n_thread = n_thread, write_forest = TRUE, - run_forest = !no_fit) + run_forest = !no_fit, + verbosity = verbose_progress) # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. @@ -1103,7 +1104,8 @@ orsf_train_ <- function(object, oobag_eval_every = oobag_eval_every, n_thread = get_n_thread(object), write_forest = TRUE, - run_forest = TRUE) + run_forest = TRUE, + verbosity = get_verbose_progress(object)) object$pred_oobag <- orsf_out$pred_oobag diff --git a/scratch.R b/scratch.R index b11fdc1d..ca08e548 100644 --- a/scratch.R +++ b/scratch.R @@ -4,13 +4,14 @@ library(survival) sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 500, - oobag_eval_every = 50, - n_thread = 10, + n_tree = 2, + n_thread = 1, + mtry = 2, oobag_pred_type = 'mort', split_rule = 'logrank', importance = 'negate', - split_min_stat = 3) + split_min_stat = 3, + verbose_progress = 4) sink() orsf_vi(fit) diff --git a/src/Forest.cpp b/src/Forest.cpp index 7dbdc791..f96e8394 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -41,7 +41,8 @@ void Forest::init(std::unique_ptr input_data, EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, - uint n_thread){ + uint n_thread, + int verbosity){ this->data = std::move(input_data); this->tree_seeds = tree_seeds; @@ -69,6 +70,7 @@ void Forest::init(std::unique_ptr input_data, this->oobag_eval_every = oobag_eval_every; this->oobag_R_function = oobag_R_function; this->n_thread = n_thread; + this->verbosity = verbosity; if(vi_type != VI_NONE){ vi_numer.zeros(data->get_n_cols()); @@ -80,12 +82,15 @@ void Forest::init(std::unique_ptr input_data, // oobag denominator tracks the number of times an obs is oobag oobag_denom.zeros(data->get_n_rows()); - if(VERBOSITY > 0){ - Rcout << "------------ input data dimensions ------------" << std::endl; - Rcout << "N obs total: " << data->get_n_rows() << std::endl; - Rcout << "N columns total: " << data->get_n_cols() << std::endl; + if(verbosity > 1){ + + Rcout << "------------ input data dimensions ------------" << std::endl; + Rcout << "N observations total: " << data->get_n_rows() << std::endl; + Rcout << "N columns total: " << data->get_n_cols() << std::endl; Rcout << "-----------------------------------------------"; - Rcout << std::endl << std::endl; + Rcout << std::endl; + Rcout << std::endl; + } } @@ -140,7 +145,8 @@ void Forest::init_trees(){ lincomb_alpha, lincomb_df_target, lincomb_ties_method, - lincomb_R_function); + lincomb_R_function, + verbosity); } @@ -215,9 +221,22 @@ void Forest::grow_single_thread(vec* vi_numer_ptr, for (uint i = 0; i < n_tree; ++i) { + if(verbosity > 1){ + Rcout << "------------ Growing tree " << i << " --------------"; + Rcout << std::endl; + Rcout << std::endl; + } + trees[i]->grow(vi_numer_ptr, vi_denom_ptr); if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + + if(verbosity > 1){ + Rcout << "------------ Computing VI for tree " << i << " -----"; + Rcout << std::endl; + Rcout << std::endl; + } + trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); } @@ -229,8 +248,8 @@ void Forest::grow_single_thread(vec* vi_numer_ptr, void Forest::grow_multi_thread(uint thread_idx, - vec* vi_numer_ptr, - uvec* vi_denom_ptr) { + vec* vi_numer_ptr, + uvec* vi_denom_ptr) { if (thread_ranges.size() > thread_idx + 1) { @@ -350,7 +369,7 @@ void Forest::compute_prediction_accuracy(Data* prediction_data, mat y_valid = prediction_data->y_rows(valid_observations); vec w_valid = prediction_data->w_subvec(valid_observations); - mat p_valid = prediction_values(valid_observations); + mat p_valid = prediction_values.rows(valid_observations); compute_prediction_accuracy(y_valid, w_valid, p_valid, row_fill); diff --git a/src/Forest.h b/src/Forest.h index ac2e6f05..3bfd0b2c 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -63,7 +63,8 @@ class Forest { EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, - uint n_thread); + uint n_thread, + int verbosity); // Grow or predict // void run(bool verbose, bool oobag); @@ -296,6 +297,9 @@ class Forest { size_t aborted_threads; bool aborted; + // printing to console + int verbosity; + }; diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 52739af1..103ac879 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -170,6 +170,7 @@ void ForestSurvival::compute_prediction_accuracy(arma::mat& y, oobag_eval(row_fill, i) = compute_cstat(y, w, p, pred_is_risklike); } + } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index e09c8c63..0d9fb20b 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -56,8 +56,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -97,7 +97,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest)); + Rcpp::traits::input_parameter< int >::type verbosity(verbositySEXP); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity)); return rcpp_result_gen; END_RCPP } @@ -106,7 +107,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 36}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 37}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index bf1b6a7f..9928377e 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -39,7 +39,8 @@ lincomb_alpha(DEFAULT_LINCOMB_ALPHA), lincomb_df_target(0), lincomb_ties_method(DEFAULT_LINCOMB_TIES_METHOD), - lincomb_R_function(0) { + lincomb_R_function(0), + verbosity(0){ } @@ -72,6 +73,7 @@ lincomb_df_target(0), lincomb_ties_method(DEFAULT_LINCOMB_TIES_METHOD), lincomb_R_function(0), + verbosity(0), cutpoint(cutpoint), child_left(child_left), coef_values(coef_values), @@ -102,7 +104,8 @@ double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, - RObject lincomb_R_function){ + RObject lincomb_R_function, + int verbosity){ // Initialize random number generator and set seed random_number_generator.seed(seed); @@ -131,6 +134,7 @@ this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; this->lincomb_R_function = lincomb_R_function; + this->verbosity = verbosity; } @@ -477,26 +481,9 @@ } - - // important that cut-points are ordered from low to high cuts_sampled = sort(cuts_sampled); - if(VERBOSITY > 1){ - - Rcout << "Randomly sampled cutpoints: "; - Rcout << std::endl; - Rcout << lincomb(lincomb_sort(cuts_sampled)); - Rcout << std::endl; - Rcout << std::endl; - - } - - // // non-random version - // cuts_sampled = linspace(cuts_all.front(), - // cuts_all.back(), - // split_max_cuts); - } @@ -522,32 +509,28 @@ // set up next loop run it_start = *it; - if(VERBOSITY > 0){ - mat temp = join_rows(lincomb, conv_to::from(g_node)); - temp = join_rows(temp, w_node); - temp = temp.rows(lincomb_sort); - Rcout << "testing cutpoint: " << lincomb.at(lincomb_sort(*it)); - Rcout << std::endl; - Rcout << std::endl; - print_mat(temp, "lincomb & g_node & w_node", 20, 20); - Rcout << "split stat for this cutpoint: " << stat; - Rcout << std::endl; - Rcout << " ------------------------------------------- "; - Rcout << std::endl; + if(verbosity > 3){ + Rcout << " ---- cutpoint (score): "; + Rcout << lincomb.at(lincomb_sort(*it)); + Rcout << " (" << stat << "), "; + Rcout << "N = " << sum(g_node % w_node) << " moving right"; Rcout << std::endl; } } + if(verbosity > 3){ + Rcout << std::endl; + Rcout << " ---- best stat: " << stat_best; + Rcout << ", min to split: " << split_min_stat; + Rcout << std::endl; + Rcout << std::endl; + } + + // do not split if best stat < minimum stat if(stat_best < split_min_stat){ - if(VERBOSITY > 1){ - Rcout << "best split stat, " << stat_best; - Rcout << ", was < split_min_stat, " << split_min_stat; - Rcout << std::endl; - } - return(R_PosInf); } @@ -565,8 +548,8 @@ void Tree::sprout_leaf(uword node_id){ - if(VERBOSITY > 0){ - Rcout << "sprouting new leaf with node " << node_id; + if(verbosity > 3){ + Rcout << "-- sprouting node " << node_id << " into a leaf"; Rcout << std::endl; Rcout << std::endl; } @@ -607,26 +590,20 @@ this->n_obs_inbag = sum(w_inbag); this->n_rows_inbag = x_inbag.n_rows; - if(VERBOSITY > 0){ - - Rcout << "Effective sample size: " << n_obs_inbag; - Rcout << std::endl; - Rcout << "Number of unique rows in x: " << n_rows_inbag; - Rcout << std::endl; - Rcout << std::endl; - - } - node_assignments.zeros(n_rows_inbag); this->max_leaves = compute_max_leaves(); this->max_nodes = (2 * max_leaves) - 1; - if(VERBOSITY > 0){ + if(verbosity > 2){ - Rcout << "Max number of nodes for this tree: " << max_nodes; + Rcout << "- N obs inbag: " << n_obs_inbag; Rcout << std::endl; - Rcout << "Max number of leaves for this tree: " << max_leaves; + Rcout << "- N row inbag: " << n_rows_inbag; + Rcout << std::endl; + Rcout << "- max nodes: " << max_nodes; + Rcout << std::endl; + Rcout << "- max leaves: " << max_leaves; Rcout << std::endl; Rcout << std::endl; @@ -670,18 +647,10 @@ for(node = nodes_open.begin(); node != nodes_open.end(); ++node){ - if(VERBOSITY > 0){ - Rcout << "growing node " << *node; - Rcout << std::endl << std::endl; - } - - // determine rows in the current node and if it can be split if(!is_node_splittable(*node)){ - sprout_leaf(*node); continue; - } uword n_retry = 0; @@ -694,22 +663,22 @@ // repeat until all the retries are spent. n_retry++; - if(VERBOSITY > 1){ - - Rcout << "beginning try no. " << n_retry; - Rcout << std::endl << std::endl; + if(verbosity > 3){ + Rcout << "-- attempting to split node " << *node; + Rcout << " (N = " << sum(w_node) << ","; + Rcout << " try number " << n_retry << ")"; + Rcout << std::endl; + Rcout << std::endl; } + sample_cols(); x_node = x_inbag(rows_node, cols_node); - if(VERBOSITY > 0) { - - - print_mat(x_node, "x_node", 20, 20); - print_mat(y_node, "y_node", 20, 20); + if(verbosity > 3) { + print_uvec(cols_node, "columns sampled (showing up to 5)", 5); } // beta holds estimates (first item) and variance (second) @@ -727,7 +696,6 @@ lincomb_scale, lincomb_ties_method, lincomb_eps, lincomb_iter_max); - break; } @@ -788,6 +756,11 @@ vec beta_est = beta.unsafe_col(0); + if(verbosity > 3) { + print_vec(beta_est, "linear combo weights (showing up to 5)", 5); + } + + lincomb = x_node * beta_est; // sorted in ascending order @@ -796,6 +769,14 @@ // find all valid cutpoints for lincomb cuts_all = find_cutpoints(); + if(verbosity > 3){ + + Rcout << " ---- no. of cutpoints identified: " << cuts_all.size(); + Rcout << std::endl; + Rcout << std::endl; + + } + // empty cuts_all => no valid cutpoints => make leaf or retry if(!cuts_all.is_empty()){ @@ -842,10 +823,11 @@ // (note that g_node is 0 if left, 1 if right) node_assignments.elem(rows_node) = node_left + g_node; - if(VERBOSITY > 1){ - Rcout << "Split successful: unique node assignments: "; + if(verbosity > 2){ + Rcout << "-- node " << *node << " was split into "; + Rcout << "node " << node_left << " (left) and "; + Rcout << node_left+1 << " (right)"; Rcout << std::endl; - Rcout << unique(node_assignments).t(); Rcout << std::endl; } diff --git a/src/Tree.h b/src/Tree.h index c0e5fc84..e16efc9b 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -55,7 +55,8 @@ double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, - Rcpp::RObject lincomb_R_function); + Rcpp::RObject lincomb_R_function, + int verbosity); virtual void resize_leaves(arma::uword new_size); @@ -214,6 +215,8 @@ arma::uword lincomb_ties_method; Rcpp::RObject lincomb_R_function; + int verbosity; + // predicted leaf node arma::uvec pred_leaf; @@ -239,6 +242,7 @@ // leaf values (only in leaf nodes) std::vector leaf_summary; + virtual double compute_prediction_accuracy(arma::vec& preds); }; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index bec3d1c9..b1e4d8a7 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -396,8 +396,9 @@ void TreeSurvival::sprout_leaf(uword node_id){ - if(VERBOSITY > 0){ - Rcout << "sprouting new leaf with node " << node_id; + if(verbosity > 3){ + Rcout << "-- sprouting node " << node_id << " into a leaf"; + Rcout << " (N = " << sum(w_node) << ")"; Rcout << std::endl; Rcout << std::endl; } diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 3f78d5f6..f4e0257e 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -106,7 +106,8 @@ arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, - bool run_forest){ + bool run_forest, + int verbosity){ List result; @@ -177,7 +178,8 @@ oobag_eval_type, oobag_eval_every, oobag_R_function, - n_thread); + n_thread, + verbosity); // Load forest object if in prediction mode if(pred_mode){ diff --git a/src/utility.cpp b/src/utility.cpp index 9326b56f..77c72d3b 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -37,10 +37,15 @@ uword n_print = max_elem-1; - if(x.size() < n_print) n_print = x.size()-1; - + if(x.size() <= n_print) n_print = x.size()-1; Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; - Rcout << x.subvec(0, n_print); + + if(x.size() == 0){ + Rcout << " empty vector"; + } else { + Rcout << x.subvec(0, n_print).t(); + } + Rcout << std::endl << std::endl; } @@ -49,9 +54,18 @@ std::string label, arma::uword max_elem){ - vec x_vec = conv_to::from(x); + uword n_print = max_elem-1; - print_vec(x_vec, label, max_elem); + if(x.size() <= n_print) n_print = x.size()-1; + Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + + if(x.size() == 0){ + Rcout << " empty vector"; + } else { + Rcout << x.subvec(0, n_print).t(); + } + + Rcout << std::endl << std::endl; } @@ -204,6 +218,7 @@ // code above assumes higher predictions mean more risk, if(pred_is_risklike) return(concordant / total); // if that isn't true (e.g., a survival prediction): + return(1 - (concordant / total)); } diff --git a/src/utility.h b/src/utility.h index ac06f0a8..016cd953 100644 --- a/src/utility.h +++ b/src/utility.h @@ -40,6 +40,7 @@ aorsf may be modified and distributed under the terms of the MIT license. std::string label, arma::uword max_elem); + /** * Convert a unsigned integer to string * @param number Number to convert diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index a443555c..f189d28a 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -807,7 +807,7 @@ test_that( test_that( - desc = 'orsf() runs as intended across numerous possible architectures', + desc = 'orsf() runs as intended for many valid inputs', code = { #' @srrstats {ML7.9a} *form combinations of inputs using `expand.grid()`.* @@ -821,11 +821,22 @@ test_that( leaf_min_obs = c(5, 10), split_min_events = 5, split_min_obs = 15, - oobag_pred_type = c('none', 'risk', 'surv', 'chf'), - oobag_pred_horizon = c(1000), + oobag_pred_type = c('none', 'risk', 'surv', 'chf', 'mort'), + oobag_pred_horizon = c(1,2,3), + orsf_control = c('cph', 'net', 'custom'), stringsAsFactors = FALSE ) + f_pca <- function(x_node, y_node, w_node) { + + # estimate two principal components. + pca <- stats::prcomp(x_node, rank. = 2) + + # use a random principal component to split the node + pca$rotation[, 2, drop = FALSE] + + } + for(i in seq(nrow(inputs))){ data_fun <- switch( @@ -835,19 +846,29 @@ test_that( 'data.table' = as.data.table ) - fit_cph <- orsf(data = data_fun(pbc_orsf), - formula = time + status ~ . - id, - control = orsf_control_cph(), - n_tree = inputs$n_tree[i], - n_split = inputs$n_split[i], - n_retry = inputs$n_retry[i], - mtry = inputs$mtry[i], - leaf_min_events = inputs$leaf_min_events[i], - leaf_min_obs = inputs$leaf_min_obs[i], - split_min_events = inputs$split_min_events[i], - split_min_obs = inputs$split_min_obs[i], - oobag_pred_type = inputs$oobag_pred_type[i], - oobag_pred_horizon = inputs$oobag_pred_horizon[i]) + pred_horizon <- switch(inputs$oobag_pred_horizon[i], + '1' = 1000, + '2' = c(1000, 2000), + '3' = c(1000, 2000, 3000)) + + control <- switch(inputs$orsf_control[i], + 'cph' = orsf_control_cph(), + 'net' = orsf_control_net(), + 'custom' = orsf_control_custom(beta_fun = f_pca)) + + fit <- orsf(data = data_fun(pbc_orsf), + formula = time + status ~ . - id, + control = control, + n_tree = inputs$n_tree[i], + n_split = inputs$n_split[i], + n_retry = inputs$n_retry[i], + mtry = inputs$mtry[i], + leaf_min_events = inputs$leaf_min_events[i], + leaf_min_obs = inputs$leaf_min_obs[i], + split_min_events = inputs$split_min_events[i], + split_min_obs = inputs$split_min_obs[i], + oobag_pred_type = inputs$oobag_pred_type[i], + oobag_pred_horizon = pred_horizon) expect_s3_class(fit_cph, class = 'orsf_fit') expect_equal(get_n_tree(fit_cph), inputs$n_tree[i]) @@ -858,50 +879,17 @@ test_that( expect_equal(get_leaf_min_obs(fit_cph), inputs$leaf_min_obs[i]) expect_equal(get_split_min_events(fit_cph), inputs$split_min_events[i]) expect_equal(get_split_min_obs(fit_cph), inputs$split_min_obs[i]) - expect_equal(fit_cph$pred_horizon, inputs$oobag_pred_horizon[i]) + expect_equal(fit_cph$pred_horizon, pred_horizon) expect_length(fit_cph$forest$rows_oobag, n = get_n_tree(fit_cph)) if(inputs$oobag_pred_type[i] != 'none'){ - expect_length(fit_cph$eval_oobag$stat_values, 1) - expect_equal(nrow(fit_cph$pred_oobag), get_n_obs(fit_cph)) - } else { - expect_equal(dim(fit_cph$eval_oobag$stat_values), c(0, 0)) - } - fit_net <- orsf(data = pbc_orsf, - formula = time + status ~ . - id, - control = orsf_control_net(), - n_tree = 1, - n_split = inputs$n_split[i], - n_retry = inputs$n_retry[i], - mtry = inputs$mtry[i], - leaf_min_events = inputs$leaf_min_events[i], - leaf_min_obs = inputs$leaf_min_obs[i], - split_min_events = inputs$split_min_events[i], - split_min_obs = inputs$split_min_obs[i], - oobag_pred_type = inputs$oobag_pred_type[i], - oobag_pred_horizon = inputs$oobag_pred_horizon[i]) - - - expect_s3_class(fit_net, class = 'orsf_fit') - expect_equal(get_n_tree(fit_net), inputs$n_tree[i]) - expect_equal(get_n_split(fit_net), inputs$n_split[i]) - expect_equal(get_n_retry(fit_net), inputs$n_retry[i]) - expect_equal(get_mtry(fit_net), inputs$mtry[i]) - expect_equal(get_leaf_min_events(fit_net), inputs$leaf_min_events[i]) - expect_equal(get_leaf_min_obs(fit_net), inputs$leaf_min_obs[i]) - expect_equal(get_split_min_events(fit_net), inputs$split_min_events[i]) - expect_equal(get_split_min_obs(fit_net), inputs$split_min_obs[i]) - expect_equal(fit_net$pred_horizon, inputs$oobag_pred_horizon[i]) - - expect_length(fit_cph$forest$rows_oobag, n = get_n_tree(fit_cph)) + expect_length(fit_cph$eval_oobag$stat_values, length(pred_horizon)) + expect_equal(nrow(fit_cph$pred_oobag), get_n_obs(fit_cph)) - if(inputs$oobag_pred_type[i] != 'none'){ - expect_length(fit_net$eval_oobag$stat_values, 1) - expect_equal(nrow(fit_net$pred_oobag), get_n_obs(fit_net)) } else { - expect_equal(dim(fit_net$eval_oobag$stat_values), c(0, 0)) + expect_equal(dim(fit_cph$eval_oobag$stat_values), c(0, 0)) } } From 9c56aacee12311bf5853aacf68513cddf20f3537 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 25 Sep 2023 00:25:17 -0400 Subject: [PATCH 081/103] merging new predict with old --- R/orsf.R | 9 +- R/orsf_attr.R | 1 + R/orsf_predict.R | 78 ++++++++---- R/orsf_vi.R | 15 +-- scratch.R | 19 +-- src/Forest.cpp | 242 ++++++++++++++++++++++++++----------- src/Forest.h | 6 +- src/Tree.cpp | 52 +++++--- src/TreeSurvival.cpp | 53 +++++--- src/globals.h | 2 +- src/orsf_oop.cpp | 116 +++++++++--------- src/utility.cpp | 6 +- tests/testthat/test-orsf.R | 52 +++++--- vignettes/oobag.Rmd | 8 +- 14 files changed, 429 insertions(+), 230 deletions(-) diff --git a/R/orsf.R b/R/orsf.R index f6b1f6ea..133e7435 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -419,7 +419,7 @@ orsf <- function(data, ) if(importance %in% c("permute", "negate") && !oobag_pred){ - oobag_pred <- TRUE # Should I add a warning? + # oobag_pred <- TRUE # Should I add a warning? oobag_pred_type <- 'surv' } @@ -690,11 +690,12 @@ orsf <- function(data, tree_seeds <- sample(x = n_tree*2, size = n_tree, replace = FALSE) vi_max_pvalue = 0.01 + tree_type_R = 3 orsf_out <- orsf_cpp(x = x_sort, y = y_sort, w = w_sort, - tree_type_R = 3, + tree_type_R = tree_type_R, tree_seeds = as.integer(tree_seeds), loaded_forest = list(), n_tree = n_tree, @@ -773,10 +774,11 @@ orsf <- function(data, "1" = "Harrell's C-statistic", "2" = "User-specified function") - #' @srrstats {G2.10} *drop = FALSE for type consistency* orsf_out$pred_oobag <- orsf_out$pred_oobag[unsorted, , drop = FALSE] + orsf_out$pred_oobag[is.nan(orsf_out$pred_oobag)] <- NA_real_ + } orsf_out$pred_horizon <- oobag_pred_horizon @@ -833,6 +835,7 @@ orsf <- function(data, attr(orsf_out, 'vi_max_pvalue') <- vi_max_pvalue attr(orsf_out, 'split_rule') <- split_rule attr(orsf_out, 'n_thread') <- n_thread + attr(orsf_out, 'tree_type') <- tree_type_R attr(orsf_out, 'tree_seeds') <- tree_seeds diff --git a/R/orsf_attr.R b/R/orsf_attr.R index d42fd1c4..6a3e9459 100644 --- a/R/orsf_attr.R +++ b/R/orsf_attr.R @@ -60,6 +60,7 @@ get_verbose_progress <- function(object) attr(object, 'verbose_progress') get_vi_max_pvalue <- function(object) attr(object, 'vi_max_pvalue') get_split_rule <- function(object) attr(object, 'split_rule') get_n_thread <- function(object) attr(object, 'n_thread') +get_tree_type <- function(object) attr(object, 'tree_type') #' ORSF status diff --git a/R/orsf_predict.R b/R/orsf_predict.R index ab784490..218248d4 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -79,6 +79,7 @@ predict.orsf_fit <- function(object, pred_type = 'risk', na_action = 'fail', boundary_checks = TRUE, + n_thread = 1, ...){ # catch any arguments that didn't match and got relegated to ... @@ -129,22 +130,64 @@ predict.orsf_fit <- function(object, # names_x_data = names_x_data) # ) - pred_type_cpp <- switch( + pred_type_R <- switch( pred_type, - "risk" = "R", - "surv" = "S", - "chf" = "H", - "mort" = "M" + "risk" = 1, + "surv" = 2, + "chf" = 3, + "mort" = 4 ) - out_values <- - if(pred_type_cpp == "M"){ - orsf_pred_mort(object, x_new) - } else if (length(pred_horizon) == 1L) { - orsf_pred_uni(object$forest, x_new, pred_horizon_ordered, pred_type_cpp) - } else { - orsf_pred_multi(object$forest, x_new, pred_horizon_ordered, pred_type_cpp) - } + orsf_out <- orsf_cpp(x = x_new, + y = matrix(1, ncol=2), + w = rep(1, nrow(x_new)), + tree_type_R = get_tree_type(object), + tree_seeds = get_tree_seeds(object), + loaded_forest = object$forest, + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = 0, + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = pred_type_R, + pred_mode = TRUE, + pred_horizon = pred_horizon_ordered, + oobag = FALSE, + oobag_eval_type_R = 0, + oobag_eval_every = get_n_tree(object), + n_thread = n_thread, + write_forest = FALSE, + run_forest = TRUE, + verbosity = 4) + + out_values <- orsf_out$pred_new if(na_action == "pass"){ @@ -164,15 +207,6 @@ predict.orsf_fit <- function(object, } -orsf_pred_mort <- function(object, x_new){ - pred_mat <- orsf_pred_multi(object$forest, - x_new = x_new, - time_vec = get_event_times(object), - pred_type = 'H') - - matrix(apply(pred_mat, MARGIN = 1, FUN = sum), ncol = 1) - -} diff --git a/R/orsf_vi.R b/R/orsf_vi.R index a3590954..93370e5b 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -211,13 +211,14 @@ orsf_vi_ <- function(object, group_factors, type_vi, oobag_fun = NULL){ #' orsf_vi_oobag_ <- function(object, type_vi, oobag_fun){ - if(!contains_oobag(object)){ - stop("cannot compute ", - switch(type_vi, 'negate' = 'negation', 'permute' = 'permutation'), - " importance if the orsf_fit object does not have out-of-bag error", - " (see oobag_pred in ?orsf).", - call. = FALSE) - } + # can remove this b/c prediction accuracy is now computed at tree level + # if(!contains_oobag(object)){ + # stop("cannot compute ", + # switch(type_vi, 'negate' = 'negation', 'permute' = 'permutation'), + # " importance if the orsf_fit object does not have out-of-bag error", + # " (see oobag_pred in ?orsf).", + # call. = FALSE) + # } if(contains_vi(object) && is.null(oobag_fun) && diff --git a/scratch.R b/scratch.R index ca08e548..a024824d 100644 --- a/scratch.R +++ b/scratch.R @@ -2,19 +2,20 @@ library(tidyverse) library(riskRegression) library(survival) -sink("orsf-output.txt") fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 2, + n_tree = 3, + tree_seeds = 1:3, n_thread = 1, mtry = 2, - oobag_pred_type = 'mort', - split_rule = 'logrank', - importance = 'negate', - split_min_stat = 3, - verbose_progress = 4) -sink() -orsf_vi(fit) + oobag_pred_type = 'surv', + split_rule = 'cstat', + importance = 'none', + split_min_stat = 0.4, + verbose_progress = 1) +sink("orsf-output.txt") +prd <- predict(fit, new_data = pbc_orsf, pred_horizon = 1000, pred_type = 'risk') +sink() library(randomForestSRC) diff --git a/src/Forest.cpp b/src/Forest.cpp index f96e8394..9d4a228f 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -15,6 +15,7 @@ void Forest::init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, arma::uword mtry, + bool grow_mode, VariableImportance vi_type, double vi_max_pvalue, // leaves @@ -48,6 +49,7 @@ void Forest::init(std::unique_ptr input_data, this->tree_seeds = tree_seeds; this->n_tree = n_tree; this->mtry = mtry; + this->grow_mode = grow_mode; this->vi_type = vi_type; this->vi_max_pvalue = vi_max_pvalue; this->leaf_min_obs = leaf_min_obs; @@ -95,13 +97,15 @@ void Forest::init(std::unique_ptr input_data, } -void Forest::run(bool verbose, bool oobag){ +void Forest::run(bool oobag){ if(pred_mode){ + init_trees(); + this->pred_values = predict(oobag); - } else { + } else if (grow_mode) { // initialize the trees plant(); @@ -113,12 +117,11 @@ void Forest::run(bool verbose, bool oobag){ this->pred_values = predict(oobag); } - if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ - compute_oobag_vi(); - } - } + if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + compute_oobag_vi(); + } } @@ -154,35 +157,35 @@ void Forest::init_trees(){ void Forest::grow() { + // initialize trees before doing anything else init_trees(); // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); + // reset progress to 0 + progress = 0; + if(n_thread == 1){ // ensure safe usage of R functions and glmnet - // by growing trees in a single thread. There does - // not need to be a corresponding predict_single_thread - // function b/c the R functions are only called during - // the grow phase of the forest. - vec* vi_numer_ptr = &vi_numer; - uvec* vi_denom_ptr = &vi_denom; - grow_single_thread(vi_numer_ptr, vi_denom_ptr); + // by growing trees in a single thread. + grow_single_thread(&vi_numer, &vi_denom); return; } // catch interrupts from threads aborted = false; aborted_threads = 0; - // show progress from threads - progress = 0; + // containers std::vector threads; std::vector vi_numer_threads(n_thread); std::vector vi_denom_threads(n_thread); + // reserve memory threads.reserve(n_thread); + // begin multi-thread grow for (uint i = 0; i < n_thread; ++i) { vi_numer_threads[i].zeros(data->n_cols); @@ -193,8 +196,11 @@ void Forest::grow() { &(vi_denom_threads[i])); } - show_progress("Growing trees...", n_tree); + if(verbosity == 1){ + show_progress("Growing trees", n_tree); + } + // end multi-thread grow for (auto &thread : threads) { thread.join(); } @@ -203,13 +209,11 @@ void Forest::grow() { throw std::runtime_error("User interrupt."); } - if(vi_type != VI_NONE){ + if(vi_type == VI_ANOVA){ for(uint i = 0; i < n_thread; ++i){ - vi_numer += vi_numer_threads[i]; - if(vi_type == VI_ANOVA) vi_denom += vi_denom_threads[i]; - + vi_denom += vi_denom_threads[i]; } } @@ -219,33 +223,60 @@ void Forest::grow() { void Forest::grow_single_thread(vec* vi_numer_ptr, uvec* vi_denom_ptr){ - for (uint i = 0; i < n_tree; ++i) { - if(verbosity > 1){ - Rcout << "------------ Growing tree " << i << " --------------"; - Rcout << std::endl; - Rcout << std::endl; - } + using std::chrono::steady_clock; + using std::chrono::duration_cast; + using std::chrono::seconds; + + steady_clock::time_point start_time = steady_clock::now(); + steady_clock::time_point last_time = steady_clock::now(); + size_t max_progress = n_tree; + + for (uint i = 0; i < n_tree; ++i) { + + if(verbosity > 1){ + Rcout << "------------ Growing tree " << i << " --------------"; + Rcout << std::endl; + Rcout << std::endl; + } - trees[i]->grow(vi_numer_ptr, vi_denom_ptr); + trees[i]->grow(vi_numer_ptr, vi_denom_ptr); - if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ + ++progress; - if(verbosity > 1){ - Rcout << "------------ Computing VI for tree " << i << " -----"; - Rcout << std::endl; - Rcout << std::endl; - } + if(verbosity == 1){ - trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); + seconds elapsed_time = duration_cast(steady_clock::now() - last_time); + + if ((progress > 0 && elapsed_time.count() > STATUS_INTERVAL) || + (progress == max_progress)) { + + double relative_progress = (double) progress / (double) max_progress; + seconds time_from_start = duration_cast(steady_clock::now() - start_time); + uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); + + Rcout << "Growing trees: "; + Rcout << round(100 * relative_progress) << "%. "; + + if(progress < max_progress){ + Rcout << "~ time remaining: "; + Rcout << beautifyTime(remaining_time) << "."; } - Rcpp::checkUserInterrupt(); + Rcout << std::endl; + + last_time = steady_clock::now(); } } + Rcpp::checkUserInterrupt(); + + } + +} + void Forest::grow_multi_thread(uint thread_idx, vec* vi_numer_ptr, @@ -306,7 +337,9 @@ void Forest::compute_oobag_vi() { this, i, &(vi_numer_threads[i])); } - show_progress("Computing variable importance...", n_tree); + if(verbosity == 1){ + show_progress("Computing importance", n_tree); + } for (auto &thread : threads) { thread.join(); @@ -324,10 +357,47 @@ void Forest::compute_oobag_vi() { void Forest::compute_oobag_vi_single_thread(vec* vi_numer_ptr) { + using std::chrono::steady_clock; + using std::chrono::duration_cast; + using std::chrono::seconds; + + steady_clock::time_point start_time = steady_clock::now(); + steady_clock::time_point last_time = steady_clock::now(); + size_t max_progress = n_tree; + for(uint i = 0; i < n_tree; ++i){ trees[i]->compute_oobag_vi(vi_numer_ptr, vi_type); + ++progress; + + if(verbosity == 1){ + + seconds elapsed_time = duration_cast(steady_clock::now() - last_time); + + if ((progress > 0 && elapsed_time.count() > STATUS_INTERVAL) || + (progress == max_progress)) { + + double relative_progress = (double) progress / (double) max_progress; + seconds time_from_start = duration_cast(steady_clock::now() - start_time); + uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); + + Rcout << "Computing importance: "; + Rcout << round(100 * relative_progress) << "%. "; + + if(progress < max_progress){ + Rcout << "~ time remaining: "; + Rcout << beautifyTime(remaining_time) << "."; + } + + Rcout << std::endl; + + last_time = steady_clock::now(); + + } + + } + Rcpp::checkUserInterrupt(); } @@ -365,12 +435,20 @@ void Forest::compute_prediction_accuracy(Data* prediction_data, arma::mat& prediction_values, arma::uword row_fill){ + // avoid dividing by zero uvec valid_observations = find(oobag_denom > 0); + // subset each data input mat y_valid = prediction_data->y_rows(valid_observations); vec w_valid = prediction_data->w_subvec(valid_observations); mat p_valid = prediction_values.rows(valid_observations); + // scale predictions based on how many trees contributed + // (important to note it's different for each oobag obs) + vec valid_denom = oobag_denom(valid_observations); + p_valid.each_col() /= valid_denom; + + // pass along to forest-specific version compute_prediction_accuracy(y_valid, w_valid, p_valid, row_fill); } @@ -413,7 +491,9 @@ mat Forest::predict(bool oobag) { &(oobag_denom_threads[i])); } - show_progress("Predicting...", n_tree); + if(verbosity == 1){ + show_progress("Computing predictions", n_tree); + } // wait for all threads to finish before proceeding for (auto &thread : threads) { @@ -430,33 +510,27 @@ mat Forest::predict(bool oobag) { // evaluate oobag error after joining each thread // (only safe to do this when the condition below holds) - if(n_tree/oobag_eval_every == n_thread && n_thread>1 && ipredict_leaf(prediction_data, oobag); - + Rcout << "made it here" << std::endl; trees[i]->predict_value(&result, &oobag_denom, pred_type, oobag); - + Rcout << "made it here 2" << std::endl; progress++; - // if user wants to track oobag error over time: - if(oobag && (progress % oobag_eval_every == 0) ){ + if(verbosity == 1){ - uword eval_row = (progress / oobag_eval_every) - 1; + seconds elapsed_time = duration_cast(steady_clock::now() - last_time); + + if ((progress > 0 && elapsed_time.count() > STATUS_INTERVAL) || + (progress == max_progress)) { + + double relative_progress = (double) progress / (double) max_progress; + seconds time_from_start = duration_cast(steady_clock::now() - start_time); + uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); + + Rcout << "Computing predictions: "; + Rcout << round(100 * relative_progress) << "%. "; + + if(progress < max_progress){ + Rcout << "~ time remaining: "; + Rcout << beautifyTime(remaining_time) << "."; + } + + Rcout << std::endl; + + last_time = steady_clock::now(); + + } + + } + // if tracking oobag error over time: + if(oobag && (progress % oobag_eval_every == 0) ){ - mat preds = result.each_col() / oobag_denom; - compute_prediction_accuracy(prediction_data, preds, eval_row); + uword eval_row = (progress / oobag_eval_every) - 1; + // mat preds = result.each_col() / oobag_denom; + compute_prediction_accuracy(prediction_data, result, eval_row); } @@ -520,18 +627,6 @@ void Forest::predict_multi_thread(uint thread_idx, std::unique_lock lock(mutex); ++progress; - // if user wants to track oobag error over time: - if( n_thread==1 && oobag && (progress%oobag_eval_every==0) ){ - - uword eval_row = (progress/oobag_eval_every) - 1; - - mat preds = (*result_ptr); - preds.each_col() /= (*denom_ptr); - - compute_prediction_accuracy(prediction_data, preds, eval_row); - - } - condition_variable.notify_one(); } @@ -574,7 +669,9 @@ void Forest::show_progress(std::string operation, size_t max_progress) { // Wait for message from threads and show output if enough time elapsed while (progress < max_progress) { + condition_variable.wait(lock); + seconds elapsed_time = duration_cast(steady_clock::now() - last_time); // Check for user interrupt @@ -585,16 +682,21 @@ void Forest::show_progress(std::string operation, size_t max_progress) { return; } - if (progress > 0 && elapsed_time.count() > STATUS_INTERVAL) { + if ((progress > 0 && elapsed_time.count() > STATUS_INTERVAL) || + (progress == max_progress)) { double relative_progress = (double) progress / (double) max_progress; seconds time_from_start = duration_cast(steady_clock::now() - start_time); uint remaining_time = (1 / relative_progress - 1) * time_from_start.count(); - Rcout << operation << "Progress: "; + Rcout << operation << ": "; Rcout << round(100 * relative_progress) << "%. "; - Rcout << "Estimated remaining time: "; - Rcout << beautifyTime(remaining_time) << "."; + + if(progress < max_progress){ + Rcout << "~ time remaining: "; + Rcout << beautifyTime(remaining_time) << "."; + } + Rcout << std::endl; last_time = steady_clock::now(); diff --git a/src/Forest.h b/src/Forest.h index 3bfd0b2c..67017d58 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -37,6 +37,7 @@ class Forest { Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, arma::uword mtry, + bool grow_mode, VariableImportance vi_type, double vi_max_pvalue, // leaves @@ -188,7 +189,7 @@ class Forest { return(pred_values); } - void run(bool verbose, bool oobag); + void run(bool oobag); virtual void plant() = 0; @@ -276,6 +277,9 @@ class Forest { bool pred_mode; PredType pred_type; + // is forest already grown? + bool grow_mode; + arma::mat pred_values; // out-of-bag diff --git a/src/Tree.cpp b/src/Tree.cpp index 9928377e..f11bb8ee 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -497,6 +497,10 @@ double stat, stat_best = 0; + if(verbosity > 3){ + Rcout << " -- cutpoint (score)" << std::endl; + } + for(it = cuts_sampled.begin(); it != cuts_sampled.end(); ++it){ // flip node assignments from left to right, up to the next cutpoint @@ -510,7 +514,7 @@ it_start = *it; if(verbosity > 3){ - Rcout << " ---- cutpoint (score): "; + Rcout << " --- "; Rcout << lincomb.at(lincomb_sort(*it)); Rcout << " (" << stat << "), "; Rcout << "N = " << sum(g_node % w_node) << " moving right"; @@ -521,7 +525,7 @@ if(verbosity > 3){ Rcout << std::endl; - Rcout << " ---- best stat: " << stat_best; + Rcout << " -- best stat: " << stat_best; Rcout << ", min to split: " << split_min_stat; Rcout << std::endl; Rcout << std::endl; @@ -548,8 +552,9 @@ void Tree::sprout_leaf(uword node_id){ - if(verbosity > 3){ + if(verbosity > 2){ Rcout << "-- sprouting node " << node_id << " into a leaf"; + Rcout << " (N = " << sum(w_node) << ")"; Rcout << std::endl; Rcout << std::endl; } @@ -769,10 +774,9 @@ // find all valid cutpoints for lincomb cuts_all = find_cutpoints(); - if(verbosity > 3){ + if(verbosity > 3 && cuts_all.is_empty()){ - Rcout << " ---- no. of cutpoints identified: " << cuts_all.size(); - Rcout << std::endl; + Rcout << " -- no cutpoints identified"; Rcout << std::endl; } @@ -790,6 +794,10 @@ // 1. a split of the node is guaranteed // 2. the method used for lincombs allows it + if(verbosity > 3){ + Rcout << " -- p-values:" << std::endl; + } + vec beta_var = beta.unsafe_col(1); double pvalue; @@ -802,12 +810,26 @@ pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); + if(verbosity > 3){ + + Rcout << " --- column " << cols_node[i] << ": "; + Rcout << pvalue; + if(pvalue < 0.05) Rcout << "*"; + if(pvalue < 0.01) Rcout << "*"; + if(pvalue < 0.001) Rcout << "*"; + if(pvalue < vi_max_pvalue) Rcout << " [+1 to VI numerator]"; + Rcout << std::endl; + + } + if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } } } + if(verbosity > 3){ Rcout << std::endl; } + } // make new nodes if a valid cutpoint was found @@ -875,6 +897,7 @@ } uvec obs_in_node; + // it iterates over the observations in a node uvec::iterator it; @@ -883,8 +906,7 @@ for(i = 0; i < coef_values.size(); i++){ - if(VERBOSITY > 0) - Rcout << "moving obs in node " << i << std::endl; + Rcout << "moving obs in node " << i << std::endl; // if child_left == 0, it's a leaf (no need to find next child) if(child_left[i] != 0){ @@ -901,8 +923,6 @@ lincomb = prediction_data->x_submat(obs_in_node, coef_indices[i]) * coef_values[i]; - if(lincomb.size() == 0) stop("sommin wrong"); - it = obs_in_node.begin(); for(j = 0; j < lincomb.size(); ++j, ++it){ @@ -919,8 +939,6 @@ } - if(VERBOSITY > 0){ - uvec in_left = find(pred_leaf == child_left[i]); uvec in_right = find(pred_leaf == child_left[i]+1); @@ -929,17 +947,15 @@ Rcout << "No. to node " << child_left[i]+1 << ": "; Rcout << in_right.size() << std::endl << std::endl; - } - } } } - if(VERBOSITY > 0){ - Rcout << "---- done with leaf predictions ----" << std::endl; - } + if(oobag) pred_leaf.elem(rows_inbag).fill(max_nodes); + + Rcout << "---- done with leaf predictions ----" << std::endl; } @@ -950,11 +966,13 @@ void Tree::negate_coef(arma::uword pred_col){ for(uint j = 0; j < coef_indices.size(); ++j){ + for(uword k = 0; k < coef_indices[j].size(); ++k){ if(coef_indices[j][k] == pred_col){ coef_values[j][k] *= (-1); } } + } } diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index b1e4d8a7..f23d309d 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -396,7 +396,7 @@ void TreeSurvival::sprout_leaf(uword node_id){ - if(verbosity > 3){ + if(verbosity > 2){ Rcout << "-- sprouting node " << node_id << " into a leaf"; Rcout << " (N = " << sum(w_node) << ")"; Rcout << std::endl; @@ -493,7 +493,11 @@ } while (i < leaf_data.n_rows); - if(VERBOSITY > 1) print_mat(leaf_data, "leaf_data", 10, 5); + if(verbosity > 3){ + mat tmp_mat = join_horiz(y_node, w_node); + print_mat(tmp_mat, "time & status & weights in this node", 10, 10); + print_mat(leaf_data, "leaf_data (showing up to 5 rows)", 5, 5); + } leaf_pred_indx[node_id] = leaf_data.col(0); leaf_pred_prob[node_id] = leaf_data.col(1); @@ -529,21 +533,7 @@ uvec::iterator it = pred_leaf_sort.begin(); - // oobag leaf prediction has zeros for inbag rows - // TODO: Change this to be max_nodes+1 - // (0 is a valid leaf for empty tree) - if(oobag){ - while(pred_leaf(*it) == 0 && it < pred_leaf_sort.end()){ - ++it; - } - } - - if(it == pred_leaf_sort.end()){ - if(VERBOSITY > 0){ - Rcout << "Tree was empty, no predictions were made" << std::endl; - } - return; - } + uword leaf_id = pred_leaf[*it]; double pred_t0; @@ -565,13 +555,15 @@ do { - uword leaf_id = pred_leaf[*it]; + Rcout << "leaf_id: " << leaf_id << std::endl; // copies of leaf data using same aux memory leaf_times = vec(leaf_pred_indx[leaf_id].begin(), leaf_pred_indx[leaf_id].size(), false); + Rcout << "leaf_times: " << leaf_times.t() << std::endl; + switch (pred_type) { case PRED_RISK: case PRED_SURVIVAL: { @@ -608,6 +600,8 @@ } + Rcout << "leaf_values: " << leaf_values.t() << std::endl; + // don't reset i in the loop b/c leaf_times ascend i = 0; @@ -669,6 +663,22 @@ if(pred_type == PRED_RISK) temp_vec = 1 - temp_vec; + // while (it < pred_leaf_sort.end()-1 && leaf_id == pred_leaf(*it)) { + // + // Rcout << "*it: " << *it << std::endl; + // + // (*pred_output).row(*it) += temp_vec.t(); + // + // Rcout << "it was safe" << std::endl; + // + // if(oobag) (*pred_denom)[*it]++; + // + // Rcout << "it was safe 2" << std::endl; + // + // ++it; + // + // }; + (*pred_output).row(*it) += temp_vec.t(); if(oobag) (*pred_denom)[*it]++; ++it; @@ -686,7 +696,12 @@ } - } while (it < pred_leaf_sort.end()); + leaf_id = pred_leaf(*it); + Rcout << "new pred_leaf: " << leaf_id << std::endl; + + } while (it < pred_leaf_sort.end() && (!oobag || leaf_id < max_nodes)); + + Rcout << "Made it out"; } diff --git a/src/globals.h b/src/globals.h index 3314053a..2174e531 100644 --- a/src/globals.h +++ b/src/globals.h @@ -96,7 +96,7 @@ const int VERBOSITY = 0; // Interval to print progress in seconds - const double STATUS_INTERVAL = 15.0; + const double STATUS_INTERVAL = 1.0; } // namespace aorsf diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index f4e0257e..db5aa4a5 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -152,10 +152,14 @@ } + // does the forest need to be grown or is it already grown? + bool grow_mode = loaded_forest.size() == 0; + forest->init(std::move(data), tree_seeds, n_tree, mtry, + grow_mode, vi_type, vi_max_pvalue, leaf_min_obs, @@ -181,93 +185,89 @@ n_thread, verbosity); - // Load forest object if in prediction mode - if(pred_mode){ + // Load forest object if it was already grown + if(!grow_mode){ - std::vector> cutpoint = loaded_forest["cutpoint"]; - std::vector> child_left = loaded_forest["child_left"]; - std::vector> coef_values = loaded_forest["coef_values"]; - std::vector> coef_indices = loaded_forest["coef_indices"]; - std::vector> leaf_summary = loaded_forest["leaf_summary"]; + std::vector> cutpoint = loaded_forest["cutpoint"]; + std::vector> child_left = loaded_forest["child_left"]; + std::vector> coef_values = loaded_forest["coef_values"]; + std::vector> coef_indices = loaded_forest["coef_indices"]; + std::vector> leaf_summary = loaded_forest["leaf_summary"]; + if(tree_type == TREE_SURVIVAL){ - if(tree_type == TREE_SURVIVAL){ + std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; + std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; + std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; - std::vector> leaf_pred_indx = loaded_forest["leaf_pred_indx"]; - std::vector> leaf_pred_prob = loaded_forest["leaf_pred_prob"]; - std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; + auto& temp = dynamic_cast(*forest); + temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, + leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); - auto& temp = dynamic_cast(*forest); - temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); + } } - } + if(run_forest){ forest->run(oobag); } - if(run_forest){ - forest->run(false, oobag); - } + if(pred_mode){ + result.push_back(forest->get_predictions(), "pred_new"); - if(pred_mode){ + } else { - result.push_back(forest->get_predictions(), "pred_new"); + if (oobag) result.push_back(forest->get_predictions(), "pred_oobag"); - } else { + List eval_oobag; + eval_oobag.push_back(forest->get_oobag_eval(), "stat_values"); + eval_oobag.push_back(oobag_eval_type_R, "stat_type"); + result.push_back(eval_oobag, "eval_oobag"); - if (oobag) result.push_back(forest->get_predictions(), "pred_oobag"); + } - List eval_oobag_out; - eval_oobag_out.push_back(forest->get_oobag_eval(), "stat_values"); - eval_oobag_out.push_back(oobag_eval_type_R, "stat_type"); - result.push_back(eval_oobag_out, "eval_oobag"); + if(write_forest){ + + List forest_out; + forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); + forest_out.push_back(forest->get_cutpoint(), "cutpoint"); + forest_out.push_back(forest->get_child_left(), "child_left"); + forest_out.push_back(forest->get_coef_indices(), "coef_indices"); + forest_out.push_back(forest->get_coef_values(), "coef_values"); + forest_out.push_back(forest->get_leaf_summary(), "leaf_summary"); + + if(tree_type == TREE_SURVIVAL){ + auto& temp = dynamic_cast(*forest); + forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); + forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); + forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); + } - } + result.push_back(forest_out, "forest"); + } + if(vi_type != VI_NONE){ - if(write_forest){ + vec vi_output; - List forest_out; - forest_out.push_back(forest->get_rows_oobag(), "rows_oobag"); - forest_out.push_back(forest->get_cutpoint(), "cutpoint"); - forest_out.push_back(forest->get_child_left(), "child_left"); - forest_out.push_back(forest->get_coef_indices(), "coef_indices"); - forest_out.push_back(forest->get_coef_values(), "coef_values"); - forest_out.push_back(forest->get_leaf_summary(), "leaf_summary"); + if(run_forest){ - if(tree_type == TREE_SURVIVAL){ - auto& temp = dynamic_cast(*forest); - forest_out.push_back(temp.get_leaf_pred_indx(), "leaf_pred_indx"); - forest_out.push_back(temp.get_leaf_pred_prob(), "leaf_pred_prob"); - forest_out.push_back(temp.get_leaf_pred_chaz(), "leaf_pred_chaz"); - // consider dropping unique_event_times; is it needed after grow()? - // result.push_back(forest->get_unique_event_times(), "unique_event_times"); - } + if(vi_type == VI_ANOVA){ - result.push_back(forest_out, "forest"); + vi_output = forest->get_vi_numer() / forest->get_vi_denom(); - } + } else { - if(vi_type != VI_NONE){ + vi_output = forest->get_vi_numer() / n_tree; - vec vi_output; + } - if(run_forest){ - if(vi_type == VI_ANOVA){ - vi_output = forest->get_vi_numer() / forest->get_vi_denom(); - } else { - vi_output = forest->get_vi_numer() / n_tree; } - } - - result.push_back(vi_output, "importance"); - - } + result.push_back(vi_output, "importance"); + } - return(result); + return(result); } diff --git a/src/utility.cpp b/src/utility.cpp index 77c72d3b..0b612ad9 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -25,7 +25,7 @@ if(x.n_cols < max_cols) ncol_print = x.n_cols-1; - Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + Rcout << " -- " << label << std::endl << std::endl; Rcout << x.submat(0, 0, nrow_print, ncol_print); Rcout << std::endl << std::endl; @@ -38,7 +38,7 @@ uword n_print = max_elem-1; if(x.size() <= n_print) n_print = x.size()-1; - Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + Rcout << " -- " << label << std::endl << std::endl; if(x.size() == 0){ Rcout << " empty vector"; @@ -57,7 +57,7 @@ uword n_print = max_elem-1; if(x.size() <= n_print) n_print = x.size()-1; - Rcout << " ---- view of " << label << " ---- " << std::endl << std::endl; + Rcout << " -- " << label << std::endl << std::endl; if(x.size() == 0){ Rcout << " empty vector"; diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index f189d28a..29824240 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -817,8 +817,9 @@ test_that( n_split = 1, n_retry = 0, mtry = 3, - leaf_min_events = 1, - leaf_min_obs = c(5, 10), + leaf_min_events = 5, + leaf_min_obs = c(10), + split_rule = c("logrank", "cstat"), split_min_events = 5, split_min_obs = 15, oobag_pred_type = c('none', 'risk', 'surv', 'chf', 'mort'), @@ -865,31 +866,50 @@ test_that( mtry = inputs$mtry[i], leaf_min_events = inputs$leaf_min_events[i], leaf_min_obs = inputs$leaf_min_obs[i], + split_rule = inputs$split_rule[i], split_min_events = inputs$split_min_events[i], split_min_obs = inputs$split_min_obs[i], oobag_pred_type = inputs$oobag_pred_type[i], oobag_pred_horizon = pred_horizon) - expect_s3_class(fit_cph, class = 'orsf_fit') - expect_equal(get_n_tree(fit_cph), inputs$n_tree[i]) - expect_equal(get_n_split(fit_cph), inputs$n_split[i]) - expect_equal(get_n_retry(fit_cph), inputs$n_retry[i]) - expect_equal(get_mtry(fit_cph), inputs$mtry[i]) - expect_equal(get_leaf_min_events(fit_cph), inputs$leaf_min_events[i]) - expect_equal(get_leaf_min_obs(fit_cph), inputs$leaf_min_obs[i]) - expect_equal(get_split_min_events(fit_cph), inputs$split_min_events[i]) - expect_equal(get_split_min_obs(fit_cph), inputs$split_min_obs[i]) - expect_equal(fit_cph$pred_horizon, pred_horizon) + expect_s3_class(fit, class = 'orsf_fit') + expect_equal(get_n_tree(fit), inputs$n_tree[i]) + expect_equal(get_n_split(fit), inputs$n_split[i]) + expect_equal(get_n_retry(fit), inputs$n_retry[i]) + expect_equal(get_mtry(fit), inputs$mtry[i]) + expect_equal(get_leaf_min_events(fit), inputs$leaf_min_events[i]) + expect_equal(get_leaf_min_obs(fit), inputs$leaf_min_obs[i]) + expect_equal(get_split_min_events(fit), inputs$split_min_events[i]) + expect_equal(get_split_min_obs(fit), inputs$split_min_obs[i]) + expect_equal(fit$pred_horizon, pred_horizon) - expect_length(fit_cph$forest$rows_oobag, n = get_n_tree(fit_cph)) + expect_length(fit$forest$rows_oobag, n = get_n_tree(fit)) if(inputs$oobag_pred_type[i] != 'none'){ - expect_length(fit_cph$eval_oobag$stat_values, length(pred_horizon)) - expect_equal(nrow(fit_cph$pred_oobag), get_n_obs(fit_cph)) + expect_length(fit$eval_oobag$stat_values, length(pred_horizon)) + expect_equal(nrow(fit$pred_oobag), get_n_obs(fit)) + + # these lengths should match for n_tree=1 + # b/c only the oobag rows of the first tree + # will get a prediction value. Note that the + # vectors themselves aren't equal b/c rows_oobag + # corresponds to the sorted version of the data. + expect_equal( + length(which(complete.cases(fit$pred_oobag))), + length(fit$forest$rows_oobag[[1]]) + ) + + oobag_preds <- na.omit(fit$pred_oobag) + + expect_true(all(oobag_preds >= 0)) + + if(inputs$oobag_pred_type[i] %in% c("risk", "surv")){ + expect_true(all(oobag_preds <= 1)) + } } else { - expect_equal(dim(fit_cph$eval_oobag$stat_values), c(0, 0)) + expect_equal(dim(fit$eval_oobag$stat_values), c(0, 0)) } } diff --git a/vignettes/oobag.Rmd b/vignettes/oobag.Rmd index bb08eafe..95a542b9 100644 --- a/vignettes/oobag.Rmd +++ b/vignettes/oobag.Rmd @@ -121,13 +121,13 @@ Second, you can pass your function into `orsf()`, and it will be used in place o fit <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, - n_tree = 500, + n_tree = 50, oobag_pred_horizon = 2000, oobag_fun = oobag_fun_brier, - oobag_eval_every = 25) + oobag_eval_every = 1) plot( - x = seq(25, 500, by = 25), + x = seq(1, 50, by = 1), y = fit$eval_oobag$stat_values, main = 'Out-of-bag error computed after each new tree is grown.', sub = 'For the Brier score, lower values indicate more accurate predictions', @@ -165,7 +165,7 @@ plot( y = fit$eval_oobag$stat_values, main = 'Out-of-bag time-dependent AUC\ncomputed after each new tree is grown.', xlab = 'Number of trees grown', - ylab = "AUC at t = 3,500" + ylab = "AUC at t = 2,000" ) ``` From c137536bff043db327722edcc3275ae160be4c34 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 25 Sep 2023 22:28:15 -0400 Subject: [PATCH 082/103] the moby dick of bugs has been caught for a long time I was not sure why I would get very slightly different results if I predicted row by row in a dataset versus the whole thing. It turned out to be an issue in the predict_value routine where the case of the final value in pred_leaf being a unique leaf would lead to that value getting the leaf data from the prior leaf. I had to introduce several new features into the predict function to catch this error and those features now need to be ironed out. --- R/RcppExports.R | 4 +- R/check.R | 3 +- R/orsf.R | 4 +- R/orsf_predict.R | 12 +++-- scratch.R | 50 ++++++++++++----- src/Forest.cpp | 31 +++++++++-- src/Forest.h | 2 + src/ForestSurvival.cpp | 10 +++- src/RcppExports.cpp | 9 ++-- src/Tree.cpp | 10 ++-- src/TreeSurvival.cpp | 86 +++++++++++++++++------------- src/orsf_oop.cpp | 2 + tests/testthat/test-orsf_predict.R | 70 ++++++++++++++---------- 13 files changed, 195 insertions(+), 98 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 27bc4b9b..7dc29a10 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) } diff --git a/R/check.R b/R/check.R index 61ed4d6a..5990ece2 100644 --- a/R/check.R +++ b/R/check.R @@ -1555,7 +1555,8 @@ check_predict <- function(object, valid_options = c("risk", "surv", "chf", - "mort")) + "mort", + "leaf")) } diff --git a/R/orsf.R b/R/orsf.R index 133e7435..ae235266 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -739,6 +739,7 @@ orsf <- function(data, "chf" = 3, "mort" = 4), pred_mode = FALSE, + pred_aggregate = TRUE, pred_horizon = oobag_pred_horizon, oobag = oobag_pred, oobag_eval_type_R = switch(type_oobag_eval, @@ -749,7 +750,7 @@ orsf <- function(data, n_thread = n_thread, write_forest = TRUE, run_forest = !no_fit, - verbosity = verbose_progress) + verbosity = as.integer(verbose_progress)) # if someone says no_fit and also says don't attach the data, # give them a warning but also do the right thing for them. @@ -1098,6 +1099,7 @@ orsf_train_ <- function(object, "chf" = 3, "mort" = 4), pred_mode = FALSE, + pred_aggregate = TRUE, pred_horizon = get_oobag_pred_horizon(object), oobag = get_oobag_pred(object), oobag_eval_type_R = switch(get_type_oobag_eval(object), diff --git a/R/orsf_predict.R b/R/orsf_predict.R index 218248d4..4cbaf932 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -80,6 +80,8 @@ predict.orsf_fit <- function(object, na_action = 'fail', boundary_checks = TRUE, n_thread = 1, + verbose_progress = FALSE, + pred_aggregate = TRUE, ...){ # catch any arguments that didn't match and got relegated to ... @@ -135,7 +137,8 @@ predict.orsf_fit <- function(object, "risk" = 1, "surv" = 2, "chf" = 3, - "mort" = 4 + "mort" = 4, + "leaf" = 8 ) orsf_out <- orsf_cpp(x = x_new, @@ -178,6 +181,7 @@ predict.orsf_fit <- function(object, ), pred_type_R = pred_type_R, pred_mode = TRUE, + pred_aggregate = pred_aggregate, pred_horizon = pred_horizon_ordered, oobag = FALSE, oobag_eval_type_R = 0, @@ -185,14 +189,14 @@ predict.orsf_fit <- function(object, n_thread = n_thread, write_forest = FALSE, run_forest = TRUE, - verbosity = 4) + verbosity = as.integer(verbose_progress)) out_values <- orsf_out$pred_new if(na_action == "pass"){ out <- matrix(nrow = nrow(new_data), - ncol = length(pred_horizon)) + ncol = ncol(out_values)) out[cc, ] <- out_values @@ -202,6 +206,8 @@ predict.orsf_fit <- function(object, } + if(pred_type == "leaf" || !pred_aggregate) return(out) + # output in the same order as pred_horizon out[, order(pred_horizon_order), drop = FALSE] diff --git a/scratch.R b/scratch.R index a024824d..2f5914f4 100644 --- a/scratch.R +++ b/scratch.R @@ -2,20 +2,42 @@ library(tidyverse) library(riskRegression) library(survival) -fit <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 3, - tree_seeds = 1:3, - n_thread = 1, - mtry = 2, - oobag_pred_type = 'surv', - split_rule = 'cstat', - importance = 'none', - split_min_stat = 0.4, - verbose_progress = 1) - -sink("orsf-output.txt") -prd <- predict(fit, new_data = pbc_orsf, pred_horizon = 1000, pred_type = 'risk') -sink() +res <- oob <- vector(mode = 'numeric', length = 100) + +for(i in seq(100)){ + + train <- sample(nrow(pbc_orsf), 150) + + fit <- orsf(pbc_orsf[train, ], + formula = Surv(time, status) ~ . - id, + oobag_pred_type = 'surv', + oobag_pred_horizon = 1000, + split_rule = 'logrank', + n_thread = 10) + + oob[i] = as.numeric(fit$eval_oobag$stat_values) + + # sink("orsf-output.txt") + prd <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_horizon = 1000, + pred_type = 'risk', + n_thread = 10) + + y_mat <- as.matrix(pbc_orsf[-train, c('time', 'status')]) + w_vec <- rep(1, nrow(y_mat)) + s_vec <- 1-prd + + res[i] = oobag_c_survival(y_mat, w_vec, s_vec) + + +} + +mean(oob) +mean(res) +mean(oob-res) + +# sink() library(randomForestSRC) diff --git a/src/Forest.cpp b/src/Forest.cpp index 9d4a228f..ab40500f 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -38,6 +38,7 @@ void Forest::init(std::unique_ptr input_data, // predictions PredType pred_type, bool pred_mode, + bool pred_aggregate, bool oobag_pred, EvalType oobag_eval_type, arma::uword oobag_eval_every, @@ -65,8 +66,9 @@ void Forest::init(std::unique_ptr input_data, this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; this->lincomb_R_function = lincomb_R_function; - this->pred_mode = pred_mode; this->pred_type = pred_type; + this->pred_mode = pred_mode; + this->pred_aggregate = pred_aggregate; this->oobag_pred = oobag_pred; this->oobag_eval_type = oobag_eval_type; this->oobag_eval_every = oobag_eval_every; @@ -525,6 +527,10 @@ mat Forest::predict(bool oobag) { } + if(pred_type == PRED_TERMINAL_NODES || !pred_aggregate){ + return(result); + } + if(oobag){ compute_prediction_accuracy(data.get(), result, oobag_eval.n_rows-1); @@ -555,10 +561,27 @@ void Forest::predict_single_thread(Data* prediction_data, for (uint i = 0; i < n_tree; ++i) { + if(verbosity > 1){ + if(oobag){ + Rcout << "--- Computing oobag predictions: tree " << i << " ---"; + } else { + Rcout << "------ Computing predictions: tree " << i << " -----"; + } + Rcout << std::endl; + Rcout << std::endl; + } + trees[i]->predict_leaf(prediction_data, oobag); - Rcout << "made it here" << std::endl; - trees[i]->predict_value(&result, &oobag_denom, pred_type, oobag); - Rcout << "made it here 2" << std::endl; + + if(pred_type == PRED_TERMINAL_NODES){ + result.col(i) = conv_to::from(trees[i]->get_pred_leaf()); + } else if (!pred_aggregate){ + vec col_i = result.unsafe_col(i); + trees[i]->predict_value(&col_i, &oobag_denom, pred_type, oobag); + } else { + trees[i]->predict_value(&result, &oobag_denom, pred_type, oobag); + } + progress++; if(verbosity == 1){ diff --git a/src/Forest.h b/src/Forest.h index 67017d58..6971f49d 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -60,6 +60,7 @@ class Forest { // predictions PredType pred_type, bool pred_mode, + bool pred_aggregate, bool oobag_pred, EvalType oobag_eval_type, arma::uword oobag_eval_every, @@ -275,6 +276,7 @@ class Forest { // predictions bool pred_mode; + bool pred_aggregate; PredType pred_type; // is forest already grown? diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 103ac879..59549baf 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -80,7 +80,15 @@ void ForestSurvival::plant() { void ForestSurvival::resize_pred_mat(arma::mat& p){ - p.zeros(data->n_rows, pred_horizon.size()); + if(pred_type == PRED_TERMINAL_NODES || !pred_aggregate){ + + p.zeros(data->n_rows, n_tree); + + } else { + + p.zeros(data->n_rows, pred_horizon.size()); + + } } diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 0d9fb20b..62168773 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -56,8 +56,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -91,6 +91,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type pred_mode(pred_modeSEXP); Rcpp::traits::input_parameter< arma::uword >::type pred_type_R(pred_type_RSEXP); Rcpp::traits::input_parameter< arma::vec >::type pred_horizon(pred_horizonSEXP); + Rcpp::traits::input_parameter< bool >::type pred_aggregate(pred_aggregateSEXP); Rcpp::traits::input_parameter< bool >::type oobag(oobagSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_type_R(oobag_eval_type_RSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); @@ -98,7 +99,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); Rcpp::traits::input_parameter< int >::type verbosity(verbositySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity)); return rcpp_result_gen; END_RCPP } @@ -107,7 +108,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 37}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 38}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index f11bb8ee..7d0099ba 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -80,6 +80,9 @@ coef_indices(coef_indices), leaf_summary(leaf_summary){ + this->max_nodes = cutpoint.size()+1; + this->max_leaves = cutpoint.size()+1; + } @@ -906,8 +909,6 @@ for(i = 0; i < coef_values.size(); i++){ - Rcout << "moving obs in node " << i << std::endl; - // if child_left == 0, it's a leaf (no need to find next child) if(child_left[i] != 0){ @@ -939,13 +940,14 @@ } + if(verbosity > 4){ uvec in_left = find(pred_leaf == child_left[i]); uvec in_right = find(pred_leaf == child_left[i]+1); - Rcout << "No. to node " << child_left[i] << ": "; Rcout << in_left.size() << "; " << std::endl; Rcout << "No. to node " << child_left[i]+1 << ": "; Rcout << in_right.size() << std::endl << std::endl; + } } @@ -955,8 +957,6 @@ if(oobag) pred_leaf.elem(rows_inbag).fill(max_nodes); - Rcout << "---- done with leaf predictions ----" << std::endl; - } double Tree::compute_prediction_accuracy(arma::vec& preds){ diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index f23d309d..68729ce9 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -533,6 +533,11 @@ uvec::iterator it = pred_leaf_sort.begin(); + if(verbosity > 2){ + uvec tmp_uvec = find(pred_leaf < max_nodes); + Rcout << " -- N preds expected: " << tmp_uvec.size() << std::endl; + } + uword leaf_id = pred_leaf[*it]; double pred_t0; @@ -547,23 +552,24 @@ uword i, j; + uword n_preds_made = 0; + vec leaf_times, leaf_values; vec temp_vec((*pred_horizon).size()); double temp_dbl; + bool break_loop = false; - do { + for(; ;) { - Rcout << "leaf_id: " << leaf_id << std::endl; + // Rcout << "leaf_id: " << leaf_id << std::endl; // copies of leaf data using same aux memory leaf_times = vec(leaf_pred_indx[leaf_id].begin(), leaf_pred_indx[leaf_id].size(), false); - Rcout << "leaf_times: " << leaf_times.t() << std::endl; - switch (pred_type) { case PRED_RISK: case PRED_SURVIVAL: { @@ -600,8 +606,6 @@ } - Rcout << "leaf_values: " << leaf_values.t() << std::endl; - // don't reset i in the loop b/c leaf_times ascend i = 0; @@ -657,51 +661,61 @@ } - // old code for running mean - should i use it? - // temp2 = temp1 - surv_pvec[rows_oobag[*iit]]; - // surv_pvec[rows_oobag[*iit]] += temp2 / denom_pred[rows_oobag[*iit]]; - if(pred_type == PRED_RISK) temp_vec = 1 - temp_vec; - // while (it < pred_leaf_sort.end()-1 && leaf_id == pred_leaf(*it)) { - // - // Rcout << "*it: " << *it << std::endl; - // - // (*pred_output).row(*it) += temp_vec.t(); - // - // Rcout << "it was safe" << std::endl; - // - // if(oobag) (*pred_denom)[*it]++; - // - // Rcout << "it was safe 2" << std::endl; - // - // ++it; - // - // }; - (*pred_output).row(*it) += temp_vec.t(); + n_preds_made++; if(oobag) (*pred_denom)[*it]++; - ++it; - if(it < pred_leaf_sort.end()){ + // Rcout << "npreds: " << n_preds_made << ", "; + // Rcout << "*it: " << (*it) << std::endl; + + // in case the last obs has a unique leaf assignment + if(it == pred_leaf_sort.end()-1) break; + + for(; ;){ + + ++it; + if (it == pred_leaf_sort.end()-1){ + // we've reached the final value of pred_leaf + // check to see if it's the same leaf as the obs before: + if (leaf_id == pred_leaf[*it]){ + // if it is, add the value to the pred_output, and be done + (*pred_output).row(*it) += temp_vec.t(); + n_preds_made++; + if(oobag) (*pred_denom)[*it]++; + break_loop = true; + break; + } - while(leaf_id == pred_leaf[*it]){ + } - (*pred_output).row(*it) += temp_vec.t(); - if(oobag) (*pred_denom)[*it]++; + if(leaf_id != pred_leaf[*it]) break; - if (it == pred_leaf_sort.end()-1){ break; } else { ++it; } + (*pred_output).row(*it) += temp_vec.t(); + n_preds_made++; + if(oobag) (*pred_denom)[*it]++; - } + // Rcout << "npreds: " << n_preds_made << ", "; + // Rcout << "*it (inner loop): " << (*it) << std::endl; } + if(break_loop) break; + leaf_id = pred_leaf(*it); - Rcout << "new pred_leaf: " << leaf_id << std::endl; - } while (it < pred_leaf_sort.end() && (!oobag || leaf_id < max_nodes)); + // case 3: we've finished out-of-bag predictions + if(leaf_id == max_nodes) break; + + } + + if(verbosity > 2){ + Rcout << " -- N preds made: " << n_preds_made; + Rcout << std::endl; + Rcout << std::endl; + } - Rcout << "Made it out"; } diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index db5aa4a5..a1002e2a 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -101,6 +101,7 @@ bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, + bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, @@ -178,6 +179,7 @@ lincomb_R_function, pred_type, pred_mode, + pred_aggregate, oobag, oobag_eval_type, oobag_eval_every, diff --git a/tests/testthat/test-orsf_predict.R b/tests/testthat/test-orsf_predict.R index a559ed37..addbd0cb 100644 --- a/tests/testthat/test-orsf_predict.R +++ b/tests/testthat/test-orsf_predict.R @@ -1,22 +1,31 @@ #' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* +#' @srrstats {G5.5} *Also with fixed tree seeds (used by rng in c++)* set.seed(730) +tree_seeds <- 1:500 train <- sample(nrow(pbc_orsf), size = 170) -set.seed(329) -fit = orsf(formula = time + status ~ . - id, data = pbc_orsf[train, ]) +fit = orsf(formula = time + status ~ . - id, + data = pbc_orsf[train, ], + n_tree = 500, + tree_seeds = tree_seeds) -set.seed(329) fit_oobag_risk <- orsf(formula = time + status ~ . - id, data = pbc_orsf[train, ], - oobag_pred_type = 'risk') + oobag_pred_type = 'risk', + tree_seeds = tree_seeds) -set.seed(329) fit_oobag_chf <- orsf(formula = time + status ~ . - id, data = pbc_orsf[train, ], - oobag_pred_type = 'chf') + oobag_pred_type = 'chf', + tree_seeds = tree_seeds) + +fit_oobag_mort <- orsf(formula = time + status ~ . - id, + data = pbc_orsf[train, ], + oobag_pred_type = 'mort', + tree_seeds = tree_seeds) test_that( @@ -48,9 +57,6 @@ test_that( ) - - - test_that( desc = 'oobag risk and surv have equivalent C-stat', code = { @@ -66,9 +72,6 @@ new_data <- pbc_orsf[-train, ] new_data_dt <- as.data.table(new_data) new_data_tbl <- tibble::as_tibble(new_data) - - - test_that( desc = 'pred_horizon automatically set to object$pred_horizon if needed', code = { @@ -80,12 +83,20 @@ test_that( ) test_that( - desc = 'preds identical with na_action = pass/fail if no missing data', + desc = 'identical na_action = pass/fail/impute/omit if no missing data', code = { expect_equal( predict(fit, new_data = new_data, na_action = 'fail'), predict(fit, new_data = new_data, na_action = 'pass') ) + expect_equal( + predict(fit, new_data = new_data, na_action = 'fail'), + predict(fit, new_data = new_data, na_action = 'impute_meanmode') + ) + expect_equal( + predict(fit, new_data = new_data, na_action = 'fail'), + predict(fit, new_data = new_data, na_action = 'omit') + ) } ) @@ -103,11 +114,15 @@ test_that( } ) -p1_chf <- predict(fit, new_data = new_data, - pred_type = 'chf', pred_horizon = 1000) +p1_chf <- predict(fit, + new_data = new_data, + pred_type = 'chf', + pred_horizon = 1000) -p1_surv <- predict(fit, new_data = new_data, - pred_type = 'surv', pred_horizon = 1000) +p1_surv <- predict(fit, + new_data = new_data, + pred_type = 'surv', + pred_horizon = 1000) p1_mort <- predict(fit, new_data = new_data, pred_type = 'mort') @@ -186,22 +201,26 @@ p2 <- predict(fit, pred_horizon = 1000, pred_type = 'surv') + test_that( desc = 'risk is inverse of survival', - code = {expect_true(all(p1_risk == 1 - p2))} + code = { + expect_equal(p1_risk, 1-p2, tolerance = 1e-9) + } ) test_that( - desc = 'predictions do not depend on observations in the data', + desc = 'predictions do not depend on other observations in the data', code = { for(i in seq(nrow(new_data))){ + p2_1row <- predict(fit, new_data = new_data[i,], pred_horizon = 1000, pred_type = 'surv') - expect_equal(p2_1row, p2[i], ignore_attr = TRUE, tolerance = 0.015) + expect_equal(p2_1row, p2[i], ignore_attr = TRUE, tolerance = 1e-9) } } ) @@ -220,7 +239,7 @@ test_that( pred_horizon = 1000, pred_type = 'surv') - expect_equal(preds, p2[new_order], ignore_attr = TRUE, tolerance = 0.015) + expect_equal(preds, p2[new_order], ignore_attr = TRUE, tolerance = 1e-9) } ) @@ -465,10 +484,9 @@ test_that( units(pbc_units_trn$age) <- 'years' units(pbc_units_trn$bili) <- 'mg/dl' - #' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* - - set.seed(329) - fit_units = orsf(formula = time + status ~ . - id, data = pbc_units_trn) + fit_units = orsf(formula = time + status ~ . - id, + data = pbc_units_trn, + tree_seeds = tree_seeds) expect_error( predict(fit_units, new_data = pbc_units_tst, pred_horizon = 1000), @@ -493,8 +511,6 @@ test_that( expect_equal(fit_units$eval_oobag$stat_values, fit$eval_oobag$stat_values) expect_equal(fit_units$forest, fit$forest) - # small difference in one or two cases, but the forests are identical. - # so... p3 <- predict(fit_units, new_data = pbc_units_tst, pred_horizon = 1000) expect_equal(p3, p1_risk) From 4d2dae198dfa3542e7a21de9f038a3608f92f4d4 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 26 Sep 2023 09:38:04 -0400 Subject: [PATCH 083/103] oob leaf preds --- R/check.R | 3 ++- R/orsf.R | 15 +++++++++++++-- R/orsf_predict.R | 1 - src/Forest.cpp | 9 +++++++-- tests/testthat/test-orsf_predict.R | 10 ++++++++++ 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/R/check.R b/R/check.R index 5990ece2..839a5bba 100644 --- a/R/check.R +++ b/R/check.R @@ -928,8 +928,9 @@ check_orsf_inputs <- function(data = NULL, valid_options = c("none", "surv", "risk", + "chf", "mort", - "chf")) + "leaf")) } diff --git a/R/orsf.R b/R/orsf.R index ae235266..c0c3e4d7 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -434,8 +434,18 @@ orsf <- function(data, f_oobag_eval <- oobag_fun type_oobag_eval <- 'user' + if(oobag_pred_type == 'leaf'){ + stop("a user-supplied oobag function cannot be", + "applied when oobag_pred_type = 'leaf'", + call. = FALSE) + } + } + # can't evaluate the oobag predictions if they aren't aggregated + if(oobag_pred_type == 'leaf') type_oobag_eval <- 'none' + + cph_method <- control_cph$cph_method cph_eps <- control_cph$cph_eps cph_iter_max <- control_cph$cph_iter_max @@ -737,9 +747,10 @@ orsf <- function(data, "risk" = 1, "surv" = 2, "chf" = 3, - "mort" = 4), + "mort" = 4, + "leaf" = 8), pred_mode = FALSE, - pred_aggregate = TRUE, + pred_aggregate = oobag_pred_type != 'leaf', pred_horizon = oobag_pred_horizon, oobag = oobag_pred, oobag_eval_type_R = switch(type_oobag_eval, diff --git a/R/orsf_predict.R b/R/orsf_predict.R index 4cbaf932..f80e6953 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -215,4 +215,3 @@ predict.orsf_fit <- function(object, - diff --git a/src/Forest.cpp b/src/Forest.cpp index ab40500f..c21a3de8 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -554,7 +554,6 @@ void Forest::predict_single_thread(Data* prediction_data, using std::chrono::steady_clock; using std::chrono::duration_cast; using std::chrono::seconds; - steady_clock::time_point start_time = steady_clock::now(); steady_clock::time_point last_time = steady_clock::now(); size_t max_progress = n_tree; @@ -574,12 +573,18 @@ void Forest::predict_single_thread(Data* prediction_data, trees[i]->predict_leaf(prediction_data, oobag); if(pred_type == PRED_TERMINAL_NODES){ + result.col(i) = conv_to::from(trees[i]->get_pred_leaf()); + } else if (!pred_aggregate){ + vec col_i = result.unsafe_col(i); trees[i]->predict_value(&col_i, &oobag_denom, pred_type, oobag); + } else { + trees[i]->predict_value(&result, &oobag_denom, pred_type, oobag); + } progress++; @@ -612,7 +617,7 @@ void Forest::predict_single_thread(Data* prediction_data, } // if tracking oobag error over time: - if(oobag && (progress % oobag_eval_every == 0) ){ + if(oobag && (progress % oobag_eval_every == 0) && pred_aggregate){ uword eval_row = (progress / oobag_eval_every) - 1; // mat preds = result.each_col() / oobag_denom; diff --git a/tests/testthat/test-orsf_predict.R b/tests/testthat/test-orsf_predict.R index addbd0cb..75c2abee 100644 --- a/tests/testthat/test-orsf_predict.R +++ b/tests/testthat/test-orsf_predict.R @@ -27,6 +27,16 @@ fit_oobag_mort <- orsf(formula = time + status ~ . - id, oobag_pred_type = 'mort', tree_seeds = tree_seeds) +fit_oobag_mort <- orsf(formula = time + status ~ . - id, + data = pbc_orsf[train, ], + oobag_pred_type = 'mort', + tree_seeds = tree_seeds) + +fit_oobag_leaf <- orsf(formula = time + status ~ . - id, + data = pbc_orsf[train, ], + oobag_pred_type = 'leaf', + tree_seeds = tree_seeds) + test_that( desc = "prediction at time 0 is correct", From 246ecda1d19b4f634766ea62d73bbaf540d36469 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 26 Sep 2023 14:41:03 -0400 Subject: [PATCH 084/103] some support for leaf and non-aggregate preds --- R/orsf.R | 11 ++ R/orsf_predict.R | 60 +++++--- scratch.R | 311 +++++++---------------------------------- src/Forest.cpp | 29 +++- src/Forest.h | 4 +- src/ForestSurvival.cpp | 10 +- src/ForestSurvival.h | 2 +- 7 files changed, 135 insertions(+), 292 deletions(-) diff --git a/R/orsf.R b/R/orsf.R index c0c3e4d7..8219876b 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -786,11 +786,22 @@ orsf <- function(data, "1" = "Harrell's C-statistic", "2" = "User-specified function") + if(oobag_pred_type == 'leaf'){ + all_rows <- seq(nrow(data)) + for(i in seq(n_tree)){ + rows_inbag <- setdiff(all_rows, orsf_out$forest$rows_oobag[[i]]+1) + orsf_out$pred_oobag[rows_inbag, i] <- NA + } + } + #' @srrstats {G2.10} *drop = FALSE for type consistency* orsf_out$pred_oobag <- orsf_out$pred_oobag[unsorted, , drop = FALSE] orsf_out$pred_oobag[is.nan(orsf_out$pred_oobag)] <- NA_real_ + + + } orsf_out$pred_horizon <- oobag_pred_horizon diff --git a/R/orsf_predict.R b/R/orsf_predict.R index f80e6953..597d5323 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -90,6 +90,21 @@ predict.orsf_fit <- function(object, names_x_data <- intersect(get_names_x(object), names(new_data)) + if(pred_type %in% c('leaf', 'mort') && !is.null(pred_horizon)){ + + extra_text <- if(length(pred_horizon)>1){ + " Predictions at each value of pred_horizon will be identical." + } else { + "" + } + + warning("pred_horizon does not impact predictions", + " when pred_type is '", pred_type, "'.", + extra_text, call. = FALSE) + # avoid copies of predictions and copies of this warning. + pred_horizon <- pred_horizon[1] + } + pred_horizon <- infer_pred_horizon(object, pred_horizon) check_predict(object = object, @@ -99,6 +114,27 @@ predict.orsf_fit <- function(object, na_action = na_action, boundary_checks = boundary_checks) + if(length(pred_horizon) > 1 && !pred_aggregate){ + + results <- lapply( + X = pred_horizon, + FUN = function(t){ + predict(object = object, + new_data = new_data, + pred_horizon = t, + pred_type = pred_type, + na_action = na_action, + boundary_checks = boundary_checks, + n_thread = n_thread, + verbose_progress = verbose_progress, + pred_aggregate = pred_aggregate) + } + ) + + return(simplify2array(results)) + + } + pred_horizon_order <- order(pred_horizon) pred_horizon_ordered <- pred_horizon[pred_horizon_order] @@ -126,21 +162,6 @@ predict.orsf_fit <- function(object, x_new <- prep_x_from_orsf(object, data = new_data[cc, ]) - # x_new <- as.matrix( - # ref_code(x_data = new_data[cc, ], - # fi = get_fctr_info(object), - # names_x_data = names_x_data) - # ) - - pred_type_R <- switch( - pred_type, - "risk" = 1, - "surv" = 2, - "chf" = 3, - "mort" = 4, - "leaf" = 8 - ) - orsf_out <- orsf_cpp(x = x_new, y = matrix(1, ncol=2), w = rep(1, nrow(x_new)), @@ -179,7 +200,12 @@ predict.orsf_fit <- function(object, 'breslow' = 0, 'efron' = 1 ), - pred_type_R = pred_type_R, + pred_type_R = switch(pred_type, + "risk" = 1, + "surv" = 2, + "chf" = 3, + "mort" = 4, + "leaf" = 8), pred_mode = TRUE, pred_aggregate = pred_aggregate, pred_horizon = pred_horizon_ordered, @@ -213,5 +239,3 @@ predict.orsf_fit <- function(object, } - - diff --git a/scratch.R b/scratch.R index 2f5914f4..59af212e 100644 --- a/scratch.R +++ b/scratch.R @@ -2,6 +2,28 @@ library(tidyverse) library(riskRegression) library(survival) + +fit <- orsf(pbc_orsf, + formula = Surv(time, status) ~ . - id, + oobag_pred_type = 'leaf', + oobag_pred_horizon = 1000, + split_rule = 'logrank', + n_thread = 10) + +prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'mort', + pred_aggregate = F, pred_horizon = c(500, 1000)) + +microbenchmark::microbenchmark( + prd_1 = predict(fit, new_data = pbc_orsf, n_thread = 1, pred_type = 'leaf', + pred_aggregate = F), + + prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'leaf', + pred_aggregate = F) +) + +max(prd_1 - prd_5) + + res <- oob <- vector(mode = 'numeric', length = 100) for(i in seq(100)){ @@ -42,26 +64,19 @@ mean(oob-res) library(randomForestSRC) microbenchmark::microbenchmark( - aorsf_1 = orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 500, - mtry = 3, - leaf_min_obs = 10, - n_split = 5, - importance = 'permute', - n_thread = 1), aorsf_5 = orsf(pbc_orsf, Surv(time, status) ~ . - id, n_tree = 500, mtry = 3, leaf_min_obs = 10, n_split = 5, - importance = 'permute', + importance = 'none', n_thread = 5), - rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., + rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ . -id, ntree = 500, mtry = 3, - nthread = 10, + nthread = 5, samptype = 'swr', - importance = 'permute', + importance = 'none', nodesize = 10, nsplit = 5, data = as.data.frame(pbc_orsf)) @@ -80,262 +95,34 @@ fit$forest[-1] |> .before = 1) |> print(n=100) - -# sink("orsf-output.txt") -res_cstat_oobag <- res_ipa_oobag <- res_cstat_new <- res_ipa_new <- c() - -n_train <- nrow(pbc_orsf)/2 - -for(i in seq(5)){ - - print(i) - - train_rows <- sort(sample(nrow(x), size = n_train)) - - orsf_fit_1 = aorsf:::orsf_cpp(x[train_rows, ], - y[train_rows, ], - w[train_rows], - tree_type_R = 3, - tree_seeds = 1:500, - loaded_forest = list(), - n_tree = 500, - mtry = 5, - vi_type_R = 3, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 1, - leaf_min_obs = 5, - split_rule_R = 1, - split_min_events = 5, - split_min_obs = 10, - split_min_stat = 0, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-9, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = FALSE, - pred_horizon = pred_horizon, - oobag = T, - oobag_eval_every = 500, - n_thread = 1) - - orsf_fit_5 = aorsf:::orsf_cpp(x[train_rows, ], - y[train_rows, ], - w[train_rows], - tree_type_R = 3, - tree_seeds = 1:500, - loaded_forest = list(), - n_tree = 500, - mtry = 5, - vi_type_R = 3, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 1, - leaf_min_obs = 5, - split_rule_R = 1, - split_min_events = 5, - split_min_obs = 10, - split_min_stat = 0, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-9, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = FALSE, - pred_horizon = pred_horizon, - oobag = T, - oobag_eval_every = 500, - n_thread = 10) - - - expect_equal(orsf_fit_1$vi_numer, orsf_fit_5$vi_numer) - expect_equal(orsf_fit_1$vi_denom, orsf_fit_5$vi_denom) - - expect_equal(orsf_fit_1$forest, orsf_fit_5$forest) - expect_equal(orsf_fit_1$pred_oobag, orsf_fit_5$pred_oobag) - - # sink() - # - # data.frame(variable = colnames(x), - # vi = orsf_fit$vi_numer/orsf_fit$vi_denom) |> - # dplyr::arrange(vi) - # - orsf_fit_1$forest[-1] |> - as_tibble() |> - slice(1) |> - unnest(everything()) |> - mutate(node_id = seq(0, n()-1), - .before = 1) |> - print(n=100) - # - # sink("orsf-output.txt") - - orsf_pred_1 = aorsf:::orsf_cpp(x[-train_rows, ], - y[-train_rows, ], - w[-train_rows], - tree_type_R = 3, - tree_seeds = 1:500, - loaded_forest = orsf_fit_1$forest, - n_tree = 500, - mtry = 5, - vi_type_R = 3, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 1, - leaf_min_obs = 5, - split_rule_R = 1, - split_min_events = 10, - split_min_obs = 20, - split_min_stat = 3.84, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-9, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = TRUE, - pred_horizon = c(pred_horizon), - oobag = FALSE, - oobag_eval_every = 500, - n_thread = 1) - - # sink("orsf-output.txt") - - orsf_pred_10 = aorsf:::orsf_cpp(x[-train_rows, ], - y[-train_rows, ], - w[-train_rows], - tree_type_R = 3, - tree_seeds = 1:500, - loaded_forest = orsf_fit_1$forest, - n_tree = 500, - mtry = 5, - vi_type_R = 3, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 1, - leaf_min_obs = 5, - split_rule_R = 1, - split_min_events = 10, - split_min_obs = 20, - split_min_stat = 3.84, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-9, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = TRUE, - pred_horizon = c(pred_horizon), - oobag = FALSE, - oobag_eval_every = 500, - n_thread = 5) - - # sink() - - pred_list <- list(one_thread = 1-orsf_pred_1$predictions, - ten_thread = 1-orsf_pred_10$predictions) - - expect_equal(pred_list$one_thread, pred_list$ten_thread) - - sc_oobag = Score(object = list(1-orsf_fit_1$pred_oobag), - Surv(time, status) ~ 1, - data = as.data.frame(y)[train_rows, ], - times = pred_horizon, - summary = 'IPA') - - sc = Score(object = pred_list, - Surv(time, status) ~ 1, - data = as.data.frame(y)[-train_rows, ], - times = pred_horizon, - summary = 'IPA') - - res_cstat_oobag <- c(res_cstat_oobag, sc_oobag$AUC$score$AUC[1]) - res_ipa_oobag <- c(res_ipa_oobag, sc_oobag$Brier$score$IPA[2]) - res_cstat_new <- c(res_cstat_new, sc$AUC$score$AUC[1]) - res_ipa_new <- c(res_ipa_new, sc$Brier$score$IPA[2]) - -} - -mean(res_cstat_oobag) -mean(res_cstat_new) -mean(res_ipa_oobag) -mean(res_ipa_new) +flchain_orsf <- flchain |> + rename(time = futime, status = death) |> + select(-chapter) |> + filter(time > 0) %>% + tidyr::drop_na() microbenchmark::microbenchmark( - orsf_fit = aorsf:::orsf_cpp(x, - y, - w, - tree_type_R = 3, - tree_seeds = c(1:500), - loaded_forest = list(), - n_tree = 500, - mtry = 3, - vi_type_R = 2, - vi_max_pvalue = 0.01, - lincomb_R_function = f, - oobag_R_function = f, - leaf_min_events = 5, - leaf_min_obs = 10, - split_rule_R = 1, - split_min_events = 10, - split_min_obs = 20, - split_min_stat = 3.84, - split_max_cuts = 5, - split_max_retry = 3, - lincomb_type_R = 1, - lincomb_eps = 1e-5, - lincomb_iter_max = 1, - lincomb_scale = TRUE, - lincomb_alpha = 1, - lincomb_df_target = 1, - lincomb_ties_method = 1, - pred_type_R = 1, - pred_mode = FALSE, - pred_horizon = pred_horizon, - oobag = TRUE, - oobag_eval_every = 500, - n_thread = 10), - - # ranger_fit = ranger::ranger(x = x, y = y, - # mtry = 3, - # num.threads = 10, - # num.trees = 500), - - rfsrc_fit = randomForestSRC::rfsrc(Surv(time, status) ~ ., - ntree = 500, - mtry = 3, - nthread = 10, - samptype = 'swr', - importance = 'permute', - nodesize = 10, - data = as.data.frame(cbind(y, x))), + aorsf_5 = orsf(flchain_orsf, Surv(time, status) ~ ., + n_tree = 500, + mtry = 3, + leaf_min_obs = 10, + n_split = 5, + importance = 'permute', + n_thread = 5), - times = 3 + rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., + ntree = 500, + mtry = 3, + nthread = 5, + samptype = 'swr', + importance = 'permute', + nodesize = 10, + nsplit = 5, + data = as.data.frame(flchain_orsf)), + times = 3 ) + diff --git a/src/Forest.cpp b/src/Forest.cpp index c21a3de8..4f71d809 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -641,7 +641,20 @@ void Forest::predict_multi_thread(uint thread_idx, trees[i]->predict_leaf(prediction_data, oobag); - trees[i]->predict_value(result_ptr, denom_ptr, pred_type, oobag); + if(pred_type == PRED_TERMINAL_NODES){ + + (*result_ptr).col(i) = conv_to::from(trees[i]->get_pred_leaf()); + + } else if (!pred_aggregate){ + + vec col_i = (*result_ptr).unsafe_col(i); + trees[i]->predict_value(&col_i, denom_ptr, pred_type, oobag); + + } else { + + trees[i]->predict_value(result_ptr, denom_ptr, pred_type, oobag); + + } // Check for user interrupt if (aborted) { @@ -733,6 +746,20 @@ void Forest::show_progress(std::string operation, size_t max_progress) { } } +void Forest::resize_pred_mat(arma::mat& p){ + + if(pred_type == PRED_TERMINAL_NODES || !pred_aggregate){ + + p.zeros(data->n_rows, n_tree); + + } else { + + resize_pred_mat_internal(p); + + } + +} + } diff --git a/src/Forest.h b/src/Forest.h index 6971f49d..b093a68c 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -227,7 +227,9 @@ class Forest { void show_progress(std::string operation, size_t max_progress); - virtual void resize_pred_mat(arma::mat& p) = 0; + virtual void resize_pred_mat(arma::mat& p); + + virtual void resize_pred_mat_internal(arma::mat& p) = 0; arma::uword find_max_eval_steps(); diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 59549baf..c3acc739 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -78,18 +78,10 @@ void ForestSurvival::plant() { } -void ForestSurvival::resize_pred_mat(arma::mat& p){ - - if(pred_type == PRED_TERMINAL_NODES || !pred_aggregate){ - - p.zeros(data->n_rows, n_tree); - - } else { +void ForestSurvival::resize_pred_mat_internal(arma::mat& p){ p.zeros(data->n_rows, pred_horizon.size()); - } - } std::vector> ForestSurvival::get_leaf_pred_indx() { diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 2161d0ad..7d305961 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -50,7 +50,7 @@ class ForestSurvival: public Forest { protected: - void resize_pred_mat(arma::mat& p) override; + void resize_pred_mat_internal(arma::mat& p) override; void resize_oobag_eval() override; From 524dc28e82604bac6479a4c3766d58e5fdeaff0b Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 26 Sep 2023 22:24:44 -0400 Subject: [PATCH 085/103] merging new VI with current orsf_vi syntax --- R/orsf_vi.R | 172 ++++++++++++++++++++--------- orsf-output.txt | 6 + scratch.R | 9 +- src/Forest.cpp | 15 +-- src/ForestSurvival.cpp | 24 ++-- src/ForestSurvival.h | 1 + src/Tree.cpp | 10 +- src/Tree.h | 16 +-- src/TreeSurvival.cpp | 5 +- src/TreeSurvival.h | 3 +- src/orsf_oop.cpp | 6 +- tests/testthat/test-newtraph_cph.R | 132 +++++++++++----------- tests/testthat/test-orsf_predict.R | 83 ++++++++++++++ 13 files changed, 325 insertions(+), 157 deletions(-) create mode 100644 orsf-output.txt diff --git a/R/orsf_vi.R b/R/orsf_vi.R index 93370e5b..54c30985 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -83,6 +83,8 @@ orsf_vi <- function(object, group_factors = TRUE, importance = NULL, oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, ...){ check_dots(list(...), .f = orsf_vi) @@ -110,30 +112,60 @@ orsf_vi <- function(object, orsf_vi_(object, group_factors = group_factors, type_vi = type_vi, - oobag_fun = oobag_fun) + oobag_fun = oobag_fun, + n_thread = n_thread, + verbose_progress = verbose_progress) } #' @rdname orsf_vi #' @export -orsf_vi_negate <- function(object, group_factors = TRUE, oobag_fun = NULL, ...){ - check_dots(list(...), .f = orsf_vi_negate) - orsf_vi_(object, group_factors, type_vi = 'negate', oobag_fun = oobag_fun) -} +orsf_vi_negate <- + function(object, + group_factors = TRUE, + oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, + ...) { + check_dots(list(...), .f = orsf_vi_negate) + orsf_vi_(object, + group_factors, + type_vi = 'negate', + oobag_fun = oobag_fun, + n_thread = n_thread, + verbose_progress = verbose_progress) + } #' @rdname orsf_vi #' @export -orsf_vi_permute <- function(object, group_factors = TRUE, oobag_fun = NULL, ...){ - check_dots(list(...), .f = orsf_vi_permute) - orsf_vi_(object, group_factors, type_vi = 'permute', oobag_fun = oobag_fun) -} +orsf_vi_permute <- + function(object, + group_factors = TRUE, + oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, + ...) { + check_dots(list(...), .f = orsf_vi_permute) + orsf_vi_(object, + group_factors, + type_vi = 'permute', + oobag_fun = oobag_fun, + n_thread = n_thread, + verbose_progress = verbose_progress) + } #' @rdname orsf_vi #' @export -orsf_vi_anova <- function(object, group_factors = TRUE, ...){ +orsf_vi_anova <- function(object, + group_factors = TRUE, + ...) { check_dots(list(...), .f = orsf_vi_anova) - orsf_vi_(object, group_factors, type_vi = 'anova', oobag_fun = NULL) + orsf_vi_(object, + group_factors, + type_vi = 'anova', + oobag_fun = NULL, + verbose_progress = FALSE) } #' Variable importance working function @@ -143,7 +175,12 @@ orsf_vi_anova <- function(object, group_factors = TRUE, ...){ #' #' @noRd #' -orsf_vi_ <- function(object, group_factors, type_vi, oobag_fun = NULL){ +orsf_vi_ <- function(object, + group_factors, + type_vi, + oobag_fun, + n_thread, + verbose_progress){ #' @srrstats {G2.8} *As part of initial pre-processing, run checks on inputs to ensure that all other sub-functions receive inputs of a single defined class or type.* @@ -156,10 +193,14 @@ orsf_vi_ <- function(object, group_factors, type_vi, oobag_fun = NULL){ " orsf object with importance = 'anova'", call. = FALSE) - out <- switch(type_vi, - 'anova' = as.matrix(get_importance_values(object)), - 'negate' = orsf_vi_oobag_(object, type_vi, oobag_fun), - 'permute' = orsf_vi_oobag_(object, type_vi, oobag_fun)) + out <- switch( + type_vi, + 'anova' = as.matrix(get_importance_values(object)), + 'negate' = orsf_vi_oobag_(object, type_vi, oobag_fun, + n_thread, verbose_progress), + 'permute' = orsf_vi_oobag_(object, type_vi, oobag_fun, + n_thread, verbose_progress) + ) if(group_factors) { @@ -209,7 +250,11 @@ orsf_vi_ <- function(object, group_factors, type_vi, oobag_fun = NULL){ #' #' @noRd #' -orsf_vi_oobag_ <- function(object, type_vi, oobag_fun){ +orsf_vi_oobag_ <- function(object, + type_vi, + oobag_fun, + n_thread, + verbose_progress){ # can remove this b/c prediction accuracy is now computed at tree level # if(!contains_oobag(object)){ @@ -251,43 +296,64 @@ orsf_vi_oobag_ <- function(object, type_vi, oobag_fun){ # Put data in the same order that it was in when object was fit sorted <- order(y[, 1], -y[, 2]) - - if(is.null(oobag_fun)) { - - last_eval_stat <- - last_value(object$eval_oobag$stat_values[, 1, drop=TRUE]) - - } else { - - last_eval_stat <- - f_oobag_eval(y_mat = y, s_vec = object$pred_oobag) - - } - - f_oobag_vi <- switch( - type_vi, - 'negate' = orsf_oob_negate_vi, - 'permute' = orsf_oob_permute_vi - ) - - pred_type <- switch( - get_oobag_pred_type(object), - "surv" = "S", - "risk" = "R", - "chf" = "H" - ) - - out <- f_oobag_vi(x = x[sorted, ], - y = y[sorted, ], - forest = object$forest, - last_eval_stat = last_eval_stat, - time_pred_ = object$pred_horizon, - f_oobag_eval = f_oobag_eval, - pred_type_ = pred_type, - type_oobag_eval_ = type_oobag_eval) - + pred_type <- 'mort' + + orsf_out <- orsf_cpp(x = x[sorted, , drop = FALSE], + y = y[sorted, , drop = FALSE], + w = get_weights_user(object), + tree_type_R = get_tree_type(object), + tree_seeds = get_tree_seeds(object), + loaded_forest = object$forest, + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = switch(type_vi, + 'negate' = 1, + 'permute' = 2), + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = 4, + pred_mode = FALSE, + pred_aggregate = TRUE, + pred_horizon = get_oobag_pred_horizon(object), + oobag = FALSE, + oobag_eval_type_R = switch(type_oobag_eval, + 'cstat' = 1, + 'user' = 2), + oobag_eval_every = get_n_tree(object), + n_thread = n_thread, + write_forest = FALSE, + run_forest = TRUE, + verbosity = as.integer(verbose_progress)) + + out <- orsf_out$importance rownames(out) <- colnames(x) - out } diff --git a/orsf-output.txt b/orsf-output.txt new file mode 100644 index 00000000..1d41de3a --- /dev/null +++ b/orsf-output.txt @@ -0,0 +1,6 @@ +------------ input data dimensions ------------ +N observations total: 276 +N columns total: 18 +----------------------------------------------- + +Called from: orsf_vi_oobag_(object, type_vi, oobag_fun, n_thread, verbose_progress) diff --git a/scratch.R b/scratch.R index 59af212e..1b3c7dfa 100644 --- a/scratch.R +++ b/scratch.R @@ -8,8 +8,16 @@ fit <- orsf(pbc_orsf, oobag_pred_type = 'leaf', oobag_pred_horizon = 1000, split_rule = 'logrank', + tree_seeds = 1:500, + # importance = 'permute', n_thread = 10) +fit$importance->tmp + +# sink("orsf-output.txt") +orsf_vi_permute(fit)->tmp2 +# sink() + prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'mort', pred_aggregate = F, pred_horizon = c(500, 1000)) @@ -39,7 +47,6 @@ for(i in seq(100)){ oob[i] = as.numeric(fit$eval_oobag$stat_values) - # sink("orsf-output.txt") prd <- predict(fit, new_data = pbc_orsf[-train, ], pred_horizon = 1000, diff --git a/src/Forest.cpp b/src/Forest.cpp index 4f71d809..9523df4d 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -101,16 +101,18 @@ void Forest::init(std::unique_ptr input_data, void Forest::run(bool oobag){ - if(pred_mode){ - init_trees(); + if(pred_mode){ // case 1: a grown forest used for prediction + init_trees(); this->pred_values = predict(oobag); - } else if (grow_mode) { + } else if (grow_mode) { // case 2: grow a new forest - // initialize the trees + // plant first plant(); + // initialize trees + init_trees(); // grow the trees grow(); @@ -119,6 +121,8 @@ void Forest::run(bool oobag){ this->pred_values = predict(oobag); } + } else { // case 3: a grown forest used for variable importance + init_trees(); } if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ @@ -159,9 +163,6 @@ void Forest::init_trees(){ void Forest::grow() { - // initialize trees before doing anything else - init_trees(); - // Create thread ranges equalSplit(thread_ranges, 0, n_tree - 1, n_thread); diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index c3acc739..817cdbac 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -23,15 +23,18 @@ ForestSurvival::ForestSurvival(double leaf_min_events, -void ForestSurvival::load(arma::uword n_tree, - std::vector>& forest_cutpoint, - std::vector>& forest_child_left, - std::vector>& forest_coef_values, - std::vector>& forest_coef_indices, - std::vector>& forest_leaf_pred_indx, - std::vector>& forest_leaf_pred_prob, - std::vector>& forest_leaf_pred_chaz, - std::vector>& forest_leaf_summary) { +void ForestSurvival::load( + arma::uword n_tree, + std::vector& forest_rows_oobag, + std::vector>& forest_cutpoint, + std::vector>& forest_child_left, + std::vector>& forest_coef_values, + std::vector>& forest_coef_indices, + std::vector>& forest_leaf_pred_indx, + std::vector>& forest_leaf_pred_prob, + std::vector>& forest_leaf_pred_chaz, + std::vector>& forest_leaf_summary +) { this->n_tree = n_tree; @@ -45,7 +48,8 @@ void ForestSurvival::load(arma::uword n_tree, for (uword i = 0; i < n_tree; ++i) { trees.push_back( - std::make_unique(forest_cutpoint[i], + std::make_unique(forest_rows_oobag[i], + forest_cutpoint[i], forest_child_left[i], forest_coef_values[i], forest_coef_indices[i], diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index 7d305961..c89598b8 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -25,6 +25,7 @@ class ForestSurvival: public Forest { ForestSurvival& operator=(const ForestSurvival&) = delete; void load(arma::uword n_tree, + std::vector& rows_oobag, std::vector>& forest_cutpoint, std::vector>& forest_child_left, std::vector>& forest_coef_values, diff --git a/src/Tree.cpp b/src/Tree.cpp index 7d0099ba..bf5f612b 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -44,7 +44,8 @@ } - Tree::Tree(std::vector& cutpoint, + Tree::Tree(arma::uvec& rows_oobag, + std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, @@ -74,6 +75,7 @@ lincomb_ties_method(DEFAULT_LINCOMB_TIES_METHOD), lincomb_R_function(0), verbosity(0), + rows_oobag(rows_oobag), cutpoint(cutpoint), child_left(child_left), coef_values(coef_values), @@ -1007,8 +1009,7 @@ // Randomly permute for all independent variables for (uword pred_col = 0; pred_col < data->get_n_cols(); ++pred_col) { - // Check whether the i-th variable is used in the - // tree: + // Check whether the i-th variable is used in the tree: bool pred_is_used = false; for(uint j = 0; j < coef_indices.size(); ++j){ @@ -1024,12 +1025,13 @@ if (pred_is_used) { if(vi_type == VI_PERMUTE){ + // everyone gets the same permutation + random_number_generator.seed(seed); data_oobag->permute_col(pred_col, random_number_generator); } else if (vi_type == VI_NEGATE){ negate_coef(pred_col); } - predict_leaf(data_oobag.get(), false); for(uword i = 0; i < pred_values.size(); ++i){ diff --git a/src/Tree.h b/src/Tree.h index e16efc9b..d6b59c73 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -21,7 +21,8 @@ Tree(); // Create from loaded forest - Tree(std::vector& cutpoint, + Tree(arma::uvec& rows_oobag, + std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, @@ -171,12 +172,6 @@ // the 'g' is short for 'groups' arma::uvec g_node; - // which rows of data are held out while growing the tree - arma::uvec rows_inbag; - arma::uvec rows_oobag; - arma::uvec rows_node; - arma::uvec cols_node; - int seed; arma::uword mtry; @@ -217,6 +212,13 @@ int verbosity; + // which rows of data are held out while growing the tree + arma::uvec rows_inbag; + arma::uvec rows_oobag; + arma::uvec rows_node; + arma::uvec cols_node; + + // predicted leaf node arma::uvec pred_leaf; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 68729ce9..74ca33ef 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -29,7 +29,8 @@ } - TreeSurvival::TreeSurvival(std::vector& cutpoint, + TreeSurvival::TreeSurvival(arma::uvec& rows_oobag, + std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, @@ -38,7 +39,7 @@ std::vector& leaf_pred_chaz, std::vector& leaf_summary, arma::vec* pred_horizon) : - Tree(cutpoint, child_left, coef_values, coef_indices, leaf_summary), + Tree(rows_oobag, cutpoint, child_left, coef_values, coef_indices, leaf_summary), leaf_pred_indx(leaf_pred_indx), leaf_pred_prob(leaf_pred_prob), leaf_pred_chaz(leaf_pred_chaz), diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 744331a0..67e18c93 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -28,7 +28,8 @@ arma::vec* unique_event_times, arma::vec* pred_horizon); - TreeSurvival(std::vector& cutpoint, + TreeSurvival(arma::uvec& rows_oobag, + std::vector& cutpoint, std::vector& child_left, std::vector& coef_values, std::vector& coef_indices, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index a1002e2a..80ea511e 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -190,6 +190,7 @@ // Load forest object if it was already grown if(!grow_mode){ + std::vector rows_oobag = loaded_forest["rows_oobag"]; std::vector> cutpoint = loaded_forest["cutpoint"]; std::vector> child_left = loaded_forest["child_left"]; std::vector> coef_values = loaded_forest["coef_values"]; @@ -203,8 +204,9 @@ std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; auto& temp = dynamic_cast(*forest); - temp.load(n_tree, cutpoint, child_left, coef_values, coef_indices, - leaf_pred_indx, leaf_pred_prob, leaf_pred_chaz, leaf_summary); + temp.load(n_tree, rows_oobag, cutpoint, child_left, + coef_values, coef_indices, leaf_pred_indx, + leaf_pred_prob, leaf_pred_chaz, leaf_summary); } diff --git a/tests/testthat/test-newtraph_cph.R b/tests/testthat/test-newtraph_cph.R index 1a4c26a1..c788ee09 100644 --- a/tests/testthat/test-newtraph_cph.R +++ b/tests/testthat/test-newtraph_cph.R @@ -17,7 +17,7 @@ control <- survival::coxph.control(iter.max = iter_max, eps = 1e-8) run_cph_test <- function(x, y, method){ - wts <- sample(seq(1:2), size = nrow(x), replace = TRUE) + wts <- sample(seq(1:5), size = nrow(x), replace = TRUE) tt = survival::coxph.fit(x = x, y = y, @@ -47,15 +47,9 @@ run_cph_test <- function(x, y, method){ cph_eps = 1e-8, cph_iter_max = iter_max) - beta <- bcj$beta + expect_equal(as.numeric(tt$coefficients), bcj$beta, tolerance = 1e-9) - rownames(beta) <- names(tt$coefficients) - beta_vec <- beta[, 1, drop = TRUE] - - perc_diff <- function(a,b) abs(a-b) / (abs(0.001 + a+b)/2) - - # maximum percent difference - max(perc_diff(tt$coefficients, beta_vec)) + expect_equal(diag(tt$var), bcj$var, tolerance = 1e-9) } @@ -76,8 +70,8 @@ y <- survival::Surv(.pbc$time, .pbc$status) test_that( desc = 'similar answers for pbc data', code = { - expect_true( run_cph_test(x, y, method = 0) < 1e-2 ) - expect_true( run_cph_test(x, y, method = 1) < 1e-2 ) + run_cph_test(x, y, method = 0) + run_cph_test(x, y, method = 1) } ) @@ -113,66 +107,64 @@ y <- flchain_y test_that( desc = 'similar answers for flchain data', code = { - expect_true( run_cph_test(x, y, method = 0) < 1e-2 ) - expect_true( run_cph_test(x, y, method = 1) < 1e-2 ) + run_cph_test(x, y, method = 0) + run_cph_test(x, y, method = 1) } ) - - -# speed comparison -------------------------------------------------------- - -data("flchain", package = 'survival') - -df <- na.omit(flchain) - -df$chapter <- NULL - -time <- 'futime' -status <- 'death' - -df_nomiss <- na.omit(df) - -df_sorted <- df_nomiss[order(df_nomiss[[time]]),] - -df_x <- df_sorted -df_x[[time]] <- NULL -df_x[[status]] <- NULL - -flchain_x <- model.matrix(~.-1, data = df_x) - -flchain_y <- survival::Surv(time = df_sorted[[time]], - event = df_sorted[[status]]) - -x <- flchain_x[, c('age', 'sexF','sample.yr', 'kappa', 'lambda')] -y <- flchain_y - -wts <- sample(seq(1:2), size = nrow(x), replace = TRUE) - -method = 0 - -control <- survival::coxph.control(iter.max = 1, eps = 1e-8) - -microbenchmark::microbenchmark( - - tt = survival::coxph.fit(x = x, - y = y, - strata = NULL, - offset = NULL, - init = rep(0, ncol(x)), - control = control, - weights = wts, - method = if(method == 0) 'breslow' else 'efron', - rownames = NULL, - resid = FALSE, - nocenter = c(0)), - - bcj = coxph_fit_exported(x[, , drop = FALSE], - y, - wts, - method = method, - cph_eps = 1e-8, - cph_iter_max = control$iter.max) - -) +# # speed comparison -------------------------------------------------------- +# +# data("flchain", package = 'survival') +# +# df <- na.omit(flchain) +# +# df$chapter <- NULL +# +# time <- 'futime' +# status <- 'death' +# +# df_nomiss <- na.omit(df) +# +# df_sorted <- df_nomiss[order(df_nomiss[[time]]),] +# +# df_x <- df_sorted +# df_x[[time]] <- NULL +# df_x[[status]] <- NULL +# +# flchain_x <- model.matrix(~.-1, data = df_x) +# +# flchain_y <- survival::Surv(time = df_sorted[[time]], +# event = df_sorted[[status]]) +# +# x <- flchain_x[, c('age', 'sexF','sample.yr', 'kappa', 'lambda')] +# y <- flchain_y +# +# wts <- sample(seq(1:2), size = nrow(x), replace = TRUE) +# +# method = 0 +# +# control <- survival::coxph.control(iter.max = 1, eps = 1e-8) +# +# microbenchmark::microbenchmark( +# +# tt = survival::coxph.fit(x = x, +# y = y, +# strata = NULL, +# offset = NULL, +# init = rep(0, ncol(x)), +# control = control, +# weights = wts, +# method = if(method == 0) 'breslow' else 'efron', +# rownames = NULL, +# resid = FALSE, +# nocenter = c(0)), +# +# bcj = coxph_fit_exported(x[, , drop = FALSE], +# y, +# wts, +# method = method, +# cph_eps = 1e-8, +# cph_iter_max = control$iter.max) +# +# ) diff --git a/tests/testthat/test-orsf_predict.R b/tests/testthat/test-orsf_predict.R index 75c2abee..49026df9 100644 --- a/tests/testthat/test-orsf_predict.R +++ b/tests/testthat/test-orsf_predict.R @@ -66,6 +66,51 @@ test_that( } ) +test_that( + desc = "unaggregated predictions can reproduce aggregated ones", + code = { + + for(i in c("surv", "risk", "mort", "chf")){ + + preds_single_thread_agg <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + n_thread = 1) + + preds_multi_thread_agg <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + n_thread = 3) + + + preds_single_thread_raw <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + pred_aggregate = FALSE, + n_thread = 1) + + preds_multi_thread_raw <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + pred_aggregate = FALSE, + n_thread = 3) + + expect_equal(preds_single_thread_agg, + preds_multi_thread_agg, + tolerance = 1e-9) + + expect_equal(as.numeric(preds_single_thread_agg), + apply(preds_single_thread_raw, 1, mean), + tolerance = 1e-9) + + expect_equal(as.numeric(preds_single_thread_agg), + apply(preds_multi_thread_raw, 1, mean), + tolerance = 1e-9) + + } + + } +) test_that( desc = 'oobag risk and surv have equivalent C-stat', @@ -77,6 +122,44 @@ test_that( } ) +test_that( + desc = "warnings served if pred_horizon is not needed", + code = { + + expect_warning( + predict(fit, new_data = pbc_orsf[1, ], + pred_horizon = c(50, 500), + pred_type = 'leaf'), + regexp = 'does not impact predictions' + ) + + expect_warning( + predict(fit, new_data = pbc_orsf[1, ], + pred_horizon = c(50, 500), + pred_type = 'mort'), + regexp = 'does not impact predictions' + ) + + + } +) + +test_that( + desc = "predictions are the same when using 1 or multiple threads", + code = { + for(i in c("surv", "risk", "mort", "chf")){ + preds_single_thread <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + n_thread = 1) + preds_multi_thread <- predict(fit, + new_data = pbc_orsf[-train, ], + pred_type = i, + n_thread = 3) + expect_equal(preds_single_thread, preds_multi_thread, tolerance = 1e-9) + } + } +) new_data <- pbc_orsf[-train, ] new_data_dt <- as.data.table(new_data) From 2521766b9de4efefb08d4eb01578c8c8425e67e8 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Tue, 26 Sep 2023 23:19:23 -0400 Subject: [PATCH 086/103] more trees in the noise/scale tests --- tests/testthat/test-orsf.R | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 29824240..875249c6 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -528,24 +528,24 @@ for(i in vars){ fit_orsf <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_thread = 1, - n_tree = 100, - tree_seeds = 1:100) + n_tree = 500, + tree_seeds = 1:500) fit_orsf_2 <- orsf(pbc_orsf, Surv(time, status) ~ . - id, n_thread = 5, - n_tree = 100, - tree_seeds = 1:100) + n_tree = 500, + tree_seeds = 1:500) fit_orsf_noise <- orsf(pbc_noise, Surv(time, status) ~ . - id, - n_tree = 100, - tree_seeds = 1:100) + n_tree = 500, + tree_seeds = 1:500) fit_orsf_scale <- orsf(pbc_scale, Surv(time, status) ~ . - id, - n_tree = 100, - tree_seeds = 1:100) + n_tree = 500, + tree_seeds = 1:500) #' @srrstats {ML7.1} *Demonstrate effect of numeric scaling of input data.* test_that( @@ -578,17 +578,22 @@ test_that( expect_lt( - mean(abs(fit_orsf$pred_oobag - fit_orsf_scale$pred_oobag)), + max(abs(fit_orsf$pred_oobag - fit_orsf_scale$pred_oobag)), 0.1 ) expect_lt( - mean(abs(fit_orsf$pred_oobag - fit_orsf_2$pred_oobag)), + max(abs(fit_orsf$pred_oobag - fit_orsf_2$pred_oobag)), 0.1 ) expect_lt( - mean(abs(fit_orsf$pred_oobag - fit_orsf_noise$pred_oobag)), + max(abs(fit_orsf$pred_oobag - fit_orsf_noise$pred_oobag)), + 0.1 + ) + + expect_lt( + mean(abs(fit_orsf$importance - fit_orsf_noise$importance)), 0.1 ) @@ -615,8 +620,8 @@ test_that( code = { object <- orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 100, - tree_seeds = 1:100, + n_tree = 500, + tree_seeds = 1:500, no_fit = TRUE) fit_orsf_3 <- orsf_train(object) From 4a1b7cfb5f9d8434f24e2aff88f6f4f87b7db563 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Wed, 27 Sep 2023 23:55:28 -0400 Subject: [PATCH 087/103] toying with compute_dependence function for Forests --- R/oobag_c_survival.R | 13 ++++++++ R/orsf_pd.R | 1 - R/orsf_vi.R | 2 +- scratch.R | 10 +++--- src/Forest.cpp | 58 +++++++++++++++++++++++++++-------- src/Tree.cpp | 24 ++++++++++++++- src/Tree.h | 8 +++++ src/TreeSurvival.cpp | 2 +- src/TreeSurvival.h | 2 +- tests/testthat/test-orsf_vi.R | 42 ++++++++++--------------- 10 files changed, 115 insertions(+), 47 deletions(-) diff --git a/R/oobag_c_survival.R b/R/oobag_c_survival.R index 425c87d8..d5f819c6 100644 --- a/R/oobag_c_survival.R +++ b/R/oobag_c_survival.R @@ -25,4 +25,17 @@ oobag_c_survival <- function(y_mat, w_vec, s_vec){ } +oobag_c_risk <- function(y_mat, w_vec, s_vec){ + + data <- as.data.frame(cbind(y_mat, s_vec)) + names(data) = c("time", "status", "x") + + 1 - survival::concordance( + survival::Surv(time, status) ~ x, + data = data, + weights = w_vec + )$concordance + +} + diff --git a/R/orsf_pd.R b/R/orsf_pd.R index 9a261951..d5606b75 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -357,7 +357,6 @@ orsf_pred_dependence <- function(object, if(is.data.frame(pred_spec)) type_input <- 'grid' - pd_fun_structure <- switch(type_input, 'grid' = pd_grid, 'loop' = pd_loop) diff --git a/R/orsf_vi.R b/R/orsf_vi.R index 54c30985..48296edb 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -311,7 +311,7 @@ orsf_vi_oobag_ <- function(object, 'permute' = 2), vi_max_pvalue = get_vi_max_pvalue(object), lincomb_R_function = get_f_beta(object), - oobag_R_function = get_f_oobag_eval(object), + oobag_R_function = f_oobag_eval, leaf_min_events = get_leaf_min_events(object), leaf_min_obs = get_leaf_min_obs(object), split_rule_R = switch(get_split_rule(object), diff --git a/scratch.R b/scratch.R index 1b3c7dfa..455079bd 100644 --- a/scratch.R +++ b/scratch.R @@ -2,20 +2,22 @@ library(tidyverse) library(riskRegression) library(survival) - +tictoc::tic() fit <- orsf(pbc_orsf, formula = Surv(time, status) ~ . - id, oobag_pred_type = 'leaf', oobag_pred_horizon = 1000, split_rule = 'logrank', tree_seeds = 1:500, - # importance = 'permute', + importance = 'negate', n_thread = 10) - +tictoc::toc() fit$importance->tmp # sink("orsf-output.txt") -orsf_vi_permute(fit)->tmp2 +tictoc::tic() +orsf_vi_negate(fit)->tmp2 +tictoc::toc() # sink() prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'mort', diff --git a/src/Forest.cpp b/src/Forest.cpp index 9523df4d..64b633f2 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -101,30 +101,33 @@ void Forest::init(std::unique_ptr input_data, void Forest::run(bool oobag){ - - if(pred_mode){ // case 1: a grown forest used for prediction - - init_trees(); - this->pred_values = predict(oobag); - - } else if (grow_mode) { // case 2: grow a new forest + if (grow_mode) { // case 1: grow a new forest // plant first plant(); - // initialize trees + // initialize init_trees(); - // grow the trees + // grow grow(); - // compute out-of-bag predictions if needed + // compute + evaluate out-of-bag predictions if oobag is true if(oobag){ this->pred_values = predict(oobag); } - } else { // case 3: a grown forest used for variable importance + } else { + + // just initialize trees if the forest was already grown init_trees(); + + } + + // case 2: a grown forest used for prediction + if(pred_mode){ + this->pred_values = predict(oobag); } + // case 3: a grown forest used for variable importance if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ compute_oobag_vi(); } @@ -155,6 +158,8 @@ void Forest::init_trees(){ lincomb_df_target, lincomb_ties_method, lincomb_R_function, + oobag_R_function, + oobag_eval_type, verbosity); } @@ -534,8 +539,12 @@ mat Forest::predict(bool oobag) { if(oobag){ - compute_prediction_accuracy(data.get(), result, oobag_eval.n_rows-1); + if(grow_mode){ + compute_prediction_accuracy(data.get(), result, oobag_eval.n_rows-1); + } + // it's okay if we divide by 0 here. It makes the result NaN but + // that will be fixed when the results are post-processed in R/orsf.R result.each_col() /= oobag_denom; } else { @@ -548,6 +557,29 @@ mat Forest::predict(bool oobag) { } +// std::vector Forest::compute_dependence(bool oobag, +// mat x_vals, +// umat x_cols, +// bool summarize){ +// +// mat preds_summary; +// +// for(uword i = 0; i < x_vals.n_rows){ +// +// data->fill_x(x_vals[i], x_cols[i]); +// +// mat preds = predict(oobag); +// +// data->restore_col(x_vals[i], x_cols[i]); +// +// if(summarize) preds_summary = mean(preds,0); +// +// } +// +// +// +// } + void Forest::predict_single_thread(Data* prediction_data, bool oobag, mat& result) { @@ -618,7 +650,7 @@ void Forest::predict_single_thread(Data* prediction_data, } // if tracking oobag error over time: - if(oobag && (progress % oobag_eval_every == 0) && pred_aggregate){ + if(oobag && grow_mode && (progress%oobag_eval_every==0) && pred_aggregate){ uword eval_row = (progress / oobag_eval_every) - 1; // mat preds = result.each_col() / oobag_denom; diff --git a/src/Tree.cpp b/src/Tree.cpp index bf5f612b..a37a7778 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -110,6 +110,8 @@ arma::uword lincomb_df_target, arma::uword lincomb_ties_method, RObject lincomb_R_function, + RObject oobag_R_function, + EvalType oobag_eval_type, int verbosity){ // Initialize random number generator and set seed @@ -139,6 +141,8 @@ this->lincomb_df_target = lincomb_df_target; this->lincomb_ties_method = lincomb_ties_method; this->lincomb_R_function = lincomb_R_function; + this->oobag_R_function = oobag_R_function; + this->oobag_eval_type = oobag_eval_type; this->verbosity = verbosity; } @@ -962,7 +966,25 @@ } double Tree::compute_prediction_accuracy(arma::vec& preds){ - return(0.0); + + if (oobag_eval_type == EVAL_R_FUNCTION){ + + NumericMatrix y_wrap = wrap(y_oobag); + NumericVector w_wrap = wrap(w_oobag); + NumericVector p_wrap = wrap(preds); + + // initialize function from tree object + // (Functions can't be stored in C++ classes, but RObjects can) + Function f_oobag = as(oobag_R_function); + + NumericVector result_R = f_oobag(y_wrap, w_wrap, p_wrap); + + return(result_R[0]); + + } + + return(compute_prediction_accuracy_internal(preds)); + } void Tree::negate_coef(arma::uword pred_col){ diff --git a/src/Tree.h b/src/Tree.h index d6b59c73..5c44495b 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -57,6 +57,8 @@ arma::uword lincomb_df_target, arma::uword lincomb_ties_method, Rcpp::RObject lincomb_R_function, + Rcpp::RObject oobag_R_function, + EvalType oobag_eval_type, int verbosity); @@ -210,6 +212,10 @@ arma::uword lincomb_ties_method; Rcpp::RObject lincomb_R_function; + // allow customization of oobag prediction accuracy + Rcpp::RObject oobag_R_function; + EvalType oobag_eval_type; + int verbosity; // which rows of data are held out while growing the tree @@ -247,6 +253,8 @@ virtual double compute_prediction_accuracy(arma::vec& preds); + virtual double compute_prediction_accuracy_internal(arma::vec& preds) = 0; + }; } // namespace aorsf diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 74ca33ef..62d3847d 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -720,7 +720,7 @@ } - double TreeSurvival::compute_prediction_accuracy(arma::vec& preds){ + double TreeSurvival::compute_prediction_accuracy_internal(arma::vec& preds){ return compute_cstat(y_oobag, w_oobag, preds, true); diff --git a/src/TreeSurvival.h b/src/TreeSurvival.h index 67e18c93..0306616c 100644 --- a/src/TreeSurvival.h +++ b/src/TreeSurvival.h @@ -74,7 +74,7 @@ return(leaf_pred_chaz); } - double compute_prediction_accuracy(arma::vec& preds) override; + double compute_prediction_accuracy_internal(arma::vec& preds) override; std::vector leaf_pred_indx; std::vector leaf_pred_prob; diff --git a/tests/testthat/test-orsf_vi.R b/tests/testthat/test-orsf_vi.R index f64d6a19..4b13db53 100644 --- a/tests/testthat/test-orsf_vi.R +++ b/tests/testthat/test-orsf_vi.R @@ -1,11 +1,11 @@ -oobag_fun_brier <- function(y_mat, s_vec){ +oobag_fun_brier <- function(y_mat, w_vec, s_vec){ # risk = 1 - survival r_vec <- 1 - s_vec - y <- y_mat[, 'status'] + y <- y_mat[, 2L] # mean of the squared differences between predicted and observed risk bri <- mean( (y - r_vec)^2 ) @@ -20,49 +20,49 @@ oobag_fun_brier <- function(y_mat, s_vec){ } -oobag_fun_bad_name <- function(nope, s_vec){ +oobag_fun_bad_name <- function(nope, w_vec, s_vec){ # risk = 1 - survival r_vec <- 1 - s_vec # mean of the squared differences between predicted and observed risk - mean( (y_mat[, 'status'] - r_vec)^2 ) + mean( (y_mat[, 2L] - r_vec)^2 ) } -oobag_fun_bad_name_2 <- function(y_mat, nope){ +oobag_fun_bad_name_2 <- function(y_mat, w_vec, nope){ # risk = 1 - survival r_vec <- 1 - s_vec # mean of the squared differences between predicted and observed risk - mean( (y_mat[, 'status'] - r_vec)^2 ) + mean( (y_mat[, 2L] - r_vec)^2 ) } -oobag_fun_bad_out <- function(y_mat, s_vec){ +oobag_fun_bad_out <- function(y_mat, w_vec, s_vec){ # risk = 1 - survival r_vec <- 1 - s_vec # mean of the squared differences between predicted and observed risk - quantile( (y_mat[, 'status'] - r_vec)^2, probs = c(0.25, 0.50, 0.75) ) + quantile( (y_mat[, 2L] - r_vec)^2, probs = c(0.25, 0.50, 0.75) ) } -oobag_fun_bad_out_2 <- function(y_mat, s_vec){ +oobag_fun_bad_out_2 <- function(y_mat, w_vec, s_vec){ # mean of the squared differences between predicted and observed risk return("A") } -oobag_fun_3_args <- function(y_mat, s_vec, nope){ +oobag_fun_4_args <- function(y_mat, w_vec, s_vec, nope){ # risk = 1 - survival r_vec <- 1 - s_vec - y <- y_mat[, 'status'] + y <- y_mat[, 2L] # mean of the squared differences between predicted and observed risk bri <- mean( (y - r_vec)^2 ) @@ -206,8 +206,9 @@ test_that( code = { c_target <- last_value(fit$eval_oobag$stat_values) - c_estimate <- oobag_c_harrell( + c_estimate <- oobag_c_survival( y_mat = as.matrix(fit$data[, c('time', 'status')]), + w_vec = rep(1, nrow(fit$data)), s_vec = fit$pred_oobag ) @@ -222,12 +223,12 @@ test_that( expect_equal( orsf_vi_negate(fit, group_factors = T), - orsf_vi_negate(fit, oobag_fun = oobag_c_harrell, group_factors = T) + orsf_vi_negate(fit, oobag_fun = oobag_c_risk, group_factors = T) ) expect_equal( orsf_vi_negate(fit), - orsf_vi_negate(fit_no_vi, oobag_fun = oobag_c_harrell) + orsf_vi_negate(fit_no_vi, oobag_fun = oobag_c_risk) ) vi_bri <- orsf_vi_negate(fit, oobag_fun = oobag_fun_brier) @@ -277,19 +278,10 @@ test_that( expect_error( - orsf_vi_negate(fit_no_vi, oobag_fun = oobag_fun_3_args), - regexp = 'has 3' + orsf_vi_negate(fit_no_vi, oobag_fun = oobag_fun_4_args), + regexp = 'has 4' ) - fit_no_oob <- orsf(pbc_vi, - formula = Surv(time, status) ~ age + sex + bili + junk, - oobag_pred_type = 'none') - - expect_error(orsf_vi_negate(fit_no_oob), regexp = 'out-of-bag') - - - - } ) From ba30364cfdc47fbf2a0f0804471104ba607ba7a2 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Sat, 30 Sep 2023 13:17:45 -0400 Subject: [PATCH 088/103] about to fix pd backend api --- R/RcppExports.R | 4 +- R/orsf.R | 8 + R/orsf_pd.R | 279 +- R/orsf_predict.R | 4 + R/orsf_vi.R | 4 + orsf-output.txt | 50001 ++++++++++++++++++++++++++++++++++++++++- scratch.R | 14 +- src/Data.h | 26 + src/Forest.cpp | 81 +- src/Forest.h | 25 +- src/RcppExports.cpp | 12 +- src/Tree.cpp | 14 +- src/TreeSurvival.cpp | 1 - src/globals.h | 6 + src/orsf_oop.cpp | 21 +- 15 files changed, 50353 insertions(+), 147 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index 7dc29a10..d2d5b145 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) } diff --git a/R/orsf.R b/R/orsf.R index 8219876b..6e3c9089 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -758,6 +758,10 @@ orsf <- function(data, 'cstat' = 1, 'user' = 2), oobag_eval_every = oobag_eval_every, + pd_type_R = 0, + pd_vals = matrix(0, ncol=1, nrow=1), + pd_cols = matrix(1L, ncol=1, nrow=1), + pd_probs = c(0), n_thread = n_thread, write_forest = TRUE, run_forest = !no_fit, @@ -1129,6 +1133,10 @@ orsf_train_ <- function(object, 'cstat' = 1, 'user' = 2), oobag_eval_every = oobag_eval_every, + pd_type_R = 0, + pd_vals = matrix(0, ncol=1, nrow=1), + pd_cols = matrix(1L, ncol=1, nrow=1), + pd_probs = c(0), n_thread = get_n_thread(object), write_forest = TRUE, run_forest = TRUE, diff --git a/R/orsf_pd.R b/R/orsf_pd.R index d5606b75..c7614e12 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -86,6 +86,7 @@ orsf_pd_oob <- function(object, prob_values = c(0.025, 0.50, 0.975), prob_labels = c('lwr', 'medn', 'upr'), boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_pd_oob) @@ -99,6 +100,7 @@ orsf_pd_oob <- function(object, prob_values = prob_values, prob_labels = prob_labels, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = TRUE, type_output = 'smry') @@ -114,6 +116,7 @@ orsf_pd_inb <- function(object, prob_values = c(0.025, 0.50, 0.975), prob_labels = c('lwr', 'medn', 'upr'), boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_pd_inb) @@ -132,6 +135,7 @@ orsf_pd_inb <- function(object, prob_values = prob_values, prob_labels = prob_labels, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = FALSE, type_output = 'smry') @@ -149,6 +153,7 @@ orsf_pd_new <- function(object, prob_values = c(0.025, 0.50, 0.975), prob_labels = c('lwr', 'medn', 'upr'), boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_pd_new) @@ -163,6 +168,7 @@ orsf_pd_new <- function(object, prob_values = prob_values, prob_labels = prob_labels, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = FALSE, type_output = 'smry') @@ -192,6 +198,7 @@ orsf_ice_oob <- function(object, pred_type = 'risk', expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_ice_oob) @@ -203,6 +210,7 @@ orsf_ice_oob <- function(object, pred_type = pred_type, expand_grid = expand_grid, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = TRUE, type_output = 'ice') @@ -216,6 +224,7 @@ orsf_ice_inb <- function(object, pred_type = 'risk', expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_ice_oob) @@ -232,6 +241,7 @@ orsf_ice_inb <- function(object, pred_type = pred_type, expand_grid = expand_grid, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = FALSE, type_output = 'ice') @@ -247,6 +257,7 @@ orsf_ice_new <- function(object, na_action = 'fail', expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ...){ check_dots(list(...), orsf_ice_new) @@ -259,6 +270,7 @@ orsf_ice_new <- function(object, na_action = na_action, expand_grid = expand_grid, boundary_checks = boundary_checks, + n_thread = n_thread, oobag = FALSE, type_output = 'ice') @@ -290,9 +302,10 @@ orsf_pred_dependence <- function(object, expand_grid, prob_values = NULL, prob_labels = NULL, + boundary_checks, + n_thread, oobag, - type_output, - boundary_checks){ + type_output){ pred_horizon <- infer_pred_horizon(object, pred_horizon) @@ -310,12 +323,12 @@ orsf_pred_dependence <- function(object, pred_horizon = pred_horizon, na_action = na_action) - if(pred_type == 'mort') stop( - "mortality predictions aren't supported in partial dependence functions", - " yet. Sorry for the inconvenience - we plan on including this option", - " in a future update.", - call. = FALSE - ) + # if(pred_type == 'mort') stop( + # "mortality predictions aren't supported in partial dependence functions", + # " yet. Sorry for the inconvenience - we plan on including this option", + # " in a future update.", + # call. = FALSE + # ) if(oobag && is.null(object$data)) stop("no data were found in object. ", @@ -345,7 +358,6 @@ orsf_pred_dependence <- function(object, x_new <- prep_x_from_orsf(object, data = pd_data[cc, ]) - # the values in pred_spec need to be centered & scaled to match x_new, # which is also centered and scaled means <- get_means(object) @@ -357,50 +369,17 @@ orsf_pred_dependence <- function(object, if(is.data.frame(pred_spec)) type_input <- 'grid' - pd_fun_structure <- switch(type_input, - 'grid' = pd_grid, - 'loop' = pd_loop) - - pd_fun_predict <- switch(paste(oobag, type_output, sep = "_"), - "TRUE_ice" = pd_oob_ice, - "TRUE_smry" = pd_oob_smry, - "FALSE_ice" = pd_new_ice, - "FALSE_smry" = pd_new_smry) - - pred_type_cpp <- switch( - pred_type, - "risk" = "R", - "surv" = "S", - "chf" = "H", - "mort" = "M" - ) - - out_list <- lapply( - - X = pred_horizon, - - FUN = function(.pred_horizon){ - - pd_fun_structure(object, - x_new, - pred_spec, - .pred_horizon, - pd_fun_predict, - type_output, - prob_values, - prob_labels, - oobag, - pred_type_cpp) - - } + pd_fun <- switch(type_input, 'grid' = pd_grid, 'loop' = pd_loop) - ) + pred_type_R <- switch(pred_type, + "risk" = 1, "surv" = 2, + "chf" = 3, "mort" = 4) - names(out_list) <- as.character(pred_horizon) + browser() - out <- rbindlist(l = out_list, - fill = TRUE, - idcol = 'pred_horizon') + out <- pd_fun(object, x_new, pred_spec, pred_horizon, + type_output, prob_values, prob_labels, + n_thread, oobag, pred_type_R) out[, pred_horizon := as.numeric(pred_horizon)] @@ -452,12 +431,12 @@ pd_grid <- function(object, x_new, pred_spec, pred_horizon, - pd_fun_predict, type_output, prob_values, prob_labels, + n_thread, oobag, - pred_type_cpp){ + pred_type_R){ if(!is.data.frame(pred_spec)) pred_spec <- expand.grid(pred_spec, stringsAsFactors = TRUE) @@ -488,36 +467,109 @@ pd_grid <- function(object, x_cols <- match(names(pred_spec_new), colnames(x_new)) - pd_vals <- pd_fun_predict(forest = object$forest, - x_new_ = x_new, - x_cols_ = x_cols-1, - x_vals_ = as_matrix(pred_spec_new), - probs_ = prob_values, - time_dbl = pred_horizon, - pred_type = pred_type_cpp) - + orsf_out <- orsf_cpp(x = x_new, + y = matrix(1, ncol=2), + w = rep(1, nrow(x_new)), + tree_type_R = get_tree_type(object), + tree_seeds = get_tree_seeds(object), + loaded_forest = object$forest, + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = 0, + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = pred_type_R, + pred_mode = FALSE, + pred_aggregate = TRUE, + pred_horizon = pred_horizon, + oobag = oobag, + oobag_eval_type_R = 0, + oobag_eval_every = get_n_tree(object), + pd_type_R = switch(type_output, + "smry" = 1L, + "ice" = 2L), + pd_vals = as.matrix(pred_spec_new), + pd_cols = x_cols-1L, + pd_probs = prob_values, + n_thread = n_thread, + write_forest = FALSE, + run_forest = TRUE, + verbosity = 0) + + pd_vals <- orsf_out$pd_values if(type_output == 'smry'){ - rownames(pd_vals) <- c('mean', prob_labels) - output <- cbind(pred_spec, t(pd_vals)) - .names <- names(output) + pd_vals <- lapply(pd_vals, function(x){ + m <- matrix(x, nrow=length(pred_horizon), byrow = T) + rownames(m) <- pred_horizon + colnames(m) <- c('mean', prob_labels) + data.table(m, keep.rownames = 'pred_horizon') + }) - } - if(type_output == 'ice'){ + } else if(type_output == 'ice'){ - colnames(pd_vals) <- c('id_variable', 'pred') - pred_spec$id_variable <- seq(nrow(pred_spec)) - output <- merge(pred_spec, pd_vals, by = 'id_variable') - output$id_row <- rep(seq(nrow(x_new)), pred_horizon = nrow(pred_spec)) - ids <- c('id_variable', 'id_row') - .names <- c(ids, setdiff(names(output), ids)) + for(i in seq_along(pd_vals)){ + + pd_vals[[i]] <- matrix(pd_vals[[i]], + nrow = nrow(x_new), + ncol = length(pred_horizon)) + + colnames(pd_vals[[i]]) <- pred_horizon + + pd_vals[[i]] <- melt(as.data.table(pd_vals[[i]]), + measure.vars = seq(length(pred_horizon)), + variable.name = 'pred_horizon', + variable.factor = FALSE) + + } + + } + + pd_vals <- rbindlist(pd_vals, idcol = 'id_variable') + pred_spec$id_variable <- seq(nrow(pred_spec)) + + output <- merge(as.data.table(pred_spec), pd_vals, by = 'id_variable') + ids <- c('id_variable') + if(type_output == 'ice'){ + ids <- c(ids, 'id_row') + output[, id_row:= seq(.N), by = .(id_variable, pred_horizon)] } - as.data.table(output[, .names]) + .names <- c(ids, setdiff(names(output), ids)) + setcolorder(output, neworder = .names) + + output } @@ -540,12 +592,12 @@ pd_loop <- function(object, x_new, pred_spec, pred_horizon, - pd_fun_predict, type_output, prob_values, prob_labels, + n_thread, oobag, - pred_type_cpp){ + pred_type_R){ fi <- get_fctr_info(object) @@ -563,10 +615,8 @@ pd_loop <- function(object, if(pd_name %in% fi$cols) { pd_bind$level <- as.character(pred_spec[[i]]) + pd_new <- ref_code(pd_new, fi = fi, names_x_data = pd_name) - pd_new <- ref_code(pd_new, - fi = fi, - names_x_data = pd_name) } else { pd_bind$value <- pred_spec[[i]] @@ -577,23 +627,70 @@ pd_loop <- function(object, x_vals <- x_new[, x_cols] - - pd_vals <- pd_fun_predict(forest = object$forest, - x_new_ = x_new, - x_cols_ = x_cols-1, - x_vals_ = as.matrix(pd_new), - probs_ = prob_values, - time_dbl = pred_horizon, - pred_type = pred_type_cpp) - - - # pd_fun_predict modifies x_new by reference, so reset it. - x_new[, x_cols] <- x_vals + orsf_out <- orsf_cpp(x = x_new, + y = matrix(1, ncol=2), + w = rep(1, nrow(x_new)), + tree_type_R = get_tree_type(object), + tree_seeds = get_tree_seeds(object), + loaded_forest = object$forest, + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = 0, + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = 1, + pred_mode = TRUE, + pred_aggregate = TRUE, + pred_horizon = pred_horizon, + oobag = FALSE, + oobag_eval_type_R = 0, + oobag_eval_every = get_n_tree(object), + pd_type_R = 1, + pd_vals = as.matrix(pd_new), + pd_cols = x_cols-1L, + pd_probs = prob_values, + n_thread = n_thread, + write_forest = FALSE, + run_forest = TRUE, + verbosity = 0) + + pd_vals <- orsf_out$pd_values if(type_output == 'smry'){ - rownames(pd_vals) <- c('mean', prob_labels) - output[[i]] <- cbind(pd_bind, t(pd_vals)) + output[[i]] <- lapply(pd_vals, function(x){ + m <- matrix(x, nrow=length(pred_horizon), byrow = T) + rownames(m) <- pred_horizon + colnames(m) <- c('mean', prob_labels) + data.table(m, keep.rownames = 'pred_horizon') + }) } diff --git a/R/orsf_predict.R b/R/orsf_predict.R index 597d5323..5ecfa2e6 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -212,6 +212,10 @@ predict.orsf_fit <- function(object, oobag = FALSE, oobag_eval_type_R = 0, oobag_eval_every = get_n_tree(object), + pd_type_R = 0, + pd_vals = matrix(0, ncol=1, nrow=1), + pd_cols = matrix(1L, ncol=1, nrow=1), + pd_probs = c(0), n_thread = n_thread, write_forest = FALSE, run_forest = TRUE, diff --git a/R/orsf_vi.R b/R/orsf_vi.R index 48296edb..588a18b0 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -347,6 +347,10 @@ orsf_vi_oobag_ <- function(object, 'cstat' = 1, 'user' = 2), oobag_eval_every = get_n_tree(object), + pd_type_R = 0, + pd_vals = matrix(0, ncol=1, nrow=1), + pd_cols = matrix(1L, ncol=1, nrow=1), + pd_probs = c(0), n_thread = n_thread, write_forest = FALSE, run_forest = TRUE, diff --git a/orsf-output.txt b/orsf-output.txt index 1d41de3a..cf674887 100644 --- a/orsf-output.txt +++ b/orsf-output.txt @@ -3,4 +3,50003 @@ N observations total: 276 N columns total: 18 ----------------------------------------------- -Called from: orsf_vi_oobag_(object, type_vi, oobag_fun, n_thread, verbose_progress) +------------ Growing tree 0 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 11 12 17 8 + + + -- linear combo weights (showing up to 5) + + -0.1728 0.6490 0.0973 0.5518 1.8993 + + + -- cutpoint (score) + --- 0.0633776 (0.626764), N = 210 moving right + --- 0.542377 (0.692298), N = 157 moving right + --- 0.793609 (0.728298), N = 132 moving right + --- 4.19107 (0.645468), N = 29 moving right + --- 8.89887 (0.559762), N = 10 moving right + + -- best stat: 0.728298, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 15 2 1 12 + + + -- linear combo weights (showing up to 5) + + 0.4715 -0.2312 -0.2531 0.3180 0.2413 + + + -- cutpoint (score) + --- -1.35425 (0.506099), N = 268 moving right + --- -1.00364 (0.549951), N = 239 moving right + --- -0.696911 (0.587501), N = 206 moving right + --- -0.0084199 (0.630701), N = 89 moving right + --- 0.0164788 (0.647263), N = 83 moving right + + -- best stat: 0.647263, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 16 8 3 6 + + + -- linear combo weights (showing up to 5) + + 0.2925 0.5530 1.9470 6.4495 0.1508 + + + -- cutpoint (score) + --- -1.55241 (0.553582), N = 240 moving right + --- -1.24429 (0.63784), N = 189 moving right + --- 0.125477 (0.766215), N = 66 moving right + --- 0.650189 (0.729053), N = 53 moving right + --- 4.44114 (0.620645), N = 21 moving right + + -- best stat: 0.766215, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.3100e+02 9.7101e-01 2.9279e-02 + 1.4000e+02 9.6014e-01 4.0473e-02 + + +------------ Growing tree 1 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 191 +- max leaves: 96 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 8 11 15 1 + + + -- linear combo weights (showing up to 5) + + 0.3634 1.6006 0.6899 -0.1448 0.5812 + + + -- cutpoint (score) + --- -0.809193 (0.743664), N = 128 moving right + --- -0.51338 (0.766672), N = 113 moving right + --- 0.139177 (0.786433), N = 78 moving right + --- 1.53763 (0.70115), N = 40 moving right + --- 1.75609 (0.698625), N = 37 moving right + + -- best stat: 0.786433, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 15 6 14 4 + + + -- linear combo weights (showing up to 5) + + -0.6544 -0.3663 0.7392 0.3114 0.6561 + + + -- cutpoint (score) + --- -1.04805 (0.534639), N = 248 moving right + --- -0.116617 (0.631766), N = 173 moving right + --- 0.259743 (0.693424), N = 126 moving right + --- 0.736355 (0.69924), N = 91 moving right + --- 1.16021 (0.705204), N = 56 moving right + + -- best stat: 0.705204, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 7 4 6 8 + + + -- linear combo weights (showing up to 5) + + 0.5597 8.7210 0.3050 0.9665 1.1989 + + + -- cutpoint (score) + --- -1.12522 (0.547926), N = 253 moving right + --- -0.969457 (0.588997), N = 235 moving right + --- -0.746868 (0.667976), N = 193 moving right + --- 0.914555 (0.740969), N = 58 moving right + --- 2.38452 (0.66407), N = 31 moving right + + -- best stat: 0.740969, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 2 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 7 12 11 5 + + + -- linear combo weights (showing up to 5) + + 0.6999 5.2771 -0.0027 0.7344 0.2407 + + + -- cutpoint (score) + --- -0.571545 (0.561338), N = 244 moving right + --- -0.404844 (0.603741), N = 224 moving right + --- -0.403979 (0.607831), N = 221 moving right + --- 0.220441 (0.702489), N = 162 moving right + --- 1.42339 (0.681806), N = 54 moving right + + -- best stat: 0.702489, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 13 1 0 17 + + + -- linear combo weights (showing up to 5) + + -0.5573 0.6082 0.4316 -0.1411 0.6657 + + + -- cutpoint (score) + --- 1.09637 (0.619488), N = 205 moving right + --- 1.35616 (0.65805), N = 182 moving right + --- 1.80093 (0.694308), N = 141 moving right + --- 2.73813 (0.674816), N = 75 moving right + --- 4.37012 (0.587802), N = 18 moving right + + -- best stat: 0.694308, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 15 10 9 7 + + + -- linear combo weights (showing up to 5) + + 8.6528 -0.1085 -0.5179 0.3727 1.9583 + + + -- cutpoint (score) + --- -0.727443 (0.56587), N = 245 moving right + --- -0.320913 (0.64455), N = 186 moving right + --- -0.286118 (0.648564), N = 180 moving right + --- -0.0839571 (0.671685), N = 148 moving right + --- 0.154953 (0.699839), N = 107 moving right + + -- best stat: 0.699839, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.1000e+01 9.7826e-01 2.1886e-02 + 1.1000e+02 9.6739e-01 3.2997e-02 + 1.3100e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 3 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 15 14 3 16 + + + -- linear combo weights (showing up to 5) + + 1.5696 -0.1365 0.5067 10.9953 0.2896 + + + -- cutpoint (score) + --- -0.334336 (0.619977), N = 208 moving right + --- -0.269932 (0.634439), N = 196 moving right + --- -0.242301 (0.635194), N = 194 moving right + --- 1.12211 (0.674581), N = 76 moving right + --- 11.5385 (0.572941), N = 11 moving right + + -- best stat: 0.674581, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 0 10 1 5 + + + -- linear combo weights (showing up to 5) + + 0.5984 -0.3501 -0.7175 0.3394 1.4672 + + + -- cutpoint (score) + --- -0.648535 (0.621058), N = 195 moving right + --- -0.313275 (0.692184), N = 156 moving right + --- 0.403859 (0.72072), N = 103 moving right + --- 1.03673 (0.700241), N = 66 moving right + --- 1.15915 (0.6961), N = 64 moving right + + -- best stat: 0.72072, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 11 2 7 10 + + + -- linear combo weights (showing up to 5) + + 1.0566 1.0459 -1.0342 6.7354 -0.5043 + + + -- cutpoint (score) + --- -1.69204 (0.618794), N = 203 moving right + --- -1.65011 (0.63554), N = 194 moving right + --- -0.318106 (0.765349), N = 94 moving right + --- 0.440427 (0.720618), N = 56 moving right + --- 1.16793 (0.691347), N = 39 moving right + + -- best stat: 0.765349, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 4 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 8 16 15 12 + + + -- linear combo weights (showing up to 5) + + 0.9424 1.2595 0.4228 -0.1425 -0.0317 + + + -- cutpoint (score) + --- -1.56121 (0.578621), N = 241 moving right + --- -1.48773 (0.601466), N = 231 moving right + --- -1.17138 (0.684644), N = 185 moving right + --- 0.888778 (0.703417), N = 65 moving right + --- 1.65486 (0.645412), N = 37 moving right + + -- best stat: 0.703417, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 5 7 3 15 + + + -- linear combo weights (showing up to 5) + + -0.2052 0.8500 8.0901 4.0107 -0.0557 + + + -- cutpoint (score) + --- -0.401471 (0.500659), N = 271 moving right + --- -0.0855714 (0.619754), N = 195 moving right + --- -0.0527609 (0.644093), N = 184 moving right + --- 0.142662 (0.660635), N = 117 moving right + --- 9.29084 (0.570825), N = 14 moving right + + -- best stat: 0.660635, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 10 5 2 6 + + + -- linear combo weights (showing up to 5) + + 0.5681 -0.5513 1.0503 -0.8453 0.6270 + + + -- cutpoint (score) + --- -2.15764 (0.520848), N = 265 moving right + --- -1.74204 (0.553914), N = 251 moving right + --- -0.927467 (0.67615), N = 191 moving right + --- -0.893648 (0.687747), N = 185 moving right + --- -0.797912 (0.687127), N = 179 moving right + + -- best stat: 0.687747, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.9800e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 5 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 15 4 6 12 + + + -- linear combo weights (showing up to 5) + + 0.5493 -0.1577 1.2256 1.4185 0.0383 + + + -- cutpoint (score) + --- -0.295861 (0.602675), N = 217 moving right + --- -0.26266 (0.605977), N = 216 moving right + --- 0.470285 (0.674014), N = 146 moving right + --- 0.946335 (0.711744), N = 112 moving right + --- 1.1288 (0.729726), N = 85 moving right + + -- best stat: 0.729726, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 12 4 3 1 + + + -- linear combo weights (showing up to 5) + + 2.3378 0.0312 0.3236 3.4180 0.3213 + + + -- cutpoint (score) + --- -0.836964 (0.710103), N = 154 moving right + --- -0.643029 (0.744637), N = 134 moving right + --- -0.0193194 (0.772272), N = 90 moving right + --- 1.18956 (0.721418), N = 60 moving right + --- 4.53294 (0.621751), N = 24 moving right + + -- best stat: 0.772272, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 6 5 16 7 + + + -- linear combo weights (showing up to 5) + + 0.1883 0.9643 0.2945 0.3738 16.4346 + + + -- cutpoint (score) + --- -0.377641 (0.552494), N = 246 moving right + --- -0.321667 (0.591655), N = 227 moving right + --- 0.152074 (0.704425), N = 105 moving right + --- 0.318113 (0.68312), N = 75 moving right + --- 1.19052 (0.622255), N = 33 moving right + + -- best stat: 0.704425, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7101e-01 2.9265e-02 + 1.7900e+02 9.6377e-01 3.6728e-02 + + +------------ Growing tree 6 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 17 12 6 16 + + + -- linear combo weights (showing up to 5) + + 7.0646 0.4500 0.0648 1.0795 0.4063 + + + -- cutpoint (score) + --- 0.615486 (0.570094), N = 242 moving right + --- 1.41932 (0.701384), N = 133 moving right + --- 1.48675 (0.707543), N = 117 moving right + --- 1.57088 (0.713323), N = 109 moving right + --- 2.0304 (0.662147), N = 67 moving right + + -- best stat: 0.713323, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 3 8 0 5 + + + -- linear combo weights (showing up to 5) + + 0.1273 4.6380 1.4565 -0.2109 0.6830 + + + -- cutpoint (score) + --- -0.675415 (0.683205), N = 182 moving right + --- 0.0526431 (0.725062), N = 107 moving right + --- 0.306533 (0.729862), N = 92 moving right + --- 1.38279 (0.659547), N = 46 moving right + --- 8.04336 (0.533637), N = 6 moving right + + -- best stat: 0.729862, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 3 13 8 15 + + + -- linear combo weights (showing up to 5) + + 1.4594 4.4279 0.0234 1.5610 -0.0653 + + + -- cutpoint (score) + --- -0.89583 (0.584933), N = 222 moving right + --- -0.740127 (0.668607), N = 172 moving right + --- -0.0503273 (0.722182), N = 110 moving right + --- 0.538709 (0.702924), N = 79 moving right + --- 0.604699 (0.696564), N = 73 moving right + + -- best stat: 0.722182, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8188e-01 1.8208e-02 + 1.1000e+02 9.7826e-01 2.1898e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 7 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 2 17 7 12 + + + -- linear combo weights (showing up to 5) + + 1.8706 -1.0753 0.2433 7.6455 0.1741 + + + -- cutpoint (score) + --- -1.8191 (0.534697), N = 255 moving right + --- -1.48063 (0.631591), N = 204 moving right + --- -1.24738 (0.711989), N = 163 moving right + --- -0.619971 (0.799899), N = 111 moving right + --- 0.56899 (0.749379), N = 66 moving right + + -- best stat: 0.799899, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 4 5 2 11 + + + -- linear combo weights (showing up to 5) + + 0.1431 0.5162 0.6976 -0.3648 1.0675 + + + -- cutpoint (score) + --- -0.910018 (0.601145), N = 213 moving right + --- 0.212722 (0.729348), N = 110 moving right + --- 0.265038 (0.70877), N = 100 moving right + --- 0.537402 (0.691537), N = 74 moving right + --- 0.549496 (0.696777), N = 71 moving right + + -- best stat: 0.729348, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 16 17 4 9 + + + -- linear combo weights (showing up to 5) + + 0.6296 0.4457 0.5482 0.2123 0.7121 + + + -- cutpoint (score) + --- 0.694248 (0.56224), N = 246 moving right + --- 1.2021 (0.649455), N = 189 moving right + --- 2.123 (0.728191), N = 115 moving right + --- 2.16793 (0.733199), N = 102 moving right + --- 2.29842 (0.721731), N = 95 moving right + + -- best stat: 0.733199, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.7826e-01 2.1885e-02 + 1.8600e+02 9.7464e-01 2.5589e-02 + 1.9100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 8 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 8 10 4 14 + + + -- linear combo weights (showing up to 5) + + 0.3840 1.4714 -0.6031 0.1492 0.0631 + + + -- cutpoint (score) + --- -1.57313 (0.514768), N = 258 moving right + --- -1.57019 (0.520264), N = 255 moving right + --- -0.338871 (0.716823), N = 127 moving right + --- 0.531566 (0.680518), N = 60 moving right + --- 0.54257 (0.676452), N = 59 moving right + + -- best stat: 0.716823, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 16 3 11 9 + + + -- linear combo weights (showing up to 5) + + -0.1411 0.6264 8.6308 0.8146 0.2100 + + + -- cutpoint (score) + --- -1.15383 (0.559584), N = 238 moving right + --- -0.78745 (0.637891), N = 194 moving right + --- -0.599703 (0.702324), N = 162 moving right + --- -0.536374 (0.720554), N = 154 moving right + --- 0.782636 (0.732194), N = 65 moving right + + -- best stat: 0.732194, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 17 2 12 7 + + + -- linear combo weights (showing up to 5) + + 9.4131 0.4623 -1.2912 0.1780 4.3712 + + + -- cutpoint (score) + --- -0.369568 (0.603083), N = 223 moving right + --- -0.326835 (0.593253), N = 221 moving right + --- -0.0178523 (0.621113), N = 202 moving right + --- -0.00287891 (0.643387), N = 190 moving right + --- 1.72479 (0.624196), N = 33 moving right + + -- best stat: 0.643387, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 9 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 11 16 9 15 + + + -- linear combo weights (showing up to 5) + + 0.2575 1.0257 1.0247 0.1915 0.0453 + + + -- cutpoint (score) + --- -1.55313 (0.55522), N = 242 moving right + --- 0.121693 (0.764362), N = 97 moving right + --- 0.19601 (0.739544), N = 91 moving right + --- 0.647938 (0.728496), N = 74 moving right + --- 1.67872 (0.632832), N = 39 moving right + + -- best stat: 0.764362, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 5 7 15 0 + + + -- linear combo weights (showing up to 5) + + 0.2702 0.8126 12.3577 0.0638 -0.0707 + + + -- cutpoint (score) + --- -0.236559 (0.56031), N = 223 moving right + --- 0.186016 (0.63666), N = 110 moving right + --- 0.333412 (0.629123), N = 93 moving right + --- 0.469259 (0.658302), N = 77 moving right + --- 12.924 (0.557311), N = 9 moving right + + -- best stat: 0.658302, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 8 15 3 4 + + + -- linear combo weights (showing up to 5) + + 0.1567 1.7551 0.0109 5.6711 0.1573 + + + -- cutpoint (score) + --- -1.03873 (0.588147), N = 230 moving right + --- -1.02991 (0.603358), N = 223 moving right + --- -1.0098 (0.615511), N = 215 moving right + --- 0.483785 (0.688999), N = 61 moving right + --- 4.89236 (0.59809), N = 19 moving right + + -- best stat: 0.688999, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 10 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 1 12 9 2 + + + -- linear combo weights (showing up to 5) + + 0.7386 0.5279 0.0515 0.1480 -0.0678 + + + -- cutpoint (score) + --- -0.822258 (0.576182), N = 234 moving right + --- -0.536695 (0.664455), N = 178 moving right + --- 0.147411 (0.683161), N = 104 moving right + --- 0.413265 (0.663563), N = 73 moving right + --- 0.79116 (0.600081), N = 45 moving right + + -- best stat: 0.683161, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 9 13 14 10 + + + -- linear combo weights (showing up to 5) + + 0.4692 0.0180 0.6402 0.3782 -0.7598 + + + -- cutpoint (score) + --- 1.16616 (0.716738), N = 131 moving right + --- 1.50975 (0.704971), N = 111 moving right + --- 1.92804 (0.660296), N = 71 moving right + --- 2.03224 (0.658146), N = 60 moving right + --- 3.33269 (0.612741), N = 23 moving right + + -- best stat: 0.716738, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 6 4 15 8 + + + -- linear combo weights (showing up to 5) + + -0.3272 1.1970 0.4627 -0.0633 1.8368 + + + -- cutpoint (score) + --- -1.34629 (0.587929), N = 227 moving right + --- -0.950182 (0.655102), N = 178 moving right + --- -0.909367 (0.658957), N = 176 moving right + --- 0.547474 (0.692717), N = 61 moving right + --- 1.92079 (0.600325), N = 30 moving right + + -- best stat: 0.692717, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 1.4000e+02 9.8188e-01 1.8209e-02 + 1.8600e+02 9.7826e-01 2.1899e-02 + 1.9800e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 11 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 3 6 8 9 + + + -- linear combo weights (showing up to 5) + + -0.2602 4.4554 -0.0835 1.8522 0.0888 + + + -- cutpoint (score) + --- -0.929322 (0.613807), N = 195 moving right + --- -0.843609 (0.669756), N = 168 moving right + --- -0.819948 (0.686745), N = 160 moving right + --- -0.759643 (0.717248), N = 140 moving right + --- 2.9977 (0.641994), N = 30 moving right + + -- best stat: 0.717248, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 16 17 1 2 + + + -- linear combo weights (showing up to 5) + + -0.6945 0.2949 0.6471 0.3546 -0.1916 + + + -- cutpoint (score) + --- 0.107888 (0.541025), N = 255 moving right + --- 0.877192 (0.641724), N = 199 moving right + --- 2.15002 (0.72163), N = 91 moving right + --- 2.73015 (0.701765), N = 61 moving right + --- 3.04286 (0.692807), N = 48 moving right + + -- best stat: 0.72163, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 5 3 2 16 + + + -- linear combo weights (showing up to 5) + + 0.5650 0.7837 5.5795 -0.2430 0.2664 + + + -- cutpoint (score) + --- -0.782752 (0.601104), N = 220 moving right + --- -0.356838 (0.655122), N = 179 moving right + --- -0.101535 (0.683019), N = 142 moving right + --- 0.527807 (0.651859), N = 62 moving right + --- 1.17591 (0.618286), N = 29 moving right + + -- best stat: 0.683019, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 12 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 3 6 8 9 + + + -- linear combo weights (showing up to 5) + + -0.1870 17.2654 -0.0744 1.5829 -0.0362 + + + -- cutpoint (score) + --- -0.793595 (0.658176), N = 179 moving right + --- -0.771735 (0.656928), N = 177 moving right + --- -0.666194 (0.715247), N = 146 moving right + --- -0.127167 (0.771555), N = 88 moving right + --- 0.20565 (0.723244), N = 60 moving right + + -- best stat: 0.771555, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 10 8 4 14 + + + -- linear combo weights (showing up to 5) + + 17.1026 -0.4462 1.3392 0.5202 0.0798 + + + -- cutpoint (score) + --- -1.0353 (0.549466), N = 246 moving right + --- -0.812965 (0.608987), N = 221 moving right + --- -0.677157 (0.653738), N = 192 moving right + --- -0.532128 (0.684897), N = 176 moving right + --- 0.76854 (0.748139), N = 56 moving right + + -- best stat: 0.748139, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 4 15 13 16 + + + -- linear combo weights (showing up to 5) + + 0.5042 0.6065 -0.1345 0.5205 0.8378 + + + -- cutpoint (score) + --- -1.1197 (0.568027), N = 237 moving right + --- -0.790468 (0.628149), N = 211 moving right + --- 0.364668 (0.749896), N = 119 moving right + --- 0.382215 (0.737645), N = 117 moving right + --- 0.926787 (0.734478), N = 76 moving right + + -- best stat: 0.749896, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 13 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 15 6 9 7 + + + -- linear combo weights (showing up to 5) + + 0.0219 -0.1606 2.0807 0.4418 16.0532 + + + -- cutpoint (score) + --- 0.0598248 (0.68723), N = 119 moving right + --- 0.255481 (0.68498), N = 75 moving right + --- 1.11562 (0.655572), N = 45 moving right + --- 1.72544 (0.626543), N = 38 moving right + --- 1.73307 (0.629706), N = 37 moving right + + -- best stat: 0.68723, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 13 10 2 15 + + + -- linear combo weights (showing up to 5) + + -0.1041 0.3582 -0.6897 -0.4612 -0.0843 + + + -- cutpoint (score) + --- -0.665722 (0.651272), N = 169 moving right + --- -0.0391143 (0.616562), N = 79 moving right + --- 0.299017 (0.593971), N = 35 moving right + --- 0.523078 (0.591164), N = 31 moving right + --- 1.11075 (0.55358), N = 13 moving right + + -- best stat: 0.651272, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 14 13 10 17 + + + -- linear combo weights (showing up to 5) + + 0.0234 0.4126 0.2296 -0.6279 0.5880 + + + -- cutpoint (score) + --- 1.12086 (0.606737), N = 203 moving right + --- 1.44229 (0.672348), N = 177 moving right + --- 1.59596 (0.696453), N = 162 moving right + --- 1.94182 (0.668137), N = 121 moving right + --- 3.0725 (0.611772), N = 34 moving right + + -- best stat: 0.696453, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8188e-01 1.8208e-02 + 1.7900e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 14 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 9 16 0 11 + + + -- linear combo weights (showing up to 5) + + 1.7906 0.1268 0.9435 0.3026 1.1052 + + + -- cutpoint (score) + --- -1.18452 (0.592207), N = 214 moving right + --- -0.63848 (0.678821), N = 168 moving right + --- -0.00329135 (0.745526), N = 121 moving right + --- 0.107908 (0.742573), N = 113 moving right + --- 4.23605 (0.556416), N = 7 moving right + + -- best stat: 0.745526, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 17 4 14 12 + + + -- linear combo weights (showing up to 5) + + 1.5818 0.5831 -0.0077 -0.1987 0.3899 + + + -- cutpoint (score) + --- 0.309107 (0.567936), N = 239 moving right + --- 0.364191 (0.575966), N = 236 moving right + --- 0.868382 (0.688484), N = 180 moving right + --- 0.932338 (0.719376), N = 166 moving right + --- 1.60594 (0.759328), N = 111 moving right + + -- best stat: 0.759328, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 12 2 11 1 + + + -- linear combo weights (showing up to 5) + + 0.3657 0.3100 0.0608 1.1982 0.4339 + + + -- cutpoint (score) + --- -0.746351 (0.617327), N = 224 moving right + --- -0.418502 (0.679111), N = 183 moving right + --- -0.127306 (0.730248), N = 133 moving right + --- 1.4096 (0.707185), N = 50 moving right + --- 2.04015 (0.605695), N = 30 moving right + + -- best stat: 0.730248, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 15 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 5 1 12 2 + + + -- linear combo weights (showing up to 5) + + 0.4110 1.2865 0.4575 0.3270 -2.0506 + + + -- cutpoint (score) + --- -2.28365 (0.62663), N = 195 moving right + --- -1.80056 (0.732981), N = 142 moving right + --- -1.23659 (0.73188), N = 107 moving right + --- -0.444395 (0.672354), N = 68 moving right + --- 0.175458 (0.558975), N = 24 moving right + + -- best stat: 0.732981, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 4 0 1 5 + + + -- linear combo weights (showing up to 5) + + 0.2116 1.1143 0.0154 0.6234 0.8043 + + + -- cutpoint (score) + --- 0.00630003 (0.626799), N = 204 moving right + --- 0.0997701 (0.646931), N = 196 moving right + --- 0.624655 (0.698201), N = 151 moving right + --- 0.839515 (0.706964), N = 135 moving right + --- 1.28077 (0.720745), N = 91 moving right + + -- best stat: 0.720745, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 7 14 4 17 + + + -- linear combo weights (showing up to 5) + + -0.0724 9.8963 0.5469 0.9964 0.1208 + + + -- cutpoint (score) + --- -0.277538 (0.522989), N = 260 moving right + --- 0.677438 (0.666765), N = 161 moving right + --- 1.24178 (0.719285), N = 103 moving right + --- 1.25062 (0.716025), N = 101 moving right + --- 1.36744 (0.712616), N = 80 moving right + + -- best stat: 0.719285, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8188e-01 1.8195e-02 + 1.7900e+02 9.7826e-01 2.1885e-02 + 1.8600e+02 9.7101e-01 2.9293e-02 + 1.9100e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 16 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 4 3 11 15 + + + -- linear combo weights (showing up to 5) + + 0.2974 1.5373 8.6419 0.8081 0.0894 + + + -- cutpoint (score) + --- -0.368845 (0.544374), N = 254 moving right + --- 0.076787 (0.698195), N = 170 moving right + --- 1.21853 (0.750966), N = 120 moving right + --- 3.15298 (0.653973), N = 31 moving right + --- 10.7534 (0.543202), N = 8 moving right + + -- best stat: 0.750966, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 8 7 3 2 + + + -- linear combo weights (showing up to 5) + + 0.4811 1.6791 18.6178 1.8044 -0.1808 + + + -- cutpoint (score) + --- -1.00209 (0.684503), N = 160 moving right + --- -0.546644 (0.80135), N = 98 moving right + --- -0.498375 (0.798203), N = 90 moving right + --- -0.201349 (0.791629), N = 81 moving right + --- 0.562552 (0.701124), N = 48 moving right + + -- best stat: 0.80135, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 5 1 6 0 + + + -- linear combo weights (showing up to 5) + + 0.6818 2.0128 0.8714 2.2981 -0.1680 + + + -- cutpoint (score) + --- -0.520682 (0.661481), N = 180 moving right + --- 0.100741 (0.716183), N = 124 moving right + --- 0.42974 (0.726121), N = 99 moving right + --- 2.47556 (0.676106), N = 44 moving right + --- 3.38838 (0.636831), N = 27 moving right + + -- best stat: 0.726121, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 17 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 7 4 5 8 + + + -- linear combo weights (showing up to 5) + + 0.0199 9.1073 0.1528 -0.1533 1.8710 + + + -- cutpoint (score) + --- -1.21408 (0.509092), N = 271 moving right + --- -1.0951 (0.586082), N = 231 moving right + --- -0.977122 (0.640833), N = 196 moving right + --- -0.953255 (0.662009), N = 187 moving right + --- -0.69583 (0.724199), N = 125 moving right + + -- best stat: 0.724199, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 3 16 2 10 + + + -- linear combo weights (showing up to 5) + + 1.5745 7.6250 0.4103 -0.7854 -0.3749 + + + -- cutpoint (score) + --- -2.23602 (0.534736), N = 250 moving right + --- -0.51574 (0.750098), N = 72 moving right + --- 0.0371589 (0.739845), N = 56 moving right + --- 0.66462 (0.662324), N = 33 moving right + --- 4.41954 (0.605625), N = 17 moving right + + -- best stat: 0.750098, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 0 17 10 7 + + + -- linear combo weights (showing up to 5) + + 0.5357 -0.3079 0.5483 -0.4198 10.0012 + + + -- cutpoint (score) + --- 0.627693 (0.554534), N = 246 moving right + --- 1.34423 (0.656282), N = 136 moving right + --- 1.92232 (0.676671), N = 69 moving right + --- 2.09518 (0.669389), N = 57 moving right + --- 2.4055 (0.657797), N = 39 moving right + + -- best stat: 0.676671, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 18 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 7 11 15 6 + + + -- linear combo weights (showing up to 5) + + 0.3195 7.7377 0.5859 -0.0065 1.7219 + + + -- cutpoint (score) + --- -0.422439 (0.650047), N = 195 moving right + --- -0.207374 (0.697278), N = 151 moving right + --- 1.68672 (0.714635), N = 44 moving right + --- 2.28271 (0.671452), N = 32 moving right + --- 8.89221 (0.557585), N = 8 moving right + + -- best stat: 0.714635, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 16 1 13 17 + + + -- linear combo weights (showing up to 5) + + 1.2001 0.5045 0.6255 0.5089 0.5031 + + + -- cutpoint (score) + --- 0.645634 (0.614286), N = 210 moving right + --- 0.951446 (0.663541), N = 180 moving right + --- 1.32752 (0.711494), N = 136 moving right + --- 3.78713 (0.61517), N = 20 moving right + --- 3.92164 (0.595998), N = 18 moving right + + -- best stat: 0.711494, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 15 14 6 8 + + + -- linear combo weights (showing up to 5) + + 0.3750 -0.2605 0.2325 1.3320 1.6583 + + + -- cutpoint (score) + --- -1.56733 (0.517846), N = 261 moving right + --- -1.13107 (0.589507), N = 215 moving right + --- -1.03935 (0.630107), N = 191 moving right + --- -0.888621 (0.672708), N = 171 moving right + --- -0.788825 (0.694207), N = 161 moving right + + -- best stat: 0.694207, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 19 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 10 7 2 3 + + + -- linear combo weights (showing up to 5) + + 1.4883 -0.4421 2.4055 -1.0580 1.7375 + + + -- cutpoint (score) + --- -1.36732 (0.545004), N = 228 moving right + --- -1.3564 (0.548446), N = 226 moving right + --- -0.832142 (0.662394), N = 109 moving right + --- -0.733844 (0.655432), N = 99 moving right + --- -0.307884 (0.654479), N = 58 moving right + + -- best stat: 0.662394, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 1 6 17 8 + + + -- linear combo weights (showing up to 5) + + 0.7881 0.3391 0.5060 0.2071 1.0954 + + + -- cutpoint (score) + --- -0.567303 (0.631471), N = 203 moving right + --- -0.387182 (0.674861), N = 177 moving right + --- -0.185086 (0.691645), N = 164 moving right + --- 0.0444879 (0.726205), N = 143 moving right + --- 2.94326 (0.632813), N = 31 moving right + + -- best stat: 0.726205, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 2 3 14 16 + + + -- linear combo weights (showing up to 5) + + -0.2703 -0.3753 2.3873 0.2096 0.2699 + + + -- cutpoint (score) + --- -0.697775 (0.588238), N = 203 moving right + --- -0.420046 (0.664592), N = 99 moving right + --- -0.40232 (0.656443), N = 97 moving right + --- -0.385182 (0.655899), N = 91 moving right + --- -0.346063 (0.635069), N = 76 moving right + + -- best stat: 0.664592, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + 5.1500e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8913e-01 1.0909e-02 + 1.9800e+02 9.8551e-01 1.4572e-02 + 2.1600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 20 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 1 11 13 7 + + + -- linear combo weights (showing up to 5) + + -0.4100 0.7402 0.7225 0.4001 3.3953 + + + -- cutpoint (score) + --- -1.06913 (0.570119), N = 228 moving right + --- -0.683008 (0.654331), N = 182 moving right + --- -0.578501 (0.685171), N = 164 moving right + --- 1.03906 (0.640474), N = 46 moving right + --- 2.57684 (0.625974), N = 23 moving right + + -- best stat: 0.685171, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 15 8 5 3 + + + -- linear combo weights (showing up to 5) + + 0.4445 0.0749 2.2000 0.3519 4.1184 + + + -- cutpoint (score) + --- 0.0116657 (0.627581), N = 215 moving right + --- 0.584651 (0.702326), N = 158 moving right + --- 0.838823 (0.732524), N = 128 moving right + --- 0.876991 (0.743489), N = 124 moving right + --- 1.44469 (0.734665), N = 80 moving right + + -- best stat: 0.743489, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 2 3 14 6 + + + -- linear combo weights (showing up to 5) + + 0.0935 -0.1215 7.5119 0.1059 0.3082 + + + -- cutpoint (score) + --- -0.121001 (0.613617), N = 136 moving right + --- -0.0455764 (0.609376), N = 97 moving right + --- 0.0615231 (0.592564), N = 67 moving right + --- 0.374512 (0.597404), N = 26 moving right + --- 0.585667 (0.609848), N = 20 moving right + + -- best stat: 0.613617, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.8551e-01 1.4533e-02 + 1.3100e+02 9.7464e-01 2.5562e-02 + 1.4000e+02 9.6739e-01 3.2997e-02 + 1.8600e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 21 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 8 17 7 6 + + + -- linear combo weights (showing up to 5) + + -0.1374 1.2822 0.2816 6.2098 1.0973 + + + -- cutpoint (score) + --- 0.624703 (0.728475), N = 130 moving right + --- 0.801259 (0.740387), N = 114 moving right + --- 1.82713 (0.693208), N = 54 moving right + --- 1.96466 (0.684933), N = 49 moving right + --- 1.98664 (0.687303), N = 47 moving right + + -- best stat: 0.740387, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 9 2 5 17 + + + -- linear combo weights (showing up to 5) + + 0.1816 0.5004 -0.8429 0.8471 0.4999 + + + -- cutpoint (score) + --- 0.350675 (0.598096), N = 213 moving right + --- 0.620075 (0.643517), N = 180 moving right + --- 1.56522 (0.66873), N = 81 moving right + --- 1.88453 (0.58081), N = 40 moving right + --- 1.91006 (0.574435), N = 39 moving right + + -- best stat: 0.66873, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 12 15 4 13 + + + -- linear combo weights (showing up to 5) + + 0.3517 0.1931 -0.2318 0.6480 0.4481 + + + -- cutpoint (score) + --- 0.256878 (0.54916), N = 254 moving right + --- 0.420149 (0.571207), N = 243 moving right + --- 0.443463 (0.579502), N = 240 moving right + --- 0.458372 (0.585979), N = 237 moving right + --- 1.15491 (0.688774), N = 176 moving right + + -- best stat: 0.688774, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 22 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 1 9 0 5 + + + -- linear combo weights (showing up to 5) + + -0.0373 0.7042 0.3777 -0.5334 0.8743 + + + -- cutpoint (score) + --- -0.888279 (0.586494), N = 233 moving right + --- -0.878108 (0.591895), N = 230 moving right + --- 0.68571 (0.668095), N = 67 moving right + --- 1.66315 (0.535067), N = 16 moving right + --- 1.87408 (0.50497), N = 8 moving right + + -- best stat: 0.668095, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 6 13 2 1 + + + -- linear combo weights (showing up to 5) + + 1.7427 0.5759 0.1104 -0.7261 0.6125 + + + -- cutpoint (score) + --- -1.80595 (0.598254), N = 216 moving right + --- -1.57916 (0.651129), N = 192 moving right + --- -1.45462 (0.693202), N = 165 moving right + --- -1.08734 (0.746135), N = 122 moving right + --- 2.5555 (0.596161), N = 18 moving right + + -- best stat: 0.746135, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 8 16 7 6 + + + -- linear combo weights (showing up to 5) + + 0.0294 1.5813 0.2080 8.1812 0.7375 + + + -- cutpoint (score) + --- -1.04916 (0.541075), N = 248 moving right + --- -0.951703 (0.58757), N = 217 moving right + --- -0.84183 (0.683691), N = 172 moving right + --- -0.821876 (0.686196), N = 164 moving right + --- 0.432891 (0.695844), N = 62 moving right + + -- best stat: 0.695844, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 23 -------------- + +- N obs inbag: 276 +- N row inbag: 184 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 10 14 2 4 + + + -- linear combo weights (showing up to 5) + + 6.4635 -0.4514 0.2543 -1.4639 0.7532 + + + -- cutpoint (score) + --- -1.88168 (0.546727), N = 242 moving right + --- -1.86273 (0.540255), N = 241 moving right + --- -1.10945 (0.660855), N = 164 moving right + --- 0.158827 (0.648382), N = 40 moving right + --- 0.624607 (0.6106), N = 29 moving right + + -- best stat: 0.660855, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 8 14 11 7 + + + -- linear combo weights (showing up to 5) + + 0.8730 1.4286 -0.1047 0.3852 5.7778 + + + -- cutpoint (score) + --- -1.03618 (0.586309), N = 228 moving right + --- -0.838319 (0.664745), N = 185 moving right + --- 0.490851 (0.716145), N = 78 moving right + --- 0.842218 (0.7262), N = 65 moving right + --- 0.989232 (0.690218), N = 50 moving right + + -- best stat: 0.7262, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 2 12 9 8 + + + -- linear combo weights (showing up to 5) + + 0.5545 -1.0857 0.0078 -0.1842 1.6810 + + + -- cutpoint (score) + --- -2.07494 (0.523891), N = 264 moving right + --- -2.00489 (0.561145), N = 246 moving right + --- -1.88111 (0.624527), N = 212 moving right + --- -0.985074 (0.758164), N = 112 moving right + --- -0.973144 (0.7602), N = 111 moving right + + -- best stat: 0.7602, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 24 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 3 8 6 10 + + + -- linear combo weights (showing up to 5) + + 0.1749 9.5080 1.3799 0.2854 -0.5514 + + + -- cutpoint (score) + --- -1.33313 (0.550738), N = 240 moving right + --- -1.15358 (0.578712), N = 225 moving right + --- 0.20822 (0.760398), N = 87 moving right + --- 0.353881 (0.757855), N = 75 moving right + --- 0.946243 (0.730989), N = 55 moving right + + -- best stat: 0.760398, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 17 5 16 13 + + + -- linear combo weights (showing up to 5) + + 11.2230 0.3635 0.6144 0.2046 0.4827 + + + -- cutpoint (score) + --- 0.729318 (0.638228), N = 203 moving right + --- 1.02674 (0.678281), N = 162 moving right + --- 1.37786 (0.729573), N = 115 moving right + --- 1.38116 (0.727071), N = 114 moving right + --- 3.07211 (0.641509), N = 26 moving right + + -- best stat: 0.729573, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 4 11 17 3 + + + -- linear combo weights (showing up to 5) + + 0.1914 0.0441 0.9005 0.2786 10.1218 + + + -- cutpoint (score) + --- -0.263652 (0.533039), N = 260 moving right + --- 0.156813 (0.631399), N = 210 moving right + --- 0.765616 (0.7355), N = 109 moving right + --- 0.796944 (0.738351), N = 107 moving right + --- 0.834159 (0.738413), N = 102 moving right + + -- best stat: 0.738413, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 25 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 3 11 10 4 + + + -- linear combo weights (showing up to 5) + + 0.1149 8.3609 0.4766 -0.1950 0.7152 + + + -- cutpoint (score) + --- 0.236131 (0.699266), N = 153 moving right + --- 0.624664 (0.723852), N = 110 moving right + --- 0.664305 (0.725505), N = 99 moving right + --- 0.67924 (0.734251), N = 95 moving right + --- 1.69557 (0.677482), N = 35 moving right + + -- best stat: 0.734251, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 9 5 6 14 + + + -- linear combo weights (showing up to 5) + + 0.5693 0.3690 0.4565 0.5681 0.1996 + + + -- cutpoint (score) + --- -0.481004 (0.56874), N = 236 moving right + --- 0.198193 (0.736972), N = 111 moving right + --- 0.888134 (0.628048), N = 56 moving right + --- 0.911624 (0.6243), N = 53 moving right + --- 1.2271 (0.604611), N = 42 moving right + + -- best stat: 0.736972, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 8 15 10 16 + + + -- linear combo weights (showing up to 5) + + -0.1707 1.2925 -0.1194 -0.5615 0.4144 + + + -- cutpoint (score) + --- -1.30818 (0.574382), N = 231 moving right + --- -0.999415 (0.617549), N = 202 moving right + --- -0.992792 (0.620813), N = 201 moving right + --- -0.975081 (0.628471), N = 194 moving right + --- 0.690833 (0.704486), N = 60 moving right + + -- best stat: 0.704486, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 26 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 9 6 5 14 + + + -- linear combo weights (showing up to 5) + + 0.4355 0.4416 0.5517 0.9052 0.1086 + + + -- cutpoint (score) + --- -0.201784 (0.592306), N = 215 moving right + --- -0.0571045 (0.646461), N = 180 moving right + --- 0.208769 (0.708717), N = 134 moving right + --- 0.31887 (0.723851), N = 124 moving right + --- 1.14716 (0.58632), N = 35 moving right + + -- best stat: 0.723851, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 9 15 5 13 + + + -- linear combo weights (showing up to 5) + + -0.0574 0.2239 -0.1874 1.1739 0.3588 + + + -- cutpoint (score) + --- -0.699161 (0.514482), N = 266 moving right + --- 0.0083787 (0.641186), N = 169 moving right + --- 0.167568 (0.651085), N = 135 moving right + --- 0.619768 (0.625716), N = 89 moving right + --- 1.23335 (0.61159), N = 38 moving right + + -- best stat: 0.651085, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 0 2 15 6 + + + -- linear combo weights (showing up to 5) + + 0.4294 0.1655 -0.1127 -0.2078 0.6108 + + + -- cutpoint (score) + --- -0.769982 (0.507844), N = 258 moving right + --- -0.452568 (0.564943), N = 222 moving right + --- -0.363205 (0.554451), N = 214 moving right + --- 0.121093 (0.628739), N = 127 moving right + --- 0.558758 (0.652073), N = 49 moving right + + -- best stat: 0.652073, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 27 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 3 12 9 0 + + + -- linear combo weights (showing up to 5) + + 0.6449 11.5187 0.4685 0.1528 -0.2846 + + + -- cutpoint (score) + --- 1.02013 (0.578233), N = 236 moving right + --- 1.30718 (0.606662), N = 218 moving right + --- 1.59354 (0.654445), N = 177 moving right + --- 2.15638 (0.711389), N = 89 moving right + --- 2.39782 (0.675842), N = 57 moving right + + -- best stat: 0.711389, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 12 13 8 15 + + + -- linear combo weights (showing up to 5) + + 8.9450 0.4074 -0.0003 1.6815 -0.3240 + + + -- cutpoint (score) + --- -0.279535 (0.755752), N = 114 moving right + --- 0.012533 (0.758419), N = 95 moving right + --- 0.243154 (0.720571), N = 74 moving right + --- 0.426058 (0.713604), N = 67 moving right + --- 2.1537 (0.656337), N = 25 moving right + + -- best stat: 0.758419, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 9 12 5 4 + + + -- linear combo weights (showing up to 5) + + 1.1210 0.0098 0.3435 1.2102 0.5538 + + + -- cutpoint (score) + --- 0.363854 (0.703948), N = 134 moving right + --- 1.26867 (0.722055), N = 74 moving right + --- 1.65487 (0.665993), N = 55 moving right + --- 2.62668 (0.579287), N = 28 moving right + --- 2.73637 (0.568169), N = 25 moving right + + -- best stat: 0.722055, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 5.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.7464e-01 2.5508e-02 + 1.1000e+02 9.7101e-01 2.9225e-02 + 1.3100e+02 9.6739e-01 3.2957e-02 + + +------------ Growing tree 28 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 6 10 17 9 + + + -- linear combo weights (showing up to 5) + + 2.0163 0.0361 -0.6916 0.5217 -0.6546 + + + -- cutpoint (score) + --- 1.46659 (0.741081), N = 111 moving right + --- 3.05573 (0.693498), N = 50 moving right + --- 3.44978 (0.669335), N = 43 moving right + --- 4.7072 (0.625474), N = 30 moving right + --- 5.31512 (0.602071), N = 24 moving right + + -- best stat: 0.741081, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 14 5 7 + + + -- linear combo weights (showing up to 5) + + 0.4872 0.8276 0.0449 -0.0061 6.5695 + + + -- cutpoint (score) + --- 0.355626 (0.554144), N = 252 moving right + --- 0.674799 (0.608975), N = 225 moving right + --- 0.788778 (0.630372), N = 214 moving right + --- 2.31671 (0.724021), N = 69 moving right + --- 2.66122 (0.688365), N = 53 moving right + + -- best stat: 0.724021, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 0 3 12 1 + + + -- linear combo weights (showing up to 5) + + -0.4898 -0.0892 5.2967 0.2206 0.3924 + + + -- cutpoint (score) + --- -0.206027 (0.669588), N = 158 moving right + --- -0.0732357 (0.687209), N = 134 moving right + --- 0.564618 (0.666046), N = 72 moving right + --- 0.913446 (0.656396), N = 50 moving right + --- 6.49276 (0.589222), N = 19 moving right + + -- best stat: 0.687209, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 29 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 6 2 15 13 + + + -- linear combo weights (showing up to 5) + + 11.4175 1.9883 -1.0372 -0.0007 0.3149 + + + -- cutpoint (score) + --- -1.1845 (0.640895), N = 186 moving right + --- -1.02183 (0.685769), N = 149 moving right + --- -0.874406 (0.696237), N = 115 moving right + --- 0.0258397 (0.695177), N = 64 moving right + --- 1.62913 (0.644009), N = 23 moving right + + -- best stat: 0.696237, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 16 3 9 4 + + + -- linear combo weights (showing up to 5) + + 0.0421 0.5800 9.3068 0.3787 0.5853 + + + -- cutpoint (score) + --- -0.0977583 (0.686829), N = 155 moving right + --- -0.0923002 (0.687933), N = 154 moving right + --- 0.206282 (0.739102), N = 110 moving right + --- 0.496979 (0.750342), N = 78 moving right + --- 1.02695 (0.690539), N = 48 moving right + + -- best stat: 0.750342, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 3 10 1 4 + + + -- linear combo weights (showing up to 5) + + 0.4377 8.1864 -0.5339 0.4839 0.4318 + + + -- cutpoint (score) + --- -0.889017 (0.593061), N = 222 moving right + --- -0.560742 (0.634601), N = 192 moving right + --- -0.269515 (0.687845), N = 151 moving right + --- 9.65336 (0.609889), N = 18 moving right + --- 10.0814 (0.590698), N = 15 moving right + + -- best stat: 0.687845, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 30 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 16 8 1 14 + + + -- linear combo weights (showing up to 5) + + 0.8055 0.2930 1.3955 0.3867 -0.1383 + + + -- cutpoint (score) + --- -1.42184 (0.592467), N = 224 moving right + --- -0.563741 (0.721946), N = 142 moving right + --- -0.562637 (0.728459), N = 138 moving right + --- -0.320676 (0.749916), N = 113 moving right + --- 0.618636 (0.731115), N = 72 moving right + + -- best stat: 0.749916, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 8 13 14 7 + + + -- linear combo weights (showing up to 5) + + 0.1187 1.4712 0.0592 -0.0574 1.8864 + + + -- cutpoint (score) + --- -1.05165 (0.517937), N = 266 moving right + --- -1.00189 (0.533998), N = 259 moving right + --- -0.645378 (0.693238), N = 150 moving right + --- -0.000411439 (0.70736), N = 87 moving right + --- 3.27707 (0.59487), N = 20 moving right + + -- best stat: 0.70736, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 7 8 13 14 + + + -- linear combo weights (showing up to 5) + + 0.4930 1.8407 1.3660 0.0880 -0.0100 + + + -- cutpoint (score) + --- -0.890586 (0.553811), N = 249 moving right + --- 0.157802 (0.711049), N = 108 moving right + --- 0.503835 (0.714), N = 87 moving right + --- 0.640558 (0.686641), N = 74 moving right + --- 2.91787 (0.60094), N = 25 moving right + + -- best stat: 0.714, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.3100e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 31 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 8 0 7 13 + + + -- linear combo weights (showing up to 5) + + 0.2491 1.5671 -0.2524 4.2675 -0.1019 + + + -- cutpoint (score) + --- -1.05514 (0.578819), N = 230 moving right + --- -0.964414 (0.598558), N = 219 moving right + --- -0.640368 (0.726686), N = 135 moving right + --- 0.0390418 (0.740448), N = 78 moving right + --- 2.44502 (0.633748), N = 29 moving right + + -- best stat: 0.740448, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 10 12 16 15 + + + -- linear combo weights (showing up to 5) + + 0.3196 -0.6376 0.1247 0.5478 -0.1605 + + + -- cutpoint (score) + --- -1.37342 (0.529113), N = 249 moving right + --- -0.976697 (0.563309), N = 219 moving right + --- 0.656275 (0.666792), N = 56 moving right + --- 1.50504 (0.62775), N = 30 moving right + --- 2.61916 (0.529589), N = 6 moving right + + -- best stat: 0.666792, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 6 1 0 4 + + + -- linear combo weights (showing up to 5) + + -0.5533 0.5708 0.3683 0.0154 0.7185 + + + -- cutpoint (score) + --- -1.4176 (0.494678), N = 269 moving right + --- 0.148341 (0.683216), N = 145 moving right + --- 1.50357 (0.594011), N = 31 moving right + --- 1.52978 (0.597585), N = 30 moving right + --- 1.83726 (0.559854), N = 14 moving right + + -- best stat: 0.683216, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8551e-01 1.4546e-02 + 1.4000e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.9800e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 32 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 7 1 8 15 + + + -- linear combo weights (showing up to 5) + + 0.2542 3.2532 0.5806 1.3815 -0.0469 + + + -- cutpoint (score) + --- -1.1689 (0.591713), N = 223 moving right + --- 0.158798 (0.782389), N = 87 moving right + --- 0.568246 (0.727115), N = 59 moving right + --- 1.37252 (0.654629), N = 39 moving right + --- 1.77115 (0.639869), N = 31 moving right + + -- best stat: 0.782389, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 0 16 8 4 + + + -- linear combo weights (showing up to 5) + + 0.5113 0.0307 0.3722 1.2368 0.4367 + + + -- cutpoint (score) + --- -1.20521 (0.557354), N = 244 moving right + --- -0.977642 (0.636431), N = 206 moving right + --- -0.920355 (0.656403), N = 190 moving right + --- -0.209047 (0.739707), N = 113 moving right + --- 0.45228 (0.725714), N = 84 moving right + + -- best stat: 0.739707, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 14 12 17 10 + + + -- linear combo weights (showing up to 5) + + 0.2079 0.3646 0.0800 0.5706 -0.5830 + + + -- cutpoint (score) + --- 1.71652 (0.715816), N = 116 moving right + --- 2.04857 (0.681872), N = 86 moving right + --- 2.38742 (0.677864), N = 65 moving right + --- 3.40519 (0.571391), N = 12 moving right + --- 4.36046 (0.520848), N = 6 moving right + + -- best stat: 0.715816, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 4.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 33 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 2 10 16 0 + + + -- linear combo weights (showing up to 5) + + 0.6277 -1.5981 -0.8348 0.4603 -0.4465 + + + -- cutpoint (score) + --- -0.611394 (0.651606), N = 199 moving right + --- 0.207512 (0.716528), N = 128 moving right + --- 0.285594 (0.725689), N = 122 moving right + --- 1.36556 (0.650402), N = 38 moving right + --- 2.84812 (0.558105), N = 14 moving right + + -- best stat: 0.725689, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 14 11 8 0 + + + -- linear combo weights (showing up to 5) + + 0.3193 -0.2614 1.1031 1.8675 0.0975 + + + -- cutpoint (score) + --- -1.80869 (0.599308), N = 226 moving right + --- -1.48634 (0.67681), N = 186 moving right + --- -1.30781 (0.722614), N = 160 moving right + --- 0.507969 (0.767816), N = 79 moving right + --- 2.29866 (0.66223), N = 34 moving right + + -- best stat: 0.767816, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 7 12 0 1 + + + -- linear combo weights (showing up to 5) + + 2.9061 12.4215 0.0681 -0.0803 0.3952 + + + -- cutpoint (score) + --- -0.603915 (0.545847), N = 243 moving right + --- -0.518761 (0.53673), N = 233 moving right + --- -0.0253463 (0.637134), N = 129 moving right + --- 0.129364 (0.612339), N = 86 moving right + --- 0.440183 (0.627242), N = 42 moving right + + -- best stat: 0.637134, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + 5.4900e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 2.1600e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 34 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 1 8 11 13 + + + -- linear combo weights (showing up to 5) + + 0.2397 0.4351 1.3442 0.7823 0.0682 + + + -- cutpoint (score) + --- -0.201487 (0.720659), N = 148 moving right + --- 1.03718 (0.775415), N = 85 moving right + --- 2.74724 (0.641527), N = 32 moving right + --- 2.76204 (0.634316), N = 31 moving right + --- 4.78637 (0.572853), N = 15 moving right + + -- best stat: 0.775415, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 12 11 13 5 + + + -- linear combo weights (showing up to 5) + + 7.4054 -0.2370 1.2225 0.2374 0.1255 + + + -- cutpoint (score) + --- -0.355943 (0.703864), N = 152 moving right + --- -0.294288 (0.71924), N = 137 moving right + --- 0.149592 (0.728997), N = 92 moving right + --- 0.979258 (0.695448), N = 52 moving right + --- 4.91689 (0.612448), N = 22 moving right + + -- best stat: 0.728997, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 8 5 7 3 + + + -- linear combo weights (showing up to 5) + + 0.3962 1.2583 0.1407 5.6721 3.7000 + + + -- cutpoint (score) + --- -0.547331 (0.695059), N = 161 moving right + --- -0.535794 (0.69743), N = 160 moving right + --- -0.257788 (0.744412), N = 119 moving right + --- 0.707836 (0.682347), N = 53 moving right + --- 7.36915 (0.599833), N = 19 moving right + + -- best stat: 0.744412, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 1.3100e+02 9.7464e-01 2.5562e-02 + 1.4000e+02 9.7101e-01 2.9279e-02 + 1.7900e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 35 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 8 3 15 14 + + + -- linear combo weights (showing up to 5) + + 0.9140 1.7827 6.1358 -0.0110 0.3031 + + + -- cutpoint (score) + --- -1.25978 (0.563597), N = 246 moving right + --- -0.984774 (0.642924), N = 197 moving right + --- 0.249726 (0.735016), N = 84 moving right + --- 0.900574 (0.676758), N = 46 moving right + --- 7.64959 (0.566133), N = 11 moving right + + -- best stat: 0.735016, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 13 12 17 4 + + + -- linear combo weights (showing up to 5) + + 1.3310 0.5030 0.2044 0.6591 -0.1411 + + + -- cutpoint (score) + --- 1.03689 (0.573886), N = 240 moving right + --- 1.30152 (0.620096), N = 216 moving right + --- 1.59714 (0.65708), N = 189 moving right + --- 1.87486 (0.685636), N = 152 moving right + --- 2.337 (0.679397), N = 99 moving right + + -- best stat: 0.685636, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 2 12 15 14 + + + -- linear combo weights (showing up to 5) + + 0.5955 -0.7351 0.1878 -0.0478 0.5878 + + + -- cutpoint (score) + --- -1.1881 (0.539132), N = 231 moving right + --- -1.0377 (0.5709), N = 215 moving right + --- -0.0932374 (0.605981), N = 75 moving right + --- 0.118121 (0.601236), N = 55 moving right + --- 0.52466 (0.563556), N = 22 moving right + + -- best stat: 0.605981, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 36 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 11 14 7 3 + + + -- linear combo weights (showing up to 5) + + 0.2731 0.7525 0.1822 6.8783 7.5422 + + + -- cutpoint (score) + --- -0.882193 (0.529685), N = 258 moving right + --- -0.540765 (0.661316), N = 189 moving right + --- -0.344888 (0.726016), N = 142 moving right + --- -0.183405 (0.73417), N = 127 moving right + --- 0.201574 (0.713552), N = 79 moving right + + -- best stat: 0.73417, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 14 6 7 9 + + + -- linear combo weights (showing up to 5) + + 9.0018 0.1792 1.4029 7.3628 0.4518 + + + -- cutpoint (score) + --- -0.430212 (0.529324), N = 261 moving right + --- -0.181354 (0.622415), N = 174 moving right + --- 0.0583142 (0.683357), N = 119 moving right + --- 0.264055 (0.689451), N = 82 moving right + --- 0.334813 (0.692402), N = 74 moving right + + -- best stat: 0.692402, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 9 10 12 6 + + + -- linear combo weights (showing up to 5) + + 0.6671 0.2226 -0.5872 0.0552 0.6866 + + + -- cutpoint (score) + --- -0.557557 (0.561303), N = 235 moving right + --- -0.238135 (0.618699), N = 202 moving right + --- 0.319442 (0.664649), N = 124 moving right + --- 0.820711 (0.701384), N = 75 moving right + --- 2.29452 (0.519153), N = 5 moving right + + -- best stat: 0.701384, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 37 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 17 4 1 15 + + + -- linear combo weights (showing up to 5) + + 0.4022 0.4390 0.5295 0.6432 0.0188 + + + -- cutpoint (score) + --- 0.90874 (0.63625), N = 201 moving right + --- 0.915738 (0.640996), N = 198 moving right + --- 1.577 (0.72673), N = 137 moving right + --- 1.98415 (0.690221), N = 107 moving right + --- 2.12611 (0.683415), N = 91 moving right + + -- best stat: 0.72673, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 14 9 8 2 + + + -- linear combo weights (showing up to 5) + + 0.4464 0.1093 -0.5817 2.4015 -1.5326 + + + -- cutpoint (score) + --- -1.86174 (0.557198), N = 243 moving right + --- -1.80502 (0.587149), N = 226 moving right + --- -1.63444 (0.616601), N = 210 moving right + --- -0.778055 (0.718591), N = 129 moving right + --- 2.74273 (0.587253), N = 17 moving right + + -- best stat: 0.718591, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 15 16 7 2 + + + -- linear combo weights (showing up to 5) + + 0.8090 0.1988 0.4861 8.0599 -1.6384 + + + -- cutpoint (score) + --- -1.83576 (0.57158), N = 232 moving right + --- -1.66089 (0.621992), N = 196 moving right + --- -0.473663 (0.680293), N = 71 moving right + --- -0.227801 (0.67228), N = 60 moving right + --- 7.24753 (0.549621), N = 13 moving right + + -- best stat: 0.680293, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 1.1000e+02 9.7826e-01 2.1886e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.7900e+02 9.5652e-01 4.4218e-02 + + +------------ Growing tree 38 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 1 17 5 14 + + + -- linear combo weights (showing up to 5) + + -0.5751 0.5727 0.3193 1.2715 0.3042 + + + -- cutpoint (score) + --- 0.0441398 (0.610134), N = 224 moving right + --- 0.639926 (0.717548), N = 142 moving right + --- 1.35403 (0.715701), N = 87 moving right + --- 2.03185 (0.638313), N = 41 moving right + --- 2.94634 (0.534248), N = 10 moving right + + -- best stat: 0.717548, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 17 13 12 1 + + + -- linear combo weights (showing up to 5) + + 0.3274 0.3962 0.4774 0.0757 0.5534 + + + -- cutpoint (score) + --- 1.09789 (0.723598), N = 135 moving right + --- 1.94977 (0.678245), N = 66 moving right + --- 2.2747 (0.616915), N = 36 moving right + --- 2.41455 (0.580515), N = 26 moving right + --- 2.77877 (0.551606), N = 11 moving right + + -- best stat: 0.723598, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 17 13 1 10 + + + -- linear combo weights (showing up to 5) + + -0.0199 0.4180 0.4333 0.5046 -0.6431 + + + -- cutpoint (score) + --- 0.684514 (0.648544), N = 184 moving right + --- 1.48531 (0.736144), N = 99 moving right + --- 2.6258 (0.666186), N = 36 moving right + --- 3.72115 (0.546368), N = 8 moving right + --- 4.1134 (0.537842), N = 5 moving right + + -- best stat: 0.736144, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 39 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 14 9 10 6 + + + -- linear combo weights (showing up to 5) + + 1.0416 0.1831 0.4418 -0.6724 0.2617 + + + -- cutpoint (score) + --- -0.379542 (0.671582), N = 149 moving right + --- -0.102399 (0.695847), N = 124 moving right + --- 0.0407556 (0.707611), N = 107 moving right + --- 0.172252 (0.714202), N = 98 moving right + --- 1.1063 (0.714146), N = 55 moving right + + -- best stat: 0.714202, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 3 6 15 17 + + + -- linear combo weights (showing up to 5) + + 0.6445 5.7911 0.5651 -0.1157 0.3579 + + + -- cutpoint (score) + --- 0.0176634 (0.522313), N = 265 moving right + --- 0.318597 (0.572536), N = 241 moving right + --- 0.895225 (0.696325), N = 152 moving right + --- 1.27708 (0.75706), N = 95 moving right + --- 1.84901 (0.710133), N = 53 moving right + + -- best stat: 0.75706, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 6 15 12 5 + + + -- linear combo weights (showing up to 5) + + 1.7394 0.2969 -0.2020 -0.0088 0.4890 + + + -- cutpoint (score) + --- -0.922948 (0.628337), N = 197 moving right + --- -0.857687 (0.638536), N = 189 moving right + --- -0.382893 (0.717515), N = 117 moving right + --- 2.56095 (0.613756), N = 25 moving right + --- 8.07837 (0.526198), N = 6 moving right + + -- best stat: 0.717515, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 40 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 1 4 11 2 + + + -- linear combo weights (showing up to 5) + + 1.4525 0.6505 0.6412 0.9108 0.0893 + + + -- cutpoint (score) + --- -1.66138 (0.560499), N = 245 moving right + --- -1.29298 (0.617412), N = 219 moving right + --- 0.376926 (0.785457), N = 99 moving right + --- 0.474462 (0.79502), N = 93 moving right + --- 0.782512 (0.80128), N = 83 moving right + + -- best stat: 0.80128, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 14 17 4 15 + + + -- linear combo weights (showing up to 5) + + 0.5761 0.4488 0.5661 0.8961 -0.0857 + + + -- cutpoint (score) + --- 0.329872 (0.537868), N = 259 moving right + --- 2.10449 (0.723519), N = 139 moving right + --- 2.1297 (0.725079), N = 137 moving right + --- 2.44451 (0.7391), N = 113 moving right + --- 3.64395 (0.626347), N = 34 moving right + + -- best stat: 0.7391, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 11 8 14 13 + + + -- linear combo weights (showing up to 5) + + -0.8313 0.9416 1.3352 -0.1886 0.0247 + + + -- cutpoint (score) + --- -1.7224 (0.593383), N = 230 moving right + --- -1.63737 (0.616906), N = 220 moving right + --- -0.37364 (0.753161), N = 122 moving right + --- -0.188618 (0.752715), N = 105 moving right + --- -0.10495 (0.757436), N = 102 moving right + + -- best stat: 0.757436, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 41 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 13 1 9 15 + + + -- linear combo weights (showing up to 5) + + 4.5218 0.4624 0.5915 0.2460 -0.1821 + + + -- cutpoint (score) + --- -0.655619 (0.599273), N = 217 moving right + --- -0.0197518 (0.738372), N = 124 moving right + --- 0.651935 (0.674133), N = 58 moving right + --- 1.3736 (0.599393), N = 24 moving right + --- 3.44144 (0.585879), N = 20 moving right + + -- best stat: 0.738372, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 2 17 1 14 + + + -- linear combo weights (showing up to 5) + + 0.1478 -0.6169 0.5688 0.5465 0.3121 + + + -- cutpoint (score) + --- 0.0166463 (0.554657), N = 247 moving right + --- 1.20072 (0.698507), N = 131 moving right + --- 1.61679 (0.66493), N = 78 moving right + --- 2.71898 (0.543059), N = 15 moving right + --- 2.77514 (0.528247), N = 11 moving right + + -- best stat: 0.698507, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 8 2 1 15 + + + -- linear combo weights (showing up to 5) + + 0.6524 1.1930 -0.0843 0.6166 -0.1238 + + + -- cutpoint (score) + --- -1.32545 (0.615463), N = 215 moving right + --- -1.3032 (0.618577), N = 214 moving right + --- -1.11542 (0.656286), N = 194 moving right + --- -0.692744 (0.753663), N = 145 moving right + --- -0.137389 (0.788138), N = 100 moving right + + -- best stat: 0.788138, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 42 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 4 10 17 6 + + + -- linear combo weights (showing up to 5) + + 0.2651 0.6156 -0.8312 0.6500 0.9347 + + + -- cutpoint (score) + --- 0.943431 (0.571899), N = 240 moving right + --- 1.21794 (0.592697), N = 231 moving right + --- 1.37023 (0.6), N = 218 moving right + --- 3.37536 (0.682635), N = 60 moving right + --- 3.61055 (0.672495), N = 51 moving right + + -- best stat: 0.682635, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 8 16 12 6 + + + -- linear combo weights (showing up to 5) + + 11.3733 1.0684 0.3331 0.1613 0.4907 + + + -- cutpoint (score) + --- -0.958418 (0.553364), N = 249 moving right + --- -0.841801 (0.585672), N = 222 moving right + --- -0.693873 (0.660865), N = 177 moving right + --- 0.0338344 (0.747172), N = 93 moving right + --- 1.18525 (0.662909), N = 42 moving right + + -- best stat: 0.747172, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 10 14 15 11 + + + -- linear combo weights (showing up to 5) + + 0.4632 -0.5966 0.1231 -0.2086 1.4132 + + + -- cutpoint (score) + --- 0.884256 (0.724727), N = 143 moving right + --- 0.884512 (0.727644), N = 142 moving right + --- 1.11379 (0.738023), N = 134 moving right + --- 1.21079 (0.756876), N = 118 moving right + --- 4.80402 (0.561957), N = 12 moving right + + -- best stat: 0.756876, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 43 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 17 10 13 0 + + + -- linear combo weights (showing up to 5) + + 0.0267 0.5819 -0.5318 0.5314 -0.2282 + + + -- cutpoint (score) + --- 0.17183 (0.531256), N = 256 moving right + --- 0.613402 (0.570705), N = 237 moving right + --- 0.982899 (0.631402), N = 196 moving right + --- 1.6623 (0.707837), N = 132 moving right + --- 2.20193 (0.638747), N = 72 moving right + + -- best stat: 0.707837, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 15 13 1 9 + + + -- linear combo weights (showing up to 5) + + 0.8132 -0.1425 0.6310 0.4406 0.1432 + + + -- cutpoint (score) + --- -0.374922 (0.6629), N = 177 moving right + --- 0.0503388 (0.687114), N = 118 moving right + --- 0.0992989 (0.685237), N = 115 moving right + --- 0.525181 (0.683946), N = 74 moving right + --- 1.34953 (0.579442), N = 25 moving right + + -- best stat: 0.687114, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 11 12 4 15 + + + -- linear combo weights (showing up to 5) + + 0.5760 1.0152 -0.0604 0.4916 0.0193 + + + -- cutpoint (score) + --- -1.02452 (0.562755), N = 242 moving right + --- -0.647998 (0.64589), N = 203 moving right + --- -0.139661 (0.702934), N = 146 moving right + --- 0.274542 (0.723819), N = 116 moving right + --- 2.2724 (0.578433), N = 22 moving right + + -- best stat: 0.723819, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 44 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 15 3 5 7 + + + -- linear combo weights (showing up to 5) + + 0.2201 -0.0789 5.9218 0.7619 5.5352 + + + -- cutpoint (score) + --- -0.263835 (0.514868), N = 253 moving right + --- -0.156213 (0.554894), N = 217 moving right + --- -0.0712623 (0.610379), N = 178 moving right + --- -0.0702956 (0.612371), N = 175 moving right + --- 0.161572 (0.668754), N = 101 moving right + + -- best stat: 0.668754, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 8 2 0 14 + + + -- linear combo weights (showing up to 5) + + -0.1357 2.5951 -0.1716 -0.0440 -0.1463 + + + -- cutpoint (score) + --- -1.75501 (0.535669), N = 252 moving right + --- -1.62759 (0.599912), N = 219 moving right + --- -1.46403 (0.669608), N = 183 moving right + --- -1.44903 (0.674995), N = 179 moving right + --- -0.86337 (0.751697), N = 96 moving right + + -- best stat: 0.751697, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 4 13 7 0 + + + -- linear combo weights (showing up to 5) + + 6.7680 0.6466 0.4994 5.6973 -0.0968 + + + -- cutpoint (score) + --- -0.573338 (0.539063), N = 254 moving right + --- -0.192114 (0.619991), N = 197 moving right + --- -0.036269 (0.652069), N = 178 moving right + --- 0.222474 (0.695927), N = 136 moving right + --- 0.319788 (0.704423), N = 119 moving right + + -- best stat: 0.704423, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 45 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 13 12 5 11 + + + -- linear combo weights (showing up to 5) + + 0.7466 0.3827 -0.0499 1.0753 0.6659 + + + -- cutpoint (score) + --- -0.844067 (0.612517), N = 211 moving right + --- -0.700472 (0.632486), N = 195 moving right + --- 0.108171 (0.711373), N = 134 moving right + --- 0.164431 (0.731905), N = 123 moving right + --- 0.311435 (0.712078), N = 114 moving right + + -- best stat: 0.731905, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 5 0 2 11 + + + -- linear combo weights (showing up to 5) + + 0.0406 1.2167 0.1031 0.1740 0.8155 + + + -- cutpoint (score) + --- -0.341832 (0.570142), N = 223 moving right + --- -0.195951 (0.610079), N = 188 moving right + --- 1.3605 (0.697328), N = 67 moving right + --- 2.49338 (0.537257), N = 13 moving right + --- 2.749 (0.515253), N = 10 moving right + + -- best stat: 0.697328, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 10 14 15 + + + -- linear combo weights (showing up to 5) + + 0.5363 0.7763 -0.4395 0.2726 -0.1465 + + + -- cutpoint (score) + --- 0.586052 (0.572016), N = 221 moving right + --- 1.05027 (0.644515), N = 177 moving right + --- 1.48655 (0.66938), N = 134 moving right + --- 1.51378 (0.667567), N = 133 moving right + --- 4.52206 (0.542557), N = 9 moving right + + -- best stat: 0.66938, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.9800e+02 9.7826e-01 2.1912e-02 + 2.1600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 46 -------------- + +- N obs inbag: 276 +- N row inbag: 184 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 13 12 5 15 + + + -- linear combo weights (showing up to 5) + + 0.0306 0.3131 0.1726 1.2693 -0.0786 + + + -- cutpoint (score) + --- -0.0801014 (0.622082), N = 176 moving right + --- 0.133452 (0.646613), N = 127 moving right + --- 0.348012 (0.620483), N = 108 moving right + --- 0.417846 (0.615778), N = 105 moving right + --- 1.23114 (0.612995), N = 43 moving right + + -- best stat: 0.646613, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 2 6 12 13 + + + -- linear combo weights (showing up to 5) + + 1.5003 -0.6011 1.2968 0.0774 -0.0866 + + + -- cutpoint (score) + --- -1.33016 (0.645176), N = 191 moving right + --- -1.24972 (0.684092), N = 172 moving right + --- -0.608962 (0.727516), N = 99 moving right + --- -0.16454 (0.688851), N = 74 moving right + --- 6.32932 (0.522969), N = 5 moving right + + -- best stat: 0.727516, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 16 15 10 5 + + + -- linear combo weights (showing up to 5) + + 0.3779 0.6338 -0.0183 -0.8418 0.9784 + + + -- cutpoint (score) + --- -1.32502 (0.539527), N = 254 moving right + --- -0.736144 (0.601088), N = 208 moving right + --- 1.07903 (0.686589), N = 65 moving right + --- 1.88676 (0.662039), N = 41 moving right + --- 2.0946 (0.645176), N = 37 moving right + + -- best stat: 0.686589, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 47 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 8 9 14 6 + + + -- linear combo weights (showing up to 5) + + 0.3256 1.8631 -0.7533 0.0064 0.9692 + + + -- cutpoint (score) + --- -1.0649 (0.570692), N = 229 moving right + --- -1.04482 (0.577576), N = 225 moving right + --- -0.338307 (0.740516), N = 130 moving right + --- 0.229057 (0.742624), N = 84 moving right + --- 1.21499 (0.65724), N = 35 moving right + + -- best stat: 0.742624, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 15 9 11 7 + + + -- linear combo weights (showing up to 5) + + 8.2149 -0.0199 0.0366 0.8779 5.1340 + + + -- cutpoint (score) + --- -0.681309 (0.571254), N = 243 moving right + --- -0.523028 (0.639075), N = 203 moving right + --- -0.516285 (0.643531), N = 201 moving right + --- -0.368748 (0.668901), N = 169 moving right + --- 1.15927 (0.664465), N = 39 moving right + + -- best stat: 0.668901, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 14 7 16 0 + + + -- linear combo weights (showing up to 5) + + 1.1320 0.4591 10.1724 0.2818 -0.3702 + + + -- cutpoint (score) + --- -0.431033 (0.63769), N = 194 moving right + --- 0.0766553 (0.704287), N = 80 moving right + --- 0.406285 (0.666533), N = 53 moving right + --- 1.13589 (0.628196), N = 29 moving right + --- 2.20368 (0.602906), N = 19 moving right + + -- best stat: 0.704287, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 48 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 3 0 15 5 + + + -- linear combo weights (showing up to 5) + + 0.7183 5.4370 0.0721 -0.1076 0.8120 + + + -- cutpoint (score) + --- -0.546368 (0.571002), N = 240 moving right + --- -0.227991 (0.683089), N = 160 moving right + --- -0.0308541 (0.70199), N = 135 moving right + --- 0.560203 (0.743288), N = 97 moving right + --- 1.28747 (0.668918), N = 47 moving right + + -- best stat: 0.743288, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 4 8 6 1 + + + -- linear combo weights (showing up to 5) + + 0.3504 0.2931 1.4797 -0.1036 0.5513 + + + -- cutpoint (score) + --- -1.0629 (0.618756), N = 200 moving right + --- -1.01043 (0.643454), N = 188 moving right + --- -0.3506 (0.753431), N = 129 moving right + --- -0.164841 (0.753431), N = 115 moving right + --- 2.66362 (0.632693), N = 31 moving right + + -- best stat: 0.753431, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 17 12 3 7 + + + -- linear combo weights (showing up to 5) + + -0.0291 0.4765 0.1123 1.6455 11.4946 + + + -- cutpoint (score) + --- 1.30989 (0.61784), N = 203 moving right + --- 1.38351 (0.697899), N = 151 moving right + --- 1.40374 (0.723683), N = 136 moving right + --- 1.42238 (0.710961), N = 128 moving right + --- 1.92475 (0.614686), N = 33 moving right + + -- best stat: 0.723683, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.7826e-01 2.1859e-02 + 7.1000e+01 9.7464e-01 2.5562e-02 + 1.1000e+02 9.6739e-01 3.2997e-02 + 1.3100e+02 9.6377e-01 3.6743e-02 + + +------------ Growing tree 49 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 17 6 3 11 + + + -- linear combo weights (showing up to 5) + + 0.0883 0.4069 0.5822 6.5191 0.7754 + + + -- cutpoint (score) + --- 0.250323 (0.572309), N = 243 moving right + --- 0.472961 (0.606456), N = 220 moving right + --- 0.797173 (0.674279), N = 177 moving right + --- 1.02228 (0.698854), N = 146 moving right + --- 1.47219 (0.754357), N = 101 moving right + + -- best stat: 0.754357, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 4 1 6 7 + + + -- linear combo weights (showing up to 5) + + 0.0156 0.6561 0.5518 0.4138 6.8207 + + + -- cutpoint (score) + --- -0.375808 (0.568746), N = 229 moving right + --- 0.302954 (0.662088), N = 144 moving right + --- 0.339614 (0.656271), N = 139 moving right + --- 0.505215 (0.648738), N = 114 moving right + --- 1.32904 (0.619978), N = 34 moving right + + -- best stat: 0.662088, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 14 17 6 12 + + + -- linear combo weights (showing up to 5) + + 6.9895 0.2945 0.5696 0.6450 0.1853 + + + -- cutpoint (score) + --- 0.980124 (0.559002), N = 240 moving right + --- 1.06181 (0.576), N = 230 moving right + --- 1.44075 (0.632898), N = 195 moving right + --- 1.62957 (0.663741), N = 168 moving right + --- 1.77838 (0.681834), N = 151 moving right + + -- best stat: 0.681834, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8188e-01 1.8169e-02 + 1.3100e+02 9.7464e-01 2.5549e-02 + 1.4000e+02 9.7101e-01 2.9266e-02 + 2.2300e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 50 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 9 16 11 7 + + + -- linear combo weights (showing up to 5) + + 0.1817 0.3673 0.7147 0.7193 5.2958 + + + -- cutpoint (score) + --- -1.52759 (0.528653), N = 261 moving right + --- -1.28268 (0.568703), N = 238 moving right + --- -0.872669 (0.637364), N = 201 moving right + --- -0.49394 (0.714245), N = 145 moving right + --- -0.202434 (0.756425), N = 120 moving right + + -- best stat: 0.756425, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 10 1 0 8 + + + -- linear combo weights (showing up to 5) + + -0.0500 -0.6235 0.2349 -0.0325 1.9208 + + + -- cutpoint (score) + --- -1.46016 (0.618487), N = 216 moving right + --- -1.27764 (0.662923), N = 192 moving right + --- -1.01889 (0.728858), N = 152 moving right + --- 0.193089 (0.771224), N = 85 moving right + --- 3.33368 (0.639762), N = 24 moving right + + -- best stat: 0.771224, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 11 2 5 7 + + + -- linear combo weights (showing up to 5) + + 0.4147 0.9210 0.6221 0.0748 5.8369 + + + -- cutpoint (score) + --- 0.157975 (0.69957), N = 157 moving right + --- 0.437475 (0.728674), N = 126 moving right + --- 1.02592 (0.745214), N = 77 moving right + --- 4.19645 (0.614306), N = 22 moving right + --- 7.35641 (0.533593), N = 6 moving right + + -- best stat: 0.745214, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.3100e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.6739e-01 3.3010e-02 + + +------------ Growing tree 51 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 14 2 9 13 + + + -- linear combo weights (showing up to 5) + + 1.6086 0.1719 0.3637 0.7404 0.4507 + + + -- cutpoint (score) + --- -0.27924 (0.564497), N = 210 moving right + --- -0.224141 (0.571238), N = 207 moving right + --- -0.0580393 (0.626116), N = 171 moving right + --- 0.548736 (0.629681), N = 105 moving right + --- 1.55491 (0.615639), N = 31 moving right + + -- best stat: 0.629681, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 11 6 14 3 + + + -- linear combo weights (showing up to 5) + + 5.3124 0.4655 1.2615 0.2820 4.3025 + + + -- cutpoint (score) + --- -0.714234 (0.514385), N = 271 moving right + --- -0.172815 (0.664355), N = 159 moving right + --- 0.447975 (0.691171), N = 68 moving right + --- 0.57456 (0.674468), N = 63 moving right + --- 0.576156 (0.679062), N = 61 moving right + + -- best stat: 0.691171, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 16 12 0 1 + + + -- linear combo weights (showing up to 5) + + 0.7240 0.5318 0.1332 0.0888 0.2085 + + + -- cutpoint (score) + --- -0.491353 (0.669443), N = 164 moving right + --- -0.222734 (0.678332), N = 136 moving right + --- 1.15523 (0.648574), N = 46 moving right + --- 1.64056 (0.560289), N = 24 moving right + --- 1.76715 (0.562994), N = 22 moving right + + -- best stat: 0.678332, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 52 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 189 +- max leaves: 95 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 15 12 11 13 + + + -- linear combo weights (showing up to 5) + + 5.2007 0.0683 0.0908 0.5045 0.3190 + + + -- cutpoint (score) + --- -0.102083 (0.729811), N = 133 moving right + --- -0.0304747 (0.716336), N = 121 moving right + --- 0.166755 (0.718905), N = 97 moving right + --- 0.701717 (0.664353), N = 53 moving right + --- 0.845823 (0.632312), N = 40 moving right + + -- best stat: 0.729811, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 12 14 11 5 + + + -- linear combo weights (showing up to 5) + + 0.7840 -0.0279 0.4632 0.5622 1.1015 + + + -- cutpoint (score) + --- -0.210899 (0.65027), N = 191 moving right + --- 0.225847 (0.681546), N = 159 moving right + --- 0.457553 (0.720054), N = 142 moving right + --- 0.687814 (0.713452), N = 130 moving right + --- 0.976671 (0.7121), N = 111 moving right + + -- best stat: 0.720054, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 16 8 3 1 + + + -- linear combo weights (showing up to 5) + + -0.4651 0.1310 1.7158 5.7731 0.0479 + + + -- cutpoint (score) + --- -0.858036 (0.681501), N = 160 moving right + --- 0.380211 (0.763542), N = 64 moving right + --- 0.769571 (0.723907), N = 50 moving right + --- 1.68184 (0.675034), N = 37 moving right + --- 1.8476 (0.666471), N = 33 moving right + + -- best stat: 0.763542, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7101e-01 2.9292e-02 + 1.8600e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 53 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 14 10 8 17 + + + -- linear combo weights (showing up to 5) + + 1.0095 -0.0819 -0.2910 1.8069 0.3636 + + + -- cutpoint (score) + --- 0.160812 (0.660514), N = 180 moving right + --- 0.259537 (0.67946), N = 168 moving right + --- 0.404237 (0.707245), N = 154 moving right + --- 0.645568 (0.724303), N = 132 moving right + --- 3.0028 (0.644945), N = 29 moving right + + -- best stat: 0.724303, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 7 2 11 + + + -- linear combo weights (showing up to 5) + + 0.0569 -0.0661 5.0609 0.3967 1.0562 + + + -- cutpoint (score) + --- -0.484471 (0.546908), N = 242 moving right + --- -0.455458 (0.560701), N = 234 moving right + --- -0.0682722 (0.642369), N = 163 moving right + --- 0.121074 (0.683547), N = 115 moving right + --- 0.506621 (0.705424), N = 72 moving right + + -- best stat: 0.705424, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 17 10 2 0 + + + -- linear combo weights (showing up to 5) + + -0.0521 0.6841 -0.4597 -1.0261 -0.2557 + + + -- cutpoint (score) + --- -0.189374 (0.542777), N = 251 moving right + --- 0.210905 (0.592506), N = 211 moving right + --- 0.76783 (0.666156), N = 145 moving right + --- 0.903603 (0.675173), N = 132 moving right + --- 2.64414 (0.536225), N = 9 moving right + + -- best stat: 0.675173, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.3100e+02 9.7826e-01 2.1899e-02 + 1.7900e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 54 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 193 +- max leaves: 97 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 3 2 10 16 + + + -- linear combo weights (showing up to 5) + + -0.5157 10.9687 -0.7407 -0.7633 0.3513 + + + -- cutpoint (score) + --- -2.28807 (0.5037), N = 270 moving right + --- -1.78758 (0.546337), N = 249 moving right + --- -0.988258 (0.686319), N = 148 moving right + --- -0.582385 (0.701559), N = 104 moving right + --- 10.0661 (0.600846), N = 16 moving right + + -- best stat: 0.701559, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 4 10 0 17 + + + -- linear combo weights (showing up to 5) + + 0.4389 0.2892 -0.9065 -0.0210 0.4085 + + + -- cutpoint (score) + --- -0.227314 (0.546183), N = 248 moving right + --- 0.677833 (0.643307), N = 191 moving right + --- 0.869574 (0.672422), N = 169 moving right + --- 1.97639 (0.690636), N = 79 moving right + --- 2.12178 (0.69112), N = 68 moving right + + -- best stat: 0.69112, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 3 2 0 17 + + + -- linear combo weights (showing up to 5) + + 0.5321 12.1223 -0.4592 0.1372 0.2969 + + + -- cutpoint (score) + --- 0.728302 (0.655244), N = 166 moving right + --- 1.26042 (0.650112), N = 62 moving right + --- 1.26304 (0.652865), N = 61 moving right + --- 1.39757 (0.632163), N = 32 moving right + --- 1.42278 (0.626371), N = 31 moving right + + -- best stat: 0.655244, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7826e-01 2.1899e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 55 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 0 14 6 12 + + + -- linear combo weights (showing up to 5) + + 9.4145 0.2435 0.0716 0.5962 0.1775 + + + -- cutpoint (score) + --- -0.159131 (0.526044), N = 259 moving right + --- 0.104451 (0.600282), N = 152 moving right + --- 0.16357 (0.618453), N = 113 moving right + --- 0.167547 (0.621623), N = 112 moving right + --- 0.470946 (0.624772), N = 52 moving right + + -- best stat: 0.624772, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 2 0 9 6 + + + -- linear combo weights (showing up to 5) + + 1.1142 -0.0397 0.3828 0.3663 0.7085 + + + -- cutpoint (score) + --- -1.05989 (0.536508), N = 255 moving right + --- -0.958766 (0.556274), N = 247 moving right + --- -0.622907 (0.621395), N = 203 moving right + --- -0.487055 (0.650298), N = 180 moving right + --- 0.425464 (0.678187), N = 89 moving right + + -- best stat: 0.678187, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 17 1 6 + + + -- linear combo weights (showing up to 5) + + 0.5528 0.1315 0.5141 0.3995 0.4549 + + + -- cutpoint (score) + --- 0.913447 (0.611367), N = 220 moving right + --- 1.44115 (0.689272), N = 155 moving right + --- 2.44285 (0.662461), N = 58 moving right + --- 2.49383 (0.653717), N = 55 moving right + --- 2.51426 (0.618494), N = 50 moving right + + -- best stat: 0.689272, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 56 -------------- + +- N obs inbag: 276 +- N row inbag: 162 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 6 1 11 2 + + + -- linear combo weights (showing up to 5) + + 2.1489 0.2205 0.4919 0.3366 0.0209 + + + -- cutpoint (score) + --- -0.90621 (0.713913), N = 152 moving right + --- -0.403286 (0.742329), N = 106 moving right + --- -0.384065 (0.747361), N = 98 moving right + --- 0.161231 (0.743317), N = 73 moving right + --- 2.53508 (0.627881), N = 28 moving right + + -- best stat: 0.747361, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 14 5 6 12 + + + -- linear combo weights (showing up to 5) + + 2.4862 -0.3434 0.8844 0.4269 0.1665 + + + -- cutpoint (score) + --- -1.19966 (0.632059), N = 197 moving right + --- -0.222939 (0.727751), N = 107 moving right + --- 0.142287 (0.729682), N = 89 moving right + --- 2.75473 (0.624354), N = 22 moving right + --- 3.24105 (0.612808), N = 20 moving right + + -- best stat: 0.729682, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 13 3 5 1 + + + -- linear combo weights (showing up to 5) + + 0.1640 0.3035 5.4090 1.1977 0.4345 + + + -- cutpoint (score) + --- -0.260956 (0.591895), N = 220 moving right + --- -0.081783 (0.626556), N = 195 moving right + --- 0.91295 (0.745137), N = 67 moving right + --- 1.21245 (0.71598), N = 59 moving right + --- 6.48891 (0.567546), N = 13 moving right + + -- best stat: 0.745137, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7464e-01 2.5602e-02 + 1.1000e+02 9.6377e-01 3.6754e-02 + + +------------ Growing tree 57 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 8 10 17 9 + + + -- linear combo weights (showing up to 5) + + -0.0011 1.7251 -0.2610 0.5706 -0.4236 + + + -- cutpoint (score) + --- 1.35972 (0.70886), N = 120 moving right + --- 1.74351 (0.745059), N = 94 moving right + --- 2.13724 (0.743052), N = 73 moving right + --- 4.97862 (0.592427), N = 18 moving right + --- 5.01315 (0.586293), N = 17 moving right + + -- best stat: 0.745059, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 15 13 7 4 + + + -- linear combo weights (showing up to 5) + + -0.0414 0.1353 0.4463 14.2747 0.6291 + + + -- cutpoint (score) + --- -0.623098 (0.508349), N = 267 moving right + --- -0.46472 (0.541708), N = 253 moving right + --- -0.0155103 (0.63953), N = 192 moving right + --- 0.339671 (0.688073), N = 127 moving right + --- 1.89659 (0.57677), N = 15 moving right + + -- best stat: 0.688073, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 15 8 5 9 + + + -- linear combo weights (showing up to 5) + + -0.5272 -0.0380 1.8255 0.8685 -0.4200 + + + -- cutpoint (score) + --- -1.27633 (0.644226), N = 193 moving right + --- -1.21782 (0.651931), N = 190 moving right + --- -0.0181116 (0.74805), N = 87 moving right + --- 0.134361 (0.743923), N = 79 moving right + --- 0.583127 (0.708747), N = 54 moving right + + -- best stat: 0.74805, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 58 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 1 2 12 8 + + + -- linear combo weights (showing up to 5) + + 7.9753 0.3504 -0.7903 0.2103 1.1651 + + + -- cutpoint (score) + --- -1.47548 (0.623275), N = 191 moving right + --- -1.16374 (0.73486), N = 134 moving right + --- -1.06319 (0.733388), N = 127 moving right + --- -0.841144 (0.746506), N = 110 moving right + --- 0.0200263 (0.703305), N = 54 moving right + + -- best stat: 0.746506, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 6 1 16 0 + + + -- linear combo weights (showing up to 5) + + -0.7439 -0.0811 0.3099 0.4737 0.1112 + + + -- cutpoint (score) + --- -1.10253 (0.57781), N = 217 moving right + --- -0.865345 (0.63769), N = 156 moving right + --- -0.679453 (0.660785), N = 120 moving right + --- -0.356487 (0.63279), N = 61 moving right + --- 0.374905 (0.575723), N = 16 moving right + + -- best stat: 0.660785, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 9 0 5 17 + + + -- linear combo weights (showing up to 5) + + -0.0226 0.6451 -0.0990 0.5317 0.5721 + + + -- cutpoint (score) + --- 0.966923 (0.607893), N = 220 moving right + --- 1.24396 (0.643579), N = 194 moving right + --- 1.7134 (0.681529), N = 144 moving right + --- 2.26781 (0.644019), N = 63 moving right + --- 2.55306 (0.573086), N = 34 moving right + + -- best stat: 0.681529, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8551e-01 1.4559e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 59 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 12 7 5 14 + + + -- linear combo weights (showing up to 5) + + -1.0398 0.0010 25.0359 0.7584 0.3414 + + + -- cutpoint (score) + --- -1.3169 (0.532679), N = 255 moving right + --- -0.45912 (0.65516), N = 88 moving right + --- -0.328451 (0.642699), N = 66 moving right + --- -0.0161812 (0.618038), N = 43 moving right + --- 0.151293 (0.599597), N = 34 moving right + + -- best stat: 0.65516, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 6 0 14 17 + + + -- linear combo weights (showing up to 5) + + 0.2671 0.6886 -0.2225 0.3793 0.5673 + + + -- cutpoint (score) + --- 1.41599 (0.637152), N = 164 moving right + --- 1.46457 (0.610866), N = 159 moving right + --- 1.62097 (0.630824), N = 135 moving right + --- 2.19175 (0.646773), N = 67 moving right + --- 2.64487 (0.596541), N = 31 moving right + + -- best stat: 0.646773, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 6 7 14 8 + + + -- linear combo weights (showing up to 5) + + 0.6042 1.6070 21.8213 -0.1715 1.3036 + + + -- cutpoint (score) + --- -1.11774 (0.585576), N = 231 moving right + --- -0.86472 (0.659906), N = 190 moving right + --- -0.631789 (0.720257), N = 154 moving right + --- -0.520524 (0.731028), N = 139 moving right + --- 0.520002 (0.707342), N = 86 moving right + + -- best stat: 0.731028, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + 1.7900e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 60 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 13 9 12 7 + + + -- linear combo weights (showing up to 5) + + 1.0580 0.0806 0.1565 0.0251 5.6605 + + + -- cutpoint (score) + --- -0.777565 (0.55163), N = 249 moving right + --- -0.560784 (0.672183), N = 179 moving right + --- -0.478371 (0.71951), N = 145 moving right + --- -0.136938 (0.736451), N = 104 moving right + --- 4.16466 (0.594841), N = 18 moving right + + -- best stat: 0.736451, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 5 3 9 13 + + + -- linear combo weights (showing up to 5) + + 0.4640 1.1916 4.8646 0.3251 0.4300 + + + -- cutpoint (score) + --- -0.300324 (0.622994), N = 205 moving right + --- 0.685805 (0.713946), N = 96 moving right + --- 1.11408 (0.684097), N = 67 moving right + --- 1.87008 (0.616002), N = 29 moving right + --- 4.63773 (0.580775), N = 12 moving right + + -- best stat: 0.713946, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 14 0 3 5 + + + -- linear combo weights (showing up to 5) + + 1.4212 0.1998 -0.0739 5.0682 1.1226 + + + -- cutpoint (score) + --- -0.103982 (0.621587), N = 188 moving right + --- -0.0703196 (0.647319), N = 173 moving right + --- 1.09814 (0.648581), N = 49 moving right + --- 1.27257 (0.612051), N = 37 moving right + --- 6.17201 (0.538867), N = 6 moving right + + -- best stat: 0.648581, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 61 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 16 3 1 15 + + + -- linear combo weights (showing up to 5) + + 3.7612 0.2938 1.1887 0.2188 -0.0165 + + + -- cutpoint (score) + --- -0.386436 (0.546644), N = 231 moving right + --- -0.309634 (0.561903), N = 223 moving right + --- -0.174686 (0.611133), N = 168 moving right + --- 0.0255656 (0.63557), N = 119 moving right + --- 0.450073 (0.591788), N = 48 moving right + + -- best stat: 0.63557, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 14 10 15 2 + + + -- linear combo weights (showing up to 5) + + 1.1623 0.3050 -0.5419 -0.2213 -0.0911 + + + -- cutpoint (score) + --- -1.68608 (0.484623), N = 271 moving right + --- -0.740322 (0.557738), N = 224 moving right + --- -0.660631 (0.559791), N = 207 moving right + --- -0.151333 (0.625247), N = 120 moving right + --- 0.539567 (0.620411), N = 44 moving right + + -- best stat: 0.625247, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 4 14 5 15 + + + -- linear combo weights (showing up to 5) + + 1.9875 0.5604 0.2699 1.0017 -0.2168 + + + -- cutpoint (score) + --- -0.564015 (0.484603), N = 268 moving right + --- -0.464169 (0.497651), N = 262 moving right + --- 0.182403 (0.639755), N = 173 moving right + --- 0.735161 (0.658745), N = 114 moving right + --- 1.3982 (0.63257), N = 53 moving right + + -- best stat: 0.658745, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 6.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.7464e-01 2.5441e-02 + 1.1000e+02 9.7101e-01 2.9159e-02 + 1.7900e+02 9.6739e-01 3.2890e-02 + 1.9800e+02 9.5290e-01 4.7871e-02 + + +------------ Growing tree 62 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 9 10 4 16 + + + -- linear combo weights (showing up to 5) + + 0.1746 0.8136 -0.4285 0.7442 0.3888 + + + -- cutpoint (score) + --- -0.647358 (0.538123), N = 254 moving right + --- -0.193914 (0.608836), N = 217 moving right + --- 1.81429 (0.641491), N = 44 moving right + --- 1.82697 (0.643299), N = 43 moving right + --- 2.2204 (0.58936), N = 20 moving right + + -- best stat: 0.643299, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 5 16 13 1 + + + -- linear combo weights (showing up to 5) + + 0.9278 0.3382 0.2422 0.4903 0.6417 + + + -- cutpoint (score) + --- -1.50099 (0.558187), N = 245 moving right + --- -1.32102 (0.578512), N = 231 moving right + --- -1.3019 (0.581344), N = 230 moving right + --- -0.100163 (0.742855), N = 120 moving right + --- 1.42184 (0.663798), N = 38 moving right + + -- best stat: 0.742855, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 9 11 14 13 + + + -- linear combo weights (showing up to 5) + + 0.4969 0.3793 0.9012 0.1671 0.2661 + + + -- cutpoint (score) + --- -1.55458 (0.510958), N = 271 moving right + --- -0.594036 (0.643212), N = 178 moving right + --- 0.422781 (0.694166), N = 77 moving right + --- 2.14729 (0.531283), N = 11 moving right + --- 3.27818 (0.506928), N = 6 moving right + + -- best stat: 0.694166, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.8600e+02 9.7826e-01 2.1898e-02 + 1.9100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 63 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 5 4 16 15 + + + -- linear combo weights (showing up to 5) + + 0.4777 1.2882 0.3304 0.4117 -0.2099 + + + -- cutpoint (score) + --- -0.134193 (0.638692), N = 180 moving right + --- 0.411706 (0.672938), N = 133 moving right + --- 1.0893 (0.66531), N = 79 moving right + --- 2.17366 (0.593949), N = 19 moving right + --- 2.87648 (0.545294), N = 9 moving right + + -- best stat: 0.672938, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 17 9 7 12 + + + -- linear combo weights (showing up to 5) + + -0.2716 0.4399 0.5939 6.6139 0.0737 + + + -- cutpoint (score) + --- 1.1127 (0.640088), N = 165 moving right + --- 1.20847 (0.670028), N = 143 moving right + --- 1.37096 (0.683396), N = 106 moving right + --- 1.39739 (0.675611), N = 97 moving right + --- 1.52477 (0.674884), N = 69 moving right + + -- best stat: 0.683396, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 8 9 6 10 + + + -- linear combo weights (showing up to 5) + + 5.9686 1.3523 -0.0418 0.1775 -0.2662 + + + -- cutpoint (score) + --- -0.636567 (0.685736), N = 150 moving right + --- -0.486117 (0.735079), N = 118 moving right + --- -0.408593 (0.748172), N = 109 moving right + --- -0.0520709 (0.744437), N = 84 moving right + --- 7.73565 (0.537057), N = 7 moving right + + -- best stat: 0.748172, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 64 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 16 3 2 6 + + + -- linear combo weights (showing up to 5) + + 0.5471 0.4379 11.6841 -0.3262 0.3842 + + + -- cutpoint (score) + --- -1.09535 (0.543409), N = 250 moving right + --- -0.902519 (0.589996), N = 227 moving right + --- -0.38323 (0.690511), N = 150 moving right + --- -0.371809 (0.692293), N = 149 moving right + --- -0.183644 (0.712194), N = 117 moving right + + -- best stat: 0.712194, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 8 12 9 11 + + + -- linear combo weights (showing up to 5) + + 0.7390 2.2201 -0.0873 -0.3656 0.2983 + + + -- cutpoint (score) + --- -1.85919 (0.569064), N = 229 moving right + --- -1.60375 (0.608566), N = 212 moving right + --- 0.920438 (0.706505), N = 52 moving right + --- 2.67573 (0.637312), N = 28 moving right + --- 3.22361 (0.629261), N = 23 moving right + + -- best stat: 0.706505, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 6 2 1 3 + + + -- linear combo weights (showing up to 5) + + 0.8156 0.5113 -0.5062 0.6405 11.4749 + + + -- cutpoint (score) + --- -0.87902 (0.56827), N = 210 moving right + --- -0.728061 (0.595771), N = 197 moving right + --- 0.101599 (0.738471), N = 97 moving right + --- 0.559601 (0.715393), N = 55 moving right + --- 0.653526 (0.683813), N = 49 moving right + + -- best stat: 0.738471, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 4.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8551e-01 1.4493e-02 + 5.1000e+01 9.8188e-01 1.8169e-02 + 7.7000e+01 9.7826e-01 2.1859e-02 + 1.1000e+02 9.7101e-01 2.9267e-02 + 1.7900e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 65 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 4 14 12 7 + + + -- linear combo weights (showing up to 5) + + 0.6600 -0.1431 0.4196 0.1312 9.4222 + + + -- cutpoint (score) + --- 1.06547 (0.568418), N = 241 moving right + --- 1.09963 (0.573931), N = 237 moving right + --- 1.20608 (0.585497), N = 232 moving right + --- 1.61869 (0.648402), N = 183 moving right + --- 2.46525 (0.687718), N = 71 moving right + + -- best stat: 0.687718, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 12 3 1 11 + + + -- linear combo weights (showing up to 5) + + 0.6249 0.0509 4.8408 0.3901 0.6414 + + + -- cutpoint (score) + --- -0.835641 (0.574617), N = 234 moving right + --- -0.501157 (0.638126), N = 196 moving right + --- -0.139196 (0.740868), N = 136 moving right + --- 0.118394 (0.763147), N = 101 moving right + --- 0.838312 (0.702821), N = 63 moving right + + -- best stat: 0.763147, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 2 7 14 0 + + + -- linear combo weights (showing up to 5) + + 1.0189 0.1448 9.9386 0.4199 -0.0801 + + + -- cutpoint (score) + --- 0.0515974 (0.671472), N = 149 moving right + --- 0.100105 (0.676943), N = 131 moving right + --- 0.142038 (0.671555), N = 124 moving right + --- 0.470079 (0.690027), N = 77 moving right + --- 1.92285 (0.61799), N = 23 moving right + + -- best stat: 0.690027, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8551e-01 1.4493e-02 + 7.1000e+01 9.8188e-01 1.8169e-02 + 1.1000e+02 9.7826e-01 2.1859e-02 + 1.3100e+02 9.7464e-01 2.5563e-02 + 1.4000e+02 9.7101e-01 2.9280e-02 + + +------------ Growing tree 66 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 11 6 17 14 + + + -- linear combo weights (showing up to 5) + + -0.4349 0.9974 1.1627 0.3062 0.0919 + + + -- cutpoint (score) + --- -0.390873 (0.525417), N = 254 moving right + --- -0.109582 (0.575908), N = 217 moving right + --- 0.674871 (0.663581), N = 151 moving right + --- 1.37369 (0.722365), N = 85 moving right + --- 1.37713 (0.725687), N = 83 moving right + + -- best stat: 0.725687, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 15 3 1 5 + + + -- linear combo weights (showing up to 5) + + 1.0137 -0.0860 4.4992 0.2520 0.8932 + + + -- cutpoint (score) + --- -1.04985 (0.523874), N = 262 moving right + --- -0.289017 (0.666988), N = 163 moving right + --- 0.297674 (0.705671), N = 118 moving right + --- 0.482711 (0.737088), N = 100 moving right + --- 1.16292 (0.712164), N = 52 moving right + + -- best stat: 0.737088, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 8 1 17 7 + + + -- linear combo weights (showing up to 5) + + -0.1186 2.2435 0.3552 0.2344 5.4736 + + + -- cutpoint (score) + --- -0.992024 (0.541597), N = 255 moving right + --- -0.387989 (0.652051), N = 170 moving right + --- -0.370002 (0.669238), N = 161 moving right + --- -0.0163443 (0.742896), N = 121 moving right + --- 2.30677 (0.696477), N = 38 moving right + + -- best stat: 0.742896, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 67 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 13 10 15 5 + + + -- linear combo weights (showing up to 5) + + 0.0513 0.1573 -0.7028 -0.2531 1.5823 + + + -- cutpoint (score) + --- -0.729687 (0.553718), N = 242 moving right + --- 0.191844 (0.696312), N = 139 moving right + --- 0.506729 (0.6806), N = 116 moving right + --- 0.773265 (0.673576), N = 96 moving right + --- 1.55843 (0.651623), N = 55 moving right + + -- best stat: 0.696312, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 17 6 5 12 + + + -- linear combo weights (showing up to 5) + + -0.1782 0.4374 1.0456 1.3517 0.1991 + + + -- cutpoint (score) + --- 0.663402 (0.553638), N = 245 moving right + --- 1.57618 (0.681603), N = 140 moving right + --- 2.27328 (0.680359), N = 90 moving right + --- 2.57941 (0.666091), N = 70 moving right + --- 2.89445 (0.667356), N = 62 moving right + + -- best stat: 0.681603, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 12 2 4 17 + + + -- linear combo weights (showing up to 5) + + 4.7400 0.1953 -0.4690 0.5474 0.3450 + + + -- cutpoint (score) + --- 0.144204 (0.560742), N = 244 moving right + --- 0.481409 (0.64155), N = 191 moving right + --- 0.53635 (0.665329), N = 173 moving right + --- 1.38636 (0.630995), N = 72 moving right + --- 1.516 (0.605029), N = 49 moving right + + -- best stat: 0.665329, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.8600e+02 9.7464e-01 2.5588e-02 + 1.9100e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 68 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 15 0 1 6 + + + -- linear combo weights (showing up to 5) + + 1.1973 -0.2323 0.1661 0.4321 0.9453 + + + -- cutpoint (score) + --- -0.682173 (0.649033), N = 188 moving right + --- -0.307618 (0.723145), N = 143 moving right + --- -0.0135752 (0.735602), N = 121 moving right + --- 0.251811 (0.743529), N = 102 moving right + --- 1.28812 (0.664833), N = 49 moving right + + -- best stat: 0.743529, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 10 5 1 2 + + + -- linear combo weights (showing up to 5) + + 0.3452 -0.5889 0.6304 0.3001 -0.8756 + + + -- cutpoint (score) + --- -0.308601 (0.615365), N = 205 moving right + --- 0.717914 (0.712827), N = 109 moving right + --- 1.00319 (0.694025), N = 79 moving right + --- 1.11715 (0.670873), N = 69 moving right + --- 1.97966 (0.598253), N = 25 moving right + + -- best stat: 0.712827, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 1 15 12 3 + + + -- linear combo weights (showing up to 5) + + 0.0721 0.4026 -0.2330 0.3053 8.9942 + + + -- cutpoint (score) + --- -0.798906 (0.534908), N = 250 moving right + --- -0.313749 (0.621423), N = 184 moving right + --- 0.0383332 (0.658434), N = 132 moving right + --- 0.155418 (0.683132), N = 115 moving right + --- 9.9194 (0.528095), N = 5 moving right + + -- best stat: 0.683132, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8551e-01 1.4532e-02 + 1.3100e+02 9.8188e-01 1.8209e-02 + 1.7900e+02 9.7464e-01 2.5589e-02 + 1.9800e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 69 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 11 14 15 12 + + + -- linear combo weights (showing up to 5) + + 8.5757 0.8094 0.2511 0.0121 -0.1246 + + + -- cutpoint (score) + --- -0.838018 (0.539533), N = 255 moving right + --- -0.690172 (0.580259), N = 233 moving right + --- -0.648228 (0.59862), N = 224 moving right + --- -0.04699 (0.718156), N = 112 moving right + --- 0.0159781 (0.711106), N = 102 moving right + + -- best stat: 0.718156, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 5 4 6 12 + + + -- linear combo weights (showing up to 5) + + 0.5984 1.1132 0.3319 1.3669 0.0909 + + + -- cutpoint (score) + --- 0.0297985 (0.638302), N = 172 moving right + --- 0.114798 (0.655789), N = 163 moving right + --- 0.371046 (0.689465), N = 122 moving right + --- 0.882841 (0.66333), N = 91 moving right + --- 2.71402 (0.525262), N = 9 moving right + + -- best stat: 0.689465, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 17 13 14 12 + + + -- linear combo weights (showing up to 5) + + 1.1775 0.3228 0.3563 0.3731 0.0549 + + + -- cutpoint (score) + --- 0.430267 (0.588417), N = 220 moving right + --- 1.23455 (0.703374), N = 126 moving right + --- 1.41705 (0.687825), N = 106 moving right + --- 1.89279 (0.636641), N = 61 moving right + --- 2.61942 (0.583326), N = 22 moving right + + -- best stat: 0.703374, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 70 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 4 3 12 6 + + + -- linear combo weights (showing up to 5) + + 0.0787 0.4554 10.4998 0.0481 0.3679 + + + -- cutpoint (score) + --- 0.0163582 (0.554467), N = 214 moving right + --- 0.0463726 (0.568178), N = 206 moving right + --- 0.0640181 (0.587885), N = 178 moving right + --- 0.428099 (0.633898), N = 142 moving right + --- 0.434602 (0.630002), N = 129 moving right + + -- best stat: 0.633898, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 9 12 7 14 + + + -- linear combo weights (showing up to 5) + + 1.4855 0.3390 -0.0304 9.9720 0.3259 + + + -- cutpoint (score) + --- -0.460661 (0.501626), N = 260 moving right + --- -0.198338 (0.62361), N = 178 moving right + --- 0.208042 (0.6669), N = 100 moving right + --- 1.32787 (0.642503), N = 36 moving right + --- 1.73258 (0.61491), N = 29 moving right + + -- best stat: 0.6669, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 1 15 12 13 + + + -- linear combo weights (showing up to 5) + + 0.8464 0.5522 -0.2695 -0.0482 0.4183 + + + -- cutpoint (score) + --- -0.959676 (0.60935), N = 215 moving right + --- -0.213094 (0.675089), N = 150 moving right + --- 0.145638 (0.679893), N = 102 moving right + --- 0.362242 (0.681406), N = 85 moving right + --- 0.520906 (0.683732), N = 79 moving right + + -- best stat: 0.683732, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 71 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 15 2 7 14 + + + -- linear combo weights (showing up to 5) + + 0.0518 -0.0690 -0.0584 14.0441 0.2246 + + + -- cutpoint (score) + --- -0.206678 (0.568329), N = 214 moving right + --- -0.108763 (0.59861), N = 148 moving right + --- 0.0283402 (0.600557), N = 89 moving right + --- 0.092138 (0.615006), N = 67 moving right + --- 13.8846 (0.575889), N = 14 moving right + + -- best stat: 0.615006, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 12 9 17 16 + + + -- linear combo weights (showing up to 5) + + 0.0763 0.0992 0.3451 0.6150 0.4843 + + + -- cutpoint (score) + --- 1.20365 (0.598128), N = 230 moving right + --- 1.63663 (0.698538), N = 174 moving right + --- 1.83233 (0.69257), N = 146 moving right + --- 3.07582 (0.580056), N = 25 moving right + --- 3.20806 (0.568204), N = 23 moving right + + -- best stat: 0.698538, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 0 3 7 4 + + + -- linear combo weights (showing up to 5) + + 0.4037 0.0370 5.3069 10.2998 0.3431 + + + -- cutpoint (score) + --- 0.0950644 (0.630418), N = 170 moving right + --- 0.107066 (0.627822), N = 167 moving right + --- 0.406292 (0.656615), N = 66 moving right + --- 0.436429 (0.654186), N = 62 moving right + --- 0.697791 (0.640658), N = 34 moving right + + -- best stat: 0.656615, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 4.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7101e-01 2.9293e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 72 -------------- + +- N obs inbag: 276 +- N row inbag: 160 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 4 14 5 12 + + + -- linear combo weights (showing up to 5) + + 0.2272 0.5331 0.2336 1.2118 0.1508 + + + -- cutpoint (score) + --- -0.175706 (0.596254), N = 222 moving right + --- 0.33713 (0.652862), N = 167 moving right + --- 0.461404 (0.650153), N = 150 moving right + --- 1.41684 (0.618092), N = 62 moving right + --- 2.15169 (0.538587), N = 11 moving right + + -- best stat: 0.652862, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 7 13 11 14 + + + -- linear combo weights (showing up to 5) + + 1.0301 5.7541 0.1773 0.6070 0.2377 + + + -- cutpoint (score) + --- -0.795215 (0.549611), N = 251 moving right + --- -0.29107 (0.68), N = 180 moving right + --- -0.00813038 (0.701673), N = 115 moving right + --- 0.0191441 (0.71616), N = 108 moving right + --- 0.599331 (0.7147), N = 68 moving right + + -- best stat: 0.71616, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 6 7 15 8 + + + -- linear combo weights (showing up to 5) + + -0.9784 0.5609 4.3363 -0.1139 1.4278 + + + -- cutpoint (score) + --- -1.76085 (0.606031), N = 208 moving right + --- -1.72478 (0.63232), N = 195 moving right + --- -1.64864 (0.651143), N = 179 moving right + --- -1.60446 (0.665559), N = 171 moving right + --- 1.20346 (0.640165), N = 33 moving right + + -- best stat: 0.665559, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8551e-01 1.4546e-02 + 1.4000e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7101e-01 2.9292e-02 + 1.9800e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 73 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 11 13 3 1 + + + -- linear combo weights (showing up to 5) + + 0.0166 0.6454 0.5425 5.5832 0.4922 + + + -- cutpoint (score) + --- -0.927846 (0.589381), N = 224 moving right + --- -0.896805 (0.60537), N = 216 moving right + --- 0.307576 (0.753699), N = 87 moving right + --- 0.7153 (0.707861), N = 71 moving right + --- 1.25721 (0.654087), N = 42 moving right + + -- best stat: 0.753699, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 15 12 4 7 + + + -- linear combo weights (showing up to 5) + + 0.4059 0.0108 0.0540 0.7603 14.1281 + + + -- cutpoint (score) + --- -0.306123 (0.570676), N = 233 moving right + --- 0.223615 (0.653315), N = 169 moving right + --- 0.610418 (0.709289), N = 109 moving right + --- 0.712483 (0.703015), N = 86 moving right + --- 1.31319 (0.582569), N = 23 moving right + + -- best stat: 0.709289, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 6 7 10 14 + + + -- linear combo weights (showing up to 5) + + 0.5534 0.9190 14.1689 -0.2259 0.4524 + + + -- cutpoint (score) + --- -1.01553 (0.517839), N = 253 moving right + --- -0.653857 (0.604083), N = 215 moving right + --- -0.636672 (0.621383), N = 206 moving right + --- 0.288197 (0.754565), N = 95 moving right + --- 1.00506 (0.668602), N = 46 moving right + + -- best stat: 0.754565, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 5.3300e+02 0 2.0000e+00 + 5.4900e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.9800e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 74 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 185 +- max leaves: 93 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 5 2 9 3 + + + -- linear combo weights (showing up to 5) + + -0.3449 1.4716 -0.0969 0.3707 7.5893 + + + -- cutpoint (score) + --- -0.326204 (0.560044), N = 246 moving right + --- -0.277265 (0.576904), N = 227 moving right + --- -0.210961 (0.630406), N = 192 moving right + --- -0.0515158 (0.694677), N = 132 moving right + --- 1.2606 (0.65446), N = 46 moving right + + -- best stat: 0.694677, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 5 11 10 16 + + + -- linear combo weights (showing up to 5) + + 4.8137 0.7017 0.9855 -0.6868 0.3971 + + + -- cutpoint (score) + --- -1.0522 (0.599317), N = 216 moving right + --- -0.534069 (0.712998), N = 160 moving right + --- -0.531073 (0.710278), N = 159 moving right + --- 0.914498 (0.795612), N = 68 moving right + --- 3.86311 (0.631508), N = 23 moving right + + -- best stat: 0.795612, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 0 16 9 2 + + + -- linear combo weights (showing up to 5) + + 0.7894 -0.3858 0.4828 0.3661 0.0558 + + + -- cutpoint (score) + --- 0.186311 (0.715606), N = 136 moving right + --- 0.588744 (0.714616), N = 85 moving right + --- 0.786444 (0.70495), N = 65 moving right + --- 0.836223 (0.69697), N = 57 moving right + --- 0.958238 (0.635397), N = 43 moving right + + -- best stat: 0.715606, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 75 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 4 12 2 16 + + + -- linear combo weights (showing up to 5) + + 0.8703 0.5147 0.1702 0.1199 0.4155 + + + -- cutpoint (score) + --- -0.607601 (0.5957), N = 230 moving right + --- -0.0304592 (0.685148), N = 165 moving right + --- 0.780717 (0.709859), N = 83 moving right + --- 0.937119 (0.70234), N = 77 moving right + --- 0.942731 (0.704959), N = 76 moving right + + -- best stat: 0.709859, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 3 9 6 12 + + + -- linear combo weights (showing up to 5) + + -0.2323 4.8543 0.5974 1.1783 0.2741 + + + -- cutpoint (score) + --- -0.521729 (0.547079), N = 244 moving right + --- -0.112497 (0.663161), N = 151 moving right + --- -0.037371 (0.670722), N = 133 moving right + --- 0.585219 (0.695624), N = 71 moving right + --- 3.54149 (0.617898), N = 24 moving right + + -- best stat: 0.695624, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 15 1 13 11 + + + -- linear combo weights (showing up to 5) + + 3.7639 -0.1086 0.5772 0.5407 0.6314 + + + -- cutpoint (score) + --- -0.980387 (0.584463), N = 231 moving right + --- -0.187129 (0.744498), N = 131 moving right + --- 0.39984 (0.749989), N = 78 moving right + --- 0.72488 (0.707008), N = 62 moving right + --- 4.92886 (0.552993), N = 11 moving right + + -- best stat: 0.749989, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 76 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 0 3 13 15 + + + -- linear combo weights (showing up to 5) + + 0.8664 0.2024 9.0191 0.5122 -0.0848 + + + -- cutpoint (score) + --- -0.333079 (0.598018), N = 218 moving right + --- -0.155413 (0.629136), N = 180 moving right + --- -0.104471 (0.640787), N = 173 moving right + --- 0.24664 (0.689381), N = 107 moving right + --- 0.689337 (0.62727), N = 41 moving right + + -- best stat: 0.689381, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 6 15 8 14 + + + -- linear combo weights (showing up to 5) + + 0.3699 0.7477 -0.1930 1.8765 -0.2367 + + + -- cutpoint (score) + --- -0.687809 (0.628203), N = 190 moving right + --- -0.544516 (0.686914), N = 162 moving right + --- 0.658758 (0.701426), N = 58 moving right + --- 1.69868 (0.624927), N = 27 moving right + --- 3.63038 (0.549299), N = 10 moving right + + -- best stat: 0.701426, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 6 5 13 11 + + + -- linear combo weights (showing up to 5) + + 0.1214 1.4696 0.3751 0.4492 0.6175 + + + -- cutpoint (score) + --- -1.09227 (0.517228), N = 267 moving right + --- -0.245646 (0.691434), N = 167 moving right + --- 0.338695 (0.678228), N = 91 moving right + --- 0.342569 (0.670184), N = 90 moving right + --- 0.595748 (0.662078), N = 66 moving right + + -- best stat: 0.691434, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 77 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 191 +- max leaves: 96 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 17 5 1 10 + + + -- linear combo weights (showing up to 5) + + 0.0997 0.2589 1.4329 0.4823 -0.8493 + + + -- cutpoint (score) + --- 0.0119409 (0.615351), N = 219 moving right + --- 0.466376 (0.648426), N = 194 moving right + --- 1.43016 (0.752783), N = 123 moving right + --- 1.91367 (0.760483), N = 96 moving right + --- 2.01429 (0.75594), N = 88 moving right + + -- best stat: 0.760483, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 1 13 0 15 + + + -- linear combo weights (showing up to 5) + + 0.9418 0.6785 0.7399 0.1380 -0.1683 + + + -- cutpoint (score) + --- -1.60201 (0.545818), N = 249 moving right + --- -0.699131 (0.689723), N = 159 moving right + --- 0.0874382 (0.762641), N = 102 moving right + --- 1.0537 (0.708282), N = 60 moving right + --- 2.70736 (0.569715), N = 14 moving right + + -- best stat: 0.762641, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 1 8 15 0 + + + -- linear combo weights (showing up to 5) + + 6.8109 0.4731 1.4998 -0.0865 -0.0807 + + + -- cutpoint (score) + --- -0.322798 (0.804461), N = 106 moving right + --- 0.0287255 (0.806574), N = 87 moving right + --- 1.88021 (0.698128), N = 41 moving right + --- 1.89816 (0.691018), N = 40 moving right + --- 6.82159 (0.617873), N = 20 moving right + + -- best stat: 0.806574, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.1000e+01 9.7826e-01 2.1886e-02 + 1.1000e+02 9.6377e-01 3.6700e-02 + 1.4000e+02 9.5652e-01 4.4219e-02 + + +------------ Growing tree 78 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 13 6 14 2 + + + -- linear combo weights (showing up to 5) + + 0.1740 0.3900 1.5602 0.4807 -0.1224 + + + -- cutpoint (score) + --- -0.949801 (0.51421), N = 260 moving right + --- -0.655444 (0.590786), N = 218 moving right + --- -0.023477 (0.652731), N = 130 moving right + --- 0.751148 (0.608381), N = 55 moving right + --- 1.0294 (0.612684), N = 45 moving right + + -- best stat: 0.652731, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 7 10 15 6 + + + -- linear combo weights (showing up to 5) + + 1.8526 2.6325 -0.2824 0.0119 0.7989 + + + -- cutpoint (score) + --- -1.04727 (0.64992), N = 192 moving right + --- -0.922646 (0.679315), N = 174 moving right + --- -0.799366 (0.719477), N = 147 moving right + --- 0.161136 (0.743899), N = 84 moving right + --- 2.58772 (0.637202), N = 26 moving right + + -- best stat: 0.743899, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 1 17 6 8 + + + -- linear combo weights (showing up to 5) + + 0.3167 0.2804 0.4003 0.6189 1.8390 + + + -- cutpoint (score) + --- -0.260293 (0.596141), N = 227 moving right + --- -0.206227 (0.604575), N = 224 moving right + --- 0.281118 (0.678511), N = 176 moving right + --- 0.44295 (0.69536), N = 155 moving right + --- 4.87216 (0.609547), N = 22 moving right + + -- best stat: 0.69536, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8188e-01 1.8169e-02 + 1.1000e+02 9.7826e-01 2.1859e-02 + 1.4000e+02 9.7464e-01 2.5562e-02 + 1.8600e+02 9.7101e-01 2.9280e-02 + + +------------ Growing tree 79 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 4 14 0 9 + + + -- linear combo weights (showing up to 5) + + 0.7997 0.7874 0.4032 -0.2541 0.0750 + + + -- cutpoint (score) + --- -0.918566 (0.572874), N = 232 moving right + --- -0.356487 (0.638618), N = 176 moving right + --- -0.237164 (0.646646), N = 170 moving right + --- 0.114919 (0.677056), N = 138 moving right + --- 1.3682 (0.598155), N = 31 moving right + + -- best stat: 0.677056, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 16 17 10 6 + + + -- linear combo weights (showing up to 5) + + 9.1660 0.2152 0.3249 -0.5750 0.6080 + + + -- cutpoint (score) + --- 0.33913 (0.577567), N = 228 moving right + --- 0.958875 (0.696908), N = 129 moving right + --- 1.04259 (0.706639), N = 116 moving right + --- 1.33743 (0.703303), N = 87 moving right + --- 1.45884 (0.703763), N = 78 moving right + + -- best stat: 0.706639, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 11 12 17 6 + + + -- linear combo weights (showing up to 5) + + 0.5270 1.2580 0.0141 0.2422 0.8427 + + + -- cutpoint (score) + --- -0.273175 (0.578556), N = 241 moving right + --- -0.0332645 (0.631487), N = 213 moving right + --- 0.241269 (0.660425), N = 187 moving right + --- 0.277718 (0.663347), N = 185 moving right + --- 2.28112 (0.657573), N = 42 moving right + + -- best stat: 0.663347, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.7826e-01 2.1845e-02 + 7.7000e+01 9.7464e-01 2.5549e-02 + 1.1000e+02 9.7101e-01 2.9266e-02 + 1.3100e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 80 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 14 8 2 9 + + + -- linear combo weights (showing up to 5) + + 0.4894 -0.0393 2.1875 -0.4029 -0.2094 + + + -- cutpoint (score) + --- -0.806126 (0.715288), N = 130 moving right + --- -0.692214 (0.725697), N = 121 moving right + --- 0.232921 (0.720031), N = 58 moving right + --- 1.0887 (0.682779), N = 40 moving right + --- 2.21034 (0.641704), N = 30 moving right + + -- best stat: 0.725697, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 0 14 15 10 + + + -- linear combo weights (showing up to 5) + + 0.4214 -0.2896 0.3989 -0.1093 -0.8835 + + + -- cutpoint (score) + --- -1.38736 (0.549663), N = 247 moving right + --- -0.383047 (0.671021), N = 166 moving right + --- -0.261251 (0.657307), N = 149 moving right + --- 0.578034 (0.662972), N = 67 moving right + --- 0.599561 (0.666052), N = 64 moving right + + -- best stat: 0.671021, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 2 11 17 0 + + + -- linear combo weights (showing up to 5) + + 0.3216 0.4427 0.9577 0.5128 -0.3317 + + + -- cutpoint (score) + --- 0.581197 (0.56929), N = 243 moving right + --- 1.15808 (0.685904), N = 183 moving right + --- 1.19635 (0.687905), N = 179 moving right + --- 1.45905 (0.728934), N = 144 moving right + --- 2.71319 (0.679946), N = 52 moving right + + -- best stat: 0.728934, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 3.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + 5.3300e+02 0 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7101e-01 2.9292e-02 + 1.9800e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 81 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 6 5 8 14 + + + -- linear combo weights (showing up to 5) + + -0.7862 0.9421 0.0990 2.7915 -0.0504 + + + -- cutpoint (score) + --- -1.56356 (0.516495), N = 259 moving right + --- -1.15722 (0.658867), N = 181 moving right + --- 0.770372 (0.725306), N = 59 moving right + --- 1.93345 (0.708327), N = 41 moving right + --- 8.50273 (0.57092), N = 11 moving right + + -- best stat: 0.725306, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 1 12 15 2 + + + -- linear combo weights (showing up to 5) + + 2.1958 0.4367 0.0881 -0.1904 -0.3046 + + + -- cutpoint (score) + --- -1.3818 (0.651165), N = 178 moving right + --- -1.32244 (0.674006), N = 164 moving right + --- -1.22093 (0.700504), N = 145 moving right + --- -0.842396 (0.758538), N = 114 moving right + --- 0.0523617 (0.757472), N = 68 moving right + + -- best stat: 0.758538, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 14 9 12 7 + + + -- linear combo weights (showing up to 5) + + 0.5642 0.4839 0.2799 0.1077 4.4078 + + + -- cutpoint (score) + --- -0.418159 (0.638546), N = 191 moving right + --- -0.222139 (0.640023), N = 173 moving right + --- 0.274426 (0.68258), N = 105 moving right + --- 0.30875 (0.688902), N = 102 moving right + --- 0.547109 (0.670542), N = 77 moving right + + -- best stat: 0.688902, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 82 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 14 7 16 5 + + + -- linear combo weights (showing up to 5) + + 0.5808 0.3891 5.3710 0.3979 0.8802 + + + -- cutpoint (score) + --- -0.573175 (0.526884), N = 255 moving right + --- -0.468953 (0.571196), N = 234 moving right + --- -0.405646 (0.574714), N = 232 moving right + --- 0.278706 (0.72152), N = 123 moving right + --- 2.08143 (0.606784), N = 21 moving right + + -- best stat: 0.72152, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 1 3 15 8 + + + -- linear combo weights (showing up to 5) + + 0.3983 0.3144 4.1016 -0.0973 1.6028 + + + -- cutpoint (score) + --- -1.3043 (0.570118), N = 238 moving right + --- -1.19638 (0.596941), N = 224 moving right + --- -1.10173 (0.62228), N = 214 moving right + --- -0.797592 (0.727112), N = 154 moving right + --- 0.893057 (0.705901), N = 49 moving right + + -- best stat: 0.727112, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 0 1 13 12 + + + -- linear combo weights (showing up to 5) + + 6.4248 -0.1444 0.6459 0.4856 0.0609 + + + -- cutpoint (score) + --- -0.726452 (0.567475), N = 230 moving right + --- -0.191992 (0.675093), N = 153 moving right + --- -0.155194 (0.687355), N = 143 moving right + --- -0.106918 (0.691849), N = 134 moving right + --- 0.184818 (0.66224), N = 100 moving right + + -- best stat: 0.691849, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8551e-01 1.4546e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 83 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 7 16 2 10 + + + -- linear combo weights (showing up to 5) + + 0.6312 9.1539 0.5559 -0.1499 -0.7889 + + + -- cutpoint (score) + --- -1.07823 (0.61362), N = 206 moving right + --- 0.0702865 (0.717755), N = 96 moving right + --- 0.348039 (0.718381), N = 81 moving right + --- 11.3175 (0.554206), N = 8 moving right + --- 11.5982 (0.547639), N = 7 moving right + + -- best stat: 0.718381, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 12 11 7 3 + + + -- linear combo weights (showing up to 5) + + -0.5270 0.0274 0.7128 8.5494 6.5381 + + + -- cutpoint (score) + --- -1.15525 (0.539018), N = 250 moving right + --- -1.05822 (0.556864), N = 244 moving right + --- -0.755469 (0.589379), N = 227 moving right + --- -0.722639 (0.605885), N = 215 moving right + --- -0.0322889 (0.724668), N = 115 moving right + + -- best stat: 0.724668, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 16 11 8 0 + + + -- linear combo weights (showing up to 5) + + -0.0459 0.4465 0.6765 1.3617 -0.0671 + + + -- cutpoint (score) + --- -1.23682 (0.640172), N = 199 moving right + --- -1.09126 (0.669663), N = 178 moving right + --- -0.836369 (0.712829), N = 148 moving right + --- -0.212997 (0.735536), N = 95 moving right + --- 0.404101 (0.710517), N = 67 moving right + + -- best stat: 0.735536, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 84 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 9 10 13 15 + + + -- linear combo weights (showing up to 5) + + 0.6520 0.3980 -0.6008 0.6330 -0.1029 + + + -- cutpoint (score) + --- -0.912581 (0.617197), N = 204 moving right + --- -0.617546 (0.665341), N = 177 moving right + --- 0.128112 (0.711135), N = 107 moving right + --- 0.910999 (0.659757), N = 50 moving right + --- 0.992931 (0.663915), N = 47 moving right + + -- best stat: 0.711135, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 8 5 3 9 + + + -- linear combo weights (showing up to 5) + + -0.2801 1.8522 0.6578 4.4475 -0.2323 + + + -- cutpoint (score) + --- -0.823469 (0.685607), N = 171 moving right + --- -0.517137 (0.743774), N = 126 moving right + --- -0.505085 (0.739857), N = 123 moving right + --- 0.344304 (0.723447), N = 74 moving right + --- 2.73274 (0.632341), N = 25 moving right + + -- best stat: 0.743774, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 12 2 15 10 + + + -- linear combo weights (showing up to 5) + + 0.3641 0.0140 -0.7084 -0.0903 -0.7458 + + + -- cutpoint (score) + --- -0.663712 (0.667992), N = 126 moving right + --- -0.530763 (0.676207), N = 115 moving right + --- -0.149111 (0.662067), N = 69 moving right + --- 0.110244 (0.651563), N = 51 moving right + --- 0.225357 (0.627601), N = 41 moving right + + -- best stat: 0.676207, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 85 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 3 11 7 6 + + + -- linear combo weights (showing up to 5) + + 0.4659 4.1252 0.4485 2.9222 0.6862 + + + -- cutpoint (score) + --- -0.625851 (0.531402), N = 252 moving right + --- -0.623626 (0.534596), N = 251 moving right + --- -0.527324 (0.569236), N = 238 moving right + --- 0.641285 (0.684068), N = 62 moving right + --- 1.31307 (0.62306), N = 38 moving right + + -- best stat: 0.684068, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 5 16 2 4 + + + -- linear combo weights (showing up to 5) + + 4.9804 0.2042 0.2004 -0.0338 0.6123 + + + -- cutpoint (score) + --- -0.199861 (0.527388), N = 251 moving right + --- 0.183186 (0.642664), N = 148 moving right + --- 0.352778 (0.660738), N = 139 moving right + --- 0.644939 (0.638583), N = 79 moving right + --- 5.30271 (0.546305), N = 10 moving right + + -- best stat: 0.660738, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 6 11 12 1 + + + -- linear combo weights (showing up to 5) + + 1.5977 0.2153 0.3532 -0.1276 0.3468 + + + -- cutpoint (score) + --- -1.30136 (0.549521), N = 246 moving right + --- -0.73396 (0.72361), N = 153 moving right + --- -0.569756 (0.741484), N = 132 moving right + --- -0.384311 (0.732347), N = 113 moving right + --- -0.305229 (0.746385), N = 107 moving right + + -- best stat: 0.746385, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + 5.1500e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.8600e+02 9.7826e-01 2.1912e-02 + 1.9800e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 86 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 1 5 7 6 + + + -- linear combo weights (showing up to 5) + + -0.0593 0.3740 0.9502 4.2579 2.4113 + + + -- cutpoint (score) + --- -0.580214 (0.525161), N = 257 moving right + --- 0.56944 (0.700995), N = 101 moving right + --- 0.591431 (0.703523), N = 98 moving right + --- 0.993724 (0.701329), N = 66 moving right + --- 4.83126 (0.549026), N = 8 moving right + + -- best stat: 0.703523, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 0 4 17 1 + + + -- linear combo weights (showing up to 5) + + 0.1299 -0.1450 0.5587 0.6566 0.3445 + + + -- cutpoint (score) + --- 1.96445 (0.68342), N = 165 moving right + --- 2.0343 (0.685823), N = 156 moving right + --- 2.35051 (0.690379), N = 136 moving right + --- 2.9027 (0.677318), N = 64 moving right + --- 3.24223 (0.60871), N = 35 moving right + + -- best stat: 0.690379, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 8 10 2 16 + + + -- linear combo weights (showing up to 5) + + 5.2958 1.3394 -0.4427 0.0345 0.4796 + + + -- cutpoint (score) + --- -1.49058 (0.51722), N = 258 moving right + --- -1.17646 (0.583946), N = 230 moving right + --- 0.148662 (0.767324), N = 91 moving right + --- 0.341194 (0.75744), N = 85 moving right + --- 0.995888 (0.730711), N = 55 moving right + + -- best stat: 0.767324, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.7464e-01 2.5562e-02 + 1.1000e+02 9.7101e-01 2.9279e-02 + 1.7900e+02 9.6739e-01 3.3011e-02 + + +------------ Growing tree 87 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 11 0 2 16 + + + -- linear combo weights (showing up to 5) + + -0.1741 1.3575 -0.3165 1.5516 0.7801 + + + -- cutpoint (score) + --- 0.0830077 (0.61435), N = 210 moving right + --- 0.145355 (0.626669), N = 203 moving right + --- 0.571423 (0.699493), N = 155 moving right + --- 1.23359 (0.727055), N = 102 moving right + --- 2.07755 (0.705825), N = 68 moving right + + -- best stat: 0.727055, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 14 11 6 2 + + + -- linear combo weights (showing up to 5) + + 0.9433 -0.0237 1.2933 1.1675 0.9262 + + + -- cutpoint (score) + --- 0.152143 (0.60276), N = 213 moving right + --- 0.540119 (0.663142), N = 170 moving right + --- 2.14243 (0.706129), N = 63 moving right + --- 2.62149 (0.681064), N = 46 moving right + --- 5.02407 (0.528415), N = 5 moving right + + -- best stat: 0.706129, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 0 10 6 13 + + + -- linear combo weights (showing up to 5) + + 0.2852 -0.3614 -0.6244 0.8326 0.5827 + + + -- cutpoint (score) + --- -1.39286 (0.564116), N = 245 moving right + --- -0.74382 (0.594033), N = 198 moving right + --- -0.373587 (0.645017), N = 148 moving right + --- -0.306787 (0.655612), N = 143 moving right + --- -0.277539 (0.663568), N = 130 moving right + + -- best stat: 0.663568, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 88 -------------- + +- N obs inbag: 276 +- N row inbag: 187 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 1 8 15 3 + + + -- linear combo weights (showing up to 5) + + 0.4092 0.5031 1.2288 -0.0109 7.2094 + + + -- cutpoint (score) + --- -1.02852 (0.600946), N = 218 moving right + --- -0.728036 (0.684647), N = 178 moving right + --- -0.64005 (0.718867), N = 159 moving right + --- -0.457641 (0.755793), N = 137 moving right + --- 11.0775 (0.542873), N = 6 moving right + + -- best stat: 0.755793, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 12 4 10 8 + + + -- linear combo weights (showing up to 5) + + 0.6146 0.0268 -0.1431 -0.4745 1.4652 + + + -- cutpoint (score) + --- -1.31253 (0.610508), N = 213 moving right + --- -0.979502 (0.669902), N = 176 moving right + --- -0.945219 (0.678658), N = 173 moving right + --- -0.748607 (0.711123), N = 143 moving right + --- 0.519917 (0.717071), N = 63 moving right + + -- best stat: 0.717071, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 10 8 12 9 + + + -- linear combo weights (showing up to 5) + + 7.0146 -0.3768 1.7028 0.1278 -0.5472 + + + -- cutpoint (score) + --- -1.46724 (0.498905), N = 265 moving right + --- -0.842931 (0.641093), N = 193 moving right + --- -0.824922 (0.643344), N = 192 moving right + --- 0.0666195 (0.755215), N = 87 moving right + --- 0.970221 (0.690492), N = 43 moving right + + -- best stat: 0.755215, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 89 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 191 +- max leaves: 96 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 3 9 0 14 + + + -- linear combo weights (showing up to 5) + + 0.0160 8.3244 0.8270 -0.0498 0.1560 + + + -- cutpoint (score) + --- -0.375571 (0.618939), N = 164 moving right + --- -0.325675 (0.620959), N = 159 moving right + --- 0.147107 (0.696298), N = 81 moving right + --- 0.416758 (0.686126), N = 52 moving right + --- 4.82841 (0.617952), N = 19 moving right + + -- best stat: 0.696298, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 8 5 4 7 + + + -- linear combo weights (showing up to 5) + + -0.0851 2.0914 0.2496 0.2370 12.6813 + + + -- cutpoint (score) + --- -1.12354 (0.652415), N = 201 moving right + --- -1.0907 (0.667003), N = 194 moving right + --- -0.841116 (0.710839), N = 155 moving right + --- -0.772526 (0.731441), N = 143 moving right + --- 12.1584 (0.593568), N = 13 moving right + + -- best stat: 0.731441, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 17 0 12 4 + + + -- linear combo weights (showing up to 5) + + -0.4925 0.7996 -0.4402 0.0832 0.1562 + + + -- cutpoint (score) + --- 1.58733 (0.662775), N = 172 moving right + --- 2.04499 (0.702476), N = 108 moving right + --- 2.39335 (0.676447), N = 76 moving right + --- 2.86525 (0.561948), N = 29 moving right + --- 2.88665 (0.534885), N = 15 moving right + + -- best stat: 0.702476, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.1000e+01 9.6739e-01 3.2956e-02 + 1.1000e+02 9.6377e-01 3.6701e-02 + 1.3100e+02 9.5652e-01 4.4220e-02 + + +------------ Growing tree 90 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 8 10 6 11 + + + -- linear combo weights (showing up to 5) + + 0.6881 1.7466 -0.4094 0.1911 0.5561 + + + -- cutpoint (score) + --- -1.80179 (0.545444), N = 256 moving right + --- -1.41269 (0.600283), N = 225 moving right + --- -1.33746 (0.618032), N = 217 moving right + --- -1.14993 (0.656359), N = 194 moving right + --- 1.18747 (0.695482), N = 49 moving right + + -- best stat: 0.695482, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 8 12 4 17 + + + -- linear combo weights (showing up to 5) + + -0.4422 2.1466 0.0563 -0.2263 0.6250 + + + -- cutpoint (score) + --- 0.302387 (0.673312), N = 196 moving right + --- 0.602635 (0.692012), N = 167 moving right + --- 0.744263 (0.701715), N = 159 moving right + --- 1.00983 (0.723067), N = 129 moving right + --- 3.9246 (0.619424), N = 20 moving right + + -- best stat: 0.723067, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 4 7 14 3 + + + -- linear combo weights (showing up to 5) + + 1.0585 0.6032 10.1659 -0.1062 4.9197 + + + -- cutpoint (score) + --- -0.756164 (0.566553), N = 241 moving right + --- -0.700068 (0.587684), N = 231 moving right + --- -0.695799 (0.597476), N = 226 moving right + --- -0.240326 (0.677402), N = 179 moving right + --- 0.830767 (0.751183), N = 74 moving right + + -- best stat: 0.751183, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 91 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 8 12 10 17 + + + -- linear combo weights (showing up to 5) + + 6.8065 1.0990 0.0392 -0.4565 0.2620 + + + -- cutpoint (score) + --- 0.5013 (0.707276), N = 132 moving right + --- 0.541847 (0.712936), N = 129 moving right + --- 0.672661 (0.729916), N = 102 moving right + --- 1.08192 (0.729585), N = 73 moving right + --- 3.2041 (0.65411), N = 32 moving right + + -- best stat: 0.729916, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 4 8 11 1 + + + -- linear combo weights (showing up to 5) + + 0.4159 0.5055 1.3609 0.5118 0.3808 + + + -- cutpoint (score) + --- -1.17916 (0.548521), N = 249 moving right + --- -0.874876 (0.649524), N = 200 moving right + --- -0.199593 (0.735362), N = 138 moving right + --- 3.42454 (0.627254), N = 28 moving right + --- 3.68067 (0.615583), N = 26 moving right + + -- best stat: 0.735362, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 1 3 17 7 + + + -- linear combo weights (showing up to 5) + + 0.6999 0.2916 2.3249 0.2769 8.2605 + + + -- cutpoint (score) + --- 0.0477225 (0.568116), N = 246 moving right + --- 0.253027 (0.623858), N = 211 moving right + --- 0.646369 (0.712253), N = 151 moving right + --- 1.03713 (0.766473), N = 104 moving right + --- 2.5165 (0.645933), N = 41 moving right + + -- best stat: 0.766473, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 4.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8551e-01 1.4493e-02 + 5.1000e+01 9.7826e-01 2.1846e-02 + 7.1000e+01 9.7101e-01 2.9253e-02 + 7.7000e+01 9.6739e-01 3.2984e-02 + 1.3100e+02 9.6377e-01 3.6730e-02 + + +------------ Growing tree 92 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 6 13 11 15 + + + -- linear combo weights (showing up to 5) + + 0.2637 1.0971 0.2475 0.5801 -0.0463 + + + -- cutpoint (score) + --- -0.592519 (0.601625), N = 227 moving right + --- 0.382281 (0.688341), N = 91 moving right + --- 0.675144 (0.664011), N = 63 moving right + --- 0.84276 (0.629415), N = 46 moving right + --- 1.33617 (0.58591), N = 32 moving right + + -- best stat: 0.688341, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 2 3 16 4 + + + -- linear combo weights (showing up to 5) + + -0.4276 -0.2556 4.9548 0.2454 0.4474 + + + -- cutpoint (score) + --- -0.714851 (0.509342), N = 247 moving right + --- -0.676367 (0.511643), N = 244 moving right + --- -0.493945 (0.589155), N = 199 moving right + --- -0.426032 (0.607604), N = 191 moving right + --- 6.00067 (0.55275), N = 10 moving right + + -- best stat: 0.607604, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 11 17 5 10 + + + -- linear combo weights (showing up to 5) + + 0.3485 0.5079 0.3644 0.4288 -0.3757 + + + -- cutpoint (score) + --- 0.300379 (0.581013), N = 233 moving right + --- 1.07493 (0.71621), N = 150 moving right + --- 1.28722 (0.739773), N = 121 moving right + --- 1.59654 (0.752222), N = 97 moving right + --- 1.7571 (0.741602), N = 80 moving right + + -- best stat: 0.752222, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.7826e-01 2.1898e-02 + 1.7900e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 93 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 17 3 6 12 + + + -- linear combo weights (showing up to 5) + + 0.8093 0.2637 6.7070 0.4458 -0.0212 + + + -- cutpoint (score) + --- -0.215816 (0.54996), N = 251 moving right + --- 0.640332 (0.678337), N = 144 moving right + --- 1.01512 (0.719502), N = 94 moving right + --- 1.19103 (0.701362), N = 79 moving right + --- 1.47091 (0.687534), N = 60 moving right + + -- best stat: 0.719502, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 14 1 10 11 + + + -- linear combo weights (showing up to 5) + + -0.1520 0.0140 0.3905 -0.6554 1.1702 + + + -- cutpoint (score) + --- -2.25336 (0.50499), N = 270 moving right + --- -1.74361 (0.531481), N = 252 moving right + --- 0.242648 (0.743372), N = 91 moving right + --- 0.844021 (0.734534), N = 66 moving right + --- 1.43789 (0.70134), N = 44 moving right + + -- best stat: 0.743372, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 13 12 1 + + + -- linear combo weights (showing up to 5) + + 0.4191 0.4345 0.8880 -0.0760 0.4814 + + + -- cutpoint (score) + --- -0.259851 (0.555372), N = 242 moving right + --- 0.511744 (0.652226), N = 196 moving right + --- 0.771875 (0.684807), N = 150 moving right + --- 0.916208 (0.69707), N = 138 moving right + --- 3.34196 (0.597488), N = 15 moving right + + -- best stat: 0.69707, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7464e-01 2.5588e-02 + 1.4000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 94 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 2 0 17 3 + + + -- linear combo weights (showing up to 5) + + 0.9836 -0.1113 -0.0482 0.4368 4.2476 + + + -- cutpoint (score) + --- 0.321389 (0.595525), N = 229 moving right + --- 0.443959 (0.628632), N = 211 moving right + --- 1.60488 (0.741039), N = 83 moving right + --- 3.89674 (0.630774), N = 24 moving right + --- 4.93894 (0.617222), N = 21 moving right + + -- best stat: 0.741039, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 8 5 2 13 + + + -- linear combo weights (showing up to 5) + + 0.6967 1.5625 0.6828 -0.3807 -0.1075 + + + -- cutpoint (score) + --- 0.0581668 (0.774486), N = 85 moving right + --- 0.335356 (0.757158), N = 76 moving right + --- 0.418668 (0.745769), N = 71 moving right + --- 3.43212 (0.614146), N = 20 moving right + --- 4.17089 (0.600954), N = 17 moving right + + -- best stat: 0.774486, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 9 1 15 3 + + + -- linear combo weights (showing up to 5) + + -0.2747 0.5232 0.4862 -0.2184 5.6047 + + + -- cutpoint (score) + --- -0.657183 (0.56789), N = 232 moving right + --- 0.248382 (0.698049), N = 90 moving right + --- 0.311399 (0.67894), N = 78 moving right + --- 0.629243 (0.677306), N = 55 moving right + --- 6.05455 (0.555525), N = 8 moving right + + -- best stat: 0.698049, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 95 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 7 13 8 14 + + + -- linear combo weights (showing up to 5) + + 0.6328 7.6436 0.1410 1.8332 -0.1627 + + + -- cutpoint (score) + --- -1.08612 (0.578311), N = 226 moving right + --- -1.05585 (0.588425), N = 222 moving right + --- -0.459887 (0.748521), N = 126 moving right + --- 0.0262071 (0.750072), N = 96 moving right + --- 2.03552 (0.627353), N = 23 moving right + + -- best stat: 0.750072, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 4 15 9 8 + + + -- linear combo weights (showing up to 5) + + -0.2550 0.3275 -0.0659 -0.3573 2.0704 + + + -- cutpoint (score) + --- -0.988803 (0.649754), N = 192 moving right + --- -0.920414 (0.68955), N = 173 moving right + --- -0.468526 (0.742978), N = 113 moving right + --- 0.211722 (0.707587), N = 69 moving right + --- 2.03588 (0.621065), N = 27 moving right + + -- best stat: 0.742978, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 2 13 3 14 + + + -- linear combo weights (showing up to 5) + + 0.6314 -0.2247 0.4981 7.4053 0.0935 + + + -- cutpoint (score) + --- -0.558163 (0.67019), N = 170 moving right + --- -0.335134 (0.700782), N = 152 moving right + --- -0.122022 (0.699582), N = 126 moving right + --- 0.0638901 (0.672093), N = 97 moving right + --- 0.747751 (0.65991), N = 43 moving right + + -- best stat: 0.700782, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 96 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 13 6 11 16 + + + -- linear combo weights (showing up to 5) + + -0.3899 0.2861 0.2932 0.9669 0.5158 + + + -- cutpoint (score) + --- -1.58083 (0.534853), N = 251 moving right + --- -1.06651 (0.62373), N = 207 moving right + --- 1.2172 (0.646563), N = 42 moving right + --- 1.42393 (0.632549), N = 39 moving right + --- 1.60509 (0.617078), N = 34 moving right + + -- best stat: 0.646563, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 11 3 9 15 + + + -- linear combo weights (showing up to 5) + + -0.6518 0.4910 6.5571 0.2162 -0.0569 + + + -- cutpoint (score) + --- -0.613137 (0.609486), N = 210 moving right + --- -0.49187 (0.64986), N = 188 moving right + --- 0.987566 (0.679019), N = 50 moving right + --- 1.37029 (0.682144), N = 39 moving right + --- 1.55269 (0.658736), N = 33 moving right + + -- best stat: 0.682144, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 16 1 4 15 + + + -- linear combo weights (showing up to 5) + + 0.3471 0.4795 0.2447 0.7737 -0.1534 + + + -- cutpoint (score) + --- 0.162889 (0.651566), N = 164 moving right + --- 0.343139 (0.680035), N = 149 moving right + --- 0.484774 (0.714505), N = 125 moving right + --- 1.00764 (0.667612), N = 62 moving right + --- 1.64903 (0.607875), N = 26 moving right + + -- best stat: 0.714505, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 97 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 5 13 1 3 + + + -- linear combo weights (showing up to 5) + + 0.5798 0.1793 0.2936 0.4321 12.9205 + + + -- cutpoint (score) + --- -0.487092 (0.604221), N = 221 moving right + --- -0.351854 (0.649362), N = 193 moving right + --- 0.424712 (0.697089), N = 73 moving right + --- 0.454661 (0.696301), N = 71 moving right + --- 0.550467 (0.684603), N = 57 moving right + + -- best stat: 0.697089, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 7 16 4 8 + + + -- linear combo weights (showing up to 5) + + -0.2731 11.1386 0.2873 0.5417 1.9577 + + + -- cutpoint (score) + --- -0.999516 (0.603802), N = 220 moving right + --- -0.989992 (0.617027), N = 212 moving right + --- -0.977109 (0.634143), N = 204 moving right + --- -0.929817 (0.651751), N = 196 moving right + --- 3.86446 (0.645717), N = 21 moving right + + -- best stat: 0.651751, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 3 5 10 2 + + + -- linear combo weights (showing up to 5) + + 0.3307 11.9069 0.1249 -0.5437 -0.6429 + + + -- cutpoint (score) + --- -1.70205 (0.512535), N = 269 moving right + --- -1.01204 (0.630744), N = 207 moving right + --- -0.499123 (0.741516), N = 117 moving right + --- -0.0435017 (0.726247), N = 73 moving right + --- 0.449777 (0.678151), N = 38 moving right + + -- best stat: 0.741516, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 5.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 5.3300e+02 0 2.0000e+00 + 5.4900e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.4000e+02 9.9275e-01 7.2596e-03 + 1.9100e+02 9.8913e-01 1.0909e-02 + 2.1600e+02 9.8551e-01 1.4572e-02 + 2.2300e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 98 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 14 4 9 8 + + + -- linear combo weights (showing up to 5) + + -0.6013 0.0167 0.2203 -0.3920 2.1028 + + + -- cutpoint (score) + --- -1.34444 (0.580158), N = 220 moving right + --- -1.27331 (0.591803), N = 216 moving right + --- -0.848541 (0.688901), N = 169 moving right + --- 0.147466 (0.725964), N = 85 moving right + --- 2.82001 (0.63233), N = 26 moving right + + -- best stat: 0.725964, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 3 11 14 9 + + + -- linear combo weights (showing up to 5) + + 8.2325 3.2995 0.6228 0.2294 0.3216 + + + -- cutpoint (score) + --- -0.251074 (0.730383), N = 146 moving right + --- 0.437749 (0.740197), N = 76 moving right + --- 2.16693 (0.6512), N = 35 moving right + --- 4.03014 (0.62608), N = 26 moving right + --- 11.6375 (0.55454), N = 10 moving right + + -- best stat: 0.740197, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 17 3 5 14 + + + -- linear combo weights (showing up to 5) + + 0.0768 0.3218 6.1678 1.2027 0.2064 + + + -- cutpoint (score) + --- 0.85801 (0.655002), N = 194 moving right + --- 0.860274 (0.656137), N = 193 moving right + --- 2.26441 (0.688622), N = 64 moving right + --- 2.34714 (0.681078), N = 50 moving right + --- 8.61382 (0.556153), N = 10 moving right + + -- best stat: 0.688622, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 99 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 14 8 9 12 + + + -- linear combo weights (showing up to 5) + + 0.3741 0.0832 1.6125 -0.1948 0.1515 + + + -- cutpoint (score) + --- -1.05628 (0.601752), N = 217 moving right + --- -0.457038 (0.728554), N = 120 moving right + --- -0.288668 (0.747555), N = 105 moving right + --- 0.911892 (0.696399), N = 48 moving right + --- 6.39354 (0.531955), N = 8 moving right + + -- best stat: 0.747555, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 1 2 17 13 + + + -- linear combo weights (showing up to 5) + + 0.7527 0.4148 -0.3313 0.4734 0.6512 + + + -- cutpoint (score) + --- 0.118277 (0.564648), N = 247 moving right + --- 0.893009 (0.674225), N = 178 moving right + --- 1.0384 (0.699832), N = 163 moving right + --- 1.08103 (0.704323), N = 160 moving right + --- 1.49204 (0.749172), N = 115 moving right + + -- best stat: 0.749172, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 6 8 9 11 + + + -- linear combo weights (showing up to 5) + + 0.5233 -0.2246 1.3660 -0.3237 1.3391 + + + -- cutpoint (score) + --- -1.14762 (0.643926), N = 193 moving right + --- -0.225023 (0.724083), N = 100 moving right + --- 1.01494 (0.740789), N = 65 moving right + --- 1.12771 (0.731128), N = 58 moving right + --- 1.89011 (0.676221), N = 41 moving right + + -- best stat: 0.740789, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8188e-01 1.8169e-02 + 7.1000e+01 9.7826e-01 2.1859e-02 + 1.3100e+02 9.7464e-01 2.5562e-02 + 1.4000e+02 9.7101e-01 2.9280e-02 + + +------------ Growing tree 100 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 0 12 10 8 + + + -- linear combo weights (showing up to 5) + + 0.1998 -0.1006 0.0670 -0.6184 1.6571 + + + -- cutpoint (score) + --- -1.48341 (0.543867), N = 247 moving right + --- 0.555466 (0.718269), N = 76 moving right + --- 1.64075 (0.644387), N = 37 moving right + --- 1.97361 (0.624694), N = 32 moving right + --- 2.26786 (0.629952), N = 29 moving right + + -- best stat: 0.718269, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 0 12 9 3 + + + -- linear combo weights (showing up to 5) + + -0.2082 0.1773 0.1816 0.2128 5.9476 + + + -- cutpoint (score) + --- -0.311531 (0.501397), N = 256 moving right + --- 0.143695 (0.636704), N = 116 moving right + --- 0.244294 (0.668387), N = 82 moving right + --- 0.261021 (0.673548), N = 79 moving right + --- 0.344137 (0.639634), N = 59 moving right + + -- best stat: 0.673548, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 13 17 2 6 + + + -- linear combo weights (showing up to 5) + + 0.5988 0.4640 0.6115 -0.3171 1.3000 + + + -- cutpoint (score) + --- 1.02574 (0.616662), N = 220 moving right + --- 1.25409 (0.664216), N = 189 moving right + --- 2.12142 (0.730938), N = 93 moving right + --- 2.50013 (0.69908), N = 60 moving right + --- 3.22244 (0.622308), N = 37 moving right + + -- best stat: 0.730938, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.7826e-01 2.1899e-02 + 1.1000e+02 9.6739e-01 3.3010e-02 + 1.3100e+02 9.6014e-01 4.0500e-02 + + +------------ Growing tree 101 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 2 13 12 6 + + + -- linear combo weights (showing up to 5) + + 0.5420 -0.5555 0.6483 0.0577 1.0071 + + + -- cutpoint (score) + --- 0.8572 (0.669142), N = 188 moving right + --- 0.877262 (0.672442), N = 186 moving right + --- 1.53667 (0.732037), N = 114 moving right + --- 1.53899 (0.712552), N = 110 moving right + --- 1.59142 (0.712316), N = 96 moving right + + -- best stat: 0.732037, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 7 11 17 6 + + + -- linear combo weights (showing up to 5) + + -0.0025 11.2793 0.6520 0.2767 0.9848 + + + -- cutpoint (score) + --- -0.0869319 (0.532646), N = 262 moving right + --- 0.579451 (0.692123), N = 174 moving right + --- 1.14552 (0.703418), N = 99 moving right + --- 1.70681 (0.696838), N = 53 moving right + --- 13.0934 (0.553172), N = 10 moving right + + -- best stat: 0.703418, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 17 3 0 4 + + + -- linear combo weights (showing up to 5) + + 0.1129 0.3252 6.2832 -0.1166 0.4878 + + + -- cutpoint (score) + --- 0.729067 (0.594618), N = 223 moving right + --- 0.824172 (0.617678), N = 202 moving right + --- 1.33729 (0.667531), N = 127 moving right + --- 1.34219 (0.669809), N = 126 moving right + --- 1.63126 (0.647201), N = 76 moving right + + -- best stat: 0.669809, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 4.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8551e-01 1.4493e-02 + 5.1000e+01 9.8188e-01 1.8169e-02 + 1.1000e+02 9.7101e-01 2.9239e-02 + 1.3100e+02 9.6377e-01 3.6702e-02 + 1.9800e+02 9.6014e-01 4.0461e-02 + + +------------ Growing tree 102 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 2 6 1 9 + + + -- linear combo weights (showing up to 5) + + -0.2530 -0.1612 1.5772 0.4070 0.6487 + + + -- cutpoint (score) + --- -0.53873 (0.611888), N = 210 moving right + --- -0.210391 (0.664274), N = 153 moving right + --- -0.0704593 (0.697259), N = 129 moving right + --- -0.0647979 (0.707815), N = 125 moving right + --- 0.0709638 (0.730139), N = 98 moving right + + -- best stat: 0.730139, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 1 7 10 6 + + + -- linear combo weights (showing up to 5) + + 0.6558 0.2996 5.5731 -0.4964 1.4927 + + + -- cutpoint (score) + --- -0.257661 (0.690791), N = 159 moving right + --- 0.166996 (0.731182), N = 114 moving right + --- 0.441546 (0.731808), N = 94 moving right + --- 0.523571 (0.733915), N = 93 moving right + --- 1.19428 (0.710611), N = 57 moving right + + -- best stat: 0.733915, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 0 9 3 7 + + + -- linear combo weights (showing up to 5) + + 0.1811 -0.2753 0.5590 4.1958 6.0955 + + + -- cutpoint (score) + --- -0.496884 (0.547129), N = 218 moving right + --- -0.292661 (0.652508), N = 136 moving right + --- -0.214747 (0.671722), N = 122 moving right + --- 0.347257 (0.688225), N = 67 moving right + --- 0.770718 (0.65885), N = 48 moving right + + -- best stat: 0.688225, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 103 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 6 12 11 17 + + + -- linear combo weights (showing up to 5) + + 0.3135 1.7941 0.0920 1.1392 0.3261 + + + -- cutpoint (score) + --- -0.0962915 (0.562319), N = 240 moving right + --- 0.0318461 (0.609257), N = 217 moving right + --- 0.494726 (0.66318), N = 182 moving right + --- 3.25905 (0.667844), N = 43 moving right + --- 3.45797 (0.62958), N = 36 moving right + + -- best stat: 0.667844, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 17 1 9 0 + + + -- linear combo weights (showing up to 5) + + 0.8089 0.4698 0.3638 0.6908 -0.3211 + + + -- cutpoint (score) + --- 0.707059 (0.669353), N = 181 moving right + --- 0.719713 (0.678621), N = 177 moving right + --- 1.22039 (0.709185), N = 129 moving right + --- 1.48666 (0.724884), N = 108 moving right + --- 2.61495 (0.642202), N = 38 moving right + + -- best stat: 0.724884, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 12 16 7 5 + + + -- linear combo weights (showing up to 5) + + 1.2588 0.2780 0.6822 5.5801 0.6792 + + + -- cutpoint (score) + --- -0.584597 (0.576966), N = 232 moving right + --- 0.128435 (0.66584), N = 130 moving right + --- 0.544102 (0.703172), N = 88 moving right + --- 0.613064 (0.69944), N = 86 moving right + --- 0.96684 (0.679435), N = 72 moving right + + -- best stat: 0.703172, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 104 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 5 1 13 2 + + + -- linear combo weights (showing up to 5) + + 1.5289 0.8475 0.6299 0.3757 0.2830 + + + -- cutpoint (score) + --- -1.61298 (0.542714), N = 253 moving right + --- -0.608903 (0.678154), N = 181 moving right + --- -0.564636 (0.684755), N = 168 moving right + --- 1.33194 (0.733646), N = 64 moving right + --- 3.60686 (0.539435), N = 10 moving right + + -- best stat: 0.733646, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 15 5 6 4 + + + -- linear combo weights (showing up to 5) + + 0.4773 -0.1233 0.7469 0.2296 0.3174 + + + -- cutpoint (score) + --- 0.968925 (0.569455), N = 239 moving right + --- 1.34697 (0.623572), N = 204 moving right + --- 1.45288 (0.651773), N = 175 moving right + --- 2.65351 (0.617627), N = 44 moving right + --- 3.15865 (0.526339), N = 8 moving right + + -- best stat: 0.651773, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 9 4 10 5 + + + -- linear combo weights (showing up to 5) + + -0.1007 0.3431 0.2439 -0.8679 0.8623 + + + -- cutpoint (score) + --- -0.50869 (0.583968), N = 212 moving right + --- 0.159833 (0.692625), N = 141 moving right + --- 0.177099 (0.694868), N = 140 moving right + --- 0.572656 (0.702674), N = 101 moving right + --- 0.929153 (0.665143), N = 71 moving right + + -- best stat: 0.702674, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.6377e-01 3.6727e-02 + + +------------ Growing tree 105 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 0 10 2 3 + + + -- linear combo weights (showing up to 5) + + 0.6080 0.3986 -0.4979 -0.3200 6.9343 + + + -- cutpoint (score) + --- -0.491108 (0.595288), N = 214 moving right + --- -0.404999 (0.613214), N = 203 moving right + --- 0.468604 (0.694852), N = 58 moving right + --- 0.751322 (0.660898), N = 31 moving right + --- 7.21819 (0.578061), N = 15 moving right + + -- best stat: 0.694852, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 13 14 11 8 + + + -- linear combo weights (showing up to 5) + + 0.8560 0.0796 -0.0548 0.3583 1.0550 + + + -- cutpoint (score) + --- -0.73414 (0.611136), N = 222 moving right + --- -0.684516 (0.619789), N = 215 moving right + --- 0.448546 (0.722291), N = 91 moving right + --- 0.506861 (0.7109), N = 84 moving right + --- 0.893234 (0.67127), N = 58 moving right + + -- best stat: 0.722291, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 9 15 12 6 + + + -- linear combo weights (showing up to 5) + + 0.6027 0.4083 -0.1254 0.1186 1.2185 + + + -- cutpoint (score) + --- -0.296366 (0.518446), N = 251 moving right + --- -0.260194 (0.529857), N = 246 moving right + --- -0.234413 (0.541488), N = 240 moving right + --- 0.300603 (0.641652), N = 153 moving right + --- 1.40277 (0.583197), N = 35 moving right + + -- best stat: 0.641652, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.7464e-01 2.5561e-02 + 1.7900e+02 9.7101e-01 2.9279e-02 + + +------------ Growing tree 106 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 9 1 14 5 + + + -- linear combo weights (showing up to 5) + + 6.8001 0.3889 0.4672 0.3356 0.6129 + + + -- cutpoint (score) + --- -0.350927 (0.615222), N = 209 moving right + --- -0.195204 (0.635508), N = 187 moving right + --- 0.582286 (0.701863), N = 76 moving right + --- 2.57806 (0.600232), N = 20 moving right + --- 3.51323 (0.580645), N = 15 moving right + + -- best stat: 0.701863, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 2 4 0 5 + + + -- linear combo weights (showing up to 5) + + 0.5771 0.0542 0.8751 -0.0895 1.0045 + + + -- cutpoint (score) + --- 0.0541837 (0.648239), N = 168 moving right + --- 0.92933 (0.624875), N = 94 moving right + --- 1.00452 (0.612104), N = 78 moving right + --- 1.50643 (0.600132), N = 61 moving right + --- 1.84438 (0.569693), N = 44 moving right + + -- best stat: 0.648239, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 3 9 1 15 + + + -- linear combo weights (showing up to 5) + + 0.4908 4.5462 0.5039 0.3431 -0.1241 + + + -- cutpoint (score) + --- -0.63672 (0.537135), N = 252 moving right + --- -0.531325 (0.567054), N = 236 moving right + --- -0.37954 (0.597953), N = 214 moving right + --- 0.542727 (0.665647), N = 58 moving right + --- 1.72126 (0.597454), N = 26 moving right + + -- best stat: 0.665647, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7826e-01 2.1899e-02 + 1.7900e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 107 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 12 5 8 9 + + + -- linear combo weights (showing up to 5) + + 0.1144 0.0222 0.6313 1.6867 -0.5487 + + + -- cutpoint (score) + --- -0.758912 (0.576944), N = 209 moving right + --- -0.493065 (0.701184), N = 142 moving right + --- 0.277822 (0.712746), N = 85 moving right + --- 0.708754 (0.700103), N = 72 moving right + --- 2.89863 (0.565675), N = 15 moving right + + -- best stat: 0.712746, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 17 9 15 16 + + + -- linear combo weights (showing up to 5) + + 0.0822 0.7143 0.2426 -0.0176 0.3312 + + + -- cutpoint (score) + --- 1.69926 (0.631917), N = 190 moving right + --- 1.79425 (0.649894), N = 174 moving right + --- 1.90223 (0.658011), N = 166 moving right + --- 2.27639 (0.687679), N = 118 moving right + --- 2.35949 (0.696621), N = 114 moving right + + -- best stat: 0.696621, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 15 3 2 13 + + + -- linear combo weights (showing up to 5) + + 1.0248 0.0383 5.5793 -0.6845 0.4325 + + + -- cutpoint (score) + --- -0.964582 (0.575863), N = 234 moving right + --- -0.050398 (0.708147), N = 153 moving right + --- 0.276757 (0.728469), N = 109 moving right + --- 0.61387 (0.676391), N = 69 moving right + --- 0.940229 (0.610331), N = 41 moving right + + -- best stat: 0.728469, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.3100e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 108 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 1 14 8 9 + + + -- linear combo weights (showing up to 5) + + 0.4690 0.2937 -0.1994 1.5712 -0.2550 + + + -- cutpoint (score) + --- -0.632001 (0.631351), N = 184 moving right + --- -0.339169 (0.711352), N = 125 moving right + --- -0.249555 (0.741245), N = 110 moving right + --- -0.123905 (0.740243), N = 95 moving right + --- 0.438178 (0.713736), N = 61 moving right + + -- best stat: 0.741245, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 5 7 14 1 + + + -- linear combo weights (showing up to 5) + + 0.3522 0.4964 6.3066 0.1640 0.4849 + + + -- cutpoint (score) + --- -0.453998 (0.557161), N = 237 moving right + --- -0.338484 (0.578218), N = 227 moving right + --- -0.281309 (0.588376), N = 219 moving right + --- -0.0598735 (0.660042), N = 174 moving right + --- 1.84919 (0.597852), N = 21 moving right + + -- best stat: 0.660042, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 2 10 7 14 + + + -- linear combo weights (showing up to 5) + + 2.2360 -0.5583 -0.5017 4.8257 0.1924 + + + -- cutpoint (score) + --- -1.42422 (0.51719), N = 261 moving right + --- -0.664598 (0.651447), N = 168 moving right + --- -0.486514 (0.68158), N = 128 moving right + --- -0.29002 (0.688011), N = 101 moving right + --- -0.27534 (0.690696), N = 100 moving right + + -- best stat: 0.690696, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7464e-01 2.5588e-02 + 1.8600e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 109 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 16 9 12 13 + + + -- linear combo weights (showing up to 5) + + 0.6438 0.9137 0.3986 0.0280 0.4347 + + + -- cutpoint (score) + --- 1.78633 (0.734439), N = 130 moving right + --- 2.1431 (0.72785), N = 104 moving right + --- 2.45967 (0.740281), N = 83 moving right + --- 3.01883 (0.702965), N = 55 moving right + --- 3.23394 (0.70347), N = 42 moving right + + -- best stat: 0.740281, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 1 16 15 4 + + + -- linear combo weights (showing up to 5) + + 0.5249 0.2694 0.9493 -0.0113 0.7884 + + + -- cutpoint (score) + --- -0.937126 (0.58658), N = 230 moving right + --- -0.417205 (0.621041), N = 187 moving right + --- 0.43182 (0.733758), N = 103 moving right + --- 0.768651 (0.72741), N = 76 moving right + --- 1.13347 (0.711179), N = 61 moving right + + -- best stat: 0.733758, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 7 12 15 + + + -- linear combo weights (showing up to 5) + + 0.5144 0.7842 8.4154 0.0644 0.0357 + + + -- cutpoint (score) + --- 0.474689 (0.535339), N = 254 moving right + --- 0.898381 (0.63602), N = 194 moving right + --- 1.59519 (0.701274), N = 101 moving right + --- 2.11518 (0.70492), N = 68 moving right + --- 11.6 (0.545157), N = 6 moving right + + -- best stat: 0.70492, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8188e-01 1.8195e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.6014e-01 4.0459e-02 + + +------------ Growing tree 110 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 11 0 4 1 + + + -- linear combo weights (showing up to 5) + + 0.5085 1.2563 -0.0663 0.3633 0.4366 + + + -- cutpoint (score) + --- -0.37337 (0.71017), N = 144 moving right + --- -0.293585 (0.720938), N = 140 moving right + --- -0.14957 (0.719544), N = 127 moving right + --- 0.177987 (0.715281), N = 108 moving right + --- 2.17011 (0.650127), N = 40 moving right + + -- best stat: 0.720938, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 0 17 6 4 + + + -- linear combo weights (showing up to 5) + + 0.7939 -0.1484 0.4746 0.6886 0.0250 + + + -- cutpoint (score) + --- 0.474577 (0.517576), N = 267 moving right + --- 1.2753 (0.615257), N = 197 moving right + --- 1.63774 (0.664087), N = 142 moving right + --- 2.24265 (0.661764), N = 64 moving right + --- 2.7828 (0.558265), N = 16 moving right + + -- best stat: 0.664087, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 2 5 15 11 + + + -- linear combo weights (showing up to 5) + + 0.4795 -0.3424 0.5488 0.1244 1.1555 + + + -- cutpoint (score) + --- -0.309871 (0.531718), N = 262 moving right + --- -0.277807 (0.537234), N = 260 moving right + --- 0.910725 (0.703039), N = 157 moving right + --- 1.4025 (0.731565), N = 109 moving right + --- 3.38375 (0.572993), N = 23 moving right + + -- best stat: 0.731565, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 111 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 13 15 16 10 + + + -- linear combo weights (showing up to 5) + + -0.1315 0.5642 0.0048 0.7588 -0.9577 + + + -- cutpoint (score) + --- -1.77062 (0.547239), N = 242 moving right + --- -1.25394 (0.601233), N = 213 moving right + --- -1.03774 (0.614889), N = 191 moving right + --- 0.632126 (0.722877), N = 71 moving right + --- 2.73785 (0.581328), N = 13 moving right + + -- best stat: 0.722877, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 4 10 8 15 + + + -- linear combo weights (showing up to 5) + + 0.0622 -0.1256 -0.7073 1.8583 -0.2485 + + + -- cutpoint (score) + --- -0.37302 (0.752533), N = 116 moving right + --- -0.369732 (0.755214), N = 115 moving right + --- 0.171088 (0.744174), N = 85 moving right + --- 0.432539 (0.734507), N = 69 moving right + --- 1.87496 (0.662171), N = 36 moving right + + -- best stat: 0.755214, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 15 13 14 7 + + + -- linear combo weights (showing up to 5) + + 0.5253 -0.1324 0.4839 0.6415 7.6382 + + + -- cutpoint (score) + --- -1.49107 (0.507599), N = 270 moving right + --- -1.46249 (0.517794), N = 264 moving right + --- -0.861436 (0.570437), N = 236 moving right + --- -0.520449 (0.670614), N = 177 moving right + --- 0.599264 (0.690666), N = 70 moving right + + -- best stat: 0.690666, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 112 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 4 17 15 2 + + + -- linear combo weights (showing up to 5) + + -0.1465 0.6594 0.4816 -0.1812 -1.4257 + + + -- cutpoint (score) + --- -0.348137 (0.607437), N = 218 moving right + --- -0.164865 (0.634374), N = 194 moving right + --- 0.44785 (0.687229), N = 125 moving right + --- 0.784501 (0.701107), N = 90 moving right + --- 2.14196 (0.531629), N = 17 moving right + + -- best stat: 0.701107, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 14 3 13 6 + + + -- linear combo weights (showing up to 5) + + 0.9095 -0.0962 8.4073 0.5077 0.1620 + + + -- cutpoint (score) + --- -1.09323 (0.579681), N = 233 moving right + --- -0.817676 (0.625122), N = 211 moving right + --- -0.76142 (0.635525), N = 206 moving right + --- 0.959694 (0.727689), N = 58 moving right + --- 1.56912 (0.657725), N = 30 moving right + + -- best stat: 0.727689, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 9 0 15 4 + + + -- linear combo weights (showing up to 5) + + 0.3978 0.7224 -0.1106 -0.3153 1.0795 + + + -- cutpoint (score) + --- 0.0222139 (0.681762), N = 160 moving right + --- 0.038898 (0.685281), N = 158 moving right + --- 0.25205 (0.716246), N = 137 moving right + --- 0.415252 (0.712019), N = 120 moving right + --- 0.497293 (0.710823), N = 115 moving right + + -- best stat: 0.716246, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7464e-01 2.5575e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 113 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 14 5 7 16 + + + -- linear combo weights (showing up to 5) + + 1.6488 0.1412 0.1952 6.1559 0.6840 + + + -- cutpoint (score) + --- -1.70318 (0.542347), N = 250 moving right + --- -0.833164 (0.724203), N = 144 moving right + --- 0.844811 (0.762733), N = 62 moving right + --- 2.77057 (0.673184), N = 33 moving right + --- 3.3508 (0.613536), N = 22 moving right + + -- best stat: 0.762733, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 5 7 9 0 + + + -- linear combo weights (showing up to 5) + + 0.6065 0.2219 8.7567 0.3134 -0.0905 + + + -- cutpoint (score) + --- 0.134476 (0.657538), N = 154 moving right + --- 0.370169 (0.654471), N = 136 moving right + --- 0.517007 (0.681812), N = 97 moving right + --- 0.588104 (0.682562), N = 82 moving right + --- 0.634513 (0.688322), N = 79 moving right + + -- best stat: 0.688322, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 5 15 2 17 + + + -- linear combo weights (showing up to 5) + + 0.4588 0.5230 0.0333 -0.8626 0.6037 + + + -- cutpoint (score) + --- 0.381179 (0.606011), N = 219 moving right + --- 0.850051 (0.686733), N = 173 moving right + --- 0.921719 (0.685718), N = 170 moving right + --- 1.35796 (0.713214), N = 123 moving right + --- 1.61999 (0.69823), N = 86 moving right + + -- best stat: 0.713214, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8188e-01 1.8196e-02 + 1.4000e+02 9.7464e-01 2.5576e-02 + 1.7900e+02 9.7101e-01 2.9293e-02 + 1.9100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 114 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 7 6 2 9 + + + -- linear combo weights (showing up to 5) + + 0.6569 11.4896 0.8625 0.0128 0.1589 + + + -- cutpoint (score) + --- -0.457905 (0.61642), N = 218 moving right + --- -0.352363 (0.662769), N = 185 moving right + --- 0.147583 (0.713466), N = 106 moving right + --- 0.349828 (0.715956), N = 85 moving right + --- 0.472275 (0.706796), N = 69 moving right + + -- best stat: 0.715956, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 0 3 2 14 + + + -- linear combo weights (showing up to 5) + + 0.3834 -0.3078 4.2381 -0.2140 0.1320 + + + -- cutpoint (score) + --- -0.531339 (0.663107), N = 183 moving right + --- -0.276934 (0.703229), N = 121 moving right + --- -0.156743 (0.661165), N = 94 moving right + --- 0.0218534 (0.632651), N = 69 moving right + --- 0.333385 (0.588054), N = 38 moving right + + -- best stat: 0.703229, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 14 0 8 9 + + + -- linear combo weights (showing up to 5) + + -0.5169 -0.3740 -0.0962 2.5563 -0.5484 + + + -- cutpoint (score) + --- -2.4447 (0.498966), N = 270 moving right + --- -2.06107 (0.521106), N = 261 moving right + --- -1.89425 (0.537759), N = 244 moving right + --- -1.87114 (0.541157), N = 243 moving right + --- -0.00756827 (0.670473), N = 53 moving right + + -- best stat: 0.670473, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 5.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8188e-01 1.8196e-02 + 7.7000e+01 9.7826e-01 2.1886e-02 + 1.3100e+02 9.7464e-01 2.5589e-02 + 1.4000e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 115 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 9 1 0 11 + + + -- linear combo weights (showing up to 5) + + -0.5095 0.4480 0.4669 0.0472 1.3099 + + + -- cutpoint (score) + --- -1.58631 (0.564593), N = 238 moving right + --- -1.30992 (0.601689), N = 219 moving right + --- -1.22838 (0.629784), N = 206 moving right + --- -1.05842 (0.666446), N = 182 moving right + --- 1.0185 (0.718674), N = 63 moving right + + -- best stat: 0.718674, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 11 9 15 6 + + + -- linear combo weights (showing up to 5) + + 12.6239 1.1561 0.5354 -0.0199 1.7727 + + + -- cutpoint (score) + --- -1.24956 (0.541245), N = 252 moving right + --- -0.715092 (0.671112), N = 184 moving right + --- 0.715051 (0.755336), N = 82 moving right + --- 1.75222 (0.698815), N = 43 moving right + --- 3.3687 (0.626729), N = 23 moving right + + -- best stat: 0.755336, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 11 1 13 0 + + + -- linear combo weights (showing up to 5) + + 5.5383 1.2687 0.4270 0.6315 0.1195 + + + -- cutpoint (score) + --- -1.29614 (0.607696), N = 218 moving right + --- -1.10014 (0.631415), N = 204 moving right + --- -0.0660887 (0.77311), N = 119 moving right + --- 0.515683 (0.741134), N = 90 moving right + --- 1.25268 (0.741959), N = 61 moving right + + -- best stat: 0.77311, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 116 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 14 5 6 7 + + + -- linear combo weights (showing up to 5) + + -0.2249 0.4326 0.7262 1.6719 5.5451 + + + -- cutpoint (score) + --- -0.319289 (0.574713), N = 219 moving right + --- 0.0614955 (0.661286), N = 158 moving right + --- 0.348988 (0.677744), N = 120 moving right + --- 0.550438 (0.676619), N = 88 moving right + --- 2.42958 (0.621384), N = 25 moving right + + -- best stat: 0.677744, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 7 4 12 1 + + + -- linear combo weights (showing up to 5) + + -0.5595 5.1762 0.9258 0.0850 0.4840 + + + -- cutpoint (score) + --- -0.912407 (0.519537), N = 260 moving right + --- -0.0650527 (0.658957), N = 185 moving right + --- 0.196342 (0.700951), N = 159 moving right + --- 1.427 (0.674212), N = 60 moving right + --- 1.64585 (0.625074), N = 39 moving right + + -- best stat: 0.700951, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 16 15 4 3 + + + -- linear combo weights (showing up to 5) + + 0.7886 0.2234 -0.1147 1.0623 4.1910 + + + -- cutpoint (score) + --- -0.735197 (0.546967), N = 251 moving right + --- -0.575535 (0.580969), N = 237 moving right + --- 0.372981 (0.69582), N = 152 moving right + --- 0.662947 (0.744997), N = 124 moving right + --- 2.07736 (0.670916), N = 42 moving right + + -- best stat: 0.744997, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8188e-01 1.8208e-02 + 1.1000e+02 9.7826e-01 2.1898e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 117 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 1 16 15 4 + + + -- linear combo weights (showing up to 5) + + 0.6701 0.3570 0.6424 -0.1268 0.9312 + + + -- cutpoint (score) + --- -1.00892 (0.548109), N = 244 moving right + --- -0.448671 (0.637637), N = 192 moving right + --- -0.443266 (0.642627), N = 189 moving right + --- 1.09858 (0.696979), N = 71 moving right + --- 1.99876 (0.628396), N = 29 moving right + + -- best stat: 0.696979, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 3 1 11 14 + + + -- linear combo weights (showing up to 5) + + 0.4967 10.7092 0.3051 0.7162 0.0387 + + + -- cutpoint (score) + --- -0.334025 (0.702103), N = 130 moving right + --- -0.0870324 (0.728261), N = 105 moving right + --- 0.400139 (0.713963), N = 67 moving right + --- 0.742459 (0.682994), N = 54 moving right + --- 2.3439 (0.60904), N = 18 moving right + + -- best stat: 0.728261, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 2 9 5 3 + + + -- linear combo weights (showing up to 5) + + 0.5185 -0.7086 0.7778 0.9137 12.1001 + + + -- cutpoint (score) + --- -0.552061 (0.669322), N = 175 moving right + --- -0.454349 (0.669143), N = 170 moving right + --- -0.371897 (0.703066), N = 152 moving right + --- 0.293974 (0.720004), N = 81 moving right + --- 12.5479 (0.531372), N = 5 moving right + + -- best stat: 0.720004, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.8600e+02 9.7464e-01 2.5602e-02 + 1.9100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 118 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 16 0 8 7 + + + -- linear combo weights (showing up to 5) + + -0.2128 0.3217 -0.3824 1.6196 4.2242 + + + -- cutpoint (score) + --- -1.5303 (0.563569), N = 236 moving right + --- -1.44495 (0.594664), N = 219 moving right + --- -0.958738 (0.747602), N = 132 moving right + --- -0.253207 (0.732734), N = 86 moving right + --- -0.175496 (0.730096), N = 81 moving right + + -- best stat: 0.747602, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 14 0 15 10 + + + -- linear combo weights (showing up to 5) + + 0.0812 0.3891 0.0507 -0.3171 -0.8217 + + + -- cutpoint (score) + --- -0.733658 (0.611611), N = 205 moving right + --- -0.623561 (0.597742), N = 198 moving right + --- 0.0594178 (0.66227), N = 119 moving right + --- 0.440908 (0.667406), N = 86 moving right + --- 0.903826 (0.635392), N = 44 moving right + + -- best stat: 0.667406, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 6 2 9 4 + + + -- linear combo weights (showing up to 5) + + 6.3706 2.2308 -0.4320 0.4053 0.8843 + + + -- cutpoint (score) + --- -0.775945 (0.510292), N = 271 moving right + --- -0.627489 (0.583673), N = 233 moving right + --- -0.482486 (0.638849), N = 206 moving right + --- -0.468676 (0.640308), N = 201 moving right + --- 6.86391 (0.536211), N = 7 moving right + + -- best stat: 0.640308, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8551e-01 1.4546e-02 + 1.7900e+02 9.8188e-01 1.8222e-02 + 1.9100e+02 9.7101e-01 2.9292e-02 + 2.1600e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 119 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 13 1 9 12 + + + -- linear combo weights (showing up to 5) + + 1.8858 0.3008 0.7291 -0.6122 0.2428 + + + -- cutpoint (score) + --- -1.66011 (0.545217), N = 252 moving right + --- -1.18664 (0.624521), N = 208 moving right + --- -0.916923 (0.679692), N = 166 moving right + --- 0.339487 (0.768492), N = 69 moving right + --- 0.839006 (0.693566), N = 50 moving right + + -- best stat: 0.768492, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 17 5 4 7 + + + -- linear combo weights (showing up to 5) + + 0.4332 0.3674 1.1271 -0.0184 12.9396 + + + -- cutpoint (score) + --- 1.36168 (0.691562), N = 122 moving right + --- 1.50413 (0.713887), N = 105 moving right + --- 2.01522 (0.69459), N = 62 moving right + --- 3.46256 (0.625958), N = 22 moving right + --- 14.4663 (0.570635), N = 12 moving right + + -- best stat: 0.713887, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 11 5 13 1 + + + -- linear combo weights (showing up to 5) + + -0.3726 0.9522 1.3692 0.4114 0.8428 + + + -- cutpoint (score) + --- -1.53115 (0.569437), N = 242 moving right + --- -0.771751 (0.670522), N = 183 moving right + --- -0.545802 (0.692847), N = 155 moving right + --- 0.145933 (0.744816), N = 111 moving right + --- 2.57335 (0.58586), N = 16 moving right + + -- best stat: 0.744816, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 5.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8188e-01 1.8208e-02 + 1.8600e+02 9.7101e-01 2.9279e-02 + 1.9100e+02 9.6739e-01 3.3010e-02 + + +------------ Growing tree 120 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 3 16 6 7 + + + -- linear combo weights (showing up to 5) + + 0.4553 5.9336 0.4009 0.0321 2.5580 + + + -- cutpoint (score) + --- -0.543362 (0.539442), N = 240 moving right + --- -0.501512 (0.563284), N = 226 moving right + --- -0.170898 (0.641078), N = 158 moving right + --- 0.0718255 (0.670874), N = 97 moving right + --- 0.0725243 (0.665926), N = 96 moving right + + -- best stat: 0.670874, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 17 12 4 8 + + + -- linear combo weights (showing up to 5) + + -0.0233 0.2450 0.1703 0.2783 1.3595 + + + -- cutpoint (score) + --- -0.157449 (0.59826), N = 218 moving right + --- 0.301616 (0.669113), N = 159 moving right + --- 0.687177 (0.750199), N = 106 moving right + --- 0.877822 (0.732397), N = 91 moving right + --- 1.13295 (0.668736), N = 64 moving right + + -- best stat: 0.750199, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 8 0 16 10 + + + -- linear combo weights (showing up to 5) + + -0.1715 1.3228 0.0372 0.2981 -0.4428 + + + -- cutpoint (score) + --- -1.53614 (0.491843), N = 258 moving right + --- -1.36467 (0.504739), N = 252 moving right + --- -0.879622 (0.620088), N = 192 moving right + --- -0.656322 (0.678822), N = 154 moving right + --- 0.67756 (0.712036), N = 53 moving right + + -- best stat: 0.712036, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.3100e+02 9.9275e-01 7.2596e-03 + 1.8600e+02 9.8913e-01 1.0909e-02 + 1.9800e+02 9.8188e-01 1.8235e-02 + 2.1600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 121 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 11 5 0 6 + + + -- linear combo weights (showing up to 5) + + 0.3718 1.0311 0.4293 -0.0570 -0.0653 + + + -- cutpoint (score) + --- 0.0672303 (0.569554), N = 248 moving right + --- 0.805439 (0.697907), N = 158 moving right + --- 0.918581 (0.703895), N = 146 moving right + --- 2.31771 (0.650271), N = 48 moving right + --- 2.56976 (0.630271), N = 37 moving right + + -- best stat: 0.703895, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 14 17 10 4 + + + -- linear combo weights (showing up to 5) + + -0.0556 0.1977 0.5222 -0.6836 -0.0115 + + + -- cutpoint (score) + --- -0.0311255 (0.510504), N = 266 moving right + --- 1.39672 (0.668876), N = 157 moving right + --- 2.26572 (0.655349), N = 66 moving right + --- 3.20686 (0.582733), N = 15 moving right + --- 3.2798 (0.574632), N = 14 moving right + + -- best stat: 0.668876, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 8 9 10 4 + + + -- linear combo weights (showing up to 5) + + -0.0507 1.8863 -0.3039 -0.5209 0.0483 + + + -- cutpoint (score) + --- -1.51332 (0.540659), N = 243 moving right + --- -1.12798 (0.612888), N = 205 moving right + --- -0.724613 (0.692384), N = 163 moving right + --- 1.13191 (0.653411), N = 41 moving right + --- 1.71505 (0.632849), N = 32 moving right + + -- best stat: 0.692384, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.9100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 122 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 13 15 12 4 + + + -- linear combo weights (showing up to 5) + + 0.5344 0.5855 0.1194 0.0334 0.8695 + + + -- cutpoint (score) + --- -0.471922 (0.558981), N = 244 moving right + --- -0.210709 (0.598084), N = 224 moving right + --- -0.118552 (0.608319), N = 214 moving right + --- 0.831966 (0.677311), N = 106 moving right + --- 1.44002 (0.60125), N = 46 moving right + + -- best stat: 0.677311, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 6 8 12 0 + + + -- linear combo weights (showing up to 5) + + -0.0326 0.8728 2.5519 -0.0987 -0.0631 + + + -- cutpoint (score) + --- -1.41348 (0.626338), N = 203 moving right + --- -1.4004 (0.631895), N = 201 moving right + --- -1.27462 (0.675472), N = 170 moving right + --- -1.17719 (0.716066), N = 149 moving right + --- 2.1939 (0.639801), N = 31 moving right + + -- best stat: 0.716066, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 5 12 0 3 + + + -- linear combo weights (showing up to 5) + + 0.7439 0.7910 0.2518 -0.0289 8.5138 + + + -- cutpoint (score) + --- -0.0662412 (0.6093), N = 158 moving right + --- -0.018638 (0.617615), N = 143 moving right + --- -0.0108478 (0.627605), N = 137 moving right + --- 0.669915 (0.640292), N = 64 moving right + --- 0.725903 (0.64591), N = 43 moving right + + -- best stat: 0.64591, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 123 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 2 12 15 11 + + + -- linear combo weights (showing up to 5) + + 0.7186 0.6852 -0.0118 -0.0457 0.9867 + + + -- cutpoint (score) + --- 1.54423 (0.577162), N = 239 moving right + --- 1.86163 (0.608561), N = 224 moving right + --- 2.22638 (0.661688), N = 186 moving right + --- 2.24387 (0.669584), N = 183 moving right + --- 4.01615 (0.610601), N = 32 moving right + + -- best stat: 0.669584, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 8 15 0 10 + + + -- linear combo weights (showing up to 5) + + -0.1982 1.7415 -0.1500 -0.3958 -0.7998 + + + -- cutpoint (score) + --- -2.20455 (0.525095), N = 251 moving right + --- -1.43877 (0.632166), N = 190 moving right + --- -1.14226 (0.665708), N = 171 moving right + --- -0.963588 (0.695128), N = 154 moving right + --- -0.947049 (0.686049), N = 152 moving right + + -- best stat: 0.695128, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 8 16 14 9 + + + -- linear combo weights (showing up to 5) + + 0.5595 1.7172 0.2482 0.0856 -0.4108 + + + -- cutpoint (score) + --- -1.14121 (0.636451), N = 190 moving right + --- -1.12871 (0.64049), N = 186 moving right + --- -0.838161 (0.71755), N = 137 moving right + --- -0.624923 (0.723263), N = 123 moving right + --- 0.0849323 (0.692965), N = 78 moving right + + -- best stat: 0.723263, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 124 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 3 8 15 7 + + + -- linear combo weights (showing up to 5) + + 0.3456 8.5614 1.7756 0.0315 0.9153 + + + -- cutpoint (score) + --- -0.265955 (0.58281), N = 238 moving right + --- 0.00243713 (0.635649), N = 212 moving right + --- 0.428281 (0.717766), N = 153 moving right + --- 1.01964 (0.779051), N = 92 moving right + --- 1.81079 (0.690957), N = 60 moving right + + -- best stat: 0.779051, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 4 7 6 2 + + + -- linear combo weights (showing up to 5) + + 0.4412 0.7462 3.6007 0.4215 -0.5366 + + + -- cutpoint (score) + --- -0.0684662 (0.704275), N = 121 moving right + --- 0.115744 (0.710533), N = 104 moving right + --- 0.309305 (0.708303), N = 83 moving right + --- 0.438275 (0.697237), N = 72 moving right + --- 3.92611 (0.53571), N = 8 moving right + + -- best stat: 0.710533, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 12 16 17 5 + + + -- linear combo weights (showing up to 5) + + 9.0353 0.1181 0.4934 0.3146 0.8595 + + + -- cutpoint (score) + --- 0.14229 (0.526679), N = 259 moving right + --- 0.378938 (0.566374), N = 239 moving right + --- 1.34468 (0.677227), N = 108 moving right + --- 1.35957 (0.669561), N = 107 moving right + --- 1.69043 (0.683442), N = 72 moving right + + -- best stat: 0.683442, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 125 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 4 6 11 12 + + + -- linear combo weights (showing up to 5) + + 7.7158 0.3921 0.3228 0.9790 0.0253 + + + -- cutpoint (score) + --- -0.349967 (0.667734), N = 189 moving right + --- -0.302043 (0.686183), N = 181 moving right + --- 0.0963339 (0.736861), N = 133 moving right + --- 0.232678 (0.740633), N = 113 moving right + --- 9.08242 (0.531781), N = 7 moving right + + -- best stat: 0.740633, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 9 7 1 8 + + + -- linear combo weights (showing up to 5) + + 0.2963 -0.2921 6.9406 0.5535 1.7071 + + + -- cutpoint (score) + --- -1.80144 (0.512598), N = 271 moving right + --- -0.176275 (0.749378), N = 128 moving right + --- 1.77612 (0.662087), N = 42 moving right + --- 2.273 (0.658825), N = 37 moving right + --- 3.35969 (0.639927), N = 28 moving right + + -- best stat: 0.749378, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 16 9 5 8 + + + -- linear combo weights (showing up to 5) + + 0.0799 0.6046 -0.4146 1.0150 1.9719 + + + -- cutpoint (score) + --- -1.47216 (0.557161), N = 245 moving right + --- -1.37586 (0.562543), N = 237 moving right + --- -0.912884 (0.664227), N = 184 moving right + --- -0.39039 (0.718881), N = 137 moving right + --- 2.95562 (0.630142), N = 27 moving right + + -- best stat: 0.718881, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 6.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.4000e+02 9.5652e-01 4.4134e-02 + + +------------ Growing tree 126 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 11 6 4 16 + + + -- linear combo weights (showing up to 5) + + 0.0680 1.0043 0.7001 0.3741 0.1709 + + + -- cutpoint (score) + --- -0.497467 (0.632531), N = 200 moving right + --- -0.477108 (0.634511), N = 194 moving right + --- -0.168673 (0.692222), N = 152 moving right + --- 0.108753 (0.69596), N = 115 moving right + --- 0.330033 (0.689997), N = 88 moving right + + -- best stat: 0.69596, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 11 14 7 5 + + + -- linear combo weights (showing up to 5) + + 2.4145 0.3577 -0.1120 1.5842 0.4261 + + + -- cutpoint (score) + --- -1.8208 (0.515529), N = 264 moving right + --- -1.35687 (0.663055), N = 185 moving right + --- -1.19581 (0.708307), N = 159 moving right + --- -0.731719 (0.74426), N = 105 moving right + --- 2.35546 (0.649284), N = 27 moving right + + -- best stat: 0.74426, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 3 2 16 5 + + + -- linear combo weights (showing up to 5) + + -0.4872 3.9703 -1.7476 -0.0204 1.4765 + + + -- cutpoint (score) + --- -1.94509 (0.59778), N = 213 moving right + --- -1.8931 (0.611729), N = 204 moving right + --- -1.4236 (0.7017), N = 128 moving right + --- -0.5506 (0.686593), N = 86 moving right + --- 2.65863 (0.583496), N = 16 moving right + + -- best stat: 0.7017, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 127 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 1 5 16 4 + + + -- linear combo weights (showing up to 5) + + 0.6933 0.3006 0.5320 0.5892 0.7209 + + + -- cutpoint (score) + --- -0.959678 (0.556289), N = 245 moving right + --- -0.401968 (0.651175), N = 180 moving right + --- 0.611144 (0.727544), N = 106 moving right + --- 1.02339 (0.716167), N = 75 moving right + --- 2.50941 (0.581492), N = 20 moving right + + -- best stat: 0.727544, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 15 13 1 10 + + + -- linear combo weights (showing up to 5) + + 1.9523 0.0127 0.5381 0.4995 -0.6148 + + + -- cutpoint (score) + --- -0.310398 (0.650331), N = 156 moving right + --- -0.150416 (0.648768), N = 138 moving right + --- -0.0465796 (0.665988), N = 119 moving right + --- 0.28454 (0.705633), N = 90 moving right + --- 2.53814 (0.545426), N = 10 moving right + + -- best stat: 0.705633, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 12 8 0 11 + + + -- linear combo weights (showing up to 5) + + -0.0046 -0.0174 1.3673 -0.2030 0.5304 + + + -- cutpoint (score) + --- -1.32784 (0.585792), N = 233 moving right + --- -1.28197 (0.600173), N = 226 moving right + --- -1.19784 (0.632041), N = 213 moving right + --- -0.157548 (0.728017), N = 88 moving right + --- 1.90964 (0.591923), N = 24 moving right + + -- best stat: 0.728017, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 4.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.4000e+02 9.8913e-01 1.0896e-02 + 1.9100e+02 9.7826e-01 2.1885e-02 + 1.9800e+02 9.6377e-01 3.6700e-02 + 2.1600e+02 9.5652e-01 4.4219e-02 + + +------------ Growing tree 128 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 5 13 14 17 + + + -- linear combo weights (showing up to 5) + + 0.5545 1.0979 0.5200 0.3733 0.5607 + + + -- cutpoint (score) + --- 0.641153 (0.584088), N = 237 moving right + --- 0.973349 (0.60754), N = 226 moving right + --- 1.28161 (0.648481), N = 198 moving right + --- 2.49007 (0.739626), N = 94 moving right + --- 2.51498 (0.743883), N = 92 moving right + + -- best stat: 0.743883, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 2 14 3 8 + + + -- linear combo weights (showing up to 5) + + 0.4079 -0.2222 -0.3394 6.5509 1.1410 + + + -- cutpoint (score) + --- -0.944443 (0.609439), N = 223 moving right + --- -0.818062 (0.636956), N = 201 moving right + --- -0.582794 (0.682807), N = 163 moving right + --- -0.417559 (0.720775), N = 144 moving right + --- 1.12822 (0.663113), N = 42 moving right + + -- best stat: 0.720775, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 5 8 3 14 + + + -- linear combo weights (showing up to 5) + + -0.0597 0.5853 1.0442 6.3966 -0.2621 + + + -- cutpoint (score) + --- -0.755913 (0.525773), N = 260 moving right + --- -0.572172 (0.561306), N = 241 moving right + --- -0.400801 (0.673583), N = 183 moving right + --- 0.747922 (0.723173), N = 68 moving right + --- 1.54615 (0.659929), N = 40 moving right + + -- best stat: 0.723173, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 4.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8551e-01 1.4532e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 129 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 13 15 11 9 + + + -- linear combo weights (showing up to 5) + + 0.8645 -0.1336 -0.0987 0.9438 0.6920 + + + -- cutpoint (score) + --- -0.603109 (0.641185), N = 190 moving right + --- -0.396232 (0.694265), N = 153 moving right + --- -0.380851 (0.695673), N = 151 moving right + --- 0.21151 (0.723102), N = 108 moving right + --- 3.3948 (0.512722), N = 6 moving right + + -- best stat: 0.723102, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 6 9 14 16 + + + -- linear combo weights (showing up to 5) + + 0.0929 0.1062 0.6769 0.3159 0.4202 + + + -- cutpoint (score) + --- -0.512428 (0.630264), N = 196 moving right + --- 0.269401 (0.673809), N = 67 moving right + --- 0.451301 (0.670876), N = 53 moving right + --- 0.513974 (0.656746), N = 50 moving right + --- 1.14337 (0.587505), N = 27 moving right + + -- best stat: 0.673809, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 15 0 6 8 + + + -- linear combo weights (showing up to 5) + + 0.5818 -0.1710 0.2035 -0.5457 1.9260 + + + -- cutpoint (score) + --- -0.958257 (0.624792), N = 193 moving right + --- -0.858603 (0.650443), N = 182 moving right + --- -0.800943 (0.670692), N = 173 moving right + --- -0.625469 (0.715968), N = 144 moving right + --- 3.88246 (0.594085), N = 15 moving right + + -- best stat: 0.715968, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 130 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 10 0 1 17 + + + -- linear combo weights (showing up to 5) + + 7.7587 -0.5320 -0.0339 0.4654 0.4405 + + + -- cutpoint (score) + --- -0.14487 (0.516299), N = 264 moving right + --- 0.484195 (0.608982), N = 216 moving right + --- 0.93285 (0.650716), N = 182 moving right + --- 2.68695 (0.614468), N = 39 moving right + --- 3.01745 (0.607108), N = 23 moving right + + -- best stat: 0.650716, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 15 7 12 5 + + + -- linear combo weights (showing up to 5) + + 0.5714 -0.0680 7.9029 0.0514 0.8828 + + + -- cutpoint (score) + --- -0.608549 (0.534847), N = 249 moving right + --- -0.556147 (0.539465), N = 247 moving right + --- 0.138575 (0.661431), N = 162 moving right + --- 0.571333 (0.676605), N = 96 moving right + --- 2.04438 (0.607502), N = 20 moving right + + -- best stat: 0.676605, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 13 6 14 2 + + + -- linear combo weights (showing up to 5) + + 8.4783 0.3934 1.2210 0.1728 -0.3731 + + + -- cutpoint (score) + --- -0.728513 (0.572161), N = 228 moving right + --- -0.343497 (0.654031), N = 138 moving right + --- -0.332822 (0.655866), N = 137 moving right + --- -0.0311832 (0.676763), N = 83 moving right + --- 0.395933 (0.64525), N = 51 moving right + + -- best stat: 0.676763, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 131 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 0 17 11 5 + + + -- linear combo weights (showing up to 5) + + 0.9393 -0.1501 0.3088 1.4752 0.6326 + + + -- cutpoint (score) + --- 0.0252811 (0.644373), N = 198 moving right + --- 0.495991 (0.694301), N = 162 moving right + --- 1.25678 (0.734218), N = 102 moving right + --- 2.97801 (0.643503), N = 35 moving right + --- 3.30909 (0.628933), N = 30 moving right + + -- best stat: 0.734218, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 10 2 13 14 + + + -- linear combo weights (showing up to 5) + + 2.0876 -0.5963 -0.9154 0.0483 -0.0819 + + + -- cutpoint (score) + --- -2.11367 (0.650259), N = 202 moving right + --- -2.08748 (0.661223), N = 197 moving right + --- -1.99698 (0.676497), N = 187 moving right + --- 1.05002 (0.669554), N = 39 moving right + --- 3.83948 (0.578155), N = 14 moving right + + -- best stat: 0.676497, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 4 8 14 17 + + + -- linear combo weights (showing up to 5) + + 0.3254 -0.0456 2.1194 -0.0275 0.4626 + + + -- cutpoint (score) + --- -0.432767 (0.559648), N = 246 moving right + --- 1.01828 (0.73658), N = 106 moving right + --- 3.1361 (0.671067), N = 37 moving right + --- 4.70904 (0.621617), N = 22 moving right + --- 8.07988 (0.556435), N = 11 moving right + + -- best stat: 0.73658, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.3100e+02 9.7101e-01 2.9238e-02 + 1.4000e+02 9.6739e-01 3.2970e-02 + 1.8600e+02 9.6377e-01 3.6715e-02 + + +------------ Growing tree 132 -------------- + +- N obs inbag: 276 +- N row inbag: 164 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 4 5 1 3 + + + -- linear combo weights (showing up to 5) + + 0.4874 0.2963 0.7984 0.2708 4.9206 + + + -- cutpoint (score) + --- 0.119703 (0.67639), N = 158 moving right + --- 0.325929 (0.735347), N = 125 moving right + --- 0.433739 (0.746045), N = 117 moving right + --- 0.743833 (0.723459), N = 78 moving right + --- 1.88082 (0.611307), N = 26 moving right + + -- best stat: 0.746045, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 17 9 0 12 + + + -- linear combo weights (showing up to 5) + + 0.3947 0.6866 0.4687 0.0335 0.0431 + + + -- cutpoint (score) + --- 0.993734 (0.560854), N = 247 moving right + --- 2.34975 (0.723574), N = 105 moving right + --- 2.41112 (0.729586), N = 101 moving right + --- 2.70311 (0.700439), N = 74 moving right + --- 4.3626 (0.50144), N = 6 moving right + + -- best stat: 0.729586, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 3 15 9 0 + + + -- linear combo weights (showing up to 5) + + 0.1808 5.2100 -0.3751 0.5322 0.0219 + + + -- cutpoint (score) + --- -0.334436 (0.596745), N = 212 moving right + --- -0.103304 (0.665143), N = 149 moving right + --- 0.0355373 (0.692415), N = 113 moving right + --- 2.58052 (0.601522), N = 23 moving right + --- 5.27407 (0.568169), N = 14 moving right + + -- best stat: 0.692415, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7464e-01 2.5588e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 133 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 5 3 14 4 + + + -- linear combo weights (showing up to 5) + + 1.3010 0.7840 10.1433 -0.1512 0.3127 + + + -- cutpoint (score) + --- -0.464924 (0.663674), N = 197 moving right + --- -0.294436 (0.721171), N = 165 moving right + --- -0.270516 (0.724164), N = 159 moving right + --- 0.0180641 (0.747439), N = 135 moving right + --- 1.27474 (0.652609), N = 39 moving right + + -- best stat: 0.747439, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 13 0 5 6 + + + -- linear combo weights (showing up to 5) + + 0.4829 0.3994 -0.4043 1.6569 0.6356 + + + -- cutpoint (score) + --- -0.0444966 (0.671105), N = 179 moving right + --- 0.034085 (0.675644), N = 171 moving right + --- 0.821927 (0.653673), N = 99 moving right + --- 1.16442 (0.66022), N = 85 moving right + --- 2.38993 (0.52902), N = 10 moving right + + -- best stat: 0.675644, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 6 15 0 11 + + + -- linear combo weights (showing up to 5) + + 11.2432 0.1087 0.0050 -0.3310 0.7110 + + + -- cutpoint (score) + --- -0.889448 (0.556332), N = 250 moving right + --- -0.851871 (0.56304), N = 244 moving right + --- -0.67221 (0.638631), N = 208 moving right + --- -0.369837 (0.682171), N = 144 moving right + --- -0.227953 (0.714705), N = 123 moving right + + -- best stat: 0.714705, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 134 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 6 12 2 16 + + + -- linear combo weights (showing up to 5) + + 0.9431 1.5113 0.0612 -0.3811 0.3189 + + + -- cutpoint (score) + --- -0.761252 (0.504088), N = 265 moving right + --- -0.685086 (0.523544), N = 248 moving right + --- -0.470823 (0.57233), N = 216 moving right + --- 0.284933 (0.658979), N = 136 moving right + --- 0.384528 (0.665374), N = 109 moving right + + -- best stat: 0.665374, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 9 16 11 8 + + + -- linear combo weights (showing up to 5) + + -0.0161 -0.3376 0.1778 0.8932 1.6264 + + + -- cutpoint (score) + --- -1.60532 (0.544404), N = 245 moving right + --- -1.4642 (0.580548), N = 226 moving right + --- -1.10654 (0.665772), N = 168 moving right + --- -0.822936 (0.698205), N = 134 moving right + --- 3.58406 (0.607552), N = 19 moving right + + -- best stat: 0.698205, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 17 14 6 7 + + + -- linear combo weights (showing up to 5) + + -0.0920 0.6054 0.3936 1.6010 6.2963 + + + -- cutpoint (score) + --- 1.05194 (0.585895), N = 234 moving right + --- 1.9429 (0.69049), N = 146 moving right + --- 2.0335 (0.710281), N = 133 moving right + --- 2.19766 (0.714768), N = 105 moving right + --- 8.72933 (0.574741), N = 13 moving right + + -- best stat: 0.714768, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 135 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 245 +- max leaves: 123 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 12 6 1 5 + + + -- linear combo weights (showing up to 5) + + -0.7939 0.0765 -0.3670 0.4801 1.2873 + + + -- cutpoint (score) + --- -1.58116 (0.53061), N = 261 moving right + --- 0.309058 (0.713295), N = 139 moving right + --- 0.352048 (0.716343), N = 136 moving right + --- 0.576569 (0.721486), N = 124 moving right + --- 1.79415 (0.642629), N = 44 moving right + + -- best stat: 0.721486, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 10 8 1 15 + + + -- linear combo weights (showing up to 5) + + -0.4129 -0.7514 1.2820 0.4344 -0.2113 + + + -- cutpoint (score) + --- -2.37183 (0.530267), N = 262 moving right + --- -1.60473 (0.6268), N = 215 moving right + --- -0.917435 (0.735486), N = 164 moving right + --- 0.227695 (0.763771), N = 88 moving right + --- 4.39632 (0.54901), N = 11 moving right + + -- best stat: 0.763771, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 11 3 12 2 + + + -- linear combo weights (showing up to 5) + + 0.3297 0.7167 5.1626 0.1581 0.1191 + + + -- cutpoint (score) + --- 0.624496 (0.6516), N = 202 moving right + --- 1.05314 (0.717867), N = 140 moving right + --- 1.27011 (0.712057), N = 115 moving right + --- 1.44745 (0.712971), N = 82 moving right + --- 2.00614 (0.656876), N = 49 moving right + + -- best stat: 0.717867, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.7826e-01 2.1886e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 136 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 5 10 8 13 + + + -- linear combo weights (showing up to 5) + + 0.5255 0.9252 -0.6249 1.8622 0.0083 + + + -- cutpoint (score) + --- -1.33418 (0.637985), N = 207 moving right + --- -0.483347 (0.740205), N = 142 moving right + --- -0.461427 (0.746618), N = 137 moving right + --- 0.44208 (0.75522), N = 80 moving right + --- 0.549255 (0.752222), N = 76 moving right + + -- best stat: 0.75522, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 1 9 5 14 + + + -- linear combo weights (showing up to 5) + + -0.3191 0.5270 0.3802 1.1671 0.5406 + + + -- cutpoint (score) + --- -0.736772 (0.586438), N = 234 moving right + --- -0.330258 (0.66817), N = 187 moving right + --- -0.188856 (0.687147), N = 170 moving right + --- -0.153012 (0.687081), N = 168 moving right + --- 0.544696 (0.690999), N = 88 moving right + + -- best stat: 0.690999, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 9 16 17 14 + + + -- linear combo weights (showing up to 5) + + 0.6063 0.4134 0.2832 0.6277 0.5579 + + + -- cutpoint (score) + --- 0.778863 (0.55969), N = 243 moving right + --- 1.591 (0.671212), N = 187 moving right + --- 2.40737 (0.694523), N = 103 moving right + --- 2.94709 (0.656481), N = 35 moving right + --- 3.93773 (0.554546), N = 11 moving right + + -- best stat: 0.694523, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7101e-01 2.9265e-02 + 1.7900e+02 9.6739e-01 3.2996e-02 + + +------------ Growing tree 137 -------------- + +- N obs inbag: 276 +- N row inbag: 163 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 6 7 13 16 + + + -- linear combo weights (showing up to 5) + + 7.7346 0.5747 10.9807 0.4357 0.2903 + + + -- cutpoint (score) + --- -0.369391 (0.632466), N = 196 moving right + --- 0.0185141 (0.691687), N = 131 moving right + --- 0.182383 (0.688146), N = 97 moving right + --- 0.715103 (0.598631), N = 40 moving right + --- 0.989154 (0.5826), N = 21 moving right + + -- best stat: 0.691687, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 11 15 0 17 + + + -- linear combo weights (showing up to 5) + + -0.0943 0.8647 0.0422 -0.1620 0.4166 + + + -- cutpoint (score) + --- 0.114016 (0.529671), N = 260 moving right + --- 1.11463 (0.692166), N = 115 moving right + --- 1.47278 (0.67946), N = 78 moving right + --- 1.92854 (0.623684), N = 33 moving right + --- 2.18361 (0.613036), N = 28 moving right + + -- best stat: 0.692166, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 11 13 14 15 + + + -- linear combo weights (showing up to 5) + + 2.0482 0.4137 -0.0500 -0.0952 -0.0717 + + + -- cutpoint (score) + --- -1.49291 (0.55044), N = 251 moving right + --- -0.974642 (0.707671), N = 155 moving right + --- -0.25143 (0.732939), N = 99 moving right + --- 5.20412 (0.55379), N = 9 moving right + --- 5.40408 (0.545344), N = 8 moving right + + -- best stat: 0.732939, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.7826e-01 2.1886e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9307e-02 + + +------------ Growing tree 138 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 11 6 17 4 + + + -- linear combo weights (showing up to 5) + + 1.2139 0.5140 0.7346 0.3357 0.1820 + + + -- cutpoint (score) + --- -0.111346 (0.602233), N = 230 moving right + --- 0.00967467 (0.639518), N = 214 moving right + --- 0.320617 (0.677264), N = 181 moving right + --- 0.649296 (0.729944), N = 148 moving right + --- 3.14505 (0.653189), N = 38 moving right + + -- best stat: 0.729944, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 14 1 10 4 + + + -- linear combo weights (showing up to 5) + + 0.4049 0.2753 0.1655 -0.7982 0.9370 + + + -- cutpoint (score) + --- 0.247851 (0.714589), N = 159 moving right + --- 0.560469 (0.712064), N = 135 moving right + --- 0.682672 (0.721325), N = 128 moving right + --- 0.856618 (0.718197), N = 105 moving right + --- 3.67223 (0.538648), N = 7 moving right + + -- best stat: 0.721325, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 4 5 13 0 + + + -- linear combo weights (showing up to 5) + + 4.3362 0.9139 0.8398 0.3243 0.1125 + + + -- cutpoint (score) + --- 0.0940677 (0.634226), N = 212 moving right + --- 0.821388 (0.659223), N = 142 moving right + --- 0.880684 (0.67127), N = 127 moving right + --- 1.08164 (0.673395), N = 108 moving right + --- 1.84984 (0.626589), N = 36 moving right + + -- best stat: 0.673395, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.4000e+02 9.7826e-01 2.1885e-02 + 1.7900e+02 9.7101e-01 2.9293e-02 + 1.8600e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 139 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 4 14 8 5 + + + -- linear combo weights (showing up to 5) + + 5.0031 0.2057 0.1986 1.4628 0.4828 + + + -- cutpoint (score) + --- -0.0776574 (0.737948), N = 105 moving right + --- 0.322558 (0.739607), N = 85 moving right + --- 0.81803 (0.693275), N = 56 moving right + --- 1.90651 (0.636856), N = 29 moving right + --- 1.97425 (0.640306), N = 27 moving right + + -- best stat: 0.739607, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 3 16 10 9 + + + -- linear combo weights (showing up to 5) + + 0.1277 1.6670 0.4836 -0.6016 0.2128 + + + -- cutpoint (score) + --- -0.552604 (0.62), N = 203 moving right + --- 0.0988785 (0.710437), N = 112 moving right + --- 0.363898 (0.730721), N = 82 moving right + --- 0.791861 (0.698013), N = 60 moving right + --- 2.62525 (0.577314), N = 17 moving right + + -- best stat: 0.730721, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 8 7 2 3 + + + -- linear combo weights (showing up to 5) + + 0.3469 1.5106 4.7602 -0.2721 1.5893 + + + -- cutpoint (score) + --- -1.35698 (0.552118), N = 243 moving right + --- -1.11456 (0.657773), N = 181 moving right + --- -0.60186 (0.752773), N = 118 moving right + --- -0.543854 (0.741921), N = 114 moving right + --- -0.193717 (0.716157), N = 90 moving right + + -- best stat: 0.752773, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 140 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 7 6 14 17 + + + -- linear combo weights (showing up to 5) + + -0.3917 19.5433 -0.0753 0.4777 0.5028 + + + -- cutpoint (score) + --- 0.266084 (0.540203), N = 249 moving right + --- 1.30664 (0.700875), N = 154 moving right + --- 1.61244 (0.668226), N = 116 moving right + --- 1.76941 (0.694279), N = 93 moving right + --- 3.20459 (0.621568), N = 20 moving right + + -- best stat: 0.700875, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 1 5 15 9 + + + -- linear combo weights (showing up to 5) + + 1.0752 0.4303 1.0320 -0.1546 0.6945 + + + -- cutpoint (score) + --- -0.668645 (0.548108), N = 244 moving right + --- -0.477919 (0.570303), N = 226 moving right + --- 0.0604799 (0.675429), N = 173 moving right + --- 0.0616071 (0.675686), N = 170 moving right + --- 1.30764 (0.720099), N = 77 moving right + + -- best stat: 0.720099, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 17 16 8 1 + + + -- linear combo weights (showing up to 5) + + -0.3026 0.2700 0.2242 2.7053 0.3106 + + + -- cutpoint (score) + --- -1.27596 (0.546471), N = 250 moving right + --- -0.906398 (0.642476), N = 199 moving right + --- -0.229721 (0.738084), N = 116 moving right + --- -0.182679 (0.742177), N = 113 moving right + --- 0.867806 (0.764091), N = 66 moving right + + -- best stat: 0.764091, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 141 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 0 14 6 12 + + + -- linear combo weights (showing up to 5) + + -0.7395 0.0466 0.1819 0.2913 -0.0873 + + + -- cutpoint (score) + --- -0.857541 (0.523505), N = 254 moving right + --- -0.279457 (0.602478), N = 183 moving right + --- -0.0518763 (0.636665), N = 145 moving right + --- 0.0634659 (0.642099), N = 124 moving right + --- 0.148925 (0.642716), N = 111 moving right + + -- best stat: 0.642716, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 14 2 3 8 + + + -- linear combo weights (showing up to 5) + + 0.0057 -0.2037 -0.5901 9.3532 1.9939 + + + -- cutpoint (score) + --- -1.61141 (0.597127), N = 218 moving right + --- -1.5972 (0.616268), N = 207 moving right + --- -1.17145 (0.745688), N = 128 moving right + --- -0.980231 (0.756864), N = 110 moving right + --- -0.676038 (0.746758), N = 90 moving right + + -- best stat: 0.756864, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 9 12 4 15 + + + -- linear combo weights (showing up to 5) + + 0.6945 0.5757 -0.0343 0.6834 -0.2467 + + + -- cutpoint (score) + --- -0.59564 (0.518833), N = 265 moving right + --- -0.311246 (0.550879), N = 238 moving right + --- 0.632429 (0.682522), N = 108 moving right + --- 1.58312 (0.56471), N = 18 moving right + --- 1.99443 (0.540897), N = 11 moving right + + -- best stat: 0.682522, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8188e-01 1.8208e-02 + 1.3100e+02 9.7826e-01 2.1898e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 142 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 15 17 6 1 + + + -- linear combo weights (showing up to 5) + + 0.4800 -0.2321 0.5254 0.3919 0.4758 + + + -- cutpoint (score) + --- 1.02199 (0.607991), N = 204 moving right + --- 1.13781 (0.6269), N = 190 moving right + --- 2.37596 (0.706508), N = 77 moving right + --- 2.82028 (0.620991), N = 35 moving right + --- 3.36378 (0.502404), N = 7 moving right + + -- best stat: 0.706508, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 9 8 0 17 + + + -- linear combo weights (showing up to 5) + + -0.5711 -0.1820 1.2776 -0.4275 0.5174 + + + -- cutpoint (score) + --- 0.404974 (0.623375), N = 220 moving right + --- 0.850013 (0.674009), N = 177 moving right + --- 0.881518 (0.673051), N = 175 moving right + --- 1.13754 (0.717287), N = 133 moving right + --- 2.84323 (0.652247), N = 45 moving right + + -- best stat: 0.717287, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 3 6 1 4 + + + -- linear combo weights (showing up to 5) + + -0.5718 3.9694 -0.2576 0.3481 0.6058 + + + -- cutpoint (score) + --- -0.0803273 (0.639594), N = 192 moving right + --- 0.387336 (0.695831), N = 133 moving right + --- 0.490166 (0.698969), N = 116 moving right + --- 0.575164 (0.709524), N = 104 moving right + --- 0.901366 (0.697767), N = 86 moving right + + -- best stat: 0.709524, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 143 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 6 4 5 8 + + + -- linear combo weights (showing up to 5) + + -0.3681 -0.0885 0.6280 0.0725 2.1959 + + + -- cutpoint (score) + --- -0.906385 (0.647498), N = 198 moving right + --- -0.58341 (0.687014), N = 167 moving right + --- -0.515795 (0.698632), N = 160 moving right + --- -0.0918144 (0.738771), N = 111 moving right + --- 0.478103 (0.711319), N = 74 moving right + + -- best stat: 0.738771, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 13 0 3 16 + + + -- linear combo weights (showing up to 5) + + 3.0829 0.6716 0.1894 8.4282 0.5676 + + + -- cutpoint (score) + --- -0.117142 (0.719945), N = 131 moving right + --- 0.0324215 (0.720333), N = 120 moving right + --- 0.412878 (0.708521), N = 77 moving right + --- 0.42647 (0.706248), N = 72 moving right + --- 9.40652 (0.59714), N = 16 moving right + + -- best stat: 0.720333, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 13 1 12 14 + + + -- linear combo weights (showing up to 5) + + -0.8015 0.8502 0.4620 0.2093 0.2385 + + + -- cutpoint (score) + --- -1.70736 (0.586202), N = 230 moving right + --- -1.57276 (0.61039), N = 215 moving right + --- -1.45791 (0.656979), N = 191 moving right + --- 0.0678499 (0.659912), N = 50 moving right + --- 0.533881 (0.599685), N = 28 moving right + + -- best stat: 0.659912, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.7826e-01 2.1898e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 144 -------------- + +- N obs inbag: 276 +- N row inbag: 187 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 15 0 17 9 + + + -- linear combo weights (showing up to 5) + + 1.4521 -0.0816 -0.2393 0.6549 0.3671 + + + -- cutpoint (score) + --- 1.42497 (0.623442), N = 209 moving right + --- 1.51723 (0.636152), N = 200 moving right + --- 1.73715 (0.709295), N = 161 moving right + --- 1.86629 (0.700933), N = 146 moving right + --- 1.91326 (0.703266), N = 143 moving right + + -- best stat: 0.709295, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 7 11 5 15 + + + -- linear combo weights (showing up to 5) + + 0.0727 3.5228 0.7564 1.0080 -0.0406 + + + -- cutpoint (score) + --- -0.614488 (0.582064), N = 231 moving right + --- -0.512352 (0.610806), N = 213 moving right + --- -0.0583296 (0.701418), N = 129 moving right + --- 0.150913 (0.722658), N = 116 moving right + --- 2.50149 (0.574935), N = 19 moving right + + -- best stat: 0.722658, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 3 11 8 17 + + + -- linear combo weights (showing up to 5) + + -0.1944 5.9721 0.2801 1.0324 0.4351 + + + -- cutpoint (score) + --- 0.299987 (0.629414), N = 214 moving right + --- 0.966093 (0.725644), N = 124 moving right + --- 1.40193 (0.748619), N = 82 moving right + --- 1.58439 (0.715118), N = 70 moving right + --- 7.07326 (0.559817), N = 11 moving right + + -- best stat: 0.748619, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 5.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 145 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 8 5 2 13 + + + -- linear combo weights (showing up to 5) + + 0.0410 1.8952 1.0200 -0.1221 -0.0517 + + + -- cutpoint (score) + --- -1.04168 (0.662175), N = 189 moving right + --- -0.627642 (0.714696), N = 142 moving right + --- -0.0494973 (0.728814), N = 101 moving right + --- 1.06094 (0.655806), N = 50 moving right + --- 1.6223 (0.624811), N = 36 moving right + + -- best stat: 0.728814, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 3 12 17 4 + + + -- linear combo weights (showing up to 5) + + 0.3715 5.7432 -0.0037 0.4236 0.3929 + + + -- cutpoint (score) + --- 0.844574 (0.553315), N = 254 moving right + --- 1.24011 (0.597955), N = 218 moving right + --- 1.66264 (0.677011), N = 137 moving right + --- 1.66307 (0.649871), N = 129 moving right + --- 1.66393 (0.650117), N = 124 moving right + + -- best stat: 0.677011, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 9 15 12 6 + + + -- linear combo weights (showing up to 5) + + 0.2910 0.3525 -0.1681 0.0005 0.9795 + + + -- cutpoint (score) + --- -0.378902 (0.584744), N = 225 moving right + --- -0.101739 (0.61419), N = 154 moving right + --- 0.191226 (0.628156), N = 90 moving right + --- 0.318768 (0.584366), N = 73 moving right + --- 0.411162 (0.576637), N = 64 moving right + + -- best stat: 0.628156, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 146 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 4 8 6 13 + + + -- linear combo weights (showing up to 5) + + -0.0755 0.3519 2.5371 -0.1876 -0.1726 + + + -- cutpoint (score) + --- -1.55746 (0.518555), N = 267 moving right + --- -1.00861 (0.649366), N = 169 moving right + --- -0.839859 (0.684809), N = 137 moving right + --- -0.713755 (0.699802), N = 122 moving right + --- -0.319845 (0.693804), N = 84 moving right + + -- best stat: 0.699802, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 6 16 8 12 + + + -- linear combo weights (showing up to 5) + + 0.2947 -0.4714 0.5605 2.1373 -0.1295 + + + -- cutpoint (score) + --- -1.36017 (0.650742), N = 174 moving right + --- -0.820271 (0.732448), N = 124 moving right + --- -0.0537307 (0.687424), N = 78 moving right + --- -0.00486889 (0.689002), N = 75 moving right + --- 5.23237 (0.543085), N = 5 moving right + + -- best stat: 0.732448, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 4 5 8 13 + + + -- linear combo weights (showing up to 5) + + 0.6224 -0.0502 -0.2272 2.5420 -0.1170 + + + -- cutpoint (score) + --- 0.21057 (0.573522), N = 234 moving right + --- 0.456133 (0.642783), N = 198 moving right + --- 0.660516 (0.66835), N = 171 moving right + --- 0.799586 (0.663593), N = 160 moving right + --- 1.1108 (0.689949), N = 121 moving right + + -- best stat: 0.689949, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.8600e+02 9.8913e-01 1.0909e-02 + 1.9100e+02 9.8551e-01 1.4572e-02 + 2.1600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 147 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 0 5 9 15 + + + -- linear combo weights (showing up to 5) + + 0.5265 -0.2357 0.9525 0.3918 -0.1891 + + + -- cutpoint (score) + --- 0.697019 (0.555762), N = 243 moving right + --- 1.33542 (0.651015), N = 170 moving right + --- 1.83794 (0.656149), N = 105 moving right + --- 2.47317 (0.627044), N = 52 moving right + --- 3.0716 (0.525334), N = 15 moving right + + -- best stat: 0.656149, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 13 7 10 + + + -- linear combo weights (showing up to 5) + + 0.4086 0.9231 0.1524 13.1160 -0.4663 + + + -- cutpoint (score) + --- 1.62273 (0.72747), N = 79 moving right + --- 1.65966 (0.729998), N = 77 moving right + --- 1.89659 (0.746663), N = 67 moving right + --- 3.25037 (0.624635), N = 24 moving right + --- 3.27144 (0.61334), N = 22 moving right + + -- best stat: 0.746663, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 5 12 0 14 + + + -- linear combo weights (showing up to 5) + + 0.2790 1.2396 0.0194 -0.0190 0.4344 + + + -- cutpoint (score) + --- -0.578872 (0.535661), N = 257 moving right + --- 0.289621 (0.637667), N = 117 moving right + --- 0.745603 (0.639622), N = 67 moving right + --- 1.0649 (0.577699), N = 38 moving right + --- 1.50646 (0.550608), N = 17 moving right + + -- best stat: 0.639622, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 148 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 14 12 10 9 + + + -- linear combo weights (showing up to 5) + + 0.0715 0.3673 0.1449 -0.7437 0.3429 + + + -- cutpoint (score) + --- -1.02653 (0.566351), N = 242 moving right + --- -0.583124 (0.592065), N = 202 moving right + --- -0.121444 (0.649503), N = 136 moving right + --- 0.130023 (0.676873), N = 109 moving right + --- 0.422003 (0.665427), N = 83 moving right + + -- best stat: 0.676873, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 4 6 0 + + + -- linear combo weights (showing up to 5) + + 0.3844 0.1530 0.8377 1.1958 0.1023 + + + -- cutpoint (score) + --- 0.737544 (0.697518), N = 115 moving right + --- 0.780961 (0.706042), N = 105 moving right + --- 0.954879 (0.663219), N = 83 moving right + --- 0.989308 (0.660643), N = 79 moving right + --- 1.22778 (0.621193), N = 59 moving right + + -- best stat: 0.706042, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 12 5 13 3 + + + -- linear combo weights (showing up to 5) + + 0.5019 0.2287 0.6016 0.4662 7.2500 + + + -- cutpoint (score) + --- -0.320777 (0.659417), N = 195 moving right + --- -0.185228 (0.665978), N = 184 moving right + --- 0.147219 (0.70686), N = 138 moving right + --- 0.482256 (0.703344), N = 93 moving right + --- 7.91558 (0.550856), N = 10 moving right + + -- best stat: 0.70686, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8188e-01 1.8208e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 149 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 13 4 1 12 + + + -- linear combo weights (showing up to 5) + + 1.9223 0.0256 0.8454 0.3060 0.1427 + + + -- cutpoint (score) + --- -1.19607 (0.569068), N = 235 moving right + --- -1.03797 (0.615297), N = 211 moving right + --- -0.15197 (0.77329), N = 130 moving right + --- 0.44175 (0.769384), N = 81 moving right + --- 6.44615 (0.548028), N = 7 moving right + + -- best stat: 0.77329, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 15 7 8 10 + + + -- linear combo weights (showing up to 5) + + 0.2864 0.0443 4.7548 1.8239 -0.4351 + + + -- cutpoint (score) + --- -1.58105 (0.54206), N = 242 moving right + --- -0.391308 (0.790337), N = 101 moving right + --- -0.0251598 (0.787902), N = 85 moving right + --- 2.71718 (0.644851), N = 26 moving right + --- 4.88769 (0.597942), N = 17 moving right + + -- best stat: 0.790337, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 5 15 14 3 + + + -- linear combo weights (showing up to 5) + + 0.0036 0.9394 -0.0118 0.2454 6.2307 + + + -- cutpoint (score) + --- 0.0870157 (0.635372), N = 126 moving right + --- 0.111743 (0.64292), N = 121 moving right + --- 0.112112 (0.639585), N = 120 moving right + --- 0.809143 (0.654812), N = 55 moving right + --- 7.30013 (0.538154), N = 6 moving right + + -- best stat: 0.654812, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8551e-01 1.4559e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 150 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 2 3 8 0 + + + -- linear combo weights (showing up to 5) + + 0.0562 0.2795 3.4875 1.9604 -0.1332 + + + -- cutpoint (score) + --- -1.07909 (0.524739), N = 262 moving right + --- -0.849132 (0.631152), N = 206 moving right + --- -0.827928 (0.654359), N = 194 moving right + --- -0.641431 (0.739709), N = 130 moving right + --- -0.29247 (0.759329), N = 103 moving right + + -- best stat: 0.759329, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 13 10 4 8 + + + -- linear combo weights (showing up to 5) + + 0.2788 0.0871 -0.5959 -0.2390 1.9586 + + + -- cutpoint (score) + --- -1.88594 (0.537425), N = 257 moving right + --- -1.41133 (0.603351), N = 220 moving right + --- -1.1611 (0.680038), N = 177 moving right + --- -0.85409 (0.733868), N = 145 moving right + --- 3.05964 (0.647535), N = 28 moving right + + -- best stat: 0.733868, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 17 14 3 12 + + + -- linear combo weights (showing up to 5) + + -0.0734 0.3572 0.6965 4.1544 0.0909 + + + -- cutpoint (score) + --- -0.0679774 (0.519402), N = 263 moving right + --- 1.25137 (0.688875), N = 104 moving right + --- 1.26792 (0.694847), N = 100 moving right + --- 1.47094 (0.684041), N = 89 moving right + --- 2.14589 (0.650182), N = 42 moving right + + -- best stat: 0.694847, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 3.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 151 -------------- + +- N obs inbag: 276 +- N row inbag: 164 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 3 17 4 13 + + + -- linear combo weights (showing up to 5) + + 10.0060 6.2686 0.1343 0.6447 0.4117 + + + -- cutpoint (score) + --- -0.171353 (0.544371), N = 254 moving right + --- 0.731627 (0.689492), N = 149 moving right + --- 0.979293 (0.718318), N = 106 moving right + --- 1.11431 (0.74018), N = 81 moving right + --- 1.87875 (0.654513), N = 28 moving right + + -- best stat: 0.74018, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 8 13 3 9 + + + -- linear combo weights (showing up to 5) + + 0.1999 1.4788 0.1147 8.5068 0.1578 + + + -- cutpoint (score) + --- -1.16214 (0.529357), N = 256 moving right + --- -1.03163 (0.607667), N = 213 moving right + --- 0.210551 (0.756975), N = 68 moving right + --- 10.0572 (0.57396), N = 12 moving right + --- 12.3399 (0.547633), N = 8 moving right + + -- best stat: 0.756975, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 12 11 3 17 + + + -- linear combo weights (showing up to 5) + + 0.1220 0.0882 0.8543 10.4809 0.2448 + + + -- cutpoint (score) + --- 0.127472 (0.614144), N = 216 moving right + --- 0.234459 (0.680077), N = 183 moving right + --- 0.406734 (0.71575), N = 158 moving right + --- 0.429241 (0.715634), N = 155 moving right + --- 11.9331 (0.552283), N = 9 moving right + + -- best stat: 0.71575, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.7464e-01 2.5522e-02 + 1.1000e+02 9.7101e-01 2.9239e-02 + 1.3100e+02 9.6014e-01 4.0433e-02 + 1.7900e+02 9.5652e-01 4.4207e-02 + + +------------ Growing tree 152 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 0 6 3 7 + + + -- linear combo weights (showing up to 5) + + 0.5597 -0.1013 0.4934 5.7732 7.3448 + + + -- cutpoint (score) + --- -0.101311 (0.573856), N = 221 moving right + --- 0.493369 (0.617868), N = 81 moving right + --- 0.951789 (0.6028), N = 25 moving right + --- 1.0531 (0.601442), N = 19 moving right + --- 6.82626 (0.590324), N = 15 moving right + + -- best stat: 0.617868, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 3 16 5 1 + + + -- linear combo weights (showing up to 5) + + -0.5359 5.6354 0.1942 0.6811 0.3039 + + + -- cutpoint (score) + --- -0.953076 (0.513939), N = 257 moving right + --- -0.178505 (0.658913), N = 172 moving right + --- 0.218628 (0.700104), N = 135 moving right + --- 0.695893 (0.678077), N = 77 moving right + --- 1.28434 (0.64046), N = 32 moving right + + -- best stat: 0.700104, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 9 10 16 6 + + + -- linear combo weights (showing up to 5) + + 0.1619 0.4334 -0.7316 0.4388 -0.0737 + + + -- cutpoint (score) + --- -1.46428 (0.511515), N = 259 moving right + --- -0.29006 (0.663532), N = 144 moving right + --- -0.106163 (0.685873), N = 125 moving right + --- 0.0609629 (0.694608), N = 110 moving right + --- 1.41798 (0.580606), N = 25 moving right + + -- best stat: 0.694608, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.1000e+02 9.9638e-01 3.6232e-03 + 1.4000e+02 9.8551e-01 1.4532e-02 + 1.7900e+02 9.7826e-01 2.1885e-02 + 1.9100e+02 9.7464e-01 2.5589e-02 + 1.9800e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 153 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 193 +- max leaves: 97 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 7 9 0 8 + + + -- linear combo weights (showing up to 5) + + -0.1199 3.2297 -0.0111 -0.0798 1.7060 + + + -- cutpoint (score) + --- -1.13295 (0.552162), N = 251 moving right + --- -1.02741 (0.602228), N = 221 moving right + --- -0.9054 (0.66072), N = 177 moving right + --- -0.751774 (0.715713), N = 145 moving right + --- 1.12998 (0.676028), N = 39 moving right + + -- best stat: 0.715713, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 0 2 15 3 + + + -- linear combo weights (showing up to 5) + + -0.8897 0.2044 -0.0592 -0.0143 9.4654 + + + -- cutpoint (score) + --- -0.463539 (0.594379), N = 213 moving right + --- -0.445735 (0.595599), N = 202 moving right + --- -0.370893 (0.612173), N = 191 moving right + --- -0.342405 (0.605681), N = 187 moving right + --- 0.844952 (0.68298), N = 50 moving right + + -- best stat: 0.68298, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 16 11 0 9 + + + -- linear combo weights (showing up to 5) + + 0.5998 0.5917 1.0988 0.0545 0.5009 + + + -- cutpoint (score) + --- -0.985781 (0.660835), N = 188 moving right + --- -0.679996 (0.724161), N = 142 moving right + --- -0.298871 (0.75404), N = 110 moving right + --- -0.0556345 (0.744211), N = 94 moving right + --- 1.82283 (0.615533), N = 34 moving right + + -- best stat: 0.75404, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 154 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 2 3 1 11 + + + -- linear combo weights (showing up to 5) + + 0.5982 -0.2173 5.1566 0.2995 0.4412 + + + -- cutpoint (score) + --- -0.404414 (0.645512), N = 188 moving right + --- -0.38667 (0.631889), N = 181 moving right + --- -0.0731176 (0.717812), N = 117 moving right + --- 0.313006 (0.691679), N = 66 moving right + --- 1.73405 (0.589462), N = 17 moving right + + -- best stat: 0.717812, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 8 4 9 12 + + + -- linear combo weights (showing up to 5) + + 0.0442 2.7420 0.5484 -0.1552 -0.0567 + + + -- cutpoint (score) + --- -1.36624 (0.635785), N = 204 moving right + --- -1.18568 (0.645423), N = 189 moving right + --- -1.13953 (0.660248), N = 181 moving right + --- -0.786258 (0.724156), N = 131 moving right + --- 1.62991 (0.658868), N = 41 moving right + + -- best stat: 0.724156, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 11 17 6 2 + + + -- linear combo weights (showing up to 5) + + 0.6921 0.4058 0.4910 1.8425 -0.5681 + + + -- cutpoint (score) + --- 0.481625 (0.670666), N = 182 moving right + --- 0.908589 (0.697868), N = 134 moving right + --- 1.85684 (0.631711), N = 51 moving right + --- 1.92937 (0.626124), N = 48 moving right + --- 3.28104 (0.541426), N = 6 moving right + + -- best stat: 0.697868, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9275e-01 7.2464e-03 + 1.7900e+02 9.8551e-01 1.4546e-02 + 1.9100e+02 9.8188e-01 1.8222e-02 + 1.9800e+02 9.7826e-01 2.1912e-02 + 2.1600e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 155 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 3 2 17 9 + + + -- linear combo weights (showing up to 5) + + -0.0859 9.3859 -0.9108 0.5288 0.6810 + + + -- cutpoint (score) + --- 0.278653 (0.630916), N = 208 moving right + --- 0.384411 (0.642499), N = 187 moving right + --- 0.436856 (0.660349), N = 179 moving right + --- 0.705048 (0.679885), N = 152 moving right + --- 1.67613 (0.639301), N = 50 moving right + + -- best stat: 0.679885, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 9 17 13 11 + + + -- linear combo weights (showing up to 5) + + 1.1890 0.0470 0.3411 0.1184 1.0142 + + + -- cutpoint (score) + --- -0.182439 (0.649112), N = 194 moving right + --- -0.120182 (0.667329), N = 187 moving right + --- 0.0979065 (0.699313), N = 165 moving right + --- 0.155596 (0.693327), N = 160 moving right + --- 0.270547 (0.701733), N = 157 moving right + + -- best stat: 0.701733, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 12 15 8 4 + + + -- linear combo weights (showing up to 5) + + 4.8709 0.0562 0.0133 1.6266 0.3908 + + + -- cutpoint (score) + --- -0.924551 (0.578856), N = 233 moving right + --- -0.37689 (0.70947), N = 133 moving right + --- -0.33393 (0.712128), N = 119 moving right + --- 0.759573 (0.663915), N = 60 moving right + --- 0.879651 (0.647966), N = 55 moving right + + -- best stat: 0.712128, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.3100e+02 9.9638e-01 3.6232e-03 + 1.7900e+02 9.9275e-01 7.2596e-03 + 1.8600e+02 9.8913e-01 1.0909e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 156 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 11 16 4 15 + + + -- linear combo weights (showing up to 5) + + 0.3690 0.7515 0.5887 0.2209 -0.0350 + + + -- cutpoint (score) + --- 0.313482 (0.626261), N = 211 moving right + --- 1.57053 (0.749733), N = 99 moving right + --- 1.86388 (0.732118), N = 78 moving right + --- 2.8139 (0.653946), N = 39 moving right + --- 3.37119 (0.540153), N = 15 moving right + + -- best stat: 0.749733, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 7 0 9 2 + + + -- linear combo weights (showing up to 5) + + -0.1192 12.1708 0.0633 0.3066 -0.8240 + + + -- cutpoint (score) + --- -1.10065 (0.522188), N = 267 moving right + --- -1.02128 (0.533529), N = 254 moving right + --- -1.01526 (0.542039), N = 248 moving right + --- -0.839921 (0.653535), N = 157 moving right + --- -0.729476 (0.680256), N = 102 moving right + + -- best stat: 0.680256, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 7 3 17 11 + + + -- linear combo weights (showing up to 5) + + 0.3564 10.9540 0.5343 0.4103 0.6845 + + + -- cutpoint (score) + --- 1.07656 (0.721906), N = 140 moving right + --- 1.08659 (0.72855), N = 137 moving right + --- 2.39816 (0.670187), N = 50 moving right + --- 2.39856 (0.672873), N = 49 moving right + --- 2.8952 (0.627615), N = 31 moving right + + -- best stat: 0.72855, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 157 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 10 5 15 16 + + + -- linear combo weights (showing up to 5) + + 0.1340 -0.7372 0.8458 -0.2084 0.9163 + + + -- cutpoint (score) + --- -0.0401216 (0.670408), N = 146 moving right + --- 0.289831 (0.699729), N = 122 moving right + --- 0.365673 (0.69369), N = 118 moving right + --- 0.711327 (0.729509), N = 91 moving right + --- 3.82527 (0.546956), N = 8 moving right + + -- best stat: 0.729509, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 16 14 2 9 + + + -- linear combo weights (showing up to 5) + + 0.2408 1.0519 0.2896 -0.3875 0.3663 + + + -- cutpoint (score) + --- -0.918542 (0.640541), N = 175 moving right + --- -0.483546 (0.684915), N = 138 moving right + --- -0.209344 (0.713514), N = 113 moving right + --- 0.189465 (0.703952), N = 74 moving right + --- 2.63161 (0.544156), N = 8 moving right + + -- best stat: 0.713514, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 0 6 17 4 + + + -- linear combo weights (showing up to 5) + + 1.0554 -0.7640 0.3114 0.5262 0.3040 + + + -- cutpoint (score) + --- 1.11846 (0.642948), N = 185 moving right + --- 1.36372 (0.658593), N = 168 moving right + --- 2.10469 (0.677498), N = 95 moving right + --- 2.17383 (0.680649), N = 81 moving right + --- 2.94526 (0.562361), N = 25 moving right + + -- best stat: 0.680649, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.1000e+02 9.9638e-01 3.6232e-03 + 1.4000e+02 9.8188e-01 1.8169e-02 + 1.9100e+02 9.7464e-01 2.5549e-02 + 2.1600e+02 9.7101e-01 2.9266e-02 + 2.2300e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 158 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 17 1 7 2 + + + -- linear combo weights (showing up to 5) + + 0.0242 0.4384 0.3842 7.6914 -0.3306 + + + -- cutpoint (score) + --- 0.431598 (0.579975), N = 237 moving right + --- 0.747998 (0.63549), N = 193 moving right + --- 1.19529 (0.697556), N = 110 moving right + --- 1.42219 (0.689998), N = 80 moving right + --- 1.89188 (0.62138), N = 35 moving right + + -- best stat: 0.697556, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 1 0 7 16 + + + -- linear combo weights (showing up to 5) + + 0.8091 0.3664 -0.2062 6.9072 0.7107 + + + -- cutpoint (score) + --- -0.381902 (0.614253), N = 206 moving right + --- -0.337637 (0.626515), N = 199 moving right + --- 0.866544 (0.708256), N = 78 moving right + --- 0.908328 (0.706428), N = 72 moving right + --- 0.968961 (0.716964), N = 68 moving right + + -- best stat: 0.716964, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 3 14 17 0 + + + -- linear combo weights (showing up to 5) + + 0.7103 8.9329 0.1257 0.4600 -0.0767 + + + -- cutpoint (score) + --- 0.829845 (0.586219), N = 237 moving right + --- 1.2051 (0.634134), N = 201 moving right + --- 1.32259 (0.670672), N = 171 moving right + --- 1.34378 (0.669234), N = 164 moving right + --- 1.36657 (0.666379), N = 157 moving right + + -- best stat: 0.670672, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 159 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 8 17 3 11 + + + -- linear combo weights (showing up to 5) + + 8.4819 1.4062 0.2539 3.7387 0.3480 + + + -- cutpoint (score) + --- 0.0987888 (0.717432), N = 154 moving right + --- 0.134876 (0.728954), N = 146 moving right + --- 1.56132 (0.715774), N = 58 moving right + --- 3.33989 (0.651169), N = 27 moving right + --- 5.50197 (0.614753), N = 19 moving right + + -- best stat: 0.728954, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 8 6 12 5 + + + -- linear combo weights (showing up to 5) + + 0.6254 1.7907 0.6384 -0.1318 0.4048 + + + -- cutpoint (score) + --- -1.09386 (0.654039), N = 187 moving right + --- -0.891304 (0.704677), N = 153 moving right + --- -0.809673 (0.7179), N = 142 moving right + --- -0.401919 (0.764711), N = 114 moving right + --- 2.89874 (0.597173), N = 20 moving right + + -- best stat: 0.764711, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 6 13 0 17 + + + -- linear combo weights (showing up to 5) + + 0.7959 1.1010 0.2164 -0.2681 0.4750 + + + -- cutpoint (score) + --- 1.78102 (0.655123), N = 153 moving right + --- 2.11815 (0.660544), N = 119 moving right + --- 2.39211 (0.689753), N = 80 moving right + --- 2.57641 (0.64577), N = 42 moving right + --- 2.82581 (0.583822), N = 23 moving right + + -- best stat: 0.689753, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 160 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 13 16 9 14 + + + -- linear combo weights (showing up to 5) + + -0.7411 0.4590 0.8966 0.0126 0.3806 + + + -- cutpoint (score) + --- -0.975005 (0.583172), N = 201 moving right + --- -0.775559 (0.63379), N = 180 moving right + --- -0.387267 (0.664896), N = 161 moving right + --- -0.281546 (0.687759), N = 145 moving right + --- 2.86281 (0.568608), N = 14 moving right + + -- best stat: 0.687759, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 14 0 2 12 + + + -- linear combo weights (showing up to 5) + + 0.3372 0.3261 -0.2445 -0.5351 0.0190 + + + -- cutpoint (score) + --- -0.936304 (0.562916), N = 206 moving right + --- -0.851161 (0.592994), N = 187 moving right + --- -0.514223 (0.610394), N = 100 moving right + --- -0.347021 (0.6083), N = 73 moving right + --- 0.869764 (0.518047), N = 10 moving right + + -- best stat: 0.610394, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 17 2 7 13 + + + -- linear combo weights (showing up to 5) + + -0.4162 0.3854 -0.5242 9.1022 0.2938 + + + -- cutpoint (score) + --- 0.213114 (0.594137), N = 205 moving right + --- 0.336876 (0.611536), N = 194 moving right + --- 0.590791 (0.660727), N = 166 moving right + --- 0.650579 (0.677822), N = 155 moving right + --- 0.754697 (0.693984), N = 142 moving right + + -- best stat: 0.693984, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.7826e-01 2.1859e-02 + 1.3100e+02 9.7464e-01 2.5562e-02 + 1.4000e+02 9.6377e-01 3.6715e-02 + 1.8600e+02 9.6014e-01 4.0474e-02 + + +------------ Growing tree 161 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 10 17 6 3 + + + -- linear combo weights (showing up to 5) + + 1.1116 -0.4610 0.3683 -0.1068 5.6203 + + + -- cutpoint (score) + --- -0.102838 (0.592757), N = 224 moving right + --- -0.0689861 (0.611196), N = 217 moving right + --- 0.212422 (0.679174), N = 178 moving right + --- 0.589592 (0.710838), N = 149 moving right + --- 1.4478 (0.705987), N = 78 moving right + + -- best stat: 0.710838, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 9 15 17 2 + + + -- linear combo weights (showing up to 5) + + 0.6387 0.5317 -0.1260 0.5427 -0.5277 + + + -- cutpoint (score) + --- 0.743265 (0.627078), N = 207 moving right + --- 1.61787 (0.700572), N = 119 moving right + --- 2.53972 (0.564918), N = 34 moving right + --- 2.62293 (0.570917), N = 31 moving right + --- 2.71963 (0.546781), N = 18 moving right + + -- best stat: 0.700572, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 3 13 15 7 + + + -- linear combo weights (showing up to 5) + + 0.9015 5.9386 0.5000 -0.0377 4.2765 + + + -- cutpoint (score) + --- -0.502026 (0.542695), N = 246 moving right + --- -0.493503 (0.5497), N = 244 moving right + --- -0.308127 (0.596441), N = 221 moving right + --- -0.176511 (0.601373), N = 200 moving right + --- 0.555587 (0.721627), N = 122 moving right + + -- best stat: 0.721627, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 162 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 16 15 14 5 + + + -- linear combo weights (showing up to 5) + + 0.3955 0.7526 -0.2093 0.1972 0.5832 + + + -- cutpoint (score) + --- -0.86338 (0.584908), N = 225 moving right + --- -0.548324 (0.61959), N = 197 moving right + --- -0.387458 (0.646459), N = 173 moving right + --- -0.0653432 (0.68694), N = 137 moving right + --- 0.589592 (0.663464), N = 86 moving right + + -- best stat: 0.68694, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 10 7 4 0 + + + -- linear combo weights (showing up to 5) + + 0.4333 -0.5565 7.7555 0.4700 0.1462 + + + -- cutpoint (score) + --- -0.590308 (0.573052), N = 227 moving right + --- -0.441895 (0.584238), N = 205 moving right + --- -0.408544 (0.582758), N = 203 moving right + --- 0.179454 (0.673979), N = 139 moving right + --- 0.878715 (0.708325), N = 69 moving right + + -- best stat: 0.708325, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 4 13 16 10 + + + -- linear combo weights (showing up to 5) + + 0.3878 0.4121 0.3423 0.7505 -0.6513 + + + -- cutpoint (score) + --- -1.45914 (0.539751), N = 246 moving right + --- -0.892189 (0.60578), N = 204 moving right + --- 1.84387 (0.636122), N = 32 moving right + --- 2.40168 (0.578714), N = 19 moving right + --- 3.09327 (0.548945), N = 9 moving right + + -- best stat: 0.636122, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7464e-01 2.5589e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 163 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 9 14 10 13 + + + -- linear combo weights (showing up to 5) + + -0.3458 0.0464 0.4349 -0.7858 0.2749 + + + -- cutpoint (score) + --- -1.47421 (0.560963), N = 236 moving right + --- -1.056 (0.604174), N = 206 moving right + --- -1.03471 (0.608549), N = 204 moving right + --- -0.781874 (0.624463), N = 172 moving right + --- 0.389521 (0.650792), N = 58 moving right + + -- best stat: 0.650792, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 9 0 15 12 + + + -- linear combo weights (showing up to 5) + + 0.6448 0.5918 0.1544 -0.2238 0.1717 + + + -- cutpoint (score) + --- -0.289082 (0.666938), N = 151 moving right + --- 0.395591 (0.670306), N = 80 moving right + --- 0.483572 (0.65569), N = 67 moving right + --- 0.688567 (0.643222), N = 55 moving right + --- 0.746456 (0.63149), N = 46 moving right + + -- best stat: 0.670306, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 7 3 0 17 + + + -- linear combo weights (showing up to 5) + + 0.5909 4.0988 8.1615 -0.1355 0.2406 + + + -- cutpoint (score) + --- 0.345718 (0.569482), N = 239 moving right + --- 0.721815 (0.666144), N = 155 moving right + --- 1.55328 (0.619391), N = 23 moving right + --- 13.0873 (0.588706), N = 14 moving right + --- 13.6782 (0.534731), N = 5 moving right + + -- best stat: 0.666144, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 164 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 2 1 15 8 + + + -- linear combo weights (showing up to 5) + + -0.0418 0.2093 0.4313 -0.1741 1.6568 + + + -- cutpoint (score) + --- -0.774208 (0.622907), N = 207 moving right + --- -0.663008 (0.647484), N = 191 moving right + --- -0.230734 (0.781004), N = 127 moving right + --- 1.85318 (0.653764), N = 39 moving right + --- 2.81934 (0.624456), N = 27 moving right + + -- best stat: 0.781004, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 14 1 6 5 + + + -- linear combo weights (showing up to 5) + + 0.4506 0.4024 0.3691 1.9774 0.9599 + + + -- cutpoint (score) + --- -0.310479 (0.60731), N = 209 moving right + --- -0.0558706 (0.661238), N = 159 moving right + --- 0.137913 (0.706352), N = 138 moving right + --- 0.286236 (0.735765), N = 120 moving right + --- 3.78358 (0.51949), N = 5 moving right + + -- best stat: 0.735765, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 14 5 2 11 + + + -- linear combo weights (showing up to 5) + + 7.3247 0.3641 0.5217 0.6610 0.6507 + + + -- cutpoint (score) + --- 0.175536 (0.641706), N = 189 moving right + --- 0.18529 (0.646583), N = 187 moving right + --- 0.324147 (0.702416), N = 157 moving right + --- 0.354035 (0.703651), N = 155 moving right + --- 1.35354 (0.700929), N = 67 moving right + + -- best stat: 0.703651, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7464e-01 2.5588e-02 + 1.1000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 165 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 16 5 1 14 + + + -- linear combo weights (showing up to 5) + + 0.6618 0.4515 1.2622 0.6964 0.3196 + + + -- cutpoint (score) + --- 0.401681 (0.705111), N = 116 moving right + --- 0.445648 (0.706118), N = 115 moving right + --- 1.222 (0.673272), N = 57 moving right + --- 2.24986 (0.597894), N = 27 moving right + --- 2.67872 (0.553911), N = 14 moving right + + -- best stat: 0.706118, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 13 16 5 2 + + + -- linear combo weights (showing up to 5) + + 1.8450 0.1667 0.4313 0.2279 0.1761 + + + -- cutpoint (score) + --- -1.32346 (0.54938), N = 252 moving right + --- -1.25467 (0.571129), N = 233 moving right + --- -1.00966 (0.627316), N = 201 moving right + --- -0.889974 (0.660283), N = 183 moving right + --- 1.9036 (0.650153), N = 30 moving right + + -- best stat: 0.660283, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 7 16 13 15 + + + -- linear combo weights (showing up to 5) + + 0.1159 6.1872 0.4857 0.4769 0.0264 + + + -- cutpoint (score) + --- -0.690521 (0.539653), N = 251 moving right + --- -0.672719 (0.534618), N = 247 moving right + --- 0.0602305 (0.66131), N = 132 moving right + --- 0.985963 (0.61046), N = 34 moving right + --- 1.12629 (0.590644), N = 28 moving right + + -- best stat: 0.66131, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 1.1000e+02 9.7464e-01 2.5562e-02 + 1.3100e+02 9.7101e-01 2.9279e-02 + 1.8600e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 166 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 17 11 13 5 + + + -- linear combo weights (showing up to 5) + + 7.8873 0.4613 0.4300 0.3088 0.1981 + + + -- cutpoint (score) + --- 0.729107 (0.588869), N = 228 moving right + --- 1.22804 (0.659015), N = 175 moving right + --- 1.3715 (0.691156), N = 150 moving right + --- 1.5377 (0.742496), N = 122 moving right + --- 10.2477 (0.549936), N = 10 moving right + + -- best stat: 0.742496, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 2 13 0 12 + + + -- linear combo weights (showing up to 5) + + 0.7173 -0.0165 0.2311 -0.1814 -0.0019 + + + -- cutpoint (score) + --- -0.570865 (0.636142), N = 192 moving right + --- -0.233574 (0.67877), N = 131 moving right + --- 0.488949 (0.652719), N = 59 moving right + --- 0.57886 (0.651336), N = 53 moving right + --- 0.998711 (0.578981), N = 34 moving right + + -- best stat: 0.67877, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 14 4 16 12 + + + -- linear combo weights (showing up to 5) + + -0.3872 0.4888 0.4922 0.5876 0.0856 + + + -- cutpoint (score) + --- -1.2628 (0.506771), N = 264 moving right + --- -1.02874 (0.501259), N = 256 moving right + --- -0.385339 (0.591677), N = 203 moving right + --- 0.458053 (0.682404), N = 94 moving right + --- 0.773424 (0.693407), N = 69 moving right + + -- best stat: 0.693407, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 167 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 15 10 2 17 + + + -- linear combo weights (showing up to 5) + + 0.0746 -0.0472 -0.5684 -0.1351 0.5713 + + + -- cutpoint (score) + --- 1.16686 (0.601824), N = 200 moving right + --- 1.4323 (0.64122), N = 162 moving right + --- 1.9862 (0.636558), N = 87 moving right + --- 2.44098 (0.663948), N = 50 moving right + --- 3.10919 (0.572828), N = 14 moving right + + -- best stat: 0.663948, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 14 16 5 10 + + + -- linear combo weights (showing up to 5) + + 0.3470 0.4033 0.7024 0.4011 -0.5223 + + + -- cutpoint (score) + --- 0.627943 (0.649016), N = 173 moving right + --- 0.673878 (0.662344), N = 167 moving right + --- 0.820874 (0.680202), N = 148 moving right + --- 1.32146 (0.703383), N = 109 moving right + --- 2.64653 (0.650527), N = 40 moving right + + -- best stat: 0.703383, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 11 10 4 15 + + + -- linear combo weights (showing up to 5) + + 1.4593 0.1873 -0.4149 0.0475 -0.1428 + + + -- cutpoint (score) + --- -1.01885 (0.608204), N = 210 moving right + --- -0.601685 (0.693831), N = 155 moving right + --- -0.473256 (0.727715), N = 137 moving right + --- -0.0529648 (0.713992), N = 99 moving right + --- 1.80447 (0.62055), N = 34 moving right + + -- best stat: 0.727715, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 168 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 2 15 8 3 + + + -- linear combo weights (showing up to 5) + + -0.0466 -1.5065 -0.1280 1.3335 3.3577 + + + -- cutpoint (score) + --- -2.43422 (0.523638), N = 265 moving right + --- -2.13934 (0.673473), N = 185 moving right + --- -1.8134 (0.763617), N = 140 moving right + --- -1.79051 (0.765874), N = 135 moving right + --- -0.0357491 (0.658279), N = 47 moving right + + -- best stat: 0.765874, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 6 4 14 12 + + + -- linear combo weights (showing up to 5) + + 0.9791 0.8096 0.7359 0.3938 0.0468 + + + -- cutpoint (score) + --- -0.517797 (0.590248), N = 224 moving right + --- -0.256103 (0.639761), N = 195 moving right + --- -0.206502 (0.653409), N = 189 moving right + --- 0.682214 (0.730615), N = 107 moving right + --- 2.41955 (0.591314), N = 17 moving right + + -- best stat: 0.730615, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 7 3 13 16 + + + -- linear combo weights (showing up to 5) + + -1.3636 2.2033 2.8274 0.2622 0.7722 + + + -- cutpoint (score) + --- -1.54675 (0.684341), N = 150 moving right + --- -1.50558 (0.696986), N = 143 moving right + --- -1.15638 (0.712682), N = 116 moving right + --- -1.01067 (0.704071), N = 105 moving right + --- -0.769555 (0.709443), N = 88 moving right + + -- best stat: 0.712682, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.8600e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 169 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 0 10 7 17 + + + -- linear combo weights (showing up to 5) + + 0.6837 -0.0944 -0.5422 5.8702 0.5452 + + + -- cutpoint (score) + --- 0.148566 (0.508602), N = 271 moving right + --- 0.241709 (0.519657), N = 266 moving right + --- 0.710508 (0.561603), N = 245 moving right + --- 1.54707 (0.675443), N = 147 moving right + --- 8.67569 (0.555533), N = 7 moving right + + -- best stat: 0.675443, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 10 3 1 0 + + + -- linear combo weights (showing up to 5) + + 1.4522 -0.3927 8.5176 0.5630 0.2102 + + + -- cutpoint (score) + --- -0.0390485 (0.636592), N = 184 moving right + --- 0.847177 (0.698456), N = 98 moving right + --- 0.927816 (0.675162), N = 91 moving right + --- 1.98072 (0.635225), N = 28 moving right + --- 2.04333 (0.63828), N = 24 moving right + + -- best stat: 0.698456, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 9 15 11 2 + + + -- linear combo weights (showing up to 5) + + 5.2240 0.4762 -0.0638 1.2039 -0.2797 + + + -- cutpoint (score) + --- -1.5794 (0.546529), N = 253 moving right + --- -1.27936 (0.619287), N = 214 moving right + --- -0.919625 (0.704466), N = 164 moving right + --- 0.105675 (0.703883), N = 83 moving right + --- 0.533455 (0.68702), N = 66 moving right + + -- best stat: 0.704466, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 170 -------------- + +- N obs inbag: 276 +- N row inbag: 184 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 10 6 5 4 + + + -- linear combo weights (showing up to 5) + + 2.0873 -0.4238 0.7009 0.7407 -0.1466 + + + -- cutpoint (score) + --- -1.76005 (0.523151), N = 260 moving right + --- -1.50877 (0.549029), N = 241 moving right + --- -1.43198 (0.567589), N = 234 moving right + --- -1.34821 (0.583265), N = 228 moving right + --- 0.048615 (0.727624), N = 97 moving right + + -- best stat: 0.727624, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 1 4 17 15 + + + -- linear combo weights (showing up to 5) + + 8.5395 0.2882 0.2462 0.4179 0.0691 + + + -- cutpoint (score) + --- 0.906884 (0.588856), N = 223 moving right + --- 0.963237 (0.595213), N = 221 moving right + --- 0.991363 (0.602786), N = 213 moving right + --- 1.58069 (0.68507), N = 106 moving right + --- 1.70187 (0.668766), N = 87 moving right + + -- best stat: 0.68507, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 0 15 11 8 + + + -- linear combo weights (showing up to 5) + + -0.2937 -0.0531 -0.1077 0.4746 2.2994 + + + -- cutpoint (score) + --- -1.24411 (0.676849), N = 177 moving right + --- -1.19416 (0.69019), N = 169 moving right + --- -1.19007 (0.694683), N = 166 moving right + --- 0.395751 (0.672984), N = 54 moving right + --- 3.60011 (0.623877), N = 22 moving right + + -- best stat: 0.694683, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 171 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 15 16 1 14 + + + -- linear combo weights (showing up to 5) + + -0.5565 -0.1721 1.1117 0.3372 0.1975 + + + -- cutpoint (score) + --- -1.28377 (0.612685), N = 202 moving right + --- -0.504118 (0.663645), N = 121 moving right + --- -0.378986 (0.676425), N = 114 moving right + --- 0.830959 (0.676783), N = 37 moving right + --- 0.93182 (0.628038), N = 25 moving right + + -- best stat: 0.676783, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 11 15 8 17 + + + -- linear combo weights (showing up to 5) + + -0.5496 0.2053 -0.0892 2.5667 0.3464 + + + -- cutpoint (score) + --- 1.31991 (0.724699), N = 71 moving right + --- 2.8065 (0.669576), N = 39 moving right + --- 3.70753 (0.637572), N = 26 moving right + --- 5.03786 (0.620899), N = 19 moving right + --- 9.84796 (0.548767), N = 7 moving right + + -- best stat: 0.724699, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 13 10 6 4 + + + -- linear combo weights (showing up to 5) + + -0.0859 0.3680 -0.7349 0.5766 0.6254 + + + -- cutpoint (score) + --- -1.41738 (0.515622), N = 267 moving right + --- -1.22011 (0.529274), N = 262 moving right + --- -0.411119 (0.592073), N = 211 moving right + --- -0.334364 (0.608276), N = 204 moving right + --- -0.102162 (0.618124), N = 185 moving right + + -- best stat: 0.618124, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.3100e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 172 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 7 1 13 4 + + + -- linear combo weights (showing up to 5) + + -0.1210 3.2575 0.6672 0.6463 0.2169 + + + -- cutpoint (score) + --- 0.0256039 (0.678947), N = 162 moving right + --- 0.572848 (0.688795), N = 94 moving right + --- 0.644882 (0.68227), N = 85 moving right + --- 0.763422 (0.689386), N = 75 moving right + --- 1.36844 (0.614092), N = 36 moving right + + -- best stat: 0.689386, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 9 17 0 4 + + + -- linear combo weights (showing up to 5) + + -0.2896 0.4727 0.6899 -0.0813 -0.0629 + + + -- cutpoint (score) + --- 1.42513 (0.608057), N = 203 moving right + --- 1.57782 (0.675155), N = 166 moving right + --- 1.76236 (0.688978), N = 132 moving right + --- 2.09572 (0.637804), N = 94 moving right + --- 2.30315 (0.597496), N = 53 moving right + + -- best stat: 0.688978, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 1 0 9 2 + + + -- linear combo weights (showing up to 5) + + 6.1990 0.4871 0.0753 0.6140 -0.0028 + + + -- cutpoint (score) + --- -0.461943 (0.572541), N = 219 moving right + --- -0.181169 (0.622023), N = 179 moving right + --- 0.256861 (0.699254), N = 85 moving right + --- 0.317634 (0.681761), N = 72 moving right + --- 6.61908 (0.533967), N = 8 moving right + + -- best stat: 0.699254, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.7464e-01 2.5575e-02 + 1.1000e+02 9.6739e-01 3.3010e-02 + 1.3100e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 173 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 16 6 12 3 + + + -- linear combo weights (showing up to 5) + + 11.9527 0.3971 -0.1251 0.1061 7.2599 + + + -- cutpoint (score) + --- -0.321899 (0.612758), N = 200 moving right + --- -0.00170892 (0.633322), N = 133 moving right + --- 0.0208119 (0.636214), N = 116 moving right + --- 0.68423 (0.61038), N = 19 moving right + --- 7.18067 (0.598363), N = 14 moving right + + -- best stat: 0.636214, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 8 11 12 4 + + + -- linear combo weights (showing up to 5) + + 0.2664 1.8579 0.2887 -0.0526 -0.0101 + + + -- cutpoint (score) + --- -1.31134 (0.547811), N = 246 moving right + --- -1.1086 (0.62651), N = 206 moving right + --- -0.960407 (0.659712), N = 172 moving right + --- 0.386806 (0.687366), N = 62 moving right + --- 0.387458 (0.690301), N = 61 moving right + + -- best stat: 0.690301, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 15 6 0 12 + + + -- linear combo weights (showing up to 5) + + 0.4274 -0.0544 0.3249 -0.3460 0.0303 + + + -- cutpoint (score) + --- -0.787582 (0.500878), N = 269 moving right + --- -0.766015 (0.50452), N = 268 moving right + --- -0.300757 (0.573708), N = 162 moving right + --- -0.0331715 (0.597678), N = 71 moving right + --- 0.214113 (0.573965), N = 40 moving right + + -- best stat: 0.597678, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 174 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 4 2 14 0 + + + -- linear combo weights (showing up to 5) + + 0.7436 0.6162 0.2709 0.2110 -0.0404 + + + -- cutpoint (score) + --- -0.542089 (0.536027), N = 252 moving right + --- 0.258669 (0.659157), N = 155 moving right + --- 0.296529 (0.674061), N = 147 moving right + --- 0.880764 (0.663724), N = 75 moving right + --- 2.24542 (0.53458), N = 14 moving right + + -- best stat: 0.674061, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 7 16 9 3 + + + -- linear combo weights (showing up to 5) + + -0.5888 14.7157 0.5425 0.6022 -0.2125 + + + -- cutpoint (score) + --- -1.43787 (0.525078), N = 262 moving right + --- -1.07685 (0.540921), N = 244 moving right + --- -0.661581 (0.624455), N = 197 moving right + --- 0.104578 (0.716654), N = 101 moving right + --- 0.387994 (0.709212), N = 76 moving right + + -- best stat: 0.716654, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 13 3 11 10 + + + -- linear combo weights (showing up to 5) + + 0.5078 0.2538 2.4685 0.5137 -0.4822 + + + -- cutpoint (score) + --- -1.4384 (0.521674), N = 262 moving right + --- -0.561222 (0.655609), N = 173 moving right + --- -0.146061 (0.721669), N = 129 moving right + --- -0.0038131 (0.724565), N = 116 moving right + --- 0.566 (0.71435), N = 65 moving right + + -- best stat: 0.724565, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 175 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 255 +- max leaves: 128 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 4 6 17 13 + + + -- linear combo weights (showing up to 5) + + -0.0111 0.3862 0.3789 0.4197 0.5170 + + + -- cutpoint (score) + --- 0.98937 (0.638018), N = 200 moving right + --- 1.6177 (0.678066), N = 128 moving right + --- 1.98417 (0.702752), N = 82 moving right + --- 2.19389 (0.636753), N = 60 moving right + --- 2.37161 (0.576832), N = 33 moving right + + -- best stat: 0.702752, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 16 13 4 15 + + + -- linear combo weights (showing up to 5) + + 0.4752 0.4097 0.4835 0.5337 -0.1198 + + + -- cutpoint (score) + --- 0.260013 (0.68671), N = 133 moving right + --- 0.417581 (0.699713), N = 116 moving right + --- 0.478318 (0.701789), N = 105 moving right + --- 0.563916 (0.697656), N = 98 moving right + --- 1.34574 (0.623127), N = 43 moving right + + -- best stat: 0.701789, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 12 7 2 14 + + + -- linear combo weights (showing up to 5) + + -0.0428 0.1753 5.5439 -0.3518 0.5241 + + + -- cutpoint (score) + --- -0.818289 (0.552995), N = 236 moving right + --- -0.797269 (0.566602), N = 228 moving right + --- -0.587282 (0.58959), N = 179 moving right + --- -0.216199 (0.619881), N = 105 moving right + --- -0.061518 (0.627505), N = 88 moving right + + -- best stat: 0.627505, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 176 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 9 14 10 8 + + + -- linear combo weights (showing up to 5) + + 0.4434 -0.1597 -0.0180 -0.4755 1.6344 + + + -- cutpoint (score) + --- -1.33442 (0.538281), N = 247 moving right + --- -0.785806 (0.662046), N = 178 moving right + --- -0.681387 (0.688965), N = 165 moving right + --- 0.571746 (0.710823), N = 69 moving right + --- 7.5832 (0.518097), N = 5 moving right + + -- best stat: 0.710823, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 5 1 12 2 + + + -- linear combo weights (showing up to 5) + + -0.0926 0.8780 0.4053 0.1898 -0.3523 + + + -- cutpoint (score) + --- -0.873439 (0.525856), N = 245 moving right + --- -0.690281 (0.55049), N = 228 moving right + --- 0.198076 (0.658698), N = 86 moving right + --- 0.486228 (0.641586), N = 64 moving right + --- 0.570792 (0.622051), N = 51 moving right + + -- best stat: 0.658698, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 10 5 15 0 + + + -- linear combo weights (showing up to 5) + + 0.1015 -0.7459 0.8083 -0.0948 -0.0347 + + + -- cutpoint (score) + --- -0.356491 (0.605982), N = 194 moving right + --- -0.246265 (0.623114), N = 179 moving right + --- 0.155821 (0.644795), N = 132 moving right + --- 0.19014 (0.653361), N = 124 moving right + --- 1.29756 (0.628943), N = 32 moving right + + -- best stat: 0.653361, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.7900e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 177 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 4 9 16 1 + + + -- linear combo weights (showing up to 5) + + 0.8970 0.7437 0.3275 0.3951 0.3836 + + + -- cutpoint (score) + --- 0.0879492 (0.672117), N = 191 moving right + --- 0.28294 (0.698122), N = 176 moving right + --- 0.803101 (0.747577), N = 119 moving right + --- 0.92161 (0.751277), N = 107 moving right + --- 1.37148 (0.66729), N = 71 moving right + + -- best stat: 0.751277, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 12 4 14 7 + + + -- linear combo weights (showing up to 5) + + -0.3457 0.0659 1.0698 0.3724 12.2261 + + + -- cutpoint (score) + --- -0.555861 (0.530671), N = 256 moving right + --- -0.406901 (0.570552), N = 234 moving right + --- 0.0292667 (0.640562), N = 182 moving right + --- 0.849383 (0.664776), N = 90 moving right + --- 1.07704 (0.632034), N = 59 moving right + + -- best stat: 0.664776, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 2 4 16 3 + + + -- linear combo weights (showing up to 5) + + -0.2905 0.1027 0.9812 0.3445 8.1862 + + + -- cutpoint (score) + --- -0.148593 (0.586964), N = 216 moving right + --- 1.07155 (0.698182), N = 65 moving right + --- 1.17428 (0.697357), N = 51 moving right + --- 1.1913 (0.68706), N = 49 moving right + --- 1.3793 (0.650376), N = 37 moving right + + -- best stat: 0.698182, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 178 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 4 2 10 0 + + + -- linear combo weights (showing up to 5) + + 7.3033 0.2872 -0.9102 -0.5254 -0.2445 + + + -- cutpoint (score) + --- -1.05495 (0.623511), N = 179 moving right + --- -0.925141 (0.661673), N = 155 moving right + --- -0.858646 (0.657937), N = 140 moving right + --- -0.47298 (0.658269), N = 79 moving right + --- -0.0279342 (0.640174), N = 36 moving right + + -- best stat: 0.661673, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 16 1 0 10 + + + -- linear combo weights (showing up to 5) + + -0.2258 0.6114 0.5274 -0.4146 -0.7913 + + + -- cutpoint (score) + --- -1.55274 (0.568728), N = 224 moving right + --- -0.62184 (0.675555), N = 151 moving right + --- 1.69256 (0.639137), N = 29 moving right + --- 2.36956 (0.591845), N = 18 moving right + --- 2.9595 (0.549097), N = 10 moving right + + -- best stat: 0.675555, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 15 10 17 9 + + + -- linear combo weights (showing up to 5) + + 1.9187 -0.2584 -0.5770 0.3314 -0.3390 + + + -- cutpoint (score) + --- -0.541544 (0.593941), N = 220 moving right + --- -0.474803 (0.595912), N = 219 moving right + --- 0.627956 (0.746877), N = 116 moving right + --- 1.5172 (0.760448), N = 77 moving right + --- 7.71648 (0.55082), N = 8 moving right + + -- best stat: 0.760448, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 179 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 17 2 6 12 + + + -- linear combo weights (showing up to 5) + + -0.1553 0.7094 -0.1349 0.8246 0.3712 + + + -- cutpoint (score) + --- 1.09416 (0.570183), N = 243 moving right + --- 1.80811 (0.644837), N = 193 moving right + --- 1.87979 (0.672757), N = 170 moving right + --- 2.85626 (0.597657), N = 41 moving right + --- 2.86683 (0.593317), N = 40 moving right + + -- best stat: 0.672757, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 3 5 14 17 + + + -- linear combo weights (showing up to 5) + + 0.0867 2.9731 0.7559 0.1694 0.5067 + + + -- cutpoint (score) + --- 0.911103 (0.553401), N = 251 moving right + --- 1.26069 (0.618723), N = 221 moving right + --- 1.43745 (0.641745), N = 194 moving right + --- 1.46117 (0.638057), N = 190 moving right + --- 2.04212 (0.694923), N = 105 moving right + + -- best stat: 0.694923, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 0 15 2 10 + + + -- linear combo weights (showing up to 5) + + 0.3923 0.3384 -0.2172 -0.0856 -0.6947 + + + -- cutpoint (score) + --- -1.10687 (0.532801), N = 257 moving right + --- -0.766711 (0.570463), N = 233 moving right + --- -0.489484 (0.593913), N = 212 moving right + --- -0.193072 (0.678457), N = 167 moving right + --- 0.312639 (0.686802), N = 107 moving right + + -- best stat: 0.686802, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 180 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 17 13 8 16 + + + -- linear combo weights (showing up to 5) + + -0.1993 0.4509 0.0239 1.9980 0.3549 + + + -- cutpoint (score) + --- 0.013894 (0.633364), N = 210 moving right + --- 0.158778 (0.63738), N = 202 moving right + --- 0.222843 (0.666365), N = 184 moving right + --- 0.379374 (0.707774), N = 163 moving right + --- 1.81261 (0.71122), N = 64 moving right + + -- best stat: 0.71122, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 16 11 6 3 + + + -- linear combo weights (showing up to 5) + + 0.1391 0.3208 0.5929 1.4236 4.4464 + + + -- cutpoint (score) + --- -0.872764 (0.519789), N = 264 moving right + --- -0.566142 (0.599161), N = 225 moving right + --- -0.536111 (0.616253), N = 212 moving right + --- 1.01474 (0.704919), N = 65 moving right + --- 4.91216 (0.576596), N = 16 moving right + + -- best stat: 0.704919, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 15 8 13 16 + + + -- linear combo weights (showing up to 5) + + 0.3408 -0.1703 1.9806 -0.0291 0.3294 + + + -- cutpoint (score) + --- -1.33229 (0.614303), N = 215 moving right + --- -1.28376 (0.632832), N = 205 moving right + --- -0.406327 (0.780136), N = 110 moving right + --- 0.856727 (0.675737), N = 53 moving right + --- 1.71965 (0.642086), N = 33 moving right + + -- best stat: 0.780136, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 181 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 1 0 3 17 + + + -- linear combo weights (showing up to 5) + + 0.4327 0.2133 0.0707 4.2702 0.4058 + + + -- cutpoint (score) + --- 0.737748 (0.609454), N = 202 moving right + --- 0.741305 (0.613611), N = 200 moving right + --- 1.1218 (0.681466), N = 129 moving right + --- 1.15833 (0.690515), N = 122 moving right + --- 1.71363 (0.684601), N = 59 moving right + + -- best stat: 0.690515, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 12 11 15 10 + + + -- linear combo weights (showing up to 5) + + 5.3756 0.0947 0.8255 -0.0335 -0.5599 + + + -- cutpoint (score) + --- -0.821341 (0.62366), N = 202 moving right + --- -0.777473 (0.630019), N = 199 moving right + --- -0.0463259 (0.73198), N = 107 moving right + --- 0.016548 (0.738984), N = 100 moving right + --- 0.0513074 (0.729912), N = 95 moving right + + -- best stat: 0.738984, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 15 10 0 3 + + + -- linear combo weights (showing up to 5) + + 0.4968 0.0581 -0.4447 0.0407 4.4984 + + + -- cutpoint (score) + --- 0.521866 (0.535906), N = 256 moving right + --- 0.799299 (0.558095), N = 235 moving right + --- 0.825036 (0.577416), N = 228 moving right + --- 1.25499 (0.649518), N = 168 moving right + --- 1.33389 (0.665614), N = 156 moving right + + -- best stat: 0.665614, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7464e-01 2.5602e-02 + 1.1000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 182 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 14 6 1 17 + + + -- linear combo weights (showing up to 5) + + 0.7830 0.2906 2.0188 0.1923 0.3712 + + + -- cutpoint (score) + --- 0.585508 (0.586175), N = 240 moving right + --- 1.06773 (0.664341), N = 185 moving right + --- 1.63386 (0.68916), N = 101 moving right + --- 1.67039 (0.682281), N = 95 moving right + --- 3.50612 (0.565915), N = 16 moving right + + -- best stat: 0.68916, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 14 10 5 1 + + + -- linear combo weights (showing up to 5) + + 0.1124 0.3063 -0.6308 0.6935 0.2643 + + + -- cutpoint (score) + --- -0.772374 (0.564349), N = 236 moving right + --- 0.243142 (0.701431), N = 122 moving right + --- 0.724258 (0.669574), N = 68 moving right + --- 0.742663 (0.672508), N = 66 moving right + --- 0.923077 (0.613809), N = 51 moving right + + -- best stat: 0.701431, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 15 6 2 16 + + + -- linear combo weights (showing up to 5) + + 0.2899 -0.2374 1.9112 -0.2611 0.5250 + + + -- cutpoint (score) + --- -0.966566 (0.548014), N = 249 moving right + --- -0.644176 (0.619955), N = 195 moving right + --- -0.179721 (0.658512), N = 127 moving right + --- 0.0714304 (0.680636), N = 84 moving right + --- 1.34079 (0.591587), N = 27 moving right + + -- best stat: 0.680636, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 183 -------------- + +- N obs inbag: 276 +- N row inbag: 162 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 14 11 4 3 + + + -- linear combo weights (showing up to 5) + + 4.7569 0.1249 0.7346 0.4045 3.0905 + + + -- cutpoint (score) + --- -0.464582 (0.611001), N = 221 moving right + --- -0.0759936 (0.712351), N = 166 moving right + --- 0.0382627 (0.696434), N = 150 moving right + --- 0.65464 (0.736468), N = 77 moving right + --- 0.775232 (0.720727), N = 71 moving right + + -- best stat: 0.736468, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 7 3 12 1 + + + -- linear combo weights (showing up to 5) + + -0.3022 5.2551 4.0154 0.1280 0.3837 + + + -- cutpoint (score) + --- -0.991051 (0.498219), N = 271 moving right + --- -0.248752 (0.600668), N = 187 moving right + --- -0.0898826 (0.614475), N = 161 moving right + --- 0.11298 (0.654905), N = 116 moving right + --- 0.725372 (0.641714), N = 43 moving right + + -- best stat: 0.654905, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 17 13 1 10 + + + -- linear combo weights (showing up to 5) + + 0.0069 0.5464 0.4362 0.3374 -0.4829 + + + -- cutpoint (score) + --- 1.2676 (0.651211), N = 194 moving right + --- 1.54277 (0.656708), N = 156 moving right + --- 1.84065 (0.69971), N = 120 moving right + --- 2.01205 (0.704393), N = 100 moving right + --- 3.59618 (0.556259), N = 16 moving right + + -- best stat: 0.704393, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7101e-01 2.9292e-02 + 1.9800e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 184 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 7 13 16 9 + + + -- linear combo weights (showing up to 5) + + -0.2865 23.3447 0.2338 0.8336 0.3736 + + + -- cutpoint (score) + --- -1.01679 (0.600362), N = 221 moving right + --- -0.980914 (0.603191), N = 220 moving right + --- -0.811278 (0.629487), N = 188 moving right + --- -0.331931 (0.689616), N = 134 moving right + --- 2.19936 (0.571074), N = 12 moving right + + -- best stat: 0.689616, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 9 12 13 3 + + + -- linear combo weights (showing up to 5) + + 0.7576 0.3407 0.1220 0.2936 20.8467 + + + -- cutpoint (score) + --- -0.363181 (0.608316), N = 217 moving right + --- -0.30722 (0.627168), N = 206 moving right + --- -0.193349 (0.643099), N = 186 moving right + --- 0.525611 (0.642426), N = 76 moving right + --- 0.604462 (0.660421), N = 66 moving right + + -- best stat: 0.660421, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 3 10 1 8 + + + -- linear combo weights (showing up to 5) + + 12.1361 12.6535 -0.1866 0.2975 1.5512 + + + -- cutpoint (score) + --- -0.887989 (0.632548), N = 186 moving right + --- -0.0376083 (0.759276), N = 76 moving right + --- 0.786821 (0.707843), N = 49 moving right + --- 1.25092 (0.654183), N = 36 moving right + --- 2.39899 (0.637696), N = 25 moving right + + -- best stat: 0.759276, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + 5.4900e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.9800e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 185 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 187 +- max leaves: 94 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 7 16 9 15 + + + -- linear combo weights (showing up to 5) + + -0.6002 16.8764 0.5894 0.3905 0.0278 + + + -- cutpoint (score) + --- -1.18343 (0.522474), N = 252 moving right + --- -0.374425 (0.68101), N = 148 moving right + --- -0.296527 (0.692914), N = 142 moving right + --- -0.248129 (0.701239), N = 135 moving right + --- 0.705533 (0.739008), N = 51 moving right + + -- best stat: 0.739008, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 2 11 13 0 + + + -- linear combo weights (showing up to 5) + + 0.0113 -0.2729 0.8593 0.2126 -0.0607 + + + -- cutpoint (score) + --- -0.296284 (0.670861), N = 103 moving right + --- -0.157789 (0.67479), N = 83 moving right + --- 0.0997298 (0.654607), N = 63 moving right + --- 0.10208 (0.647989), N = 62 moving right + --- 0.963453 (0.548386), N = 18 moving right + + -- best stat: 0.67479, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 16 14 3 13 + + + -- linear combo weights (showing up to 5) + + 0.5078 0.5027 0.2324 6.6366 0.2605 + + + -- cutpoint (score) + --- -1.34636 (0.512091), N = 267 moving right + --- -0.911106 (0.564102), N = 241 moving right + --- -0.613231 (0.666955), N = 173 moving right + --- -0.516905 (0.693405), N = 162 moving right + --- -0.430229 (0.702011), N = 151 moving right + + -- best stat: 0.702011, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 186 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 187 +- max leaves: 94 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 17 16 8 6 + + + -- linear combo weights (showing up to 5) + + -0.1055 0.6444 0.7120 1.4063 -0.1363 + + + -- cutpoint (score) + --- 0.0356565 (0.559759), N = 246 moving right + --- 0.715237 (0.68472), N = 176 moving right + --- 0.834436 (0.706936), N = 166 moving right + --- 1.29342 (0.771071), N = 132 moving right + --- 1.49194 (0.781623), N = 120 moving right + + -- best stat: 0.781623, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 10 9 2 17 + + + -- linear combo weights (showing up to 5) + + 1.7535 -0.8006 -0.4800 -1.4180 0.6643 + + + -- cutpoint (score) + --- -1.01112 (0.617608), N = 219 moving right + --- -0.529572 (0.675945), N = 188 moving right + --- -0.201025 (0.72453), N = 155 moving right + --- 0.993029 (0.789399), N = 86 moving right + --- 3.23783 (0.655596), N = 25 moving right + + -- best stat: 0.789399, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 0 15 11 3 + + + -- linear combo weights (showing up to 5) + + 0.3368 0.4143 -0.2061 0.9626 7.6390 + + + -- cutpoint (score) + --- -0.0334885 (0.539143), N = 259 moving right + --- 0.41704 (0.632603), N = 210 moving right + --- 0.697622 (0.688652), N = 172 moving right + --- 1.16764 (0.75201), N = 119 moving right + --- 1.17728 (0.760786), N = 115 moving right + + -- best stat: 0.760786, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 187 -------------- + +- N obs inbag: 276 +- N row inbag: 188 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 4 7 1 3 + + + -- linear combo weights (showing up to 5) + + -0.4850 0.4159 4.0048 0.3801 3.7213 + + + -- cutpoint (score) + --- -1.01033 (0.503709), N = 267 moving right + --- -0.509528 (0.573184), N = 225 moving right + --- 0.0684178 (0.658824), N = 157 moving right + --- 0.686812 (0.684693), N = 69 moving right + --- 9.40673 (0.529633), N = 5 moving right + + -- best stat: 0.684693, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 9 7 4 0 + + + -- linear combo weights (showing up to 5) + + 1.1910 0.1002 4.3714 0.0936 -0.3135 + + + -- cutpoint (score) + --- -1.01349 (0.595549), N = 226 moving right + --- -0.462575 (0.664706), N = 148 moving right + --- -0.412501 (0.664088), N = 144 moving right + --- 0.547347 (0.677369), N = 58 moving right + --- 0.923903 (0.676132), N = 50 moving right + + -- best stat: 0.677369, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 17 15 0 + + + -- linear combo weights (showing up to 5) + + 0.2329 0.1331 0.6074 0.1218 -0.4602 + + + -- cutpoint (score) + --- 0.787831 (0.561945), N = 248 moving right + --- 1.45924 (0.62758), N = 174 moving right + --- 1.73706 (0.634698), N = 124 moving right + --- 1.92237 (0.615948), N = 89 moving right + --- 2.37508 (0.579122), N = 26 moving right + + -- best stat: 0.634698, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 188 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 17 9 5 7 + + + -- linear combo weights (showing up to 5) + + -0.8917 0.5659 0.6150 -0.0832 4.7983 + + + -- cutpoint (score) + --- 0.0796516 (0.608396), N = 220 moving right + --- 0.205381 (0.611847), N = 214 moving right + --- 0.684862 (0.713519), N = 147 moving right + --- 1.75222 (0.677315), N = 63 moving right + --- 2.49222 (0.611275), N = 28 moving right + + -- best stat: 0.713519, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 4 10 8 0 + + + -- linear combo weights (showing up to 5) + + 0.1095 0.3905 -0.6382 1.7128 -0.0568 + + + -- cutpoint (score) + --- -1.91742 (0.507316), N = 269 moving right + --- -1.88413 (0.515696), N = 265 moving right + --- -0.184465 (0.748718), N = 115 moving right + --- 0.204779 (0.730419), N = 92 moving right + --- 0.497979 (0.730794), N = 77 moving right + + -- best stat: 0.748718, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 17 15 14 + + + -- linear combo weights (showing up to 5) + + 5.3405 0.2958 0.4958 -0.2787 0.3765 + + + -- cutpoint (score) + --- 0.0567396 (0.506566), N = 271 moving right + --- 0.886118 (0.607233), N = 218 moving right + --- 1.60011 (0.67203), N = 129 moving right + --- 1.97548 (0.653356), N = 75 moving right + --- 3.35452 (0.571541), N = 11 moving right + + -- best stat: 0.67203, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 189 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 15 9 11 16 + + + -- linear combo weights (showing up to 5) + + 3.7025 -0.2689 0.4805 0.7995 0.5955 + + + -- cutpoint (score) + --- -1.5741 (0.508961), N = 269 moving right + --- -1.14067 (0.570264), N = 238 moving right + --- -0.76394 (0.663026), N = 191 moving right + --- -0.753024 (0.672814), N = 187 moving right + --- -0.508022 (0.72131), N = 165 moving right + + -- best stat: 0.72131, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 14 10 3 15 + + + -- linear combo weights (showing up to 5) + + 0.0066 0.1601 -0.6181 6.1522 -0.2843 + + + -- cutpoint (score) + --- -0.451475 (0.618279), N = 205 moving right + --- -0.371643 (0.617587), N = 194 moving right + --- -0.263753 (0.633201), N = 178 moving right + --- -0.119597 (0.648989), N = 159 moving right + --- 0.109867 (0.665103), N = 114 moving right + + -- best stat: 0.665103, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 4 12 3 17 + + + -- linear combo weights (showing up to 5) + + 0.3453 0.2198 0.0311 6.5962 0.5720 + + + -- cutpoint (score) + --- 1.70404 (0.682659), N = 174 moving right + --- 2.39724 (0.722329), N = 89 moving right + --- 2.63012 (0.658161), N = 55 moving right + --- 2.78622 (0.647162), N = 40 moving right + --- 9.22451 (0.56861), N = 14 moving right + + -- best stat: 0.722329, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 190 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 12 1 11 15 + + + -- linear combo weights (showing up to 5) + + 0.2152 -0.2381 0.6228 1.5343 -0.1109 + + + -- cutpoint (score) + --- -1.88017 (0.531017), N = 259 moving right + --- -0.639521 (0.682673), N = 169 moving right + --- -0.0390775 (0.740832), N = 104 moving right + --- 0.496092 (0.714558), N = 74 moving right + --- 2.90201 (0.575478), N = 15 moving right + + -- best stat: 0.740832, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 16 5 0 6 + + + -- linear combo weights (showing up to 5) + + 0.6400 0.8878 1.4374 -0.0474 -0.5761 + + + -- cutpoint (score) + --- -0.792794 (0.552486), N = 222 moving right + --- -0.387575 (0.630801), N = 175 moving right + --- 0.138505 (0.662686), N = 111 moving right + --- 0.567783 (0.694847), N = 85 moving right + --- 3.27221 (0.551639), N = 8 moving right + + -- best stat: 0.694847, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 6 2 3 14 + + + -- linear combo weights (showing up to 5) + + -0.6178 -0.1350 -1.2560 8.7686 0.1477 + + + -- cutpoint (score) + --- -2.02166 (0.526846), N = 255 moving right + --- -1.99963 (0.531462), N = 252 moving right + --- -1.53606 (0.601859), N = 196 moving right + --- -1.36143 (0.642107), N = 164 moving right + --- -1.29015 (0.661691), N = 155 moving right + + -- best stat: 0.661691, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 191 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 3 2 8 9 + + + -- linear combo weights (showing up to 5) + + -0.4418 9.9634 -1.0318 1.2598 0.0346 + + + -- cutpoint (score) + --- -2.12992 (0.566107), N = 240 moving right + --- -1.7794 (0.659268), N = 195 moving right + --- -1.72594 (0.671165), N = 188 moving right + --- -1.23399 (0.746097), N = 120 moving right + --- -0.98082 (0.737854), N = 101 moving right + + -- best stat: 0.746097, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 9 8 6 13 + + + -- linear combo weights (showing up to 5) + + -0.6360 -0.2438 1.5000 -0.3140 0.2789 + + + -- cutpoint (score) + --- -1.46513 (0.647621), N = 189 moving right + --- -1.14322 (0.708205), N = 137 moving right + --- -1.03545 (0.731044), N = 128 moving right + --- 0.132143 (0.618429), N = 41 moving right + --- 0.755014 (0.618304), N = 28 moving right + + -- best stat: 0.731044, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 3 17 4 0 + + + -- linear combo weights (showing up to 5) + + 1.0798 11.1390 0.2057 0.4964 -0.1796 + + + -- cutpoint (score) + --- -0.331962 (0.604082), N = 223 moving right + --- 0.786098 (0.740345), N = 114 moving right + --- 0.890069 (0.739266), N = 101 moving right + --- 1.09477 (0.72604), N = 79 moving right + --- 1.31371 (0.724192), N = 69 moving right + + -- best stat: 0.740345, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 192 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 7 10 12 0 + + + -- linear combo weights (showing up to 5) + + 0.3974 7.2607 -0.3935 0.1439 0.0242 + + + -- cutpoint (score) + --- -0.908545 (0.511307), N = 262 moving right + --- -0.68364 (0.543464), N = 248 moving right + --- -0.276752 (0.60907), N = 183 moving right + --- -0.103811 (0.624153), N = 168 moving right + --- 8.53959 (0.552904), N = 8 moving right + + -- best stat: 0.624153, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 10 6 12 8 + + + -- linear combo weights (showing up to 5) + + -0.1160 -0.4042 0.6621 0.1519 1.5422 + + + -- cutpoint (score) + --- -1.36146 (0.511697), N = 261 moving right + --- -1.29211 (0.531254), N = 251 moving right + --- -0.942076 (0.606793), N = 212 moving right + --- -0.0981908 (0.718367), N = 104 moving right + --- 0.258674 (0.728176), N = 76 moving right + + -- best stat: 0.728176, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 0 12 13 17 + + + -- linear combo weights (showing up to 5) + + 0.1678 -0.1130 0.0942 0.2371 0.6874 + + + -- cutpoint (score) + --- 1.3439 (0.627457), N = 215 moving right + --- 1.62588 (0.63347), N = 194 moving right + --- 2.16997 (0.649333), N = 129 moving right + --- 2.27955 (0.6567), N = 117 moving right + --- 2.62598 (0.610712), N = 56 moving right + + -- best stat: 0.6567, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.7826e-01 2.1858e-02 + 1.3100e+02 9.7464e-01 2.5562e-02 + 1.4000e+02 9.6377e-01 3.6714e-02 + + +------------ Growing tree 193 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 7 9 6 1 + + + -- linear combo weights (showing up to 5) + + -0.5291 8.4108 0.4884 0.6010 0.1680 + + + -- cutpoint (score) + --- -1.03755 (0.527365), N = 263 moving right + --- -0.451373 (0.625147), N = 211 moving right + --- -0.325273 (0.663884), N = 184 moving right + --- -0.293091 (0.671757), N = 179 moving right + --- 0.138762 (0.708934), N = 108 moving right + + -- best stat: 0.708934, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 5 9 12 7 + + + -- linear combo weights (showing up to 5) + + 0.2279 0.6034 0.5361 0.1083 8.4433 + + + -- cutpoint (score) + --- -0.411729 (0.554577), N = 250 moving right + --- -0.239709 (0.603716), N = 214 moving right + --- 0.585466 (0.638269), N = 62 moving right + --- 0.865469 (0.623417), N = 35 moving right + --- 1.03034 (0.62549), N = 30 moving right + + -- best stat: 0.638269, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 7 17 2 14 + + + -- linear combo weights (showing up to 5) + + 0.0358 8.7394 0.5914 0.2844 0.3725 + + + -- cutpoint (score) + --- 1.78727 (0.64753), N = 189 moving right + --- 2.20963 (0.67904), N = 126 moving right + --- 2.34947 (0.65506), N = 99 moving right + --- 2.38552 (0.652987), N = 90 moving right + --- 11.0678 (0.565892), N = 10 moving right + + -- best stat: 0.67904, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 194 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 259 +- max leaves: 130 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 16 10 8 5 + + + -- linear combo weights (showing up to 5) + + -0.3143 0.4838 -0.5697 1.3727 0.1034 + + + -- cutpoint (score) + --- -1.78161 (0.555018), N = 246 moving right + --- -1.62015 (0.590866), N = 228 moving right + --- -1.4395 (0.631341), N = 210 moving right + --- -1.22833 (0.672129), N = 183 moving right + --- -0.996019 (0.708977), N = 165 moving right + + -- best stat: 0.708977, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 2 15 16 3 + + + -- linear combo weights (showing up to 5) + + 0.4284 -0.1893 0.1067 0.7524 5.0856 + + + -- cutpoint (score) + --- -0.809132 (0.560898), N = 233 moving right + --- -0.697717 (0.589475), N = 208 moving right + --- -0.65417 (0.580851), N = 203 moving right + --- -0.233978 (0.651333), N = 133 moving right + --- 0.25421 (0.694806), N = 72 moving right + + -- best stat: 0.694806, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 15 4 6 1 + + + -- linear combo weights (showing up to 5) + + 0.4840 0.1141 0.8243 1.3538 0.1864 + + + -- cutpoint (score) + --- 0.825763 (0.531693), N = 256 moving right + --- 1.10557 (0.587279), N = 228 moving right + --- 1.22703 (0.61174), N = 217 moving right + --- 1.64605 (0.689063), N = 164 moving right + --- 2.70865 (0.672227), N = 61 moving right + + -- best stat: 0.689063, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 4.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 195 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 14 9 2 6 + + + -- linear combo weights (showing up to 5) + + 1.0147 0.1484 0.0501 0.0372 0.8722 + + + -- cutpoint (score) + --- -0.752214 (0.598165), N = 226 moving right + --- 0.0423713 (0.710512), N = 112 moving right + --- 0.114508 (0.71931), N = 105 moving right + --- 0.118721 (0.722329), N = 104 moving right + --- 0.198883 (0.736088), N = 89 moving right + + -- best stat: 0.736088, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 10 12 2 15 + + + -- linear combo weights (showing up to 5) + + 0.6217 -0.7712 0.1699 -0.7279 -0.0481 + + + -- cutpoint (score) + --- 0.0365224 (0.587939), N = 232 moving right + --- 0.165975 (0.598961), N = 229 moving right + --- 1.44563 (0.693897), N = 106 moving right + --- 1.48753 (0.674498), N = 103 moving right + --- 2.66805 (0.634623), N = 33 moving right + + -- best stat: 0.693897, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 15 5 16 0 + + + -- linear combo weights (showing up to 5) + + 1.9724 -0.2627 0.4837 0.4644 -0.1397 + + + -- cutpoint (score) + --- -1.2278 (0.611621), N = 208 moving right + --- 0.433771 (0.757406), N = 81 moving right + --- 0.578564 (0.758459), N = 71 moving right + --- 0.797882 (0.742687), N = 60 moving right + --- 3.24577 (0.628422), N = 25 moving right + + -- best stat: 0.758459, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 196 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 2 11 7 9 + + + -- linear combo weights (showing up to 5) + + 0.2621 0.1736 1.2707 15.6669 0.0222 + + + -- cutpoint (score) + --- -0.159896 (0.723246), N = 121 moving right + --- -0.0313106 (0.720031), N = 107 moving right + --- 0.06203 (0.715805), N = 97 moving right + --- 0.240596 (0.726729), N = 85 moving right + --- 1.54549 (0.706406), N = 44 moving right + + -- best stat: 0.726729, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 13 15 0 3 + + + -- linear combo weights (showing up to 5) + + 0.5450 0.5516 -0.0665 -0.1262 7.0966 + + + -- cutpoint (score) + --- 1.24053 (0.669511), N = 179 moving right + --- 1.70086 (0.733449), N = 128 moving right + --- 1.7953 (0.700697), N = 109 moving right + --- 2.29561 (0.681569), N = 55 moving right + --- 3.49777 (0.622619), N = 23 moving right + + -- best stat: 0.733449, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 17 1 2 14 + + + -- linear combo weights (showing up to 5) + + 0.5511 0.5543 0.5239 -0.7377 0.2618 + + + -- cutpoint (score) + --- 0.467808 (0.675798), N = 187 moving right + --- 0.526773 (0.6853), N = 177 moving right + --- 2.18299 (0.645972), N = 47 moving right + --- 2.30544 (0.621424), N = 37 moving right + --- 2.59439 (0.549695), N = 15 moving right + + -- best stat: 0.6853, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 5.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 197 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 15 5 2 17 + + + -- linear combo weights (showing up to 5) + + -0.6978 -0.0062 0.7131 -0.7498 0.4209 + + + -- cutpoint (score) + --- 0.243938 (0.61106), N = 187 moving right + --- 0.263 (0.615414), N = 184 moving right + --- 1.28831 (0.683489), N = 78 moving right + --- 1.47773 (0.655658), N = 61 moving right + --- 3.24696 (0.550683), N = 8 moving right + + -- best stat: 0.683489, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 4 5 13 17 + + + -- linear combo weights (showing up to 5) + + 2.3535 -0.0127 0.5344 0.5022 0.5375 + + + -- cutpoint (score) + --- 1.10149 (0.61183), N = 221 moving right + --- 1.90623 (0.687025), N = 122 moving right + --- 1.99605 (0.691331), N = 108 moving right + --- 2.27283 (0.722073), N = 69 moving right + --- 3.00109 (0.580703), N = 21 moving right + + -- best stat: 0.722073, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 4 5 8 6 + + + -- linear combo weights (showing up to 5) + + -0.1275 -0.0174 0.7395 1.8088 2.7973 + + + -- cutpoint (score) + --- -0.678372 (0.695083), N = 155 moving right + --- -0.656442 (0.700712), N = 150 moving right + --- 0.746473 (0.744732), N = 67 moving right + --- 0.949179 (0.711921), N = 51 moving right + --- 4.92281 (0.576686), N = 14 moving right + + -- best stat: 0.744732, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 198 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 1 6 3 9 + + + -- linear combo weights (showing up to 5) + + 1.0207 0.3511 0.1813 3.1264 0.0746 + + + -- cutpoint (score) + --- -0.943858 (0.58778), N = 236 moving right + --- -0.764161 (0.612567), N = 218 moving right + --- -0.487185 (0.687285), N = 156 moving right + --- -0.364688 (0.703825), N = 137 moving right + --- -0.233416 (0.72723), N = 118 moving right + + -- best stat: 0.72723, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 1 3 11 10 + + + -- linear combo weights (showing up to 5) + + 0.5295 0.3032 2.4784 0.9710 -0.3944 + + + -- cutpoint (score) + --- -1.11087 (0.560942), N = 241 moving right + --- -1.08785 (0.568811), N = 238 moving right + --- 0.698954 (0.71847), N = 65 moving right + --- 0.878344 (0.730462), N = 58 moving right + --- 4.26506 (0.539365), N = 7 moving right + + -- best stat: 0.730462, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 15 6 1 12 + + + -- linear combo weights (showing up to 5) + + 0.2479 -0.1642 -0.0729 0.3993 0.2548 + + + -- cutpoint (score) + --- -0.286407 (0.607485), N = 173 moving right + --- -0.15333 (0.61814), N = 149 moving right + --- 0.477032 (0.578084), N = 51 moving right + --- 0.682391 (0.527729), N = 27 moving right + --- 0.920609 (0.524408), N = 18 moving right + + -- best stat: 0.61814, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + 1.8600e+02 9.6014e-01 4.0500e-02 + + +------------ Growing tree 199 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 4 10 9 3 + + + -- linear combo weights (showing up to 5) + + 0.3124 -0.1068 -0.6326 0.3756 3.7579 + + + -- cutpoint (score) + --- 0.18076 (0.598357), N = 216 moving right + --- 0.368617 (0.623947), N = 192 moving right + --- 1.1615 (0.694878), N = 91 moving right + --- 1.65726 (0.698203), N = 54 moving right + --- 6.05531 (0.551624), N = 12 moving right + + -- best stat: 0.698203, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 2 9 17 6 + + + -- linear combo weights (showing up to 5) + + 1.2831 -0.6894 0.2510 0.4525 0.4963 + + + -- cutpoint (score) + --- 0.519304 (0.627658), N = 210 moving right + --- 1.01672 (0.65516), N = 145 moving right + --- 1.30808 (0.664476), N = 108 moving right + --- 1.37377 (0.663317), N = 104 moving right + --- 2.24426 (0.600754), N = 48 moving right + + -- best stat: 0.664476, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 17 14 4 1 + + + -- linear combo weights (showing up to 5) + + 0.2928 0.4591 0.3447 0.1509 0.4584 + + + -- cutpoint (score) + --- 0.739167 (0.606745), N = 217 moving right + --- 0.898164 (0.643255), N = 191 moving right + --- 1.52055 (0.69453), N = 128 moving right + --- 2.4975 (0.620468), N = 36 moving right + --- 2.62624 (0.583089), N = 29 moving right + + -- best stat: 0.69453, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.7000e+01 9.7826e-01 2.1886e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6377e-01 3.6756e-02 + + +------------ Growing tree 200 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 13 17 4 12 + + + -- linear combo weights (showing up to 5) + + 1.0096 0.1551 0.3519 0.2511 -0.0626 + + + -- cutpoint (score) + --- 0.750039 (0.659777), N = 171 moving right + --- 1.02333 (0.676868), N = 135 moving right + --- 1.03681 (0.689246), N = 128 moving right + --- 1.047 (0.691479), N = 126 moving right + --- 1.62604 (0.690457), N = 76 moving right + + -- best stat: 0.691479, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 17 14 7 4 + + + -- linear combo weights (showing up to 5) + + -0.3116 0.5896 0.5729 6.0051 -0.1795 + + + -- cutpoint (score) + --- 0.869329 (0.58973), N = 230 moving right + --- 1.24673 (0.655746), N = 185 moving right + --- 1.31455 (0.657677), N = 174 moving right + --- 2.15278 (0.617742), N = 43 moving right + --- 2.64378 (0.59062), N = 23 moving right + + -- best stat: 0.657677, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 1 7 12 15 + + + -- linear combo weights (showing up to 5) + + 0.5162 0.5431 6.0605 -0.0358 -0.2303 + + + -- cutpoint (score) + --- -0.990505 (0.540597), N = 248 moving right + --- 0.368932 (0.696116), N = 89 moving right + --- 0.547494 (0.668843), N = 71 moving right + --- 0.71302 (0.67331), N = 55 moving right + --- 6.93261 (0.541335), N = 6 moving right + + -- best stat: 0.696116, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 201 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 9 16 2 8 + + + -- linear combo weights (showing up to 5) + + 0.4575 -0.3666 0.1000 -0.0380 2.0206 + + + -- cutpoint (score) + --- -1.39208 (0.546534), N = 247 moving right + --- -0.50022 (0.758438), N = 125 moving right + --- -0.259975 (0.767553), N = 108 moving right + --- -0.0884426 (0.785761), N = 94 moving right + --- 1.11441 (0.677515), N = 48 moving right + + -- best stat: 0.785761, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 14 2 6 10 + + + -- linear combo weights (showing up to 5) + + 0.2518 0.5246 -0.4407 0.3713 -0.8722 + + + -- cutpoint (score) + --- -1.35441 (0.602491), N = 218 moving right + --- -0.742741 (0.663137), N = 158 moving right + --- -0.427312 (0.704879), N = 130 moving right + --- 0.555278 (0.656235), N = 57 moving right + --- 1.68333 (0.561793), N = 14 moving right + + -- best stat: 0.704879, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 10 1 4 15 + + + -- linear combo weights (showing up to 5) + + 0.4872 -0.8264 0.3545 0.4666 0.0114 + + + -- cutpoint (score) + --- 0.893831 (0.677577), N = 188 moving right + --- 1.51565 (0.718151), N = 138 moving right + --- 2.96159 (0.654883), N = 46 moving right + --- 3.36738 (0.612793), N = 31 moving right + --- 3.88988 (0.585368), N = 19 moving right + + -- best stat: 0.718151, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 202 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 12 11 2 4 + + + -- linear combo weights (showing up to 5) + + 0.1977 -0.2530 1.0335 0.2288 0.7143 + + + -- cutpoint (score) + --- -0.140171 (0.597851), N = 215 moving right + --- -0.0231413 (0.610126), N = 201 moving right + --- 0.57535 (0.67051), N = 115 moving right + --- 0.647585 (0.66281), N = 108 moving right + --- 3.19928 (0.521243), N = 7 moving right + + -- best stat: 0.67051, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 15 6 4 10 + + + -- linear combo weights (showing up to 5) + + 6.6410 0.1383 0.5818 0.4057 -0.4666 + + + -- cutpoint (score) + --- -0.129809 (0.600431), N = 201 moving right + --- 0.0688902 (0.65882), N = 161 moving right + --- 0.102241 (0.667365), N = 158 moving right + --- 0.613738 (0.690946), N = 86 moving right + --- 0.737855 (0.688286), N = 62 moving right + + -- best stat: 0.690946, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 13 17 3 1 + + + -- linear combo weights (showing up to 5) + + 0.5756 0.5575 0.2525 7.0079 0.4113 + + + -- cutpoint (score) + --- 0.242057 (0.663274), N = 186 moving right + --- 0.389485 (0.689798), N = 168 moving right + --- 0.942997 (0.74224), N = 118 moving right + --- 1.80128 (0.709469), N = 65 moving right + --- 2.21208 (0.656965), N = 41 moving right + + -- best stat: 0.74224, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 203 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 0 1 10 12 + + + -- linear combo weights (showing up to 5) + + 1.5541 -0.3757 0.4944 -0.7466 -0.0782 + + + -- cutpoint (score) + --- -1.55446 (0.608213), N = 212 moving right + --- -1.09793 (0.661774), N = 170 moving right + --- -1.08168 (0.666885), N = 168 moving right + --- -1.06288 (0.677392), N = 163 moving right + --- 0.62648 (0.729838), N = 58 moving right + + -- best stat: 0.729838, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 1 4 14 16 + + + -- linear combo weights (showing up to 5) + + -0.3057 0.5065 0.6508 0.2837 0.4734 + + + -- cutpoint (score) + --- -0.0859128 (0.637724), N = 156 moving right + --- 0.067173 (0.660987), N = 140 moving right + --- 0.120681 (0.671844), N = 136 moving right + --- 0.383117 (0.680581), N = 104 moving right + --- 0.893027 (0.657667), N = 65 moving right + + -- best stat: 0.680581, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 4 1 15 17 + + + -- linear combo weights (showing up to 5) + + 0.1871 0.0257 0.5620 -0.2027 0.6834 + + + -- cutpoint (score) + --- 1.28838 (0.612866), N = 197 moving right + --- 1.56384 (0.626431), N = 170 moving right + --- 2.21017 (0.676081), N = 93 moving right + --- 3.10021 (0.68163), N = 47 moving right + --- 3.27488 (0.656007), N = 37 moving right + + -- best stat: 0.68163, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.6739e-01 3.2995e-02 + + +------------ Growing tree 204 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 15 12 4 2 + + + -- linear combo weights (showing up to 5) + + 0.3776 -0.1139 0.0652 1.1169 -0.8156 + + + -- cutpoint (score) + --- -1.27649 (0.546292), N = 248 moving right + --- -1.17944 (0.570591), N = 235 moving right + --- 0.1418 (0.68629), N = 99 moving right + --- 0.255027 (0.687699), N = 86 moving right + --- 1.47443 (0.495283), N = 7 moving right + + -- best stat: 0.687699, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 8 5 10 16 + + + -- linear combo weights (showing up to 5) + + 4.0710 1.0319 0.2288 -0.5170 0.4490 + + + -- cutpoint (score) + --- -0.377005 (0.713857), N = 125 moving right + --- 0.134178 (0.745773), N = 88 moving right + --- 0.698107 (0.710488), N = 63 moving right + --- 0.861006 (0.685228), N = 58 moving right + --- 2.2162 (0.612227), N = 25 moving right + + -- best stat: 0.745773, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 7 5 17 0 + + + -- linear combo weights (showing up to 5) + + 0.4329 9.3997 0.3207 0.5945 -0.3738 + + + -- cutpoint (score) + --- 1.33899 (0.656906), N = 165 moving right + --- 1.34557 (0.661827), N = 163 moving right + --- 1.67235 (0.674528), N = 123 moving right + --- 2.43864 (0.641428), N = 53 moving right + --- 2.52451 (0.655967), N = 44 moving right + + -- best stat: 0.674528, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 3.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.7826e-01 2.1898e-02 + 1.9800e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 205 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 13 8 15 7 + + + -- linear combo weights (showing up to 5) + + 0.1842 -0.1336 1.5443 -0.1290 4.2633 + + + -- cutpoint (score) + --- -0.983749 (0.58519), N = 219 moving right + --- -0.76311 (0.643382), N = 188 moving right + --- -0.54759 (0.694876), N = 148 moving right + --- 3.71071 (0.637853), N = 29 moving right + --- 8.13264 (0.546048), N = 9 moving right + + -- best stat: 0.694876, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 12 11 10 9 + + + -- linear combo weights (showing up to 5) + + 0.9145 -0.1690 0.8079 -0.6967 0.2590 + + + -- cutpoint (score) + --- -0.104316 (0.692476), N = 129 moving right + --- 0.588852 (0.716074), N = 82 moving right + --- 1.3666 (0.649161), N = 41 moving right + --- 2.50542 (0.552412), N = 11 moving right + --- 2.68749 (0.522033), N = 5 moving right + + -- best stat: 0.716074, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 1 8 15 11 + + + -- linear combo weights (showing up to 5) + + 0.4487 0.4654 1.6084 -0.0409 0.2536 + + + -- cutpoint (score) + --- 0.383617 (0.688136), N = 178 moving right + --- 0.761836 (0.727383), N = 148 moving right + --- 1.12521 (0.754695), N = 124 moving right + --- 1.53407 (0.762289), N = 88 moving right + --- 1.70956 (0.75966), N = 79 moving right + + -- best stat: 0.762289, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.9800e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 206 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 17 7 16 2 + + + -- linear combo weights (showing up to 5) + + -0.3280 0.5114 7.7292 0.4163 -0.6050 + + + -- cutpoint (score) + --- 0.0156373 (0.542786), N = 257 moving right + --- 0.625584 (0.660349), N = 164 moving right + --- 0.666874 (0.65881), N = 155 moving right + --- 1.61654 (0.640033), N = 55 moving right + --- 1.78561 (0.621367), N = 41 moving right + + -- best stat: 0.660349, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 4 17 9 2 + + + -- linear combo weights (showing up to 5) + + -0.7397 0.1609 0.4368 0.8274 -0.7508 + + + -- cutpoint (score) + --- -0.777674 (0.534013), N = 255 moving right + --- -0.342951 (0.591619), N = 228 moving right + --- -0.0161181 (0.642716), N = 202 moving right + --- 1.13178 (0.693571), N = 93 moving right + --- 1.33292 (0.683567), N = 67 moving right + + -- best stat: 0.693571, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 17 1 0 13 + + + -- linear combo weights (showing up to 5) + + 1.1392 0.5667 0.3997 -0.1588 0.6211 + + + -- cutpoint (score) + --- 1.18273 (0.644936), N = 201 moving right + --- 1.63526 (0.665318), N = 155 moving right + --- 2.76906 (0.613693), N = 37 moving right + --- 2.77869 (0.60325), N = 35 moving right + --- 2.88014 (0.573238), N = 29 moving right + + -- best stat: 0.665318, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7101e-01 2.9292e-02 + 1.9800e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 207 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 5 7 1 16 + + + -- linear combo weights (showing up to 5) + + -0.0549 0.8295 9.7564 0.3801 0.5432 + + + -- cutpoint (score) + --- 0.44337 (0.711008), N = 98 moving right + --- 0.745228 (0.729075), N = 79 moving right + --- 0.821654 (0.702923), N = 67 moving right + --- 1.01226 (0.689511), N = 58 moving right + --- 1.07527 (0.693145), N = 55 moving right + + -- best stat: 0.729075, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 9 5 11 7 + + + -- linear combo weights (showing up to 5) + + 0.5276 0.1193 0.6278 0.5208 10.1147 + + + -- cutpoint (score) + --- 1.15086 (0.620305), N = 213 moving right + --- 1.16202 (0.621632), N = 212 moving right + --- 1.30569 (0.682651), N = 182 moving right + --- 1.36147 (0.687959), N = 180 moving right + --- 2.44012 (0.744427), N = 72 moving right + + -- best stat: 0.744427, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 0 4 1 2 + + + -- linear combo weights (showing up to 5) + + 0.6167 0.0531 0.3945 0.3865 -0.5349 + + + -- cutpoint (score) + --- 0.732613 (0.575167), N = 238 moving right + --- 1.00944 (0.604912), N = 218 moving right + --- 1.24825 (0.620468), N = 204 moving right + --- 1.37092 (0.642945), N = 178 moving right + --- 1.72925 (0.682692), N = 138 moving right + + -- best stat: 0.682692, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 2.1600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 208 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 2 8 15 7 + + + -- linear combo weights (showing up to 5) + + 0.1394 -0.4605 1.7013 -0.2407 10.7897 + + + -- cutpoint (score) + --- -1.76804 (0.531317), N = 263 moving right + --- -1.61069 (0.574371), N = 245 moving right + --- -1.43665 (0.615469), N = 216 moving right + --- -1.40853 (0.620739), N = 212 moving right + --- -1.30553 (0.653413), N = 193 moving right + + -- best stat: 0.653413, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 10 15 17 + + + -- linear combo weights (showing up to 5) + + 0.4901 0.1534 -0.7669 -0.1636 0.3689 + + + -- cutpoint (score) + --- -0.579081 (0.546487), N = 257 moving right + --- -0.124742 (0.575729), N = 242 moving right + --- 0.138362 (0.611078), N = 225 moving right + --- 0.705822 (0.668523), N = 168 moving right + --- 1.36254 (0.675968), N = 99 moving right + + -- best stat: 0.675968, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 1 7 6 4 + + + -- linear combo weights (showing up to 5) + + 4.1674 0.2273 13.2202 0.5556 1.1075 + + + -- cutpoint (score) + --- -0.00421829 (0.62978), N = 206 moving right + --- 0.0488311 (0.646587), N = 195 moving right + --- 1.03653 (0.67988), N = 97 moving right + --- 1.74459 (0.611118), N = 22 moving right + --- 14.4168 (0.54505), N = 7 moving right + + -- best stat: 0.67988, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 209 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 17 8 1 10 + + + -- linear combo weights (showing up to 5) + + 0.0217 0.5599 1.9114 0.3251 -0.4036 + + + -- cutpoint (score) + --- -0.301402 (0.551058), N = 240 moving right + --- 0.0454776 (0.592902), N = 216 moving right + --- 0.197268 (0.613195), N = 208 moving right + --- 0.71854 (0.68305), N = 161 moving right + --- 1.81758 (0.774694), N = 76 moving right + + -- best stat: 0.774694, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 8 15 11 + + + -- linear combo weights (showing up to 5) + + -0.0745 0.1152 2.0638 -0.1621 0.2242 + + + -- cutpoint (score) + --- -1.38801 (0.577855), N = 222 moving right + --- -1.254 (0.628155), N = 193 moving right + --- -1.18793 (0.663147), N = 177 moving right + --- -1.11339 (0.701565), N = 160 moving right + --- -0.802099 (0.733674), N = 128 moving right + + -- best stat: 0.733674, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 6 4 13 11 + + + -- linear combo weights (showing up to 5) + + -0.5138 0.8869 0.5003 0.2653 0.6764 + + + -- cutpoint (score) + --- -0.876898 (0.564262), N = 230 moving right + --- 0.218926 (0.714487), N = 116 moving right + --- 0.270634 (0.715571), N = 111 moving right + --- 0.581465 (0.731181), N = 88 moving right + --- 1.60448 (0.70098), N = 47 moving right + + -- best stat: 0.731181, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 210 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 15 10 5 6 + + + -- linear combo weights (showing up to 5) + + 6.9862 0.0814 -0.5420 0.5319 0.7944 + + + -- cutpoint (score) + --- -0.83945 (0.492607), N = 263 moving right + --- -0.216339 (0.601582), N = 209 moving right + --- -0.07433 (0.621837), N = 182 moving right + --- 0.15121 (0.651597), N = 133 moving right + --- 8.49657 (0.535207), N = 6 moving right + + -- best stat: 0.651597, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 2 10 9 16 + + + -- linear combo weights (showing up to 5) + + -0.0183 -0.9822 -0.7444 0.5875 0.3674 + + + -- cutpoint (score) + --- -2.39016 (0.509009), N = 255 moving right + --- -2.23329 (0.533654), N = 244 moving right + --- -1.3201 (0.646171), N = 177 moving right + --- -1.29794 (0.661993), N = 170 moving right + --- 0.213633 (0.644721), N = 39 moving right + + -- best stat: 0.661993, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 1 16 4 17 + + + -- linear combo weights (showing up to 5) + + 0.1879 0.0951 0.2991 0.4593 0.4165 + + + -- cutpoint (score) + --- 0.870312 (0.603343), N = 210 moving right + --- 0.87747 (0.595245), N = 207 moving right + --- 0.933602 (0.613594), N = 194 moving right + --- 1.45661 (0.68173), N = 142 moving right + --- 2.4179 (0.587665), N = 31 moving right + + -- best stat: 0.68173, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8188e-01 1.8196e-02 + 7.7000e+01 9.7464e-01 2.5576e-02 + 1.1000e+02 9.6377e-01 3.6728e-02 + 1.3100e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 211 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 2 16 14 17 + + + -- linear combo weights (showing up to 5) + + 0.2516 -0.6735 0.2618 0.4665 0.5126 + + + -- cutpoint (score) + --- 0.500018 (0.644959), N = 190 moving right + --- 0.714804 (0.657679), N = 156 moving right + --- 1.56466 (0.657721), N = 58 moving right + --- 1.99586 (0.628492), N = 38 moving right + --- 2.0435 (0.61609), N = 33 moving right + + -- best stat: 0.657721, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 12 1 9 2 + + + -- linear combo weights (showing up to 5) + + 0.2132 0.0373 0.4681 1.0053 -0.7748 + + + -- cutpoint (score) + --- -1.68444 (0.553653), N = 237 moving right + --- -1.4585 (0.580025), N = 206 moving right + --- -0.836663 (0.633254), N = 113 moving right + --- -0.590967 (0.667584), N = 87 moving right + --- 0.47223 (0.581929), N = 29 moving right + + -- best stat: 0.667584, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 11 6 12 4 + + + -- linear combo weights (showing up to 5) + + 8.9814 1.0693 0.8413 -0.1222 0.3126 + + + -- cutpoint (score) + --- -0.456527 (0.657552), N = 195 moving right + --- -0.454968 (0.661933), N = 193 moving right + --- 0.262493 (0.74164), N = 98 moving right + --- 0.900763 (0.717131), N = 64 moving right + --- 1.97781 (0.67169), N = 38 moving right + + -- best stat: 0.74164, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 212 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 6 0 3 17 + + + -- linear combo weights (showing up to 5) + + 0.2596 0.4295 0.2250 7.4128 0.1941 + + + -- cutpoint (score) + --- 0.476629 (0.580029), N = 209 moving right + --- 0.707192 (0.658122), N = 133 moving right + --- 0.73247 (0.660373), N = 118 moving right + --- 0.77284 (0.677072), N = 105 moving right + --- 8.15496 (0.605167), N = 19 moving right + + -- best stat: 0.677072, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 13 0 10 7 + + + -- linear combo weights (showing up to 5) + + 0.8965 0.1122 -0.2488 -0.5126 4.3231 + + + -- cutpoint (score) + --- -1.33964 (0.562992), N = 246 moving right + --- -1.2779 (0.584215), N = 237 moving right + --- -0.624826 (0.670253), N = 171 moving right + --- 0.743665 (0.725683), N = 49 moving right + --- 5.94466 (0.563105), N = 10 moving right + + -- best stat: 0.725683, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 14 9 5 2 + + + -- linear combo weights (showing up to 5) + + 0.3866 0.4418 0.4187 0.8620 -0.9014 + + + -- cutpoint (score) + --- -0.16574 (0.626862), N = 213 moving right + --- 0.854656 (0.706779), N = 108 moving right + --- 0.911222 (0.708872), N = 101 moving right + --- 1.11861 (0.626885), N = 72 moving right + --- 1.20865 (0.622586), N = 59 moving right + + -- best stat: 0.708872, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 213 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 4 5 6 14 + + + -- linear combo weights (showing up to 5) + + 0.5636 0.6511 1.2429 0.6246 0.5073 + + + -- cutpoint (score) + --- -0.512806 (0.570277), N = 238 moving right + --- 0.0230181 (0.636604), N = 198 moving right + --- 0.451029 (0.681297), N = 168 moving right + --- 0.564947 (0.700485), N = 146 moving right + --- 1.09739 (0.718651), N = 114 moving right + + -- best stat: 0.718651, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 0 16 3 17 + + + -- linear combo weights (showing up to 5) + + 1.1802 -0.2447 0.3274 4.3407 0.5319 + + + -- cutpoint (score) + --- 0.789272 (0.663291), N = 188 moving right + --- 1.62669 (0.75809), N = 99 moving right + --- 2.25939 (0.737037), N = 57 moving right + --- 6.75322 (0.585977), N = 18 moving right + --- 9.80823 (0.533625), N = 5 moving right + + -- best stat: 0.75809, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 16 0 2 10 + + + -- linear combo weights (showing up to 5) + + 0.2144 0.8059 -0.1592 -0.5324 -0.7404 + + + -- cutpoint (score) + --- -1.63065 (0.577455), N = 222 moving right + --- -1.44796 (0.613867), N = 200 moving right + --- -0.311274 (0.713157), N = 98 moving right + --- 0.179251 (0.71019), N = 64 moving right + --- 1.05659 (0.620644), N = 35 moving right + + -- best stat: 0.713157, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.7464e-01 2.5522e-02 + 7.7000e+01 9.7101e-01 2.9239e-02 + 1.1000e+02 9.5652e-01 4.4164e-02 + 1.3100e+02 9.4928e-01 5.1740e-02 + + +------------ Growing tree 214 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 10 14 12 16 + + + -- linear combo weights (showing up to 5) + + 0.3070 -0.5746 0.5080 0.0130 0.5219 + + + -- cutpoint (score) + --- -1.47977 (0.522768), N = 265 moving right + --- -1.29371 (0.542735), N = 256 moving right + --- -0.830804 (0.599594), N = 216 moving right + --- -0.391698 (0.656717), N = 162 moving right + --- 0.601776 (0.673539), N = 67 moving right + + -- best stat: 0.673539, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 2 11 12 7 + + + -- linear combo weights (showing up to 5) + + 0.0047 -0.6892 0.3685 -0.0084 9.3504 + + + -- cutpoint (score) + --- -1.01667 (0.533847), N = 256 moving right + --- -0.96712 (0.569988), N = 236 moving right + --- -0.887357 (0.667208), N = 179 moving right + --- -0.72871 (0.734659), N = 117 moving right + --- 0.456252 (0.61388), N = 30 moving right + + -- best stat: 0.734659, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 0 10 14 8 + + + -- linear combo weights (showing up to 5) + + 0.2556 -0.1309 -0.4359 -0.1281 1.8532 + + + -- cutpoint (score) + --- -1.35307 (0.626258), N = 212 moving right + --- -1.12502 (0.682325), N = 180 moving right + --- -0.796117 (0.751116), N = 144 moving right + --- -0.607284 (0.762378), N = 118 moving right + --- 0.395416 (0.719399), N = 75 moving right + + -- best stat: 0.762378, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.7826e-01 2.1899e-02 + 1.1000e+02 9.6739e-01 3.3010e-02 + 1.4000e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 215 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 17 12 11 13 + + + -- linear combo weights (showing up to 5) + + -0.0288 0.5399 -0.1258 1.1276 0.2397 + + + -- cutpoint (score) + --- 0.445349 (0.587666), N = 232 moving right + --- 0.591804 (0.602476), N = 220 moving right + --- 0.707712 (0.62711), N = 207 moving right + --- 1.57713 (0.714714), N = 119 moving right + --- 1.70095 (0.708115), N = 107 moving right + + -- best stat: 0.714714, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 17 15 5 14 + + + -- linear combo weights (showing up to 5) + + -0.9964 0.7064 0.0315 0.4767 0.5450 + + + -- cutpoint (score) + --- 0.669732 (0.612573), N = 220 moving right + --- 0.995113 (0.665529), N = 181 moving right + --- 1.50546 (0.705182), N = 129 moving right + --- 1.8326 (0.702501), N = 91 moving right + --- 2.11301 (0.679563), N = 69 moving right + + -- best stat: 0.705182, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 12 16 11 10 + + + -- linear combo weights (showing up to 5) + + 7.9961 -0.0826 0.2152 0.9832 -0.4797 + + + -- cutpoint (score) + --- -1.23288 (0.53603), N = 249 moving right + --- -0.674387 (0.643135), N = 186 moving right + --- -0.0724041 (0.749214), N = 109 moving right + --- 0.0843242 (0.740877), N = 95 moving right + --- 0.14937 (0.735263), N = 91 moving right + + -- best stat: 0.749214, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8188e-01 1.8169e-02 + 7.1000e+01 9.7464e-01 2.5549e-02 + 7.7000e+01 9.6377e-01 3.6701e-02 + 1.1000e+02 9.5652e-01 4.4220e-02 + + +------------ Growing tree 216 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 5 17 16 13 + + + -- linear combo weights (showing up to 5) + + -0.2069 0.3574 0.5106 0.5183 0.4363 + + + -- cutpoint (score) + --- 0.453296 (0.573594), N = 236 moving right + --- 0.881568 (0.63712), N = 194 moving right + --- 1.22331 (0.674727), N = 166 moving right + --- 2.16167 (0.671657), N = 76 moving right + --- 3.16863 (0.572698), N = 17 moving right + + -- best stat: 0.674727, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 8 5 0 4 + + + -- linear combo weights (showing up to 5) + + -0.1044 1.9954 0.2263 -0.2638 0.2014 + + + -- cutpoint (score) + --- -1.40599 (0.550576), N = 254 moving right + --- -1.31925 (0.564765), N = 248 moving right + --- -1.24792 (0.575749), N = 239 moving right + --- -1.11782 (0.627508), N = 213 moving right + --- -1.07446 (0.634602), N = 209 moving right + + -- best stat: 0.634602, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 2 9 6 4 + + + -- linear combo weights (showing up to 5) + + -0.1979 -0.4897 0.3378 0.3466 0.8093 + + + -- cutpoint (score) + --- -0.735417 (0.55418), N = 225 moving right + --- -0.520282 (0.615875), N = 191 moving right + --- -0.449244 (0.625753), N = 187 moving right + --- 0.412782 (0.580555), N = 56 moving right + --- 0.55738 (0.569571), N = 33 moving right + + -- best stat: 0.625753, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.7826e-01 2.1859e-02 + 7.1000e+01 9.7464e-01 2.5562e-02 + 7.7000e+01 9.6739e-01 3.2997e-02 + 1.1000e+02 9.6377e-01 3.6743e-02 + + +------------ Growing tree 217 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 8 9 12 1 + + + -- linear combo weights (showing up to 5) + + 7.3360 1.4958 -0.1287 -0.0062 0.3930 + + + -- cutpoint (score) + --- -0.766456 (0.622907), N = 195 moving right + --- -0.702986 (0.666284), N = 176 moving right + --- -0.365748 (0.76297), N = 124 moving right + --- 0.952223 (0.677388), N = 52 moving right + --- 1.11503 (0.6796), N = 51 moving right + + -- best stat: 0.76297, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 3 17 6 4 + + + -- linear combo weights (showing up to 5) + + 0.3706 5.5795 0.4631 0.2773 0.1763 + + + -- cutpoint (score) + --- 1.12526 (0.611065), N = 205 moving right + --- 1.30544 (0.635031), N = 178 moving right + --- 1.31855 (0.638327), N = 175 moving right + --- 1.84441 (0.72855), N = 106 moving right + --- 2.62093 (0.628199), N = 24 moving right + + -- best stat: 0.72855, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 8 11 15 10 + + + -- linear combo weights (showing up to 5) + + -0.4077 1.7027 0.4719 -0.2915 -0.4416 + + + -- cutpoint (score) + --- -1.90317 (0.51876), N = 258 moving right + --- -0.858592 (0.718227), N = 162 moving right + --- -0.762708 (0.699293), N = 154 moving right + --- -0.391728 (0.725145), N = 126 moving right + --- -0.236935 (0.732931), N = 114 moving right + + -- best stat: 0.732931, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.7464e-01 2.5575e-02 + 7.7000e+01 9.7101e-01 2.9293e-02 + 1.1000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 218 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 12 1 10 14 + + + -- linear combo weights (showing up to 5) + + 1.2042 -0.1499 0.2290 -0.7234 0.3029 + + + -- cutpoint (score) + --- -1.46908 (0.514307), N = 266 moving right + --- -1.01043 (0.546514), N = 250 moving right + --- -0.650587 (0.601948), N = 222 moving right + --- -0.603259 (0.621762), N = 214 moving right + --- 0.0600867 (0.693479), N = 171 moving right + + -- best stat: 0.693479, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 8 4 13 7 + + + -- linear combo weights (showing up to 5) + + 0.2817 0.9603 0.6888 0.1623 6.0498 + + + -- cutpoint (score) + --- -0.689918 (0.608213), N = 214 moving right + --- -0.232772 (0.702478), N = 161 moving right + --- 0.379508 (0.764297), N = 107 moving right + --- 0.692019 (0.746259), N = 84 moving right + --- 1.5211 (0.687413), N = 49 moving right + + -- best stat: 0.764297, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 0 7 11 4 + + + -- linear combo weights (showing up to 5) + + 8.1764 0.0361 1.8327 0.6981 0.8113 + + + -- cutpoint (score) + --- -0.436606 (0.608553), N = 220 moving right + --- 0.441249 (0.747017), N = 132 moving right + --- 0.441436 (0.750848), N = 131 moving right + --- 2.88173 (0.617332), N = 25 moving right + --- 3.27271 (0.622481), N = 23 moving right + + -- best stat: 0.750848, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8188e-01 1.8195e-02 + 1.3100e+02 9.7464e-01 2.5575e-02 + 1.7900e+02 9.7101e-01 2.9293e-02 + 1.8600e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 219 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 8 13 9 3 + + + -- linear combo weights (showing up to 5) + + -0.1174 1.7144 0.2007 -0.4017 8.2139 + + + -- cutpoint (score) + --- -0.814976 (0.684889), N = 162 moving right + --- -0.458114 (0.726789), N = 121 moving right + --- -0.13142 (0.751626), N = 94 moving right + --- -0.101127 (0.759994), N = 90 moving right + --- 9.01996 (0.580118), N = 15 moving right + + -- best stat: 0.759994, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 8 12 3 13 + + + -- linear combo weights (showing up to 5) + + -0.4974 1.4348 0.0937 7.7607 0.0260 + + + -- cutpoint (score) + --- -1.62927 (0.51248), N = 268 moving right + --- -1.09518 (0.586235), N = 228 moving right + --- -0.87241 (0.658047), N = 193 moving right + --- -0.619112 (0.705409), N = 155 moving right + --- -0.269123 (0.747207), N = 115 moving right + + -- best stat: 0.747207, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 9 15 14 8 + + + -- linear combo weights (showing up to 5) + + -0.8137 -0.5785 -0.2281 -0.0548 2.2166 + + + -- cutpoint (score) + --- 0.132944 (0.74107), N = 89 moving right + --- 0.779179 (0.706003), N = 57 moving right + --- 0.99471 (0.696673), N = 42 moving right + --- 2.35562 (0.660911), N = 32 moving right + --- 4.38645 (0.599288), N = 18 moving right + + -- best stat: 0.74107, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 220 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 2 17 9 8 + + + -- linear combo weights (showing up to 5) + + 0.1286 -0.2528 0.2803 -0.6202 2.6785 + + + -- cutpoint (score) + --- -0.423892 (0.707954), N = 162 moving right + --- -0.1779 (0.726725), N = 143 moving right + --- 1.03009 (0.709366), N = 64 moving right + --- 1.30211 (0.705369), N = 51 moving right + --- 3.7813 (0.612885), N = 23 moving right + + -- best stat: 0.726725, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 15 14 16 13 + + + -- linear combo weights (showing up to 5) + + 0.8484 0.0558 0.2123 0.8551 0.1941 + + + -- cutpoint (score) + --- -0.813659 (0.671923), N = 172 moving right + --- -0.029927 (0.752078), N = 102 moving right + --- 0.220135 (0.720819), N = 87 moving right + --- 0.856553 (0.685584), N = 60 moving right + --- 2.18306 (0.551044), N = 18 moving right + + -- best stat: 0.752078, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 7 17 15 5 + + + -- linear combo weights (showing up to 5) + + 0.4599 4.2995 0.5662 0.0932 0.0702 + + + -- cutpoint (score) + --- 0.779172 (0.543368), N = 254 moving right + --- 1.1937 (0.5965), N = 222 moving right + --- 1.9393 (0.696659), N = 116 moving right + --- 2.24827 (0.654524), N = 59 moving right + --- 6.32823 (0.55522), N = 8 moving right + + -- best stat: 0.696659, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.1000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 221 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 13 7 12 9 + + + -- linear combo weights (showing up to 5) + + 1.4221 0.1115 5.0268 0.0546 -0.4191 + + + -- cutpoint (score) + --- -0.690313 (0.63959), N = 189 moving right + --- -0.65561 (0.659443), N = 177 moving right + --- -0.420955 (0.734974), N = 131 moving right + --- 0.804956 (0.683439), N = 48 moving right + --- 6.49567 (0.536125), N = 8 moving right + + -- best stat: 0.734974, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 13 12 7 9 + + + -- linear combo weights (showing up to 5) + + 0.6264 0.3700 0.1292 6.9741 0.0388 + + + -- cutpoint (score) + --- -0.788806 (0.564939), N = 244 moving right + --- -0.0545157 (0.647145), N = 158 moving right + --- 0.53304 (0.651325), N = 73 moving right + --- 0.569122 (0.640508), N = 64 moving right + --- 0.994387 (0.604552), N = 32 moving right + + -- best stat: 0.651325, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 7 2 16 0 + + + -- linear combo weights (showing up to 5) + + 0.3325 6.4833 -0.5205 0.4565 -0.1239 + + + -- cutpoint (score) + --- -1.00002 (0.622155), N = 205 moving right + --- -0.792148 (0.688069), N = 164 moving right + --- -0.754228 (0.691913), N = 158 moving right + --- -0.560766 (0.694181), N = 139 moving right + --- 0.169681 (0.622361), N = 53 moving right + + -- best stat: 0.694181, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 222 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 8 0 5 1 + + + -- linear combo weights (showing up to 5) + + 0.8222 1.5344 0.2315 0.6202 0.5463 + + + -- cutpoint (score) + --- -1.45826 (0.558505), N = 236 moving right + --- -1.41117 (0.573649), N = 229 moving right + --- -1.15945 (0.626123), N = 204 moving right + --- 0.0521813 (0.768863), N = 101 moving right + --- 2.03432 (0.62839), N = 31 moving right + + -- best stat: 0.768863, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 11 9 0 15 + + + -- linear combo weights (showing up to 5) + + -0.0049 1.2564 0.2000 0.1880 -0.1755 + + + -- cutpoint (score) + --- -1.00201 (0.545959), N = 239 moving right + --- -0.820347 (0.601933), N = 210 moving right + --- -0.720547 (0.62029), N = 192 moving right + --- 1.49256 (0.627333), N = 32 moving right + --- 2.4215 (0.550339), N = 14 moving right + + -- best stat: 0.627333, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 0 17 4 15 + + + -- linear combo weights (showing up to 5) + + 1.9765 -0.1754 0.5320 -0.3989 -0.2939 + + + -- cutpoint (score) + --- -0.342072 (0.566847), N = 244 moving right + --- -0.182727 (0.590773), N = 231 moving right + --- 0.487433 (0.680049), N = 150 moving right + --- 0.707112 (0.71027), N = 130 moving right + --- 4.93347 (0.560992), N = 11 moving right + + -- best stat: 0.71027, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.7826e-01 2.1845e-02 + 1.7900e+02 9.7464e-01 2.5549e-02 + 1.9800e+02 9.7101e-01 2.9266e-02 + 2.1600e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 223 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 4 13 1 15 + + + -- linear combo weights (showing up to 5) + + 1.4272 0.2495 0.3082 0.5497 -0.0048 + + + -- cutpoint (score) + --- -1.5058 (0.561635), N = 248 moving right + --- -1.44205 (0.564867), N = 247 moving right + --- -1.39071 (0.570365), N = 244 moving right + --- -0.959022 (0.633399), N = 206 moving right + --- 1.40606 (0.68802), N = 52 moving right + + -- best stat: 0.68802, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 10 7 16 9 + + + -- linear combo weights (showing up to 5) + + 6.2837 -0.3498 2.5402 0.2997 0.9933 + + + -- cutpoint (score) + --- -0.687125 (0.601576), N = 218 moving right + --- -0.649795 (0.616709), N = 210 moving right + --- -0.515173 (0.641222), N = 191 moving right + --- 0.144838 (0.718759), N = 82 moving right + --- 3.09495 (0.610227), N = 21 moving right + + -- best stat: 0.718759, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 14 6 3 17 + + + -- linear combo weights (showing up to 5) + + 1.8775 -0.2101 0.5933 7.2230 0.1327 + + + -- cutpoint (score) + --- -0.91368 (0.504315), N = 270 moving right + --- -0.567854 (0.625025), N = 210 moving right + --- -0.385082 (0.696217), N = 161 moving right + --- 0.103556 (0.752276), N = 105 moving right + --- 0.595701 (0.732217), N = 72 moving right + + -- best stat: 0.752276, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 224 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 0 11 13 2 + + + -- linear combo weights (showing up to 5) + + 11.0088 -0.1990 0.9509 0.3721 0.1622 + + + -- cutpoint (score) + --- -0.244576 (0.706409), N = 138 moving right + --- 0.634344 (0.721712), N = 80 moving right + --- 0.677533 (0.728817), N = 76 moving right + --- 0.694235 (0.731104), N = 71 moving right + --- 11.4533 (0.571536), N = 12 moving right + + -- best stat: 0.731104, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 17 5 14 10 + + + -- linear combo weights (showing up to 5) + + 1.5963 0.3880 0.5066 -0.1436 -0.4674 + + + -- cutpoint (score) + --- -0.0619709 (0.608862), N = 216 moving right + --- 0.583602 (0.686308), N = 153 moving right + --- 1.25679 (0.751468), N = 102 moving right + --- 1.59934 (0.726732), N = 72 moving right + --- 1.76053 (0.707967), N = 66 moving right + + -- best stat: 0.751468, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 10 6 16 13 + + + -- linear combo weights (showing up to 5) + + -0.6618 -0.7552 0.0691 0.7145 0.7197 + + + -- cutpoint (score) + --- -1.20449 (0.662746), N = 170 moving right + --- -0.110221 (0.711712), N = 92 moving right + --- -0.100797 (0.717866), N = 89 moving right + --- 0.614802 (0.704364), N = 52 moving right + --- 0.965121 (0.632545), N = 33 moving right + + -- best stat: 0.717866, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.3100e+02 9.6739e-01 3.3010e-02 + + +------------ Growing tree 225 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 2 17 3 7 + + + -- linear combo weights (showing up to 5) + + 1.1402 0.3879 0.3039 2.3235 5.9940 + + + -- cutpoint (score) + --- 0.527553 (0.669521), N = 194 moving right + --- 0.947702 (0.739278), N = 128 moving right + --- 1.14759 (0.743571), N = 108 moving right + --- 1.16051 (0.745469), N = 107 moving right + --- 3.91873 (0.62957), N = 25 moving right + + -- best stat: 0.745469, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 8 14 0 17 + + + -- linear combo weights (showing up to 5) + + -0.0357 1.7467 0.1759 -0.2528 0.3432 + + + -- cutpoint (score) + --- 0.26474 (0.699553), N = 142 moving right + --- 0.344837 (0.708478), N = 134 moving right + --- 0.623697 (0.740385), N = 97 moving right + --- 1.56845 (0.644077), N = 53 moving right + --- 7.83772 (0.535839), N = 5 moving right + + -- best stat: 0.740385, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 2 7 8 15 + + + -- linear combo weights (showing up to 5) + + -0.2711 -0.1828 6.4450 1.5463 0.0252 + + + -- cutpoint (score) + --- -1.27583 (0.565079), N = 245 moving right + --- -0.978461 (0.701202), N = 160 moving right + --- -0.528628 (0.766507), N = 105 moving right + --- 0.559841 (0.686944), N = 55 moving right + --- 8.97872 (0.535341), N = 6 moving right + + -- best stat: 0.766507, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7464e-01 2.5588e-02 + 1.4000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 226 -------------- + +- N obs inbag: 276 +- N row inbag: 161 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 8 1 10 17 + + + -- linear combo weights (showing up to 5) + + 1.0408 2.0786 0.1693 -0.3933 0.0999 + + + -- cutpoint (score) + --- -0.757579 (0.689087), N = 169 moving right + --- -0.547466 (0.725248), N = 147 moving right + --- 0.22756 (0.741446), N = 81 moving right + --- 0.667117 (0.735759), N = 68 moving right + --- 1.13839 (0.701972), N = 55 moving right + + -- best stat: 0.741446, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 9 2 14 8 + + + -- linear combo weights (showing up to 5) + + -0.2156 -0.4582 -0.1574 -0.1069 2.6183 + + + -- cutpoint (score) + --- -1.66177 (0.565005), N = 237 moving right + --- -1.14176 (0.746917), N = 119 moving right + --- -0.973981 (0.758866), N = 103 moving right + --- 0.693351 (0.652637), N = 44 moving right + --- 6.31095 (0.575755), N = 11 moving right + + -- best stat: 0.758866, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 15 7 4 8 + + + -- linear combo weights (showing up to 5) + + 0.3315 -0.0701 10.9429 0.0372 1.8155 + + + -- cutpoint (score) + --- -1.53182 (0.518741), N = 264 moving right + --- -1.4262 (0.548471), N = 250 moving right + --- -1.1133 (0.632481), N = 199 moving right + --- -0.907027 (0.716778), N = 152 moving right + --- 0.00435325 (0.719513), N = 79 moving right + + -- best stat: 0.719513, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8188e-01 1.8208e-02 + 1.3100e+02 9.7101e-01 2.9279e-02 + 1.7900e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 227 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 16 14 10 7 + + + -- linear combo weights (showing up to 5) + + 0.0843 0.3882 0.4440 -0.5269 9.1889 + + + -- cutpoint (score) + --- -1.20214 (0.521798), N = 260 moving right + --- -0.852742 (0.547017), N = 235 moving right + --- -0.709828 (0.569696), N = 217 moving right + --- -0.374592 (0.665697), N = 172 moving right + --- -0.141537 (0.692309), N = 124 moving right + + -- best stat: 0.692309, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 13 8 6 17 + + + -- linear combo weights (showing up to 5) + + 5.4870 0.0043 1.0221 -0.4538 0.3456 + + + -- cutpoint (score) + --- 0.582997 (0.666557), N = 162 moving right + --- 0.797046 (0.701836), N = 137 moving right + --- 0.949403 (0.727485), N = 104 moving right + --- 2.53297 (0.691838), N = 43 moving right + --- 4.29226 (0.64771), N = 30 moving right + + -- best stat: 0.727485, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 16 13 0 2 + + + -- linear combo weights (showing up to 5) + + 9.6589 0.4419 0.3381 -0.0365 -0.9106 + + + -- cutpoint (score) + --- -1.2197 (0.663505), N = 180 moving right + --- -0.788548 (0.703106), N = 109 moving right + --- 0.0353564 (0.626383), N = 31 moving right + --- 1.14732 (0.595755), N = 18 moving right + --- 9.4725 (0.536528), N = 7 moving right + + -- best stat: 0.703106, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 228 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 8 16 6 12 + + + -- linear combo weights (showing up to 5) + + -0.0254 1.3970 0.4899 0.4887 -0.1027 + + + -- cutpoint (score) + --- -1.06708 (0.552984), N = 236 moving right + --- -0.318908 (0.734939), N = 127 moving right + --- 0.0104103 (0.74433), N = 99 moving right + --- 0.623254 (0.716641), N = 65 moving right + --- 1.06221 (0.681493), N = 50 moving right + + -- best stat: 0.74433, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 5 13 6 0 + + + -- linear combo weights (showing up to 5) + + 1.3910 0.6244 -0.0030 0.5369 -0.0964 + + + -- cutpoint (score) + --- -0.867451 (0.566255), N = 243 moving right + --- -0.823307 (0.60637), N = 221 moving right + --- 0.191765 (0.711695), N = 109 moving right + --- 1.3104 (0.648737), N = 50 moving right + --- 2.06335 (0.612081), N = 30 moving right + + -- best stat: 0.711695, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 3 0 11 6 + + + -- linear combo weights (showing up to 5) + + 0.4861 4.3932 0.1190 0.5699 0.5613 + + + -- cutpoint (score) + --- -0.573019 (0.573373), N = 221 moving right + --- -0.343847 (0.639749), N = 180 moving right + --- -0.211286 (0.684891), N = 153 moving right + --- 0.0112384 (0.70156), N = 124 moving right + --- 1.25087 (0.684248), N = 51 moving right + + -- best stat: 0.70156, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 229 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 7 2 6 10 + + + -- linear combo weights (showing up to 5) + + 0.4295 10.9425 -0.8008 1.1233 -0.5727 + + + -- cutpoint (score) + --- -2.01166 (0.51436), N = 266 moving right + --- -1.22131 (0.606485), N = 213 moving right + --- 0.0437855 (0.699165), N = 64 moving right + --- 0.195065 (0.673058), N = 53 moving right + --- 11.2864 (0.554641), N = 9 moving right + + -- best stat: 0.699165, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 8 14 5 3 + + + -- linear combo weights (showing up to 5) + + 0.4957 1.5496 -0.1537 0.1486 5.8371 + + + -- cutpoint (score) + --- -0.893575 (0.550547), N = 249 moving right + --- -0.65608 (0.652341), N = 200 moving right + --- -0.627557 (0.644482), N = 198 moving right + --- -0.477662 (0.685278), N = 181 moving right + --- 0.680069 (0.743129), N = 76 moving right + + -- best stat: 0.743129, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 5 6 10 0 + + + -- linear combo weights (showing up to 5) + + 0.4867 0.9965 0.5950 -0.7896 0.0421 + + + -- cutpoint (score) + --- -1.40003 (0.516067), N = 262 moving right + --- -0.329116 (0.593503), N = 214 moving right + --- 1.25309 (0.675197), N = 67 moving right + --- 1.42639 (0.667956), N = 55 moving right + --- 1.53099 (0.650325), N = 47 moving right + + -- best stat: 0.675197, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7464e-01 2.5602e-02 + 1.7900e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 230 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 14 13 6 9 + + + -- linear combo weights (showing up to 5) + + 1.0604 0.1403 0.1485 0.8533 0.0310 + + + -- cutpoint (score) + --- -0.796188 (0.60251), N = 224 moving right + --- -0.557682 (0.66342), N = 175 moving right + --- -0.362131 (0.672299), N = 160 moving right + --- -0.118961 (0.668185), N = 123 moving right + --- 0.952194 (0.609437), N = 40 moving right + + -- best stat: 0.672299, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 11 3 15 17 + + + -- linear combo weights (showing up to 5) + + 0.9896 0.5051 9.8550 -0.2446 0.3732 + + + -- cutpoint (score) + --- -0.160362 (0.586034), N = 237 moving right + --- 0.304382 (0.656578), N = 195 moving right + --- 0.767022 (0.711905), N = 152 moving right + --- 0.78595 (0.722798), N = 147 moving right + --- 1.78917 (0.729389), N = 64 moving right + + -- best stat: 0.729389, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 9 17 4 7 + + + -- linear combo weights (showing up to 5) + + 1.3373 0.3438 0.6635 -0.2511 3.7616 + + + -- cutpoint (score) + --- 1.63803 (0.653975), N = 194 moving right + --- 1.83199 (0.693372), N = 165 moving right + --- 1.87521 (0.707539), N = 157 moving right + --- 3.4529 (0.639892), N = 34 moving right + --- 6.04259 (0.538242), N = 5 moving right + + -- best stat: 0.707539, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 231 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 17 7 12 6 + + + -- linear combo weights (showing up to 5) + + 1.5620 0.1167 5.2781 0.1084 -0.0792 + + + -- cutpoint (score) + --- -0.543626 (0.638772), N = 198 moving right + --- -0.426148 (0.683347), N = 178 moving right + --- -0.349644 (0.682263), N = 165 moving right + --- 0.22806 (0.73817), N = 90 moving right + --- 0.3436 (0.733035), N = 82 moving right + + -- best stat: 0.73817, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 15 14 3 16 + + + -- linear combo weights (showing up to 5) + + 0.4476 0.0109 0.3086 3.4602 0.3151 + + + -- cutpoint (score) + --- -0.181763 (0.606171), N = 198 moving right + --- -0.0585425 (0.651985), N = 143 moving right + --- 0.166666 (0.65577), N = 100 moving right + --- 0.283935 (0.66916), N = 86 moving right + --- 0.354246 (0.662897), N = 77 moving right + + -- best stat: 0.66916, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 3 2 17 8 + + + -- linear combo weights (showing up to 5) + + 0.2748 3.3591 -0.1551 0.0478 1.5569 + + + -- cutpoint (score) + --- -1.03236 (0.506197), N = 271 moving right + --- -1.01843 (0.510579), N = 269 moving right + --- -0.719853 (0.61602), N = 197 moving right + --- 0.0584047 (0.743194), N = 91 moving right + --- 2.74076 (0.606967), N = 25 moving right + + -- best stat: 0.743194, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + 4.0000e+02 1.0000e+00 2.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.7900e+02 9.9638e-01 3.6232e-03 + 1.9100e+02 9.8913e-01 1.0896e-02 + 1.9800e+02 9.8188e-01 1.8222e-02 + 2.6400e+02 9.7826e-01 2.1912e-02 + 3.0400e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 232 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 12 17 13 9 + + + -- linear combo weights (showing up to 5) + + 9.0149 0.0555 0.6621 0.0955 0.4671 + + + -- cutpoint (score) + --- 1.76824 (0.666416), N = 163 moving right + --- 2.36224 (0.714948), N = 81 moving right + --- 2.6074 (0.646154), N = 40 moving right + --- 11.2717 (0.565403), N = 12 moving right + --- 11.3332 (0.542801), N = 9 moving right + + -- best stat: 0.714948, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 8 4 2 9 + + + -- linear combo weights (showing up to 5) + + 0.3971 1.9629 0.7664 0.1838 -0.2624 + + + -- cutpoint (score) + --- -1.01407 (0.615523), N = 205 moving right + --- -0.243857 (0.727505), N = 134 moving right + --- -0.0136321 (0.750322), N = 109 moving right + --- 0.262868 (0.740985), N = 94 moving right + --- 2.39333 (0.626363), N = 28 moving right + + -- best stat: 0.750322, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 5 13 2 16 + + + -- linear combo weights (showing up to 5) + + 2.1330 -0.0759 -0.1047 0.1362 0.5786 + + + -- cutpoint (score) + --- -1.38342 (0.584678), N = 228 moving right + --- -1.0941 (0.64991), N = 175 moving right + --- -1.04253 (0.671332), N = 165 moving right + --- -0.688086 (0.743754), N = 119 moving right + --- -0.574493 (0.739804), N = 111 moving right + + -- best stat: 0.743754, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8551e-01 1.4559e-02 + 1.8600e+02 9.7826e-01 2.1912e-02 + 1.9100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 233 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 0 7 8 5 + + + -- linear combo weights (showing up to 5) + + 0.0265 -0.1459 11.2189 1.3743 0.2981 + + + -- cutpoint (score) + --- -0.863008 (0.596377), N = 224 moving right + --- -0.436596 (0.723932), N = 124 moving right + --- -0.409855 (0.72704), N = 122 moving right + --- 1.00024 (0.665828), N = 40 moving right + --- 1.24805 (0.650191), N = 33 moving right + + -- best stat: 0.72704, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 6 16 1 2 + + + -- linear combo weights (showing up to 5) + + 13.2878 1.0604 0.2512 0.2963 -1.6894 + + + -- cutpoint (score) + --- -1.84944 (0.628223), N = 180 moving right + --- -1.59863 (0.676087), N = 125 moving right + --- -1.5258 (0.67664), N = 107 moving right + --- -0.227297 (0.626354), N = 44 moving right + --- 0.737096 (0.59405), N = 16 moving right + + -- best stat: 0.67664, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 17 7 1 15 + + + -- linear combo weights (showing up to 5) + + 1.1696 0.2673 11.4895 0.2924 -0.1004 + + + -- cutpoint (score) + --- -0.620972 (0.547826), N = 254 moving right + --- 0.0707241 (0.683066), N = 161 moving right + --- 0.335706 (0.706217), N = 136 moving right + --- 0.552891 (0.727975), N = 116 moving right + --- 2.24433 (0.675953), N = 40 moving right + + -- best stat: 0.727975, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 234 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 14 15 5 9 + + + -- linear combo weights (showing up to 5) + + 1.6806 0.1438 -0.2507 0.5356 -0.2517 + + + -- cutpoint (score) + --- -0.835621 (0.620591), N = 206 moving right + --- -0.53234 (0.699459), N = 156 moving right + --- 0.117692 (0.743053), N = 97 moving right + --- 1.13919 (0.671081), N = 46 moving right + --- 2.54752 (0.614813), N = 25 moving right + + -- best stat: 0.743053, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 4 6 10 15 + + + -- linear combo weights (showing up to 5) + + 0.5299 0.8202 -0.4258 -0.8596 -0.2610 + + + -- cutpoint (score) + --- -0.444709 (0.621364), N = 204 moving right + --- -0.356415 (0.641788), N = 197 moving right + --- 0.35245 (0.719883), N = 134 moving right + --- 0.95339 (0.717137), N = 88 moving right + --- 1.5046 (0.678954), N = 51 moving right + + -- best stat: 0.719883, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 3 10 5 6 + + + -- linear combo weights (showing up to 5) + + 0.8202 4.4874 -0.6122 0.4269 -0.1245 + + + -- cutpoint (score) + --- -0.851738 (0.522906), N = 260 moving right + --- -0.12581 (0.641116), N = 197 moving right + --- -0.065316 (0.652101), N = 192 moving right + --- 0.951508 (0.701168), N = 88 moving right + --- 1.20507 (0.68109), N = 67 moving right + + -- best stat: 0.701168, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8551e-01 1.4493e-02 + 7.1000e+01 9.7826e-01 2.1846e-02 + 7.7000e+01 9.7464e-01 2.5549e-02 + 1.1000e+02 9.7101e-01 2.9267e-02 + 1.4000e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 235 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 0 3 8 10 + + + -- linear combo weights (showing up to 5) + + -0.0571 0.0308 3.1115 2.1959 -0.4980 + + + -- cutpoint (score) + --- -1.33903 (0.604308), N = 205 moving right + --- -1.32667 (0.613886), N = 200 moving right + --- -1.05632 (0.696037), N = 159 moving right + --- -0.877634 (0.727176), N = 139 moving right + --- -0.616296 (0.739179), N = 121 moving right + + -- best stat: 0.739179, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 13 0 8 14 + + + -- linear combo weights (showing up to 5) + + 0.7264 0.1279 -0.0333 2.4265 -0.1686 + + + -- cutpoint (score) + --- -1.37499 (0.586858), N = 223 moving right + --- -1.33217 (0.604555), N = 212 moving right + --- -0.506492 (0.738192), N = 113 moving right + --- 0.493523 (0.716467), N = 80 moving right + --- 1.77277 (0.649813), N = 31 moving right + + -- best stat: 0.738192, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 2 4 10 7 + + + -- linear combo weights (showing up to 5) + + 0.4687 -0.7254 0.5720 -0.7697 6.7116 + + + -- cutpoint (score) + --- -0.595487 (0.660932), N = 168 moving right + --- -0.446265 (0.678916), N = 152 moving right + --- -0.156559 (0.705554), N = 107 moving right + --- 0.518401 (0.654622), N = 42 moving right + --- 7.92117 (0.548937), N = 7 moving right + + -- best stat: 0.705554, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 236 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 253 +- max leaves: 127 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 8 15 0 12 + + + -- linear combo weights (showing up to 5) + + 0.4356 1.4819 -0.0567 0.1883 -0.0281 + + + -- cutpoint (score) + --- -1.00553 (0.606178), N = 214 moving right + --- -0.635749 (0.718966), N = 148 moving right + --- -0.0566772 (0.738891), N = 97 moving right + --- 0.0693244 (0.736887), N = 94 moving right + --- 1.55375 (0.617316), N = 40 moving right + + -- best stat: 0.738891, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 17 9 15 13 + + + -- linear combo weights (showing up to 5) + + 5.1332 0.5701 0.5884 -0.0091 0.2318 + + + -- cutpoint (score) + --- 0.753943 (0.581801), N = 236 moving right + --- 1.11943 (0.609068), N = 213 moving right + --- 2.0032 (0.686977), N = 94 moving right + --- 2.13047 (0.650056), N = 74 moving right + --- 2.27871 (0.64466), N = 49 moving right + + -- best stat: 0.686977, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 9 17 7 12 + + + -- linear combo weights (showing up to 5) + + 0.2789 0.6882 0.5152 5.1709 0.1005 + + + -- cutpoint (score) + --- 1.00172 (0.599337), N = 223 moving right + --- 1.84164 (0.680907), N = 118 moving right + --- 1.95754 (0.665067), N = 99 moving right + --- 2.07965 (0.669827), N = 79 moving right + --- 2.14686 (0.672255), N = 71 moving right + + -- best stat: 0.680907, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 237 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 3 2 9 5 + + + -- linear combo weights (showing up to 5) + + -0.7245 6.3964 -0.6921 0.2430 0.6686 + + + -- cutpoint (score) + --- -0.959705 (0.634792), N = 207 moving right + --- -0.787483 (0.682943), N = 183 moving right + --- -0.764759 (0.689451), N = 178 moving right + --- -0.264103 (0.719197), N = 119 moving right + --- 1.6097 (0.645153), N = 33 moving right + + -- best stat: 0.719197, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 11 8 14 4 + + + -- linear combo weights (showing up to 5) + + -0.3546 0.6189 1.3942 -0.1014 0.1595 + + + -- cutpoint (score) + --- -1.20202 (0.520402), N = 265 moving right + --- -1.18029 (0.527449), N = 262 moving right + --- -1.0307 (0.584305), N = 223 moving right + --- -0.863602 (0.641799), N = 189 moving right + --- -0.857518 (0.650204), N = 185 moving right + + -- best stat: 0.650204, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 8 9 10 1 + + + -- linear combo weights (showing up to 5) + + 0.2473 1.3104 -0.4105 -0.8087 0.3748 + + + -- cutpoint (score) + --- -1.02309 (0.622255), N = 203 moving right + --- -0.731716 (0.667592), N = 169 moving right + --- 0.464033 (0.746726), N = 85 moving right + --- 0.631594 (0.737164), N = 73 moving right + --- 4.89368 (0.560269), N = 12 moving right + + -- best stat: 0.746726, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.1000e+01 9.7464e-01 2.5576e-02 + 1.1000e+02 9.6739e-01 3.3011e-02 + 1.4000e+02 9.5652e-01 4.4247e-02 + + +------------ Growing tree 238 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 11 7 12 6 + + + -- linear combo weights (showing up to 5) + + 0.3037 0.4879 6.9951 0.0174 1.2912 + + + -- cutpoint (score) + --- -0.361725 (0.636131), N = 192 moving right + --- -0.257482 (0.675034), N = 174 moving right + --- -0.0283215 (0.68024), N = 114 moving right + --- 0.303732 (0.715156), N = 86 moving right + --- 1.62511 (0.62859), N = 33 moving right + + -- best stat: 0.715156, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 15 13 12 17 + + + -- linear combo weights (showing up to 5) + + 1.0651 -0.1104 0.4266 0.0937 0.6244 + + + -- cutpoint (score) + --- 1.21443 (0.614995), N = 215 moving right + --- 1.92696 (0.700074), N = 140 moving right + --- 2.1615 (0.661605), N = 114 moving right + --- 2.88477 (0.570576), N = 32 moving right + --- 3.36108 (0.549172), N = 12 moving right + + -- best stat: 0.700074, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 13 3 4 9 + + + -- linear combo weights (showing up to 5) + + -0.0826 0.3659 9.9157 0.8229 0.2417 + + + -- cutpoint (score) + --- -0.587055 (0.531073), N = 259 moving right + --- -0.194155 (0.619148), N = 207 moving right + --- 0.588709 (0.724887), N = 126 moving right + --- 0.942204 (0.694806), N = 71 moving right + --- 10.9718 (0.538552), N = 6 moving right + + -- best stat: 0.724887, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8551e-01 1.4493e-02 + 7.1000e+01 9.8188e-01 1.8169e-02 + 1.3100e+02 9.7101e-01 2.9239e-02 + 1.7900e+02 9.6014e-01 4.0433e-02 + 1.9100e+02 9.4565e-01 5.5528e-02 + + +------------ Growing tree 239 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 3 4 13 0 + + + -- linear combo weights (showing up to 5) + + -0.0453 4.9695 0.3314 0.4423 0.0378 + + + -- cutpoint (score) + --- -0.398353 (0.550234), N = 244 moving right + --- 0.0932705 (0.641869), N = 148 moving right + --- 0.16551 (0.654807), N = 131 moving right + --- 0.356176 (0.663358), N = 104 moving right + --- 0.66137 (0.630529), N = 64 moving right + + -- best stat: 0.663358, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 15 17 9 7 + + + -- linear combo weights (showing up to 5) + + 0.5123 0.0626 0.2620 0.6558 9.4575 + + + -- cutpoint (score) + --- 0.176909 (0.610637), N = 206 moving right + --- 0.29756 (0.631701), N = 186 moving right + --- 0.435677 (0.673648), N = 162 moving right + --- 1.01263 (0.723255), N = 84 moving right + --- 3.08733 (0.602147), N = 22 moving right + + -- best stat: 0.723255, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 0 6 17 13 + + + -- linear combo weights (showing up to 5) + + 4.6548 0.1304 1.4072 0.2275 0.4949 + + + -- cutpoint (score) + --- 0.0083183 (0.54132), N = 254 moving right + --- 0.311437 (0.588845), N = 224 moving right + --- 0.365538 (0.592181), N = 217 moving right + --- 1.79923 (0.636836), N = 47 moving right + --- 4.99087 (0.59681), N = 17 moving right + + -- best stat: 0.636836, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 240 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 6 16 11 4 + + + -- linear combo weights (showing up to 5) + + 0.1489 0.3474 1.0177 0.8861 0.3941 + + + -- cutpoint (score) + --- -0.845823 (0.638028), N = 197 moving right + --- -0.778279 (0.659067), N = 188 moving right + --- -0.388286 (0.714274), N = 152 moving right + --- -0.276958 (0.732428), N = 141 moving right + --- 2.55355 (0.618579), N = 23 moving right + + -- best stat: 0.732428, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 13 0 15 12 + + + -- linear combo weights (showing up to 5) + + 0.7106 0.2895 -0.3862 -0.1604 0.0611 + + + -- cutpoint (score) + --- 1.08668 (0.588611), N = 226 moving right + --- 1.17241 (0.605917), N = 217 moving right + --- 1.67788 (0.670986), N = 174 moving right + --- 1.83404 (0.680191), N = 158 moving right + --- 2.70514 (0.64456), N = 55 moving right + + -- best stat: 0.680191, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 15 3 4 6 + + + -- linear combo weights (showing up to 5) + + 12.8285 0.0031 3.9725 0.9121 1.2456 + + + -- cutpoint (score) + --- -0.0019793 (0.510774), N = 256 moving right + --- -0.000430122 (0.540551), N = 227 moving right + --- 0.00246616 (0.613277), N = 181 moving right + --- 0.91124 (0.643775), N = 109 moving right + --- 0.914608 (0.662036), N = 54 moving right + + -- best stat: 0.662036, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 241 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 9 6 7 5 + + + -- linear combo weights (showing up to 5) + + -0.3344 0.1658 1.4726 11.2771 1.1808 + + + -- cutpoint (score) + --- -0.194182 (0.618029), N = 202 moving right + --- 0.0103177 (0.70313), N = 151 moving right + --- 0.464863 (0.696992), N = 102 moving right + --- 0.886314 (0.699272), N = 83 moving right + --- 1.01653 (0.697475), N = 75 moving right + + -- best stat: 0.70313, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 9 6 1 3 + + + -- linear combo weights (showing up to 5) + + 0.6096 0.3684 0.7633 0.5942 13.8501 + + + -- cutpoint (score) + --- -0.928262 (0.587119), N = 229 moving right + --- -0.718045 (0.628749), N = 204 moving right + --- -0.068013 (0.698658), N = 140 moving right + --- 0.454297 (0.741604), N = 90 moving right + --- 0.902763 (0.715166), N = 51 moving right + + -- best stat: 0.741604, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 2 15 17 1 + + + -- linear combo weights (showing up to 5) + + -0.5543 -0.6354 -0.1510 0.6174 0.6168 + + + -- cutpoint (score) + --- 0.230322 (0.613995), N = 219 moving right + --- 0.31117 (0.622786), N = 211 moving right + --- 0.717235 (0.673229), N = 168 moving right + --- 0.962765 (0.702539), N = 148 moving right + --- 2.26974 (0.687412), N = 55 moving right + + -- best stat: 0.702539, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.6377e-01 3.6700e-02 + 1.4000e+02 9.5652e-01 4.4219e-02 + + +------------ Growing tree 242 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 3 16 15 14 + + + -- linear combo weights (showing up to 5) + + 0.7164 6.3791 0.1414 -0.3238 0.0297 + + + -- cutpoint (score) + --- -0.811339 (0.523333), N = 262 moving right + --- -0.343926 (0.610817), N = 190 moving right + --- -0.105406 (0.673914), N = 134 moving right + --- -0.0875707 (0.698301), N = 120 moving right + --- 0.11263 (0.700879), N = 81 moving right + + -- best stat: 0.700879, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 12 6 11 2 + + + -- linear combo weights (showing up to 5) + + 0.7437 0.0630 0.9140 1.1773 0.4324 + + + -- cutpoint (score) + --- -0.33995 (0.676357), N = 160 moving right + --- -0.282697 (0.684449), N = 157 moving right + --- 0.282302 (0.701305), N = 100 moving right + --- 0.91917 (0.678307), N = 58 moving right + --- 1.39886 (0.658851), N = 46 moving right + + -- best stat: 0.701305, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 5 11 10 7 + + + -- linear combo weights (showing up to 5) + + -0.0647 0.6174 0.8875 -0.5221 18.9966 + + + -- cutpoint (score) + --- -0.480593 (0.681625), N = 172 moving right + --- -0.239393 (0.730555), N = 141 moving right + --- 0.035719 (0.698077), N = 114 moving right + --- 2.00135 (0.643341), N = 27 moving right + --- 20.9927 (0.551038), N = 8 moving right + + -- best stat: 0.730555, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + 4.0000e+02 1.0000e+00 3.0000e+00 + 5.1500e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8188e-01 1.8169e-02 + 1.1000e+02 9.7826e-01 2.1859e-02 + 1.4000e+02 9.7101e-01 2.9266e-02 + 1.9800e+02 9.6739e-01 3.2997e-02 + + +------------ Growing tree 243 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 5 1 16 6 + + + -- linear combo weights (showing up to 5) + + 3.4730 0.0126 0.4059 0.2001 0.0823 + + + -- cutpoint (score) + --- -0.678288 (0.789823), N = 99 moving right + --- 0.0596075 (0.740789), N = 65 moving right + --- 0.207276 (0.747456), N = 62 moving right + --- 0.510428 (0.719502), N = 58 moving right + --- 5.57234 (0.596179), N = 16 moving right + + -- best stat: 0.789823, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 8 17 6 4 + + + -- linear combo weights (showing up to 5) + + -0.2626 3.4257 0.3126 0.2455 -0.1436 + + + -- cutpoint (score) + --- -1.57817 (0.56704), N = 240 moving right + --- -0.481789 (0.755846), N = 121 moving right + --- -0.406987 (0.760332), N = 111 moving right + --- 1.95818 (0.662575), N = 45 moving right + --- 8.47324 (0.559855), N = 9 moving right + + -- best stat: 0.760332, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 5 17 15 9 + + + -- linear combo weights (showing up to 5) + + 0.3411 0.3873 0.6398 -0.1232 0.5661 + + + -- cutpoint (score) + --- 0.971477 (0.542492), N = 248 moving right + --- 1.30368 (0.585836), N = 223 moving right + --- 1.66154 (0.652066), N = 192 moving right + --- 1.67066 (0.659086), N = 188 moving right + --- 1.85765 (0.699647), N = 160 moving right + + -- best stat: 0.699647, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.7826e-01 2.1859e-02 + 7.1000e+01 9.7464e-01 2.5562e-02 + 7.7000e+01 9.7101e-01 2.9280e-02 + 1.1000e+02 9.6739e-01 3.3011e-02 + + +------------ Growing tree 244 -------------- + +- N obs inbag: 276 +- N row inbag: 161 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 16 11 15 6 + + + -- linear combo weights (showing up to 5) + + 0.1513 0.7554 1.1308 -0.2236 -0.5028 + + + -- cutpoint (score) + --- -0.811308 (0.683807), N = 162 moving right + --- -0.702877 (0.699012), N = 153 moving right + --- -0.0636924 (0.755688), N = 104 moving right + --- -0.0400258 (0.7629), N = 102 moving right + --- 1.81912 (0.617582), N = 33 moving right + + -- best stat: 0.7629, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 11 4 2 3 + + + -- linear combo weights (showing up to 5) + + 5.9683 0.9121 0.5796 -0.1987 4.7346 + + + -- cutpoint (score) + --- -0.950634 (0.540203), N = 256 moving right + --- -0.712965 (0.619162), N = 211 moving right + --- -0.54763 (0.649192), N = 193 moving right + --- 0.537379 (0.704399), N = 68 moving right + --- 1.93335 (0.63539), N = 33 moving right + + -- best stat: 0.704399, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 2 1 5 6 + + + -- linear combo weights (showing up to 5) + + 8.7824 -1.1169 0.6924 1.0882 0.1563 + + + -- cutpoint (score) + --- -2.0386 (0.518788), N = 259 moving right + --- -0.744918 (0.68009), N = 146 moving right + --- -0.582363 (0.684876), N = 119 moving right + --- 0.408664 (0.646432), N = 42 moving right + --- 0.447757 (0.651641), N = 39 moving right + + -- best stat: 0.684876, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 5.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.7826e-01 2.1805e-02 + 1.1000e+02 9.7464e-01 2.5509e-02 + 1.4000e+02 9.6739e-01 3.2944e-02 + 1.8600e+02 9.6014e-01 4.0434e-02 + + +------------ Growing tree 245 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 6 9 13 3 + + + -- linear combo weights (showing up to 5) + + 0.0500 1.6093 0.3592 0.4496 8.3315 + + + -- cutpoint (score) + --- -0.6567 (0.559365), N = 248 moving right + --- -0.51771 (0.586873), N = 236 moving right + --- -0.0890965 (0.716516), N = 158 moving right + --- 0.355193 (0.665145), N = 92 moving right + --- 0.495449 (0.67453), N = 80 moving right + + -- best stat: 0.716516, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 10 8 17 13 + + + -- linear combo weights (showing up to 5) + + 2.8123 -0.4502 1.6006 0.3556 0.0899 + + + -- cutpoint (score) + --- 0.746249 (0.712108), N = 118 moving right + --- 1.07202 (0.733484), N = 84 moving right + --- 2.84686 (0.656975), N = 37 moving right + --- 3.04985 (0.651607), N = 36 moving right + --- 3.82286 (0.639577), N = 24 moving right + + -- best stat: 0.733484, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 6 13 5 15 + + + -- linear combo weights (showing up to 5) + + 0.7400 1.5825 0.5603 0.8923 -0.0497 + + + -- cutpoint (score) + --- -0.871606 (0.565811), N = 240 moving right + --- -0.626795 (0.623629), N = 210 moving right + --- -0.280458 (0.628821), N = 176 moving right + --- 1.04689 (0.709287), N = 70 moving right + --- 1.5712 (0.648002), N = 48 moving right + + -- best stat: 0.709287, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 246 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 14 12 7 6 + + + -- linear combo weights (showing up to 5) + + -0.4654 0.5203 0.4395 5.0249 1.6492 + + + -- cutpoint (score) + --- -1.04232 (0.544789), N = 256 moving right + --- -0.687287 (0.585531), N = 221 moving right + --- -0.244611 (0.646663), N = 177 moving right + --- 0.246164 (0.692441), N = 92 moving right + --- 0.248957 (0.686493), N = 91 moving right + + -- best stat: 0.692441, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 15 17 13 6 + + + -- linear combo weights (showing up to 5) + + 0.1367 -0.3042 0.6168 0.4608 1.5940 + + + -- cutpoint (score) + --- 0.708651 (0.560562), N = 246 moving right + --- 0.842835 (0.571906), N = 240 moving right + --- 0.945735 (0.588268), N = 231 moving right + --- 2.1688 (0.741677), N = 105 moving right + --- 3.40809 (0.609038), N = 30 moving right + + -- best stat: 0.741677, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 11 5 8 1 + + + -- linear combo weights (showing up to 5) + + 0.0300 0.5946 0.7130 1.6148 0.3211 + + + -- cutpoint (score) + --- -1.37551 (0.588021), N = 237 moving right + --- -0.879585 (0.710664), N = 170 moving right + --- -0.442312 (0.752717), N = 137 moving right + --- -0.17993 (0.75534), N = 121 moving right + --- 0.562026 (0.751748), N = 84 moving right + + -- best stat: 0.75534, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7101e-01 2.9279e-02 + 1.1000e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 247 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 14 15 4 3 + + + -- linear combo weights (showing up to 5) + + 4.5574 0.5906 0.0147 0.6843 3.1880 + + + -- cutpoint (score) + --- -0.188807 (0.594479), N = 211 moving right + --- 0.207599 (0.653311), N = 163 moving right + --- 0.483881 (0.677888), N = 119 moving right + --- 0.523067 (0.683166), N = 106 moving right + --- 1.45923 (0.635688), N = 44 moving right + + -- best stat: 0.683166, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 13 0 11 3 + + + -- linear combo weights (showing up to 5) + + 1.0375 0.3275 -0.1964 0.5823 4.8400 + + + -- cutpoint (score) + --- -1.04088 (0.516232), N = 268 moving right + --- -0.817036 (0.564548), N = 241 moving right + --- -0.366722 (0.652321), N = 183 moving right + --- 0.484597 (0.699246), N = 78 moving right + --- 0.841022 (0.706657), N = 63 moving right + + -- best stat: 0.706657, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 15 6 9 4 + + + -- linear combo weights (showing up to 5) + + 0.5181 -0.0579 0.7367 0.1826 0.8391 + + + -- cutpoint (score) + --- -0.435663 (0.542048), N = 238 moving right + --- -0.224496 (0.594021), N = 210 moving right + --- 0.389183 (0.656398), N = 153 moving right + --- 0.533885 (0.675678), N = 130 moving right + --- 0.876566 (0.6443), N = 85 moving right + + -- best stat: 0.675678, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 248 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 13 11 10 5 + + + -- linear combo weights (showing up to 5) + + 0.8602 0.2126 0.9211 -0.7220 0.6075 + + + -- cutpoint (score) + --- -0.278515 (0.678693), N = 166 moving right + --- -0.0492621 (0.691385), N = 138 moving right + --- 1.13595 (0.716749), N = 62 moving right + --- 1.25926 (0.709095), N = 58 moving right + --- 1.70783 (0.677589), N = 46 moving right + + -- best stat: 0.716749, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 15 11 9 16 + + + -- linear combo weights (showing up to 5) + + 9.5291 -0.0058 0.7609 0.2213 0.6958 + + + -- cutpoint (score) + --- -1.21764 (0.539161), N = 255 moving right + --- -0.777032 (0.59919), N = 215 moving right + --- -0.742711 (0.617656), N = 208 moving right + --- -0.469301 (0.718028), N = 146 moving right + --- 2.73975 (0.592544), N = 20 moving right + + -- best stat: 0.718028, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 4 17 2 16 + + + -- linear combo weights (showing up to 5) + + -0.7794 0.4835 0.1878 -0.6669 0.8523 + + + -- cutpoint (score) + --- -1.48219 (0.509359), N = 260 moving right + --- -0.754742 (0.598647), N = 209 moving right + --- -0.178983 (0.698535), N = 152 moving right + --- 0.00254125 (0.707836), N = 132 moving right + --- 0.446334 (0.709076), N = 109 moving right + + -- best stat: 0.709076, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 249 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 0 4 3 5 + + + -- linear combo weights (showing up to 5) + + 0.2617 0.0373 0.2413 8.6439 1.0089 + + + -- cutpoint (score) + --- -0.02315 (0.592258), N = 214 moving right + --- 0.0358493 (0.621789), N = 201 moving right + --- 0.335724 (0.691588), N = 108 moving right + --- 1.16345 (0.663928), N = 60 moving right + --- 8.4251 (0.623444), N = 25 moving right + + -- best stat: 0.691588, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 5 12 8 0 + + + -- linear combo weights (showing up to 5) + + 0.4794 0.6207 0.1360 1.5639 0.1329 + + + -- cutpoint (score) + --- -1.06353 (0.555516), N = 243 moving right + --- -0.768301 (0.625611), N = 205 moving right + --- -0.621522 (0.690662), N = 172 moving right + --- 0.36859 (0.731659), N = 91 moving right + --- 1.04302 (0.662372), N = 56 moving right + + -- best stat: 0.731659, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 2 11 13 + + + -- linear combo weights (showing up to 5) + + 8.0211 1.0220 -0.2093 0.4649 0.2050 + + + -- cutpoint (score) + --- -0.337184 (0.675827), N = 179 moving right + --- 0.230931 (0.747203), N = 116 moving right + --- 0.525269 (0.731915), N = 91 moving right + --- 3.94389 (0.632309), N = 26 moving right + --- 7.59437 (0.604177), N = 20 moving right + + -- best stat: 0.747203, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 250 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 0 6 12 5 + + + -- linear combo weights (showing up to 5) + + 0.6474 -0.2763 0.4925 0.0553 0.7276 + + + -- cutpoint (score) + --- -0.0423025 (0.56933), N = 226 moving right + --- -0.020441 (0.61766), N = 192 moving right + --- 0.375018 (0.624488), N = 127 moving right + --- 1.07757 (0.596081), N = 52 moving right + --- 1.0964 (0.603199), N = 48 moving right + + -- best stat: 0.624488, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 17 14 2 9 + + + -- linear combo weights (showing up to 5) + + 0.0197 0.6564 0.3384 -0.7404 0.4634 + + + -- cutpoint (score) + --- 0.370852 (0.586006), N = 228 moving right + --- 0.867409 (0.628833), N = 198 moving right + --- 1.85399 (0.637377), N = 71 moving right + --- 1.94841 (0.601626), N = 60 moving right + --- 2.02271 (0.595771), N = 49 moving right + + -- best stat: 0.637377, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 8 11 16 10 + + + -- linear combo weights (showing up to 5) + + 2.3531 1.7572 0.7296 0.3049 -0.4568 + + + -- cutpoint (score) + --- -1.08442 (0.710514), N = 141 moving right + --- -1.06883 (0.723238), N = 136 moving right + --- 0.51424 (0.773989), N = 70 moving right + --- 1.69579 (0.705259), N = 43 moving right + --- 2.69211 (0.650101), N = 29 moving right + + -- best stat: 0.773989, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 251 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 11 15 17 14 + + + -- linear combo weights (showing up to 5) + + -0.1087 0.9293 -0.0464 0.4236 0.1570 + + + -- cutpoint (score) + --- 0.0831442 (0.545353), N = 255 moving right + --- 0.853945 (0.655253), N = 175 moving right + --- 1.43459 (0.715769), N = 99 moving right + --- 1.78343 (0.695827), N = 64 moving right + --- 2.83346 (0.583881), N = 24 moving right + + -- best stat: 0.715769, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 2 6 15 16 + + + -- linear combo weights (showing up to 5) + + -0.7334 -0.1803 0.6999 0.0581 0.8557 + + + -- cutpoint (score) + --- -0.748135 (0.603863), N = 187 moving right + --- -0.296448 (0.65486), N = 133 moving right + --- -0.158085 (0.676041), N = 110 moving right + --- 0.0498457 (0.69624), N = 90 moving right + --- 0.557945 (0.677064), N = 57 moving right + + -- best stat: 0.69624, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 0 8 10 3 + + + -- linear combo weights (showing up to 5) + + -0.3807 -0.0354 1.6007 -0.5076 4.7378 + + + -- cutpoint (score) + --- -0.582334 (0.6856), N = 157 moving right + --- -0.240562 (0.748436), N = 102 moving right + --- 0.299344 (0.715907), N = 67 moving right + --- 0.897653 (0.671046), N = 45 moving right + --- 1.13519 (0.677634), N = 41 moving right + + -- best stat: 0.748436, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 252 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 3 14 8 11 + + + -- linear combo weights (showing up to 5) + + -0.1542 6.4478 -0.2020 1.1298 0.5105 + + + -- cutpoint (score) + --- -0.754717 (0.654856), N = 189 moving right + --- -0.618047 (0.716306), N = 160 moving right + --- -0.588473 (0.71949), N = 159 moving right + --- 0.670936 (0.722498), N = 74 moving right + --- 0.898364 (0.708278), N = 64 moving right + + -- best stat: 0.722498, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 14 5 10 6 + + + -- linear combo weights (showing up to 5) + + 0.6829 0.1939 0.3520 -0.7196 0.5016 + + + -- cutpoint (score) + --- -0.210636 (0.608348), N = 206 moving right + --- -0.133236 (0.641495), N = 192 moving right + --- 0.130287 (0.646886), N = 177 moving right + --- 0.668499 (0.678998), N = 121 moving right + --- 1.34397 (0.644406), N = 56 moving right + + -- best stat: 0.678998, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 11 1 17 4 + + + -- linear combo weights (showing up to 5) + + 6.6988 0.7751 0.3838 0.1397 0.5282 + + + -- cutpoint (score) + --- -0.445396 (0.558227), N = 249 moving right + --- -0.158723 (0.586979), N = 229 moving right + --- -0.0970718 (0.60495), N = 217 moving right + --- 0.632669 (0.727283), N = 129 moving right + --- 1.48791 (0.695523), N = 71 moving right + + -- best stat: 0.727283, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8188e-01 1.8196e-02 + 7.7000e+01 9.7464e-01 2.5576e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6377e-01 3.6756e-02 + + +------------ Growing tree 253 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 7 10 2 15 + + + -- linear combo weights (showing up to 5) + + 0.5769 3.5902 -0.7625 -0.6553 -0.0288 + + + -- cutpoint (score) + --- 0.811084 (0.684719), N = 172 moving right + --- 0.898458 (0.711467), N = 161 moving right + --- 1.06907 (0.71822), N = 145 moving right + --- 1.40033 (0.688692), N = 113 moving right + --- 1.97779 (0.708422), N = 62 moving right + + -- best stat: 0.71822, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 10 7 12 17 + + + -- linear combo weights (showing up to 5) + + 0.3626 -0.6935 3.4154 0.1212 0.5233 + + + -- cutpoint (score) + --- 0.511338 (0.550671), N = 254 moving right + --- 1.24655 (0.659825), N = 194 moving right + --- 1.3612 (0.691141), N = 172 moving right + --- 2.22857 (0.680328), N = 83 moving right + --- 2.57515 (0.679621), N = 61 moving right + + -- best stat: 0.691141, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 12 7 9 13 + + + -- linear combo weights (showing up to 5) + + -0.7339 0.0970 3.9405 0.4834 0.1818 + + + -- cutpoint (score) + --- -1.33642 (0.540188), N = 258 moving right + --- -0.415565 (0.605094), N = 188 moving right + --- -0.164811 (0.671081), N = 154 moving right + --- 0.0339773 (0.694584), N = 133 moving right + --- 0.0729036 (0.710474), N = 125 moving right + + -- best stat: 0.710474, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 254 -------------- + +- N obs inbag: 276 +- N row inbag: 162 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 2 12 10 9 + + + -- linear combo weights (showing up to 5) + + -0.3436 -0.5574 0.0574 -0.9328 0.5914 + + + -- cutpoint (score) + --- -1.26534 (0.62128), N = 208 moving right + --- -0.510959 (0.671738), N = 131 moving right + --- -0.323555 (0.702632), N = 108 moving right + --- 0.20221 (0.700535), N = 53 moving right + --- 1.24004 (0.562904), N = 11 moving right + + -- best stat: 0.702632, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 0 16 3 7 + + + -- linear combo weights (showing up to 5) + + 1.5415 0.0946 0.2330 7.7502 4.7096 + + + -- cutpoint (score) + --- -0.846665 (0.651773), N = 189 moving right + --- -0.779811 (0.699554), N = 166 moving right + --- -0.716258 (0.719496), N = 141 moving right + --- -0.248246 (0.761008), N = 103 moving right + --- 0.869943 (0.697569), N = 53 moving right + + -- best stat: 0.761008, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 14 16 12 1 + + + -- linear combo weights (showing up to 5) + + 2.1646 0.0237 0.3092 0.0332 0.4859 + + + -- cutpoint (score) + --- -1.19666 (0.655476), N = 177 moving right + --- -0.60967 (0.741847), N = 121 moving right + --- -0.438001 (0.777627), N = 94 moving right + --- 0.704312 (0.718916), N = 62 moving right + --- 4.50703 (0.575708), N = 13 moving right + + -- best stat: 0.777627, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 5.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 255 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 1 14 6 13 + + + -- linear combo weights (showing up to 5) + + 1.3881 0.5821 0.0013 0.1698 0.2921 + + + -- cutpoint (score) + --- -1.36267 (0.579915), N = 236 moving right + --- -1.10406 (0.615621), N = 202 moving right + --- -0.18217 (0.747134), N = 109 moving right + --- 1.43669 (0.676356), N = 48 moving right + --- 3.86814 (0.533571), N = 6 moving right + + -- best stat: 0.747134, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 12 3 7 8 + + + -- linear combo weights (showing up to 5) + + 0.0375 0.0108 18.3065 0.3604 1.3206 + + + -- cutpoint (score) + --- -0.851487 (0.511889), N = 265 moving right + --- -0.725006 (0.604771), N = 208 moving right + --- -0.714261 (0.619392), N = 202 moving right + --- -0.10635 (0.733994), N = 99 moving right + --- 0.381661 (0.681474), N = 63 moving right + + -- best stat: 0.733994, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 5 14 12 3 + + + -- linear combo weights (showing up to 5) + + 0.8275 1.0062 0.3466 0.1693 19.7364 + + + -- cutpoint (score) + --- -0.251549 (0.570643), N = 222 moving right + --- 0.0269099 (0.632455), N = 161 moving right + --- 0.130349 (0.642132), N = 141 moving right + --- 0.840713 (0.643363), N = 53 moving right + --- 1.32254 (0.615583), N = 28 moving right + + -- best stat: 0.643363, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 256 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 11 0 13 14 + + + -- linear combo weights (showing up to 5) + + 0.1855 0.9152 -0.5037 0.2195 0.3128 + + + -- cutpoint (score) + --- -1.18716 (0.586461), N = 227 moving right + --- -1.17913 (0.592912), N = 224 moving right + --- -0.906505 (0.661909), N = 183 moving right + --- -0.357573 (0.696046), N = 117 moving right + --- -0.00528882 (0.696628), N = 81 moving right + + -- best stat: 0.696628, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 2 10 17 3 + + + -- linear combo weights (showing up to 5) + + 7.7341 -0.9336 -0.3817 0.3710 6.5976 + + + -- cutpoint (score) + --- -0.210261 (0.594449), N = 218 moving right + --- 0.157518 (0.671922), N = 161 moving right + --- 0.166949 (0.674157), N = 160 moving right + --- 0.459286 (0.671596), N = 111 moving right + --- 7.34297 (0.615383), N = 18 moving right + + -- best stat: 0.674157, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 2 7 5 9 + + + -- linear combo weights (showing up to 5) + + 0.2977 -0.8336 11.2252 0.7866 0.1127 + + + -- cutpoint (score) + --- -1.06772 (0.590676), N = 223 moving right + --- -0.957917 (0.638459), N = 197 moving right + --- -0.761917 (0.665821), N = 162 moving right + --- -0.695042 (0.661), N = 153 moving right + --- 0.0765086 (0.665192), N = 54 moving right + + -- best stat: 0.665821, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8188e-01 1.8208e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 257 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 6 16 10 1 + + + -- linear combo weights (showing up to 5) + + 0.7652 -0.4840 0.6328 -0.8562 0.2614 + + + -- cutpoint (score) + --- -2.03534 (0.51889), N = 266 moving right + --- -2.02004 (0.521023), N = 265 moving right + --- -0.239124 (0.721286), N = 142 moving right + --- 0.0765406 (0.747826), N = 115 moving right + --- 1.17418 (0.697104), N = 46 moving right + + -- best stat: 0.747826, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 7 9 16 6 + + + -- linear combo weights (showing up to 5) + + -0.1177 7.8173 0.3570 0.4213 0.2731 + + + -- cutpoint (score) + --- -0.138298 (0.691443), N = 151 moving right + --- 0.0222181 (0.712446), N = 118 moving right + --- 0.501672 (0.677496), N = 55 moving right + --- 0.600217 (0.658975), N = 52 moving right + --- 8.31684 (0.559685), N = 10 moving right + + -- best stat: 0.712446, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 14 16 1 2 + + + -- linear combo weights (showing up to 5) + + 7.8180 0.2638 0.4391 0.2945 -0.3723 + + + -- cutpoint (score) + --- -0.945359 (0.572873), N = 233 moving right + --- -0.876697 (0.594183), N = 223 moving right + --- -0.346564 (0.671569), N = 122 moving right + --- -0.24825 (0.673435), N = 96 moving right + --- 0.108309 (0.666995), N = 54 moving right + + -- best stat: 0.673435, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 258 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 245 +- max leaves: 123 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 12 16 2 8 + + + -- linear combo weights (showing up to 5) + + 0.2438 0.1416 0.4953 0.5103 2.5996 + + + -- cutpoint (score) + --- -1.68567 (0.524743), N = 261 moving right + --- -1.3063 (0.582788), N = 226 moving right + --- 0.279583 (0.694579), N = 95 moving right + --- 1.10481 (0.698722), N = 69 moving right + --- 1.34085 (0.689487), N = 65 moving right + + -- best stat: 0.698722, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 4 6 9 15 + + + -- linear combo weights (showing up to 5) + + -0.4038 1.0923 1.1196 0.1776 -0.0352 + + + -- cutpoint (score) + --- -0.45511 (0.58817), N = 211 moving right + --- -0.388553 (0.60484), N = 184 moving right + --- 0.640223 (0.639071), N = 112 moving right + --- 0.772633 (0.622846), N = 55 moving right + --- 1.22901 (0.561491), N = 23 moving right + + -- best stat: 0.639071, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 8 16 2 15 + + + -- linear combo weights (showing up to 5) + + 0.6197 2.8962 0.4253 0.6929 -0.1766 + + + -- cutpoint (score) + --- -1.76092 (0.543504), N = 246 moving right + --- -1.66542 (0.560077), N = 238 moving right + --- -0.960577 (0.671617), N = 172 moving right + --- 0.0733786 (0.763408), N = 107 moving right + --- 3.24348 (0.644085), N = 29 moving right + + -- best stat: 0.763408, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 259 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 16 4 17 1 + + + -- linear combo weights (showing up to 5) + + 0.2880 0.5547 0.3672 0.3892 0.3121 + + + -- cutpoint (score) + --- 0.608556 (0.591238), N = 210 moving right + --- 0.804113 (0.61698), N = 187 moving right + --- 1.32635 (0.688465), N = 131 moving right + --- 1.44721 (0.712334), N = 118 moving right + --- 1.67443 (0.710976), N = 98 moving right + + -- best stat: 0.712334, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 16 4 5 10 + + + -- linear combo weights (showing up to 5) + + 0.6911 0.6145 0.3453 0.8745 -0.4613 + + + -- cutpoint (score) + --- -1.20742 (0.521071), N = 264 moving right + --- -0.991938 (0.530557), N = 249 moving right + --- 0.0314025 (0.689884), N = 146 moving right + --- 1.19212 (0.69114), N = 71 moving right + --- 2.35623 (0.562636), N = 17 moving right + + -- best stat: 0.69114, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 10 6 11 15 + + + -- linear combo weights (showing up to 5) + + 0.4217 -0.4811 1.2839 0.8965 -0.1189 + + + -- cutpoint (score) + --- -1.84252 (0.501461), N = 265 moving right + --- -1.34548 (0.556278), N = 237 moving right + --- -0.511821 (0.690851), N = 152 moving right + --- -0.32065 (0.704309), N = 137 moving right + --- 0.0737655 (0.718178), N = 107 moving right + + -- best stat: 0.718178, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.4000e+02 9.7826e-01 2.1885e-02 + 1.7900e+02 9.7101e-01 2.9293e-02 + 1.9800e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 260 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 10 7 2 8 + + + -- linear combo weights (showing up to 5) + + 0.1662 -0.6339 4.8402 -0.4326 1.5654 + + + -- cutpoint (score) + --- -1.45409 (0.658365), N = 184 moving right + --- -1.11303 (0.709594), N = 159 moving right + --- -0.387413 (0.770738), N = 106 moving right + --- -0.146177 (0.756564), N = 95 moving right + --- 0.106556 (0.73657), N = 72 moving right + + -- best stat: 0.770738, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 0 9 6 17 + + + -- linear combo weights (showing up to 5) + + 0.0925 -0.2420 0.3693 0.4409 0.7075 + + + -- cutpoint (score) + --- 0.989925 (0.554976), N = 253 moving right + --- 2.36326 (0.673517), N = 111 moving right + --- 2.79459 (0.596267), N = 49 moving right + --- 2.95138 (0.570571), N = 25 moving right + --- 2.9871 (0.540871), N = 20 moving right + + -- best stat: 0.673517, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 2 0 4 + + + -- linear combo weights (showing up to 5) + + 0.6384 0.3405 -0.6999 -0.3323 0.3666 + + + -- cutpoint (score) + --- 0.592694 (0.628806), N = 214 moving right + --- 0.832011 (0.647589), N = 196 moving right + --- 1.57535 (0.687832), N = 116 moving right + --- 1.63755 (0.687901), N = 108 moving right + --- 1.86959 (0.680174), N = 86 moving right + + -- best stat: 0.687901, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.3100e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 261 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 11 14 15 2 + + + -- linear combo weights (showing up to 5) + + 0.6473 1.0397 0.2307 -0.1352 0.5426 + + + -- cutpoint (score) + --- -1.06987 (0.547144), N = 256 moving right + --- -0.411297 (0.604853), N = 210 moving right + --- -0.316874 (0.610044), N = 207 moving right + --- -0.0266146 (0.660343), N = 172 moving right + --- 0.233181 (0.695782), N = 133 moving right + + -- best stat: 0.695782, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 11 3 15 6 + + + -- linear combo weights (showing up to 5) + + 0.5979 0.8455 4.7673 -0.0563 0.9503 + + + -- cutpoint (score) + --- -0.531168 (0.605484), N = 218 moving right + --- 1.02236 (0.684179), N = 69 moving right + --- 1.39954 (0.662908), N = 44 moving right + --- 1.51969 (0.64076), N = 38 moving right + --- 3.5658 (0.600822), N = 18 moving right + + -- best stat: 0.684179, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 13 6 8 4 + + + -- linear combo weights (showing up to 5) + + 0.4862 0.1770 0.4196 1.6604 0.1803 + + + -- cutpoint (score) + --- -0.709116 (0.653605), N = 173 moving right + --- -0.551069 (0.721512), N = 139 moving right + --- -0.275455 (0.757806), N = 107 moving right + --- -0.157548 (0.759007), N = 97 moving right + --- 7.147 (0.530167), N = 6 moving right + + -- best stat: 0.759007, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 262 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 3 8 15 10 + + + -- linear combo weights (showing up to 5) + + 2.2161 2.0509 2.1961 -0.2328 -0.3115 + + + -- cutpoint (score) + --- -2.12193 (0.509584), N = 271 moving right + --- -1.67606 (0.555256), N = 251 moving right + --- -1.05277 (0.698712), N = 167 moving right + --- -0.686925 (0.750011), N = 131 moving right + --- 1.44899 (0.668528), N = 50 moving right + + -- best stat: 0.750011, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 6 8 5 15 + + + -- linear combo weights (showing up to 5) + + 0.4113 -0.2194 2.4480 0.2997 -0.2228 + + + -- cutpoint (score) + --- -0.486432 (0.606105), N = 229 moving right + --- 0.620126 (0.730608), N = 124 moving right + --- 0.664396 (0.740256), N = 119 moving right + --- 1.53628 (0.717152), N = 71 moving right + --- 1.83934 (0.710457), N = 63 moving right + + -- best stat: 0.740256, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 16 8 3 6 + + + -- linear combo weights (showing up to 5) + + -0.0275 0.1792 2.4271 2.7218 0.0763 + + + -- cutpoint (score) + --- -1.47401 (0.57928), N = 233 moving right + --- -1.46379 (0.581611), N = 232 moving right + --- -1.37344 (0.618812), N = 211 moving right + --- -1.02845 (0.73217), N = 147 moving right + --- 0.142249 (0.733688), N = 77 moving right + + -- best stat: 0.733688, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.7900e+02 9.6739e-01 3.3037e-02 + + +------------ Growing tree 263 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 9 17 11 4 + + + -- linear combo weights (showing up to 5) + + 0.1604 0.3016 0.6769 0.8887 0.3388 + + + -- cutpoint (score) + --- 0.428134 (0.522477), N = 265 moving right + --- 1.88728 (0.683985), N = 173 moving right + --- 2.1292 (0.714107), N = 141 moving right + --- 2.30113 (0.728002), N = 131 moving right + --- 3.78109 (0.625323), N = 34 moving right + + -- best stat: 0.728002, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 8 16 6 7 + + + -- linear combo weights (showing up to 5) + + 0.1103 1.6006 0.4598 0.0522 3.6934 + + + -- cutpoint (score) + --- -1.35247 (0.518207), N = 259 moving right + --- -1.11337 (0.573598), N = 218 moving right + --- -1.02965 (0.626594), N = 193 moving right + --- 1.25385 (0.685047), N = 43 moving right + --- 4.0666 (0.627552), N = 25 moving right + + -- best stat: 0.685047, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 9 13 14 7 + + + -- linear combo weights (showing up to 5) + + 0.5958 0.1407 0.2972 0.5890 6.5306 + + + -- cutpoint (score) + --- 1.33505 (0.648842), N = 186 moving right + --- 1.62589 (0.71444), N = 150 moving right + --- 2.52416 (0.671819), N = 62 moving right + --- 2.59944 (0.662195), N = 50 moving right + --- 9.12444 (0.577619), N = 14 moving right + + -- best stat: 0.71444, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 264 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 12 7 17 11 + + + -- linear combo weights (showing up to 5) + + -0.0107 0.0488 1.8053 0.4263 1.3230 + + + -- cutpoint (score) + --- 0.341094 (0.649075), N = 209 moving right + --- 0.366813 (0.659443), N = 201 moving right + --- 0.598417 (0.671056), N = 183 moving right + --- 1.10952 (0.741685), N = 122 moving right + --- 3.16996 (0.630951), N = 38 moving right + + -- best stat: 0.741685, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 13 1 14 10 + + + -- linear combo weights (showing up to 5) + + 3.7476 0.4205 0.4360 0.4139 -0.5803 + + + -- cutpoint (score) + --- -1.42084 (0.527911), N = 252 moving right + --- -0.873002 (0.613657), N = 210 moving right + --- -0.332252 (0.658158), N = 167 moving right + --- -0.319488 (0.664296), N = 165 moving right + --- -0.119608 (0.686422), N = 141 moving right + + -- best stat: 0.686422, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 7 10 1 3 + + + -- linear combo weights (showing up to 5) + + 0.6635 2.7713 -0.5435 0.2379 2.5819 + + + -- cutpoint (score) + --- -0.642467 (0.560406), N = 225 moving right + --- -0.402421 (0.614818), N = 195 moving right + --- -0.320181 (0.628297), N = 184 moving right + --- 0.254679 (0.675846), N = 99 moving right + --- 0.639284 (0.657826), N = 64 moving right + + -- best stat: 0.675846, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.7900e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 265 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 8 3 16 14 + + + -- linear combo weights (showing up to 5) + + 0.5344 1.4839 6.4788 0.2850 -0.0655 + + + -- cutpoint (score) + --- -0.984426 (0.575604), N = 236 moving right + --- -0.715478 (0.703306), N = 169 moving right + --- 1.07992 (0.692748), N = 46 moving right + --- 1.27823 (0.673616), N = 39 moving right + --- 6.4321 (0.592636), N = 16 moving right + + -- best stat: 0.703306, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 8 17 11 6 + + + -- linear combo weights (showing up to 5) + + 0.5314 1.5536 0.5020 0.8105 0.4740 + + + -- cutpoint (score) + --- 0.0409433 (0.634214), N = 196 moving right + --- 1.22258 (0.774209), N = 112 moving right + --- 2.16816 (0.773997), N = 70 moving right + --- 3.02155 (0.685446), N = 46 moving right + --- 5.77967 (0.580729), N = 14 moving right + + -- best stat: 0.774209, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 5 15 12 17 + + + -- linear combo weights (showing up to 5) + + -0.5977 0.7323 0.0534 0.1429 0.7013 + + + -- cutpoint (score) + --- 0.774505 (0.546646), N = 254 moving right + --- 2.13718 (0.675311), N = 132 moving right + --- 2.14759 (0.686255), N = 126 moving right + --- 2.7904 (0.619706), N = 51 moving right + --- 2.94257 (0.605815), N = 28 moving right + + -- best stat: 0.686255, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 266 -------------- + +- N obs inbag: 276 +- N row inbag: 164 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 0 4 17 2 + + + -- linear combo weights (showing up to 5) + + 8.9030 -0.1587 0.3469 0.3406 -0.5619 + + + -- cutpoint (score) + --- -0.0393834 (0.572312), N = 242 moving right + --- 0.181939 (0.616931), N = 213 moving right + --- 0.340593 (0.676476), N = 172 moving right + --- 0.800455 (0.677833), N = 112 moving right + --- 0.988672 (0.691), N = 65 moving right + + -- best stat: 0.691, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 13 17 11 2 + + + -- linear combo weights (showing up to 5) + + 0.2117 0.4382 0.4805 1.0144 0.2902 + + + -- cutpoint (score) + --- -0.393769 (0.519974), N = 265 moving right + --- 0.646002 (0.627119), N = 202 moving right + --- 2.1911 (0.721251), N = 81 moving right + --- 3.11587 (0.653076), N = 42 moving right + --- 4.18097 (0.592286), N = 20 moving right + + -- best stat: 0.721251, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 17 15 13 10 + + + -- linear combo weights (showing up to 5) + + 0.2378 0.4749 0.1262 0.5640 -0.9548 + + + -- cutpoint (score) + --- 0.822524 (0.618177), N = 198 moving right + --- 1.12456 (0.660883), N = 166 moving right + --- 1.91621 (0.730549), N = 98 moving right + --- 3.05896 (0.670737), N = 47 moving right + --- 3.73171 (0.596446), N = 21 moving right + + -- best stat: 0.730549, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 5.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8188e-01 1.8116e-02 + 7.7000e+01 9.7101e-01 2.9186e-02 + 1.1000e+02 9.6739e-01 3.2917e-02 + 1.3100e+02 9.6377e-01 3.6663e-02 + 1.4000e+02 9.5652e-01 4.4182e-02 + + +------------ Growing tree 267 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 9 10 0 17 + + + -- linear combo weights (showing up to 5) + + 0.6083 0.5291 -0.7287 -0.2139 0.4446 + + + -- cutpoint (score) + --- -0.0230234 (0.550755), N = 246 moving right + --- 0.917697 (0.67564), N = 168 moving right + --- 1.25316 (0.711133), N = 122 moving right + --- 2.26038 (0.63988), N = 48 moving right + --- 2.97394 (0.587053), N = 20 moving right + + -- best stat: 0.711133, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 11 13 14 0 + + + -- linear combo weights (showing up to 5) + + 0.6394 0.7519 0.3697 0.1870 -0.2383 + + + -- cutpoint (score) + --- -0.492817 (0.697749), N = 145 moving right + --- 0.273042 (0.725897), N = 81 moving right + --- 0.49415 (0.709407), N = 62 moving right + --- 0.542523 (0.70051), N = 58 moving right + --- 2.31713 (0.525234), N = 7 moving right + + -- best stat: 0.725897, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 14 16 17 10 + + + -- linear combo weights (showing up to 5) + + 0.4829 0.3748 0.5392 0.3047 -0.8111 + + + -- cutpoint (score) + --- -0.941163 (0.507977), N = 265 moving right + --- 0.186841 (0.602048), N = 209 moving right + --- 0.253721 (0.627052), N = 198 moving right + --- 0.472817 (0.655296), N = 177 moving right + --- 1.41574 (0.708698), N = 91 moving right + + -- best stat: 0.708698, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 268 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 7 0 5 3 + + + -- linear combo weights (showing up to 5) + + 0.5309 3.1613 0.1092 0.3676 4.3377 + + + -- cutpoint (score) + --- 1.17093 (0.603563), N = 211 moving right + --- 1.70183 (0.665144), N = 117 moving right + --- 2.06941 (0.6651), N = 81 moving right + --- 2.49115 (0.613308), N = 30 moving right + --- 6.57041 (0.569194), N = 13 moving right + + -- best stat: 0.665144, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 0 9 10 16 + + + -- linear combo weights (showing up to 5) + + 0.0220 0.2413 0.4463 -0.6004 0.5628 + + + -- cutpoint (score) + --- -0.978856 (0.531258), N = 239 moving right + --- -0.818537 (0.572066), N = 221 moving right + --- 0.194538 (0.703646), N = 106 moving right + --- 1.34908 (0.615766), N = 30 moving right + --- 1.87285 (0.521644), N = 13 moving right + + -- best stat: 0.703646, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 8 9 1 17 + + + -- linear combo weights (showing up to 5) + + 0.3622 1.5998 -0.0659 0.2731 0.4428 + + + -- cutpoint (score) + --- 0.707925 (0.731924), N = 137 moving right + --- 0.708172 (0.733838), N = 136 moving right + --- 1.01178 (0.740407), N = 120 moving right + --- 1.8133 (0.698817), N = 55 moving right + --- 3.00935 (0.603802), N = 25 moving right + + -- best stat: 0.740407, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.3100e+02 9.9275e-01 7.2596e-03 + 1.8600e+02 9.8913e-01 1.0909e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 269 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 4 2 9 7 + + + -- linear combo weights (showing up to 5) + + 0.2641 0.6180 -0.6014 0.5142 13.3239 + + + -- cutpoint (score) + --- -0.496568 (0.666024), N = 181 moving right + --- -0.406379 (0.686398), N = 162 moving right + --- -0.264779 (0.684028), N = 129 moving right + --- 0.32522 (0.68197), N = 59 moving right + --- 0.879065 (0.639863), N = 44 moving right + + -- best stat: 0.686398, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 4 11 10 17 + + + -- linear combo weights (showing up to 5) + + 0.4895 0.1149 1.1126 -0.5284 0.2881 + + + -- cutpoint (score) + --- 0.000240045 (0.656287), N = 188 moving right + --- 0.0262407 (0.667016), N = 183 moving right + --- 0.133008 (0.683936), N = 173 moving right + --- 1.2754 (0.752903), N = 89 moving right + --- 2.12141 (0.703575), N = 70 moving right + + -- best stat: 0.752903, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 11 4 7 15 + + + -- linear combo weights (showing up to 5) + + 0.2536 0.8404 0.5100 12.1019 0.1324 + + + -- cutpoint (score) + --- -1.05987 (0.511023), N = 271 moving right + --- -0.302837 (0.688419), N = 183 moving right + --- -0.0264946 (0.708499), N = 148 moving right + --- 0.44097 (0.724317), N = 107 moving right + --- 1.12873 (0.686728), N = 61 moving right + + -- best stat: 0.724317, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7826e-01 2.1899e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 270 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 8 0 3 17 + + + -- linear combo weights (showing up to 5) + + 0.2132 1.5687 -0.1543 6.0314 0.2307 + + + -- cutpoint (score) + --- -0.774347 (0.522623), N = 262 moving right + --- -0.32999 (0.602494), N = 213 moving right + --- 0.0534261 (0.700223), N = 142 moving right + --- 0.382794 (0.734469), N = 99 moving right + --- 1.46148 (0.678334), N = 46 moving right + + -- best stat: 0.734469, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 4 9 17 13 + + + -- linear combo weights (showing up to 5) + + -0.6204 0.2930 0.1008 0.3817 0.3435 + + + -- cutpoint (score) + --- 0.285486 (0.564663), N = 236 moving right + --- 1.08514 (0.661434), N = 154 moving right + --- 1.31213 (0.692875), N = 127 moving right + --- 1.76559 (0.669428), N = 89 moving right + --- 2.16326 (0.658695), N = 54 moving right + + -- best stat: 0.692875, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 13 11 17 0 + + + -- linear combo weights (showing up to 5) + + -0.0611 0.3079 0.8304 0.4360 -0.4396 + + + -- cutpoint (score) + --- -0.0471586 (0.574393), N = 239 moving right + --- 0.691014 (0.637141), N = 170 moving right + --- 0.715675 (0.639212), N = 169 moving right + --- 2.46365 (0.620775), N = 30 moving right + --- 3.10806 (0.531485), N = 8 moving right + + -- best stat: 0.639212, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 271 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 15 14 13 9 + + + -- linear combo weights (showing up to 5) + + 0.6047 -0.2060 0.2461 0.2357 0.2958 + + + -- cutpoint (score) + --- -0.878215 (0.506687), N = 271 moving right + --- -0.821126 (0.514756), N = 266 moving right + --- -0.241866 (0.58807), N = 207 moving right + --- 0.453761 (0.640832), N = 112 moving right + --- 1.39699 (0.546364), N = 20 moving right + + -- best stat: 0.640832, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 11 5 16 15 + + + -- linear combo weights (showing up to 5) + + 0.6350 1.4490 0.8536 0.3548 -0.0803 + + + -- cutpoint (score) + --- -1.63397 (0.577103), N = 242 moving right + --- -1.61224 (0.580647), N = 241 moving right + --- -0.376081 (0.750011), N = 118 moving right + --- 0.195994 (0.768802), N = 90 moving right + --- 1.72709 (0.643774), N = 39 moving right + + -- best stat: 0.768802, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 10 2 5 14 + + + -- linear combo weights (showing up to 5) + + 0.0429 -0.9165 -1.4570 0.9311 0.2675 + + + -- cutpoint (score) + --- -1.1629 (0.692836), N = 133 moving right + --- -1.09071 (0.67614), N = 127 moving right + --- -0.6685 (0.673086), N = 98 moving right + --- -0.659684 (0.664438), N = 97 moving right + --- 0.24367 (0.655298), N = 32 moving right + + -- best stat: 0.692836, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 272 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 7 14 12 17 + + + -- linear combo weights (showing up to 5) + + 17.5797 5.2551 0.1138 0.0219 0.5156 + + + -- cutpoint (score) + --- 1.08213 (0.605861), N = 199 moving right + --- 1.62677 (0.690037), N = 102 moving right + --- 1.99039 (0.667406), N = 57 moving right + --- 2.00076 (0.656621), N = 53 moving right + --- 2.0364 (0.621519), N = 38 moving right + + -- best stat: 0.690037, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 3 1 4 11 + + + -- linear combo weights (showing up to 5) + + 4.2517 18.2010 0.4891 0.5905 0.6913 + + + -- cutpoint (score) + --- -0.574915 (0.591843), N = 222 moving right + --- -0.527097 (0.604868), N = 217 moving right + --- -0.230555 (0.655166), N = 187 moving right + --- 2.03836 (0.616346), N = 20 moving right + --- 22.6615 (0.548127), N = 7 moving right + + -- best stat: 0.655166, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 5 14 0 6 + + + -- linear combo weights (showing up to 5) + + 0.5739 1.2355 0.3058 -0.5710 -0.0363 + + + -- cutpoint (score) + --- 0.810604 (0.570528), N = 240 moving right + --- 1.32986 (0.624936), N = 163 moving right + --- 1.39897 (0.654658), N = 149 moving right + --- 1.58591 (0.652095), N = 129 moving right + --- 1.93722 (0.650155), N = 97 moving right + + -- best stat: 0.654658, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 273 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 13 0 1 5 + + + -- linear combo weights (showing up to 5) + + 0.2287 0.5086 0.1362 0.4609 0.7785 + + + -- cutpoint (score) + --- -0.591259 (0.563108), N = 242 moving right + --- -0.264435 (0.653648), N = 198 moving right + --- 0.582952 (0.710341), N = 91 moving right + --- 0.684264 (0.677942), N = 79 moving right + --- 1.22537 (0.614512), N = 43 moving right + + -- best stat: 0.710341, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 2 3 1 16 + + + -- linear combo weights (showing up to 5) + + 0.5612 0.4678 3.6244 0.1394 0.1066 + + + -- cutpoint (score) + --- -0.0105689 (0.600455), N = 223 moving right + --- 0.238041 (0.71014), N = 147 moving right + --- 0.652671 (0.678727), N = 83 moving right + --- 1.57494 (0.623643), N = 34 moving right + --- 2.25359 (0.606327), N = 24 moving right + + -- best stat: 0.71014, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 5 16 14 4 + + + -- linear combo weights (showing up to 5) + + 0.3217 0.5747 0.2229 0.3253 0.7282 + + + -- cutpoint (score) + --- -0.501387 (0.534772), N = 252 moving right + --- -0.209323 (0.57966), N = 228 moving right + --- 0.689426 (0.679913), N = 121 moving right + --- 0.728941 (0.68289), N = 113 moving right + --- 1.40161 (0.600796), N = 41 moving right + + -- best stat: 0.68289, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 274 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 16 11 0 6 + + + -- linear combo weights (showing up to 5) + + 0.2190 0.7424 1.0048 0.0768 1.0478 + + + -- cutpoint (score) + --- -1.75649 (0.50577), N = 271 moving right + --- -1.37271 (0.54159), N = 243 moving right + --- -0.740089 (0.662606), N = 180 moving right + --- -0.214047 (0.719725), N = 121 moving right + --- -0.0190091 (0.707198), N = 111 moving right + + -- best stat: 0.719725, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 7 3 15 2 + + + -- linear combo weights (showing up to 5) + + 0.3875 6.8229 4.8717 -0.1651 -0.3524 + + + -- cutpoint (score) + --- 0.509087 (0.594097), N = 218 moving right + --- 1.02559 (0.672472), N = 95 moving right + --- 1.4419 (0.64491), N = 41 moving right + --- 5.82605 (0.615203), N = 25 moving right + --- 6.71392 (0.593325), N = 18 moving right + + -- best stat: 0.672472, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 17 2 9 13 + + + -- linear combo weights (showing up to 5) + + -0.8483 0.5361 -0.4175 0.4030 0.0925 + + + -- cutpoint (score) + --- 0.569559 (0.640921), N = 195 moving right + --- 2.25219 (0.670199), N = 45 moving right + --- 3.14438 (0.583394), N = 20 moving right + --- 3.35135 (0.56246), N = 17 moving right + --- 3.45197 (0.551371), N = 13 moving right + + -- best stat: 0.670199, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 5.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 275 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 11 13 0 4 + + + -- linear combo weights (showing up to 5) + + -0.6367 0.7826 0.2736 -0.1279 0.6338 + + + -- cutpoint (score) + --- -1.01235 (0.584108), N = 223 moving right + --- -0.916952 (0.604302), N = 214 moving right + --- -0.194396 (0.700502), N = 147 moving right + --- 0.226554 (0.70602), N = 115 moving right + --- 1.538 (0.669297), N = 40 moving right + + -- best stat: 0.70602, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 10 9 1 4 + + + -- linear combo weights (showing up to 5) + + 0.4774 -0.5538 0.4865 0.4149 0.4018 + + + -- cutpoint (score) + --- 1.18664 (0.72025), N = 156 moving right + --- 1.73986 (0.721377), N = 103 moving right + --- 2.10848 (0.715061), N = 83 moving right + --- 2.78776 (0.672279), N = 45 moving right + --- 2.79127 (0.668921), N = 44 moving right + + -- best stat: 0.721377, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 2 10 0 + + + -- linear combo weights (showing up to 5) + + 0.5810 0.5772 -1.2392 -0.7001 -0.2771 + + + -- cutpoint (score) + --- -0.74014 (0.571898), N = 231 moving right + --- -0.21227 (0.682751), N = 165 moving right + --- -0.191909 (0.671175), N = 163 moving right + --- 0.405106 (0.726754), N = 120 moving right + --- 1.96129 (0.639922), N = 33 moving right + + -- best stat: 0.726754, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 5.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 276 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 16 11 7 8 + + + -- linear combo weights (showing up to 5) + + -0.1161 0.3206 0.9043 3.7496 1.3020 + + + -- cutpoint (score) + --- -1.71974 (0.541916), N = 251 moving right + --- -1.42568 (0.614751), N = 213 moving right + --- 0.726737 (0.708639), N = 63 moving right + --- 1.08606 (0.686099), N = 51 moving right + --- 5.57239 (0.581905), N = 15 moving right + + -- best stat: 0.708639, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 14 4 9 1 + + + -- linear combo weights (showing up to 5) + + 2.1004 0.0540 0.2518 -0.2998 0.5851 + + + -- cutpoint (score) + --- -1.1369 (0.580523), N = 209 moving right + --- -0.964472 (0.612845), N = 191 moving right + --- -0.893237 (0.628409), N = 182 moving right + --- -0.567349 (0.724999), N = 137 moving right + --- 0.781028 (0.692781), N = 44 moving right + + -- best stat: 0.724999, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 8 3 0 4 + + + -- linear combo weights (showing up to 5) + + -0.4578 1.6346 5.2026 -0.2756 0.0964 + + + -- cutpoint (score) + --- -1.38453 (0.585257), N = 227 moving right + --- -0.945603 (0.648393), N = 180 moving right + --- -0.645336 (0.724727), N = 138 moving right + --- -0.575838 (0.743056), N = 126 moving right + --- 0.29317 (0.708408), N = 68 moving right + + -- best stat: 0.743056, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 1.4000e+02 9.7464e-01 2.5576e-02 + 1.7900e+02 9.7101e-01 2.9293e-02 + 1.9100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 277 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 0 1 8 13 + + + -- linear combo weights (showing up to 5) + + -0.3257 -0.1205 0.3045 2.3180 -0.0700 + + + -- cutpoint (score) + --- -1.71812 (0.579726), N = 227 moving right + --- -1.42674 (0.65002), N = 181 moving right + --- -1.34381 (0.686967), N = 159 moving right + --- 0.862059 (0.646223), N = 38 moving right + --- 2.68418 (0.588474), N = 16 moving right + + -- best stat: 0.686967, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 15 8 16 3 + + + -- linear combo weights (showing up to 5) + + 0.1450 -0.0350 1.7472 0.2621 5.0700 + + + -- cutpoint (score) + --- -1.25439 (0.512387), N = 261 moving right + --- -1.22175 (0.521448), N = 258 moving right + --- -1.12507 (0.547671), N = 239 moving right + --- -0.766582 (0.69229), N = 157 moving right + --- 1.73663 (0.658434), N = 35 moving right + + -- best stat: 0.69229, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 15 8 13 + + + -- linear combo weights (showing up to 5) + + 0.2758 0.3838 -0.0528 2.0759 -0.0387 + + + -- cutpoint (score) + --- -0.632633 (0.59411), N = 222 moving right + --- -0.405657 (0.632838), N = 194 moving right + --- 0.20139 (0.732955), N = 134 moving right + --- 0.734534 (0.737847), N = 101 moving right + --- 4.08209 (0.582955), N = 15 moving right + + -- best stat: 0.737847, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 278 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 6 3 10 8 + + + -- linear combo weights (showing up to 5) + + 0.0906 0.5972 4.8724 -0.3397 1.3828 + + + -- cutpoint (score) + --- -0.956071 (0.592202), N = 218 moving right + --- -0.688907 (0.674822), N = 177 moving right + --- -0.583141 (0.701708), N = 161 moving right + --- 4.55621 (0.599864), N = 20 moving right + --- 6.51973 (0.567456), N = 11 moving right + + -- best stat: 0.701708, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 10 11 5 7 + + + -- linear combo weights (showing up to 5) + + 1.2824 -0.5462 0.4204 0.4357 1.5214 + + + -- cutpoint (score) + --- -1.79854 (0.507582), N = 268 moving right + --- -1.65609 (0.517644), N = 257 moving right + --- -1.30086 (0.560475), N = 235 moving right + --- 0.152247 (0.762903), N = 105 moving right + --- 2.04687 (0.640554), N = 26 moving right + + -- best stat: 0.762903, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 0 17 12 15 + + + -- linear combo weights (showing up to 5) + + 3.1772 -0.2187 0.8053 0.1744 -0.0534 + + + -- cutpoint (score) + --- 1.57681 (0.601724), N = 217 moving right + --- 1.92728 (0.616108), N = 209 moving right + --- 2.3511 (0.66854), N = 121 moving right + --- 2.97485 (0.661339), N = 74 moving right + --- 3.25073 (0.613247), N = 30 moving right + + -- best stat: 0.66854, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.1000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 279 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 4 12 17 15 + + + -- linear combo weights (showing up to 5) + + -0.1757 0.4545 0.0887 0.4718 0.0374 + + + -- cutpoint (score) + --- 1.27183 (0.639998), N = 191 moving right + --- 1.44904 (0.647915), N = 158 moving right + --- 2.31147 (0.536172), N = 18 moving right + --- 2.33217 (0.523867), N = 13 moving right + --- 2.34776 (0.505502), N = 9 moving right + + -- best stat: 0.647915, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 10 9 5 8 + + + -- linear combo weights (showing up to 5) + + 0.8085 -0.5893 -0.4373 0.5105 2.2804 + + + -- cutpoint (score) + --- -2.00551 (0.509426), N = 266 moving right + --- -1.46961 (0.585508), N = 234 moving right + --- -1.43042 (0.589223), N = 231 moving right + --- -1.11394 (0.667905), N = 186 moving right + --- 0.695829 (0.7487), N = 76 moving right + + -- best stat: 0.7487, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 10 12 14 17 + + + -- linear combo weights (showing up to 5) + + -0.3001 -0.7962 -0.0959 0.7942 0.3969 + + + -- cutpoint (score) + --- -0.0374933 (0.615736), N = 220 moving right + --- 0.0843478 (0.631895), N = 213 moving right + --- 0.24318 (0.641066), N = 207 moving right + --- 0.462693 (0.660638), N = 188 moving right + --- 0.693912 (0.693606), N = 165 moving right + + -- best stat: 0.693606, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7464e-01 2.5588e-02 + 1.4000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 280 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 10 17 7 13 + + + -- linear combo weights (showing up to 5) + + 0.7749 -0.4134 0.6097 2.3286 0.2314 + + + -- cutpoint (score) + --- 1.17742 (0.667292), N = 187 moving right + --- 1.31644 (0.680544), N = 177 moving right + --- 2.24899 (0.752746), N = 113 moving right + --- 2.2866 (0.747645), N = 109 moving right + --- 3.67823 (0.65234), N = 43 moving right + + -- best stat: 0.752746, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 16 5 15 10 + + + -- linear combo weights (showing up to 5) + + 0.8198 0.5861 0.8402 -0.0677 -0.5802 + + + -- cutpoint (score) + --- -0.802482 (0.569329), N = 238 moving right + --- -0.27171 (0.63252), N = 185 moving right + --- -0.243422 (0.63639), N = 178 moving right + --- -0.210945 (0.648763), N = 167 moving right + --- 1.89535 (0.640202), N = 34 moving right + + -- best stat: 0.648763, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 14 11 6 5 + + + -- linear combo weights (showing up to 5) + + 0.4262 0.2604 0.9802 1.2570 0.5958 + + + -- cutpoint (score) + --- -1.10437 (0.562566), N = 248 moving right + --- -0.733063 (0.625777), N = 215 moving right + --- -0.585714 (0.65234), N = 191 moving right + --- 1.1969 (0.679586), N = 55 moving right + --- 1.7655 (0.658692), N = 42 moving right + + -- best stat: 0.679586, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 281 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 5 6 11 0 + + + -- linear combo weights (showing up to 5) + + 1.8088 0.3246 1.0227 0.3273 -0.0769 + + + -- cutpoint (score) + --- -1.34724 (0.575103), N = 236 moving right + --- -0.0598206 (0.736871), N = 103 moving right + --- 0.277718 (0.732964), N = 76 moving right + --- 0.326505 (0.724655), N = 72 moving right + --- 1.69738 (0.648719), N = 37 moving right + + -- best stat: 0.736871, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 11 1 3 0 + + + -- linear combo weights (showing up to 5) + + -0.0189 0.6563 0.2881 5.5281 -0.1764 + + + -- cutpoint (score) + --- -0.748178 (0.562153), N = 241 moving right + --- -0.459536 (0.676126), N = 174 moving right + --- -0.43702 (0.679676), N = 172 moving right + --- -0.341231 (0.714719), N = 151 moving right + --- 0.0756574 (0.733956), N = 90 moving right + + -- best stat: 0.733956, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 14 5 1 + + + -- linear combo weights (showing up to 5) + + 0.4536 -0.0405 0.4519 1.1612 0.5657 + + + -- cutpoint (score) + --- -0.467084 (0.599655), N = 227 moving right + --- -0.337001 (0.614707), N = 214 moving right + --- -0.108854 (0.663057), N = 172 moving right + --- 0.010778 (0.686736), N = 160 moving right + --- 1.19422 (0.629323), N = 51 moving right + + -- best stat: 0.686736, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 282 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 12 2 4 0 + + + -- linear combo weights (showing up to 5) + + 0.4305 0.0929 -0.0844 0.7793 0.1320 + + + -- cutpoint (score) + --- -0.33493 (0.568245), N = 241 moving right + --- -0.248183 (0.569669), N = 230 moving right + --- -0.16798 (0.595918), N = 217 moving right + --- 1.11364 (0.587787), N = 38 moving right + --- 1.45926 (0.520822), N = 16 moving right + + -- best stat: 0.595918, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 17 9 6 7 + + + -- linear combo weights (showing up to 5) + + 0.3763 0.5807 0.5819 0.9756 6.0295 + + + -- cutpoint (score) + --- 0.998026 (0.600355), N = 227 moving right + --- 1.55692 (0.681332), N = 177 moving right + --- 2.05021 (0.712844), N = 106 moving right + --- 2.50198 (0.704094), N = 56 moving right + --- 2.64267 (0.690969), N = 45 moving right + + -- best stat: 0.712844, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 9 12 2 6 + + + -- linear combo weights (showing up to 5) + + 0.2558 0.6456 0.1428 0.0180 0.8968 + + + -- cutpoint (score) + --- -0.733683 (0.501073), N = 266 moving right + --- -0.624836 (0.499216), N = 255 moving right + --- -0.558993 (0.498514), N = 239 moving right + --- 0.326885 (0.600768), N = 63 moving right + --- 0.335568 (0.596063), N = 61 moving right + + -- best stat: 0.600768, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 7.1000e+01 9.7826e-01 2.1886e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.1000e+02 9.7101e-01 2.9307e-02 + + +------------ Growing tree 283 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 4 2 3 0 + + + -- linear combo weights (showing up to 5) + + 0.2339 0.5933 -1.3279 13.4435 -0.4456 + + + -- cutpoint (score) + --- -1.96539 (0.506846), N = 269 moving right + --- -1.79669 (0.530883), N = 249 moving right + --- -1.44799 (0.605078), N = 182 moving right + --- -1.30609 (0.632859), N = 163 moving right + --- -1.20147 (0.647149), N = 148 moving right + + -- best stat: 0.647149, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 5 13 11 7 + + + -- linear combo weights (showing up to 5) + + 0.3419 0.2864 0.2751 1.1177 6.6024 + + + -- cutpoint (score) + --- 0.41215 (0.666645), N = 188 moving right + --- 0.479611 (0.667021), N = 184 moving right + --- 1.11966 (0.774248), N = 108 moving right + --- 3.75291 (0.653684), N = 29 moving right + --- 7.2419 (0.615069), N = 22 moving right + + -- best stat: 0.774248, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 10 12 0 17 + + + -- linear combo weights (showing up to 5) + + -0.1660 -0.9245 -0.0030 -0.3841 0.7173 + + + -- cutpoint (score) + --- 1.53424 (0.658758), N = 174 moving right + --- 1.60343 (0.668661), N = 169 moving right + --- 1.93964 (0.661992), N = 132 moving right + --- 1.9444 (0.66423), N = 131 moving right + --- 2.35091 (0.676127), N = 92 moving right + + -- best stat: 0.676127, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 4.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8551e-01 1.4493e-02 + 5.1000e+01 9.7826e-01 2.1846e-02 + 7.7000e+01 9.7464e-01 2.5549e-02 + 1.3100e+02 9.7101e-01 2.9267e-02 + 1.4000e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 284 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 269 +- max leaves: 135 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 0 14 9 4 + + + -- linear combo weights (showing up to 5) + + 1.6633 0.1947 0.3520 0.1099 1.1030 + + + -- cutpoint (score) + --- -0.379441 (0.519169), N = 261 moving right + --- -0.0588074 (0.604715), N = 204 moving right + --- 0.780215 (0.685514), N = 138 moving right + --- 0.880702 (0.677595), N = 132 moving right + --- 2.64286 (0.556845), N = 14 moving right + + -- best stat: 0.685514, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 9 15 0 16 + + + -- linear combo weights (showing up to 5) + + 5.8696 0.3345 -0.2392 -0.0030 0.8936 + + + -- cutpoint (score) + --- -1.05778 (0.533788), N = 255 moving right + --- -0.30724 (0.634168), N = 168 moving right + --- -0.255011 (0.645562), N = 162 moving right + --- 0.31608 (0.714626), N = 96 moving right + --- 0.799898 (0.700115), N = 63 moving right + + -- best stat: 0.714626, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 12 8 15 16 + + + -- linear combo weights (showing up to 5) + + -0.1934 -0.0042 1.8038 -0.3572 0.6858 + + + -- cutpoint (score) + --- -1.45553 (0.577699), N = 238 moving right + --- -1.05994 (0.650185), N = 191 moving right + --- -0.894893 (0.684725), N = 173 moving right + --- -0.537701 (0.749973), N = 136 moving right + --- -0.110324 (0.739708), N = 109 moving right + + -- best stat: 0.749973, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 285 -------------- + +- N obs inbag: 276 +- N row inbag: 162 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 5 6 13 10 + + + -- linear combo weights (showing up to 5) + + 0.4691 1.2579 0.6442 0.3434 -0.7881 + + + -- cutpoint (score) + --- -0.158043 (0.666965), N = 161 moving right + --- 0.661816 (0.698103), N = 95 moving right + --- 2.31874 (0.60729), N = 25 moving right + --- 2.31913 (0.610867), N = 23 moving right + --- 2.46995 (0.591924), N = 19 moving right + + -- best stat: 0.698103, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 17 14 16 2 + + + -- linear combo weights (showing up to 5) + + 1.0586 0.3613 0.8224 0.5852 0.2115 + + + -- cutpoint (score) + --- 0.753285 (0.617805), N = 205 moving right + --- 1.25437 (0.681897), N = 172 moving right + --- 1.80351 (0.703442), N = 97 moving right + --- 2.24299 (0.683523), N = 67 moving right + --- 2.86919 (0.588862), N = 30 moving right + + -- best stat: 0.703442, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 13 11 5 12 + + + -- linear combo weights (showing up to 5) + + 0.1828 0.2693 0.9709 0.9450 0.0312 + + + -- cutpoint (score) + --- -0.908246 (0.514851), N = 254 moving right + --- -0.905046 (0.518537), N = 253 moving right + --- 0.844884 (0.71439), N = 76 moving right + --- 0.876376 (0.718347), N = 73 moving right + --- 0.96621 (0.719377), N = 71 moving right + + -- best stat: 0.719377, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + 5.3300e+02 0 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.3100e+02 9.9638e-01 3.6232e-03 + 1.7900e+02 9.8551e-01 1.4532e-02 + 1.9800e+02 9.8188e-01 1.8209e-02 + 2.1600e+02 9.7464e-01 2.5589e-02 + 2.2300e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 286 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 10 6 7 9 + + + -- linear combo weights (showing up to 5) + + 0.1065 -0.4512 0.6488 9.6844 0.1785 + + + -- cutpoint (score) + --- -0.180702 (0.588434), N = 187 moving right + --- -0.0514431 (0.650192), N = 144 moving right + --- 0.321667 (0.69077), N = 82 moving right + --- 0.491753 (0.68837), N = 65 moving right + --- 0.582561 (0.694439), N = 59 moving right + + -- best stat: 0.694439, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 15 10 1 2 + + + -- linear combo weights (showing up to 5) + + 9.9514 0.0098 -0.5173 0.2903 -0.9745 + + + -- cutpoint (score) + --- -1.26321 (0.643291), N = 187 moving right + --- -0.911523 (0.663183), N = 136 moving right + --- -0.679301 (0.668577), N = 108 moving right + --- 0.133478 (0.624132), N = 34 moving right + --- 1.24296 (0.600353), N = 19 moving right + + -- best stat: 0.668577, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 5 15 6 12 + + + -- linear combo weights (showing up to 5) + + 0.3260 2.2394 -0.1792 -0.0404 0.1933 + + + -- cutpoint (score) + --- -0.403559 (0.573718), N = 228 moving right + --- -0.336102 (0.580401), N = 220 moving right + --- -0.0214028 (0.644005), N = 163 moving right + --- -0.0048043 (0.646186), N = 162 moving right + --- 0.0725386 (0.673595), N = 145 moving right + + -- best stat: 0.673595, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 287 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 3 2 13 11 + + + -- linear combo weights (showing up to 5) + + 1.4161 3.1016 0.3149 0.2692 0.5457 + + + -- cutpoint (score) + --- -1.30173 (0.529247), N = 257 moving right + --- -0.738158 (0.656014), N = 187 moving right + --- -0.675926 (0.675244), N = 178 moving right + --- -0.491631 (0.702487), N = 156 moving right + --- 0.222983 (0.75218), N = 103 moving right + + -- best stat: 0.75218, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 0 5 4 3 + + + -- linear combo weights (showing up to 5) + + 0.2926 -0.1940 1.0117 0.6077 4.6490 + + + -- cutpoint (score) + --- 0.0929947 (0.655445), N = 176 moving right + --- 0.46432 (0.676088), N = 132 moving right + --- 0.768497 (0.667387), N = 95 moving right + --- 0.790287 (0.661966), N = 88 moving right + --- 6.26844 (0.53233), N = 9 moving right + + -- best stat: 0.676088, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 12 15 3 8 + + + -- linear combo weights (showing up to 5) + + 0.4900 0.2757 -0.3018 2.8096 1.5052 + + + -- cutpoint (score) + --- -1.37702 (0.588879), N = 226 moving right + --- -1.11252 (0.657271), N = 196 moving right + --- 0.590296 (0.718141), N = 68 moving right + --- 5.99364 (0.586011), N = 16 moving right + --- 8.32538 (0.558257), N = 10 moving right + + -- best stat: 0.718141, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.7464e-01 2.5562e-02 + 7.7000e+01 9.6739e-01 3.2997e-02 + 1.3100e+02 9.6014e-01 4.0488e-02 + + +------------ Growing tree 288 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 17 4 6 14 + + + -- linear combo weights (showing up to 5) + + 0.4425 0.6322 0.3476 -1.1576 0.5919 + + + -- cutpoint (score) + --- 1.40494 (0.617944), N = 196 moving right + --- 2.19761 (0.718053), N = 119 moving right + --- 2.49355 (0.711375), N = 80 moving right + --- 2.77888 (0.684623), N = 53 moving right + --- 3.02765 (0.634729), N = 29 moving right + + -- best stat: 0.718053, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 17 10 12 4 + + + -- linear combo weights (showing up to 5) + + 1.0336 0.4085 -0.6198 -0.1644 0.1177 + + + -- cutpoint (score) + --- -0.248151 (0.55881), N = 245 moving right + --- 0.177744 (0.612396), N = 211 moving right + --- 0.997982 (0.702962), N = 146 moving right + --- 1.80541 (0.743958), N = 71 moving right + --- 2.65947 (0.695295), N = 41 moving right + + -- best stat: 0.743958, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 16 9 6 10 + + + -- linear combo weights (showing up to 5) + + -0.1837 0.4545 0.6245 -0.9677 -0.9549 + + + -- cutpoint (score) + --- -1.0521 (0.608603), N = 207 moving right + --- -0.611152 (0.655792), N = 164 moving right + --- -0.250646 (0.699411), N = 140 moving right + --- 0.0509984 (0.71311), N = 107 moving right + --- 0.371502 (0.707743), N = 84 moving right + + -- best stat: 0.71311, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 289 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 9 4 8 13 + + + -- linear combo weights (showing up to 5) + + -0.5500 -0.3621 -0.0492 1.6004 0.2895 + + + -- cutpoint (score) + --- -1.62518 (0.523052), N = 252 moving right + --- -1.61143 (0.526867), N = 251 moving right + --- -0.816336 (0.627022), N = 179 moving right + --- 0.535169 (0.674139), N = 61 moving right + --- 1.38586 (0.645205), N = 35 moving right + + -- best stat: 0.674139, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 8 16 14 4 + + + -- linear combo weights (showing up to 5) + + 2.7031 1.1609 0.3339 0.1348 0.0472 + + + -- cutpoint (score) + --- -1.15978 (0.504928), N = 271 moving right + --- -0.777027 (0.615874), N = 210 moving right + --- -0.71194 (0.654147), N = 185 moving right + --- 1.21126 (0.662811), N = 51 moving right + --- 4.75071 (0.588172), N = 16 moving right + + -- best stat: 0.662811, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 2 0 15 7 + + + -- linear combo weights (showing up to 5) + + 1.3662 -0.3833 -0.1677 -0.0529 2.8111 + + + -- cutpoint (score) + --- -1.40081 (0.522118), N = 267 moving right + --- -1.23455 (0.628671), N = 202 moving right + --- -1.12942 (0.649219), N = 172 moving right + --- -0.0607707 (0.686221), N = 62 moving right + --- 2.28579 (0.609296), N = 24 moving right + + -- best stat: 0.686221, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 290 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 13 11 6 0 + + + -- linear combo weights (showing up to 5) + + 0.4653 0.2452 0.9169 0.9262 0.2668 + + + -- cutpoint (score) + --- -0.275245 (0.568058), N = 235 moving right + --- -0.0611809 (0.606488), N = 201 moving right + --- 0.508087 (0.678843), N = 118 moving right + --- 0.639492 (0.673471), N = 101 moving right + --- 3.04735 (0.516405), N = 7 moving right + + -- best stat: 0.678843, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 9 10 6 0 + + + -- linear combo weights (showing up to 5) + + 14.7492 0.3646 -0.4245 0.9210 0.2071 + + + -- cutpoint (score) + --- -0.352517 (0.55657), N = 239 moving right + --- -0.348269 (0.551818), N = 238 moving right + --- 0.403317 (0.675702), N = 82 moving right + --- 1.04241 (0.673781), N = 42 moving right + --- 2.47816 (0.602479), N = 19 moving right + + -- best stat: 0.675702, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 5 14 15 2 + + + -- linear combo weights (showing up to 5) + + 0.2549 1.2387 0.2454 -0.1878 -0.1147 + + + -- cutpoint (score) + --- -0.360805 (0.58969), N = 213 moving right + --- -0.348623 (0.59907), N = 207 moving right + --- -0.298618 (0.610331), N = 200 moving right + --- -0.158785 (0.628058), N = 162 moving right + --- 1.18871 (0.569318), N = 37 moving right + + -- best stat: 0.628058, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.7826e-01 2.1845e-02 + 1.4000e+02 9.7101e-01 2.9252e-02 + 1.7900e+02 9.6739e-01 3.2984e-02 + 1.9800e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 291 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 11 10 3 13 + + + -- linear combo weights (showing up to 5) + + 0.5759 0.6777 -0.5587 8.1555 0.1166 + + + -- cutpoint (score) + --- -0.911132 (0.557182), N = 249 moving right + --- -0.140912 (0.709273), N = 153 moving right + --- 0.00477088 (0.697463), N = 136 moving right + --- 0.376703 (0.68608), N = 99 moving right + --- 2.38449 (0.613002), N = 21 moving right + + -- best stat: 0.709273, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 1 9 3 11 + + + -- linear combo weights (showing up to 5) + + -0.1037 0.2793 0.1224 8.5317 0.7601 + + + -- cutpoint (score) + --- -0.940177 (0.528093), N = 261 moving right + --- -0.250293 (0.710432), N = 145 moving right + --- -0.121762 (0.716673), N = 118 moving right + --- 0.370557 (0.683823), N = 68 moving right + --- 1.01784 (0.644245), N = 37 moving right + + -- best stat: 0.716673, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 9 12 11 13 + + + -- linear combo weights (showing up to 5) + + 0.0182 -0.2988 0.1353 1.0287 0.2415 + + + -- cutpoint (score) + --- -1.00182 (0.54157), N = 250 moving right + --- -0.934789 (0.55582), N = 244 moving right + --- -0.688729 (0.617575), N = 208 moving right + --- -0.540773 (0.64518), N = 172 moving right + --- 0.526551 (0.647742), N = 66 moving right + + -- best stat: 0.647742, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 5.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.7826e-01 2.1805e-02 + 7.7000e+01 9.7464e-01 2.5509e-02 + 1.1000e+02 9.6739e-01 3.2944e-02 + 1.3100e+02 9.6377e-01 3.6689e-02 + + +------------ Growing tree 292 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 5 2 11 17 + + + -- linear combo weights (showing up to 5) + + -0.0364 0.2282 0.1818 0.7658 0.4828 + + + -- cutpoint (score) + --- 1.30584 (0.659044), N = 177 moving right + --- 1.96792 (0.739773), N = 99 moving right + --- 2.03833 (0.720861), N = 92 moving right + --- 2.41324 (0.673852), N = 56 moving right + --- 2.47874 (0.634466), N = 46 moving right + + -- best stat: 0.739773, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 0 15 1 + + + -- linear combo weights (showing up to 5) + + 0.3671 0.0635 0.0649 -0.0405 0.5360 + + + -- cutpoint (score) + --- -0.182546 (0.678143), N = 158 moving right + --- 0.0112561 (0.705365), N = 130 moving right + --- 0.318082 (0.650837), N = 85 moving right + --- 0.374027 (0.649608), N = 81 moving right + --- 0.975402 (0.553903), N = 20 moving right + + -- best stat: 0.705365, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 10 1 4 3 + + + -- linear combo weights (showing up to 5) + + 0.1010 -0.3959 0.2355 0.7407 5.6862 + + + -- cutpoint (score) + --- 0.20714 (0.673352), N = 155 moving right + --- 0.249029 (0.678664), N = 152 moving right + --- 0.255622 (0.68687), N = 149 moving right + --- 0.677129 (0.710885), N = 94 moving right + --- 7.21721 (0.553507), N = 12 moving right + + -- best stat: 0.710885, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 293 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 253 +- max leaves: 127 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 12 16 14 2 + + + -- linear combo weights (showing up to 5) + + 3.0406 0.2206 0.3460 0.1652 -0.3720 + + + -- cutpoint (score) + --- -0.81474 (0.547394), N = 246 moving right + --- -0.431847 (0.682936), N = 142 moving right + --- -0.121906 (0.637232), N = 85 moving right + --- -0.0105298 (0.650338), N = 79 moving right + --- 2.96344 (0.560599), N = 10 moving right + + -- best stat: 0.682936, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 5 9 17 2 + + + -- linear combo weights (showing up to 5) + + 1.1570 0.3322 -0.2846 0.4975 -0.6924 + + + -- cutpoint (score) + --- -0.0803891 (0.597638), N = 229 moving right + --- 0.460653 (0.673465), N = 174 moving right + --- 0.971418 (0.740332), N = 125 moving right + --- 1.39865 (0.716026), N = 83 moving right + --- 1.42106 (0.71691), N = 80 moving right + + -- best stat: 0.740332, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 13 6 2 11 + + + -- linear combo weights (showing up to 5) + + -0.1804 0.2779 0.9024 0.4237 0.8148 + + + -- cutpoint (score) + --- -0.491579 (0.55661), N = 237 moving right + --- -0.474934 (0.56948), N = 231 moving right + --- 0.545152 (0.670105), N = 108 moving right + --- 0.674164 (0.675253), N = 93 moving right + --- 1.40533 (0.622868), N = 42 moving right + + -- best stat: 0.675253, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 294 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 253 +- max leaves: 127 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 1 4 13 2 + + + -- linear combo weights (showing up to 5) + + 12.0181 0.4034 0.7994 0.4660 -0.2576 + + + -- cutpoint (score) + --- 0.000451792 (0.676442), N = 161 moving right + --- 0.249287 (0.702546), N = 120 moving right + --- 0.314259 (0.693233), N = 118 moving right + --- 0.534789 (0.711625), N = 92 moving right + --- 11.7379 (0.596216), N = 17 moving right + + -- best stat: 0.711625, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 15 17 11 14 + + + -- linear combo weights (showing up to 5) + + 0.3820 -0.2923 0.3189 1.1540 0.2484 + + + -- cutpoint (score) + --- -0.381076 (0.588738), N = 230 moving right + --- 1.02392 (0.764263), N = 104 moving right + --- 1.23889 (0.751845), N = 93 moving right + --- 3.36814 (0.5788), N = 21 moving right + --- 4.34484 (0.530146), N = 11 moving right + + -- best stat: 0.764263, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 14 9 0 17 + + + -- linear combo weights (showing up to 5) + + 0.9865 0.2343 0.2896 -0.1704 0.4460 + + + -- cutpoint (score) + --- 0.146077 (0.62851), N = 209 moving right + --- 0.794061 (0.714573), N = 150 moving right + --- 0.994212 (0.724277), N = 129 moving right + --- 1.39758 (0.71512), N = 92 moving right + --- 2.29149 (0.645066), N = 46 moving right + + -- best stat: 0.724277, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 4.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8551e-01 1.4493e-02 + 5.1000e+01 9.8188e-01 1.8169e-02 + 7.1000e+01 9.7826e-01 2.1859e-02 + 7.7000e+01 9.7464e-01 2.5563e-02 + 1.3100e+02 9.6739e-01 3.2998e-02 + + +------------ Growing tree 295 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 3 12 17 10 + + + -- linear combo weights (showing up to 5) + + 0.0857 5.8487 0.0502 0.3601 -0.4608 + + + -- cutpoint (score) + --- 0.461482 (0.561198), N = 236 moving right + --- 0.739586 (0.602663), N = 193 moving right + --- 0.963888 (0.663674), N = 156 moving right + --- 1.65956 (0.657895), N = 49 moving right + --- 7.61336 (0.566098), N = 14 moving right + + -- best stat: 0.663674, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 1 3 4 2 + + + -- linear combo weights (showing up to 5) + + 0.3618 0.3619 6.5932 0.7833 -0.5765 + + + -- cutpoint (score) + --- -0.972286 (0.557233), N = 249 moving right + --- -0.84376 (0.576778), N = 238 moving right + --- -0.814079 (0.581323), N = 232 moving right + --- -0.183226 (0.67254), N = 161 moving right + --- -0.157282 (0.681368), N = 158 moving right + + -- best stat: 0.681368, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 5 14 12 10 + + + -- linear combo weights (showing up to 5) + + 0.6519 1.1396 0.1121 -0.1537 -0.6369 + + + -- cutpoint (score) + --- -0.0804872 (0.719841), N = 157 moving right + --- -0.0613806 (0.722796), N = 155 moving right + --- 0.323311 (0.694497), N = 124 moving right + --- 0.646096 (0.711555), N = 97 moving right + --- 2.26061 (0.569708), N = 16 moving right + + -- best stat: 0.722796, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 296 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 2 7 12 14 + + + -- linear combo weights (showing up to 5) + + -0.3322 -0.5754 9.0804 -0.0488 0.3949 + + + -- cutpoint (score) + --- -1.00563 (0.564586), N = 212 moving right + --- -0.888367 (0.585936), N = 185 moving right + --- -0.836044 (0.597675), N = 164 moving right + --- -0.653887 (0.61134), N = 115 moving right + --- -0.646801 (0.623012), N = 109 moving right + + -- best stat: 0.623012, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 11 1 15 0 + + + -- linear combo weights (showing up to 5) + + 0.4698 1.2952 0.3391 -0.0436 -0.0330 + + + -- cutpoint (score) + --- -0.737718 (0.705094), N = 159 moving right + --- -0.704811 (0.713406), N = 154 moving right + --- -0.598133 (0.730835), N = 142 moving right + --- 0.48265 (0.720798), N = 68 moving right + --- 1.4105 (0.620772), N = 32 moving right + + -- best stat: 0.730835, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 4 10 9 15 + + + -- linear combo weights (showing up to 5) + + 1.9988 0.2664 -0.6172 -0.2845 0.0592 + + + -- cutpoint (score) + --- -1.188 (0.587706), N = 204 moving right + --- -1.04072 (0.633295), N = 182 moving right + --- 0.168012 (0.710717), N = 70 moving right + --- 0.729601 (0.698217), N = 53 moving right + --- 3.82202 (0.606882), N = 17 moving right + + -- best stat: 0.710717, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.9800e+02 9.7826e-01 2.1912e-02 + 2.1600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 297 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 0 17 9 14 + + + -- linear combo weights (showing up to 5) + + 8.7917 0.0820 0.4821 0.3261 0.2363 + + + -- cutpoint (score) + --- 0.756833 (0.572934), N = 242 moving right + --- 1.1796 (0.610237), N = 217 moving right + --- 1.24642 (0.613392), N = 205 moving right + --- 1.27179 (0.635476), N = 194 moving right + --- 1.63747 (0.676082), N = 130 moving right + + -- best stat: 0.676082, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 9 3 0 11 + + + -- linear combo weights (showing up to 5) + + 0.3557 0.3258 3.6577 0.3100 0.7204 + + + -- cutpoint (score) + --- -0.897956 (0.514049), N = 268 moving right + --- -0.264983 (0.696051), N = 170 moving right + --- 1.59351 (0.654072), N = 47 moving right + --- 3.41642 (0.578632), N = 19 moving right + --- 4.30483 (0.541998), N = 13 moving right + + -- best stat: 0.696051, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 6 4 13 + + + -- linear combo weights (showing up to 5) + + 4.0553 0.7860 0.3712 0.6406 0.3131 + + + -- cutpoint (score) + --- -0.0947696 (0.584032), N = 236 moving right + --- 0.0763421 (0.642695), N = 211 moving right + --- 0.716916 (0.714535), N = 125 moving right + --- 0.896583 (0.662609), N = 93 moving right + --- 1.41496 (0.663499), N = 54 moving right + + -- best stat: 0.714535, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 298 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 2 0 9 13 + + + -- linear combo weights (showing up to 5) + + 0.9606 -0.6741 0.1235 0.4553 0.4512 + + + -- cutpoint (score) + --- -0.711737 (0.616845), N = 202 moving right + --- -0.175315 (0.680014), N = 156 moving right + --- 0.152589 (0.689077), N = 110 moving right + --- 0.432797 (0.674603), N = 75 moving right + --- 1.49007 (0.548891), N = 21 moving right + + -- best stat: 0.689077, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 17 11 13 10 + + + -- linear combo weights (showing up to 5) + + 0.2609 0.5188 1.2040 0.3542 -0.5037 + + + -- cutpoint (score) + --- 0.533278 (0.657024), N = 192 moving right + --- 0.553892 (0.66011), N = 191 moving right + --- 0.980324 (0.70861), N = 162 moving right + --- 1.31397 (0.738378), N = 129 moving right + --- 1.54341 (0.722224), N = 113 moving right + + -- best stat: 0.738378, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 4 10 1 9 + + + -- linear combo weights (showing up to 5) + + 0.4616 0.3943 -0.5894 0.4756 0.6781 + + + -- cutpoint (score) + --- -0.274554 (0.523732), N = 261 moving right + --- 0.964738 (0.658743), N = 194 moving right + --- 0.970428 (0.66138), N = 193 moving right + --- 1.86181 (0.740566), N = 106 moving right + --- 2.37655 (0.710446), N = 69 moving right + + -- best stat: 0.740566, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 299 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 2 1 0 16 + + + -- linear combo weights (showing up to 5) + + 0.2325 -0.0854 0.6115 -0.2171 0.4834 + + + -- cutpoint (score) + --- -1.29799 (0.548424), N = 248 moving right + --- -0.591622 (0.657951), N = 180 moving right + --- -0.0807421 (0.707198), N = 128 moving right + --- 0.131108 (0.691576), N = 97 moving right + --- 0.674246 (0.651664), N = 60 moving right + + -- best stat: 0.707198, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 16 6 5 8 + + + -- linear combo weights (showing up to 5) + + 0.1595 0.5222 -0.3771 0.4463 1.5689 + + + -- cutpoint (score) + --- -0.893842 (0.673065), N = 184 moving right + --- -0.855771 (0.683853), N = 179 moving right + --- -0.304951 (0.709124), N = 129 moving right + --- 0.892843 (0.694658), N = 58 moving right + --- 5.99043 (0.529737), N = 5 moving right + + -- best stat: 0.709124, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 11 3 8 1 + + + -- linear combo weights (showing up to 5) + + -0.3541 0.5155 5.0639 0.9748 0.6031 + + + -- cutpoint (score) + --- -2.03056 (0.49725), N = 268 moving right + --- -1.04417 (0.635779), N = 205 moving right + --- -1.02182 (0.638862), N = 204 moving right + --- -0.48068 (0.757513), N = 145 moving right + --- 0.219758 (0.780823), N = 106 moving right + + -- best stat: 0.780823, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 300 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 12 16 15 17 + + + -- linear combo weights (showing up to 5) + + -0.2885 0.1292 0.8074 -0.0822 0.4839 + + + -- cutpoint (score) + --- 0.716874 (0.619168), N = 191 moving right + --- 1.02061 (0.688226), N = 155 moving right + --- 1.83688 (0.680205), N = 98 moving right + --- 2.29474 (0.664184), N = 59 moving right + --- 3.60963 (0.529485), N = 7 moving right + + -- best stat: 0.688226, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 16 17 13 3 + + + -- linear combo weights (showing up to 5) + + -0.0073 0.5664 0.3173 0.4682 4.2112 + + + -- cutpoint (score) + --- 0.036034 (0.559605), N = 240 moving right + --- 0.353075 (0.629215), N = 203 moving right + --- 0.445386 (0.650454), N = 195 moving right + --- 0.848326 (0.709077), N = 145 moving right + --- 1.72479 (0.703736), N = 66 moving right + + -- best stat: 0.709077, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 16 11 12 7 + + + -- linear combo weights (showing up to 5) + + 1.7926 0.5053 0.2645 0.0446 7.0838 + + + -- cutpoint (score) + --- -0.556794 (0.582829), N = 227 moving right + --- -0.213396 (0.68704), N = 160 moving right + --- 0.0583626 (0.711184), N = 112 moving right + --- 0.161611 (0.714806), N = 89 moving right + --- 0.908502 (0.682538), N = 48 moving right + + -- best stat: 0.714806, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.7101e-01 2.9307e-02 + + +------------ Growing tree 301 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 17 7 9 13 + + + -- linear combo weights (showing up to 5) + + -0.3438 0.4489 6.6026 0.2472 0.4875 + + + -- cutpoint (score) + --- 0.155561 (0.540322), N = 253 moving right + --- 0.221266 (0.543172), N = 248 moving right + --- 1.39166 (0.706639), N = 125 moving right + --- 2.26283 (0.694442), N = 57 moving right + --- 2.47565 (0.649405), N = 42 moving right + + -- best stat: 0.706639, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 14 12 11 15 + + + -- linear combo weights (showing up to 5) + + 0.4513 0.1456 0.0122 1.6349 -0.1906 + + + -- cutpoint (score) + --- -1.31935 (0.612583), N = 218 moving right + --- -0.737398 (0.708777), N = 158 moving right + --- -0.736805 (0.711669), N = 156 moving right + --- -0.0422566 (0.77517), N = 97 moving right + --- 3.59042 (0.547825), N = 10 moving right + + -- best stat: 0.77517, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 15 11 1 17 + + + -- linear combo weights (showing up to 5) + + 7.7231 -0.1050 1.4457 0.3703 0.1691 + + + -- cutpoint (score) + --- -0.61255 (0.632199), N = 217 moving right + --- -0.394667 (0.678074), N = 181 moving right + --- 0.133418 (0.757188), N = 127 moving right + --- 0.266788 (0.775002), N = 109 moving right + --- 9.82734 (0.546965), N = 8 moving right + + -- best stat: 0.775002, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 4.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.8913e-01 1.0870e-02 + 1.3100e+02 9.8551e-01 1.4533e-02 + 1.4000e+02 9.8188e-01 1.8209e-02 + 1.7900e+02 9.7826e-01 2.1899e-02 + 1.9800e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 302 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 4 7 12 9 + + + -- linear combo weights (showing up to 5) + + -0.0730 0.4122 1.9542 0.1711 0.5355 + + + -- cutpoint (score) + --- -0.584605 (0.514433), N = 269 moving right + --- -0.224502 (0.61287), N = 206 moving right + --- -0.0371524 (0.635824), N = 186 moving right + --- 0.157584 (0.65882), N = 135 moving right + --- 0.199308 (0.66989), N = 122 moving right + + -- best stat: 0.66989, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 2 12 3 5 + + + -- linear combo weights (showing up to 5) + + 0.2754 -0.9349 0.2600 7.3407 0.7417 + + + -- cutpoint (score) + --- -0.780924 (0.640733), N = 190 moving right + --- -0.685319 (0.685973), N = 145 moving right + --- -0.0256937 (0.646268), N = 69 moving right + --- 0.470132 (0.61498), N = 27 moving right + --- 0.499887 (0.608192), N = 23 moving right + + -- best stat: 0.685973, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 15 12 7 11 + + + -- linear combo weights (showing up to 5) + + 0.5409 0.0113 -0.0234 0.9603 0.9764 + + + -- cutpoint (score) + --- -0.952149 (0.565521), N = 236 moving right + --- -0.347129 (0.717114), N = 130 moving right + --- -0.154912 (0.734784), N = 107 moving right + --- 0.252845 (0.720811), N = 78 moving right + --- 0.57102 (0.69086), N = 57 moving right + + -- best stat: 0.734784, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 303 -------------- + +- N obs inbag: 276 +- N row inbag: 186 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 9 17 10 3 + + + -- linear combo weights (showing up to 5) + + 0.1047 0.2960 0.4068 -0.5191 5.7916 + + + -- cutpoint (score) + --- 0.159806 (0.538498), N = 259 moving right + --- 0.167073 (0.540836), N = 258 moving right + --- 0.424259 (0.568216), N = 241 moving right + --- 0.586984 (0.592988), N = 224 moving right + --- 1.12941 (0.694502), N = 143 moving right + + -- best stat: 0.694502, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 3 6 2 8 + + + -- linear combo weights (showing up to 5) + + 7.0920 2.1036 1.0465 -0.5362 1.2477 + + + -- cutpoint (score) + --- -1.1148 (0.708498), N = 172 moving right + --- -0.708043 (0.754299), N = 141 moving right + --- 1.65115 (0.661492), N = 42 moving right + --- 8.74313 (0.556559), N = 9 moving right + --- 9.54513 (0.548931), N = 8 moving right + + -- best stat: 0.754299, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 0 9 1 13 + + + -- linear combo weights (showing up to 5) + + 9.0087 0.1960 0.0648 0.5908 0.5729 + + + -- cutpoint (score) + --- -0.0439059 (0.68513), N = 158 moving right + --- 0.308452 (0.704433), N = 108 moving right + --- 0.692353 (0.69103), N = 75 moving right + --- 1.18851 (0.643214), N = 45 moving right + --- 1.48839 (0.64683), N = 38 moving right + + -- best stat: 0.704433, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 304 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 12 11 3 8 + + + -- linear combo weights (showing up to 5) + + 0.3997 -0.0477 0.8798 5.8759 1.3466 + + + -- cutpoint (score) + --- -1.30988 (0.604624), N = 214 moving right + --- -1.20645 (0.643102), N = 195 moving right + --- -0.119589 (0.760932), N = 102 moving right + --- 1.32608 (0.697422), N = 53 moving right + --- 4.33515 (0.655219), N = 27 moving right + + -- best stat: 0.760932, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 12 5 11 15 + + + -- linear combo weights (showing up to 5) + + 0.1121 -0.0408 1.2233 1.2800 0.0126 + + + -- cutpoint (score) + --- -0.843192 (0.576038), N = 239 moving right + --- 0.935566 (0.700905), N = 72 moving right + --- 1.0585 (0.684338), N = 62 moving right + --- 1.36541 (0.683612), N = 58 moving right + --- 2.0676 (0.614782), N = 33 moving right + + -- best stat: 0.700905, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 15 14 9 10 + + + -- linear combo weights (showing up to 5) + + 0.5387 -0.1806 0.4334 0.1235 -0.7803 + + + -- cutpoint (score) + --- -0.166869 (0.644433), N = 146 moving right + --- 0.263308 (0.651978), N = 100 moving right + --- 0.857384 (0.631711), N = 51 moving right + --- 0.907958 (0.636282), N = 44 moving right + --- 1.08095 (0.642715), N = 38 moving right + + -- best stat: 0.651978, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + 4.0000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.9800e+02 9.7464e-01 2.5589e-02 + 2.6400e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 305 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 15 11 10 13 + + + -- linear combo weights (showing up to 5) + + 0.5138 0.0167 0.9591 -0.6215 0.4899 + + + -- cutpoint (score) + --- -0.905384 (0.662991), N = 192 moving right + --- -0.403906 (0.722407), N = 155 moving right + --- 0.788269 (0.747379), N = 87 moving right + --- 1.60991 (0.697136), N = 56 moving right + --- 1.71852 (0.685904), N = 49 moving right + + -- best stat: 0.747379, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 15 17 10 13 + + + -- linear combo weights (showing up to 5) + + 0.4791 -0.1065 0.3968 -0.6403 0.4617 + + + -- cutpoint (score) + --- 0.0897621 (0.568195), N = 238 moving right + --- 0.127816 (0.588637), N = 227 moving right + --- 0.252934 (0.59021), N = 223 moving right + --- 0.946556 (0.678136), N = 158 moving right + --- 2.42322 (0.664452), N = 45 moving right + + -- best stat: 0.678136, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 1 9 4 14 + + + -- linear combo weights (showing up to 5) + + 0.7248 0.4490 0.6183 0.4472 0.2855 + + + -- cutpoint (score) + --- -0.583484 (0.600131), N = 219 moving right + --- 0.0390935 (0.713497), N = 148 moving right + --- 0.289865 (0.741614), N = 122 moving right + --- 0.905371 (0.704137), N = 72 moving right + --- 1.78102 (0.587196), N = 32 moving right + + -- best stat: 0.741614, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + 1.8600e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 306 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 1 12 11 9 + + + -- linear combo weights (showing up to 5) + + -0.2470 0.4354 0.1925 0.8582 0.4126 + + + -- cutpoint (score) + --- -0.728249 (0.65522), N = 199 moving right + --- -0.690671 (0.671857), N = 192 moving right + --- -0.288702 (0.707946), N = 148 moving right + --- -0.224419 (0.721283), N = 135 moving right + --- 2.4284 (0.527318), N = 8 moving right + + -- best stat: 0.721283, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 15 3 13 16 + + + -- linear combo weights (showing up to 5) + + -0.2128 -0.1121 8.1880 0.6148 0.4183 + + + -- cutpoint (score) + --- -1.0535 (0.552022), N = 245 moving right + --- 0.160506 (0.715611), N = 89 moving right + --- 0.310431 (0.726614), N = 76 moving right + --- 0.349275 (0.722873), N = 71 moving right + --- 0.644432 (0.660873), N = 57 moving right + + -- best stat: 0.726614, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 11 15 3 + + + -- linear combo weights (showing up to 5) + + 0.5168 0.2223 0.3787 -0.1826 7.7775 + + + -- cutpoint (score) + --- -0.915301 (0.570851), N = 245 moving right + --- -0.529608 (0.642064), N = 202 moving right + --- -0.235185 (0.719352), N = 158 moving right + --- -0.136619 (0.718004), N = 146 moving right + --- 0.947534 (0.642627), N = 45 moving right + + -- best stat: 0.719352, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.7900e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 307 -------------- + +- N obs inbag: 276 +- N row inbag: 165 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 9 6 17 2 + + + -- linear combo weights (showing up to 5) + + 0.4072 0.4172 1.0842 0.6456 -0.4005 + + + -- cutpoint (score) + --- 0.437295 (0.550385), N = 249 moving right + --- 1.11442 (0.616594), N = 200 moving right + --- 1.80259 (0.685016), N = 108 moving right + --- 2.48067 (0.628902), N = 46 moving right + --- 3.11825 (0.601005), N = 29 moving right + + -- best stat: 0.685016, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 7 8 13 17 + + + -- linear combo weights (showing up to 5) + + 0.2439 4.0445 1.4872 -0.1805 0.4670 + + + -- cutpoint (score) + --- 0.680105 (0.6979), N = 161 moving right + --- 0.912544 (0.740129), N = 130 moving right + --- 1.31245 (0.759019), N = 96 moving right + --- 1.63538 (0.754951), N = 83 moving right + --- 2.69977 (0.689531), N = 49 moving right + + -- best stat: 0.759019, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 13 12 3 10 + + + -- linear combo weights (showing up to 5) + + 1.2568 -0.0701 0.2247 5.6034 -0.3174 + + + -- cutpoint (score) + --- -1.24466 (0.529431), N = 262 moving right + --- -0.937427 (0.606734), N = 213 moving right + --- -0.626878 (0.724371), N = 155 moving right + --- -0.221447 (0.737936), N = 98 moving right + --- 2.17665 (0.660995), N = 33 moving right + + -- best stat: 0.737936, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8551e-01 1.4546e-02 + 1.4000e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7464e-01 2.5602e-02 + 1.8600e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 308 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 4 5 7 6 + + + -- linear combo weights (showing up to 5) + + 0.3359 0.3125 0.3678 3.6232 0.9929 + + + -- cutpoint (score) + --- -0.363884 (0.5141), N = 254 moving right + --- 0.0730221 (0.585766), N = 185 moving right + --- 0.163839 (0.6019), N = 171 moving right + --- 0.495569 (0.675422), N = 97 moving right + --- 1.7204 (0.618429), N = 25 moving right + + -- best stat: 0.675422, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 12 1 4 + + + -- linear combo weights (showing up to 5) + + 0.5085 1.3091 0.0235 0.1801 0.0178 + + + -- cutpoint (score) + --- 0.57238 (0.627138), N = 215 moving right + --- 0.995682 (0.6724), N = 165 moving right + --- 1.34386 (0.728702), N = 123 moving right + --- 1.61535 (0.7414), N = 104 moving right + --- 4.30021 (0.542596), N = 11 moving right + + -- best stat: 0.7414, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 10 1 16 3 + + + -- linear combo weights (showing up to 5) + + -1.2267 -0.4188 0.0687 0.8004 4.6072 + + + -- cutpoint (score) + --- -1.99759 (0.572692), N = 216 moving right + --- -1.61084 (0.630989), N = 171 moving right + --- -1.40544 (0.683064), N = 138 moving right + --- -0.615285 (0.71944), N = 74 moving right + --- -0.560396 (0.715095), N = 63 moving right + + -- best stat: 0.71944, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 309 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 16 10 8 6 + + + -- linear combo weights (showing up to 5) + + 0.2346 0.3431 -0.3617 1.5474 -0.1440 + + + -- cutpoint (score) + --- -1.2562 (0.585368), N = 221 moving right + --- -0.895447 (0.686717), N = 162 moving right + --- -0.390404 (0.7447), N = 117 moving right + --- -0.097021 (0.739279), N = 99 moving right + --- -0.0176599 (0.746005), N = 88 moving right + + -- best stat: 0.746005, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 7 4 2 8 + + + -- linear combo weights (showing up to 5) + + 0.4569 6.2228 0.3538 -0.5043 1.3010 + + + -- cutpoint (score) + --- 0.108198 (0.73171), N = 67 moving right + --- 0.320582 (0.72665), N = 61 moving right + --- 2.01715 (0.643611), N = 28 moving right + --- 2.81334 (0.622651), N = 24 moving right + --- 5.95879 (0.580268), N = 14 moving right + + -- best stat: 0.73171, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 4 1 16 5 + + + -- linear combo weights (showing up to 5) + + 0.1241 0.7053 0.1967 0.4540 0.7118 + + + -- cutpoint (score) + --- -0.159566 (0.599261), N = 213 moving right + --- 0.338745 (0.660818), N = 162 moving right + --- 0.396642 (0.683926), N = 151 moving right + --- 0.579482 (0.684268), N = 136 moving right + --- 0.59109 (0.686034), N = 135 moving right + + -- best stat: 0.686034, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 310 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 16 4 2 6 + + + -- linear combo weights (showing up to 5) + + 0.3990 1.1119 0.5417 -0.0314 1.6383 + + + -- cutpoint (score) + --- -0.453846 (0.62478), N = 187 moving right + --- -0.320909 (0.644573), N = 173 moving right + --- 0.122684 (0.689142), N = 136 moving right + --- 0.59371 (0.706643), N = 84 moving right + --- 3.39079 (0.558389), N = 8 moving right + + -- best stat: 0.706643, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 14 4 12 6 + + + -- linear combo weights (showing up to 5) + + 0.5010 0.2902 0.3462 -0.0632 1.3911 + + + -- cutpoint (score) + --- 1.19252 (0.586823), N = 214 moving right + --- 1.19279 (0.589821), N = 213 moving right + --- 1.52236 (0.641355), N = 161 moving right + --- 1.53649 (0.649224), N = 158 moving right + --- 2.00159 (0.672126), N = 99 moving right + + -- best stat: 0.672126, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 1 15 10 5 + + + -- linear combo weights (showing up to 5) + + 7.8534 0.4945 -0.1594 -0.5869 0.6863 + + + -- cutpoint (score) + --- -0.97925 (0.536876), N = 238 moving right + --- -0.162607 (0.642325), N = 171 moving right + --- -0.0136899 (0.666108), N = 154 moving right + --- 0.532322 (0.696129), N = 82 moving right + --- 0.718473 (0.69657), N = 75 moving right + + -- best stat: 0.69657, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + 1.7900e+02 9.6739e-01 3.3037e-02 + + +------------ Growing tree 311 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 5 9 13 10 + + + -- linear combo weights (showing up to 5) + + -0.1979 0.8363 -0.1259 0.4454 -0.8771 + + + -- cutpoint (score) + --- -1.59624 (0.51717), N = 259 moving right + --- -1.5316 (0.529865), N = 255 moving right + --- -0.882018 (0.575682), N = 214 moving right + --- -0.674494 (0.612527), N = 190 moving right + --- 0.190524 (0.706421), N = 112 moving right + + -- best stat: 0.706421, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 5 8 4 + + + -- linear combo weights (showing up to 5) + + 0.4049 0.7383 0.1623 1.6995 0.1035 + + + -- cutpoint (score) + --- -0.773713 (0.530198), N = 260 moving right + --- 0.159152 (0.69716), N = 163 moving right + --- 0.208255 (0.689804), N = 160 moving right + --- 2.02578 (0.716944), N = 46 moving right + --- 2.49924 (0.682537), N = 40 moving right + + -- best stat: 0.716944, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 7 10 1 4 + + + -- linear combo weights (showing up to 5) + + 1.6474 4.9593 -0.5811 0.4701 0.1298 + + + -- cutpoint (score) + --- -1.43197 (0.572669), N = 231 moving right + --- -0.516693 (0.763559), N = 128 moving right + --- -0.443455 (0.764467), N = 124 moving right + --- 0.576127 (0.74681), N = 58 moving right + --- 2.70179 (0.639379), N = 27 moving right + + -- best stat: 0.764467, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 1.1000e+02 9.7826e-01 2.1886e-02 + 1.7900e+02 9.7464e-01 2.5589e-02 + 1.9100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 312 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 15 12 7 13 + + + -- linear combo weights (showing up to 5) + + 0.5291 0.0132 0.0545 9.4861 0.3268 + + + -- cutpoint (score) + --- 1.09467 (0.596406), N = 217 moving right + --- 2.16702 (0.638781), N = 50 moving right + --- 2.16725 (0.626431), N = 47 moving right + --- 2.29028 (0.623927), N = 36 moving right + --- 2.75994 (0.597942), N = 18 moving right + + -- best stat: 0.638781, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 0 11 8 3 + + + -- linear combo weights (showing up to 5) + + 0.5280 -0.1042 0.4989 1.0070 14.0993 + + + -- cutpoint (score) + --- -1.00131 (0.627714), N = 200 moving right + --- -0.747907 (0.686353), N = 169 moving right + --- 0.588055 (0.735104), N = 57 moving right + --- 1.21129 (0.697925), N = 39 moving right + --- 5.70849 (0.618267), N = 17 moving right + + -- best stat: 0.735104, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 8 7 14 6 + + + -- linear combo weights (showing up to 5) + + 0.3893 1.3088 8.3404 0.0085 0.5617 + + + -- cutpoint (score) + --- 0.0505942 (0.586602), N = 237 moving right + --- 0.133852 (0.597753), N = 228 moving right + --- 0.248022 (0.606211), N = 224 moving right + --- 1.84614 (0.699272), N = 50 moving right + --- 2.65427 (0.655929), N = 34 moving right + + -- best stat: 0.699272, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 313 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 189 +- max leaves: 95 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 11 10 17 9 + + + -- linear combo weights (showing up to 5) + + 0.3224 0.8344 -0.8293 0.4350 0.1551 + + + -- cutpoint (score) + --- 0.344866 (0.647676), N = 197 moving right + --- 0.358249 (0.659552), N = 193 moving right + --- 0.715433 (0.707616), N = 163 moving right + --- 0.75714 (0.710679), N = 160 moving right + --- 1.93785 (0.755143), N = 86 moving right + + -- best stat: 0.755143, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 11 1 7 10 + + + -- linear combo weights (showing up to 5) + + 0.0808 0.6421 0.2631 17.6559 -0.6509 + + + -- cutpoint (score) + --- -1.30239 (0.530017), N = 259 moving right + --- -0.372807 (0.683584), N = 166 moving right + --- -0.154455 (0.703385), N = 143 moving right + --- 0.0476334 (0.744693), N = 121 moving right + --- 0.485685 (0.757013), N = 81 moving right + + -- best stat: 0.757013, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 6 11 14 17 + + + -- linear combo weights (showing up to 5) + + 0.3413 0.8385 1.0719 0.1144 0.4292 + + + -- cutpoint (score) + --- 0.841942 (0.645783), N = 189 moving right + --- 1.10497 (0.69387), N = 160 moving right + --- 1.14403 (0.700884), N = 154 moving right + --- 1.17453 (0.700884), N = 150 moving right + --- 1.47429 (0.738966), N = 112 moving right + + -- best stat: 0.738966, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 314 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 1 9 12 15 + + + -- linear combo weights (showing up to 5) + + -0.7281 0.4759 0.3436 -0.1463 -0.2162 + + + -- cutpoint (score) + --- -1.09563 (0.581786), N = 224 moving right + --- -1.04084 (0.591426), N = 221 moving right + --- 0.190053 (0.711193), N = 105 moving right + --- 0.362584 (0.671293), N = 81 moving right + --- 1.15691 (0.622356), N = 44 moving right + + -- best stat: 0.711193, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 5 15 14 0 + + + -- linear combo weights (showing up to 5) + + 0.5715 0.9791 -0.1960 0.2201 -0.2099 + + + -- cutpoint (score) + --- 0.174798 (0.649491), N = 130 moving right + --- 0.531822 (0.694658), N = 85 moving right + --- 0.587967 (0.695461), N = 82 moving right + --- 0.702322 (0.699322), N = 69 moving right + --- 0.827614 (0.686178), N = 60 moving right + + -- best stat: 0.699322, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 0 2 7 13 + + + -- linear combo weights (showing up to 5) + + -0.1153 -0.2237 -0.3982 6.9127 0.1861 + + + -- cutpoint (score) + --- -0.716027 (0.571923), N = 221 moving right + --- -0.551057 (0.602963), N = 172 moving right + --- -0.486102 (0.603878), N = 139 moving right + --- -0.360318 (0.624007), N = 98 moving right + --- -0.214164 (0.5958), N = 67 moving right + + -- best stat: 0.624007, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.3100e+02 9.9638e-01 3.6232e-03 + 1.4000e+02 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8551e-01 1.4559e-02 + 1.8600e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 315 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 3 11 8 7 + + + -- linear combo weights (showing up to 5) + + -0.4505 2.8961 0.6760 1.0635 4.5578 + + + -- cutpoint (score) + --- -1.22773 (0.596718), N = 218 moving right + --- -1.17604 (0.612608), N = 212 moving right + --- -1.0251 (0.64053), N = 199 moving right + --- 0.545937 (0.733371), N = 79 moving right + --- 1.69409 (0.664615), N = 41 moving right + + -- best stat: 0.733371, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 16 7 11 8 + + + -- linear combo weights (showing up to 5) + + 0.2702 0.5968 5.3470 0.6793 0.8693 + + + -- cutpoint (score) + --- 0.290966 (0.732891), N = 145 moving right + --- 0.358678 (0.738347), N = 131 moving right + --- 1.01592 (0.768688), N = 94 moving right + --- 2.23261 (0.693756), N = 51 moving right + --- 8.13906 (0.56174), N = 9 moving right + + -- best stat: 0.768688, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 12 13 2 5 + + + -- linear combo weights (showing up to 5) + + 6.5686 0.2209 0.5699 -0.8275 0.6810 + + + -- cutpoint (score) + --- -0.852396 (0.665374), N = 180 moving right + --- -0.667061 (0.675787), N = 160 moving right + --- -0.603996 (0.676827), N = 156 moving right + --- -0.455886 (0.690418), N = 135 moving right + --- 1.42209 (0.558103), N = 14 moving right + + -- best stat: 0.690418, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.3100e+02 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 316 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 4 13 6 2 + + + -- linear combo weights (showing up to 5) + + -0.6429 0.7767 0.7910 0.8779 -1.0088 + + + -- cutpoint (score) + --- -2.34696 (0.537559), N = 258 moving right + --- -1.60047 (0.591256), N = 222 moving right + --- -0.9989 (0.659948), N = 172 moving right + --- -0.914888 (0.657989), N = 167 moving right + --- -0.803328 (0.681777), N = 153 moving right + + -- best stat: 0.681777, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 3 16 17 5 + + + -- linear combo weights (showing up to 5) + + 0.7416 10.1219 0.3502 0.5380 0.2741 + + + -- cutpoint (score) + --- 0.740862 (0.588216), N = 230 moving right + --- 1.70346 (0.734719), N = 125 moving right + --- 1.82325 (0.749918), N = 101 moving right + --- 3.32259 (0.652726), N = 28 moving right + --- 5.06578 (0.634446), N = 21 moving right + + -- best stat: 0.749918, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 1 14 17 8 + + + -- linear combo weights (showing up to 5) + + 0.0045 0.4647 0.2071 0.4828 2.0210 + + + -- cutpoint (score) + --- -0.423664 (0.56759), N = 243 moving right + --- 0.314332 (0.661825), N = 178 moving right + --- 0.612109 (0.689285), N = 145 moving right + --- 0.65539 (0.709993), N = 134 moving right + --- 0.99136 (0.753366), N = 110 moving right + + -- best stat: 0.753366, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 317 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 8 4 0 5 + + + -- linear combo weights (showing up to 5) + + -0.2210 1.9899 0.0977 -0.1978 0.9568 + + + -- cutpoint (score) + --- -1.35982 (0.522092), N = 264 moving right + --- -1.3218 (0.528838), N = 262 moving right + --- -1.03459 (0.627501), N = 199 moving right + --- -0.0379176 (0.716511), N = 97 moving right + --- 0.572039 (0.736251), N = 70 moving right + + -- best stat: 0.736251, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 10 15 5 6 + + + -- linear combo weights (showing up to 5) + + -0.4216 -0.8049 -0.2478 1.1086 -0.2324 + + + -- cutpoint (score) + --- -0.877987 (0.558068), N = 216 moving right + --- -0.133257 (0.696171), N = 121 moving right + --- 0.265284 (0.677936), N = 94 moving right + --- 0.281995 (0.682949), N = 92 moving right + --- 0.466523 (0.685858), N = 81 moving right + + -- best stat: 0.696171, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 7 9 10 + + + -- linear combo weights (showing up to 5) + + 0.1017 0.0313 17.1521 0.5462 -0.4550 + + + -- cutpoint (score) + --- -0.616936 (0.600767), N = 212 moving right + --- -0.433484 (0.605244), N = 188 moving right + --- -0.271076 (0.626511), N = 150 moving right + --- 0.0553716 (0.676451), N = 95 moving right + --- 0.113325 (0.662465), N = 85 moving right + + -- best stat: 0.676451, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8188e-01 1.8208e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 318 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 191 +- max leaves: 96 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 15 11 17 5 + + + -- linear combo weights (showing up to 5) + + 0.4998 0.0726 1.3469 0.4843 1.0748 + + + -- cutpoint (score) + --- 0.346476 (0.652786), N = 192 moving right + --- 0.817755 (0.709107), N = 150 moving right + --- 1.25485 (0.740904), N = 128 moving right + --- 1.50186 (0.746789), N = 118 moving right + --- 2.27998 (0.740837), N = 71 moving right + + -- best stat: 0.746789, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 12 7 3 11 + + + -- linear combo weights (showing up to 5) + + 0.2451 0.0401 9.7642 7.7889 1.2103 + + + -- cutpoint (score) + --- -0.729058 (0.550571), N = 245 moving right + --- -0.577091 (0.622757), N = 211 moving right + --- -0.572376 (0.625621), N = 209 moving right + --- -0.511013 (0.633587), N = 205 moving right + --- 0.0144892 (0.750347), N = 105 moving right + + -- best stat: 0.750347, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 15 7 12 6 + + + -- linear combo weights (showing up to 5) + + 1.1652 0.0556 14.3702 0.0447 0.9992 + + + -- cutpoint (score) + --- -1.00937 (0.542023), N = 249 moving right + --- -0.728856 (0.624883), N = 208 moving right + --- 0.282862 (0.752763), N = 81 moving right + --- 0.302399 (0.756456), N = 79 moving right + --- 1.07437 (0.728619), N = 51 moving right + + -- best stat: 0.756456, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 5.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 1.3100e+02 9.6014e-01 4.0404e-02 + 1.4000e+02 9.5652e-01 4.4177e-02 + + +------------ Growing tree 319 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 8 2 16 0 + + + -- linear combo weights (showing up to 5) + + -0.2433 2.0685 0.2066 0.7466 -0.1889 + + + -- cutpoint (score) + --- -1.50879 (0.573435), N = 235 moving right + --- -1.4794 (0.588413), N = 230 moving right + --- -1.33276 (0.607083), N = 208 moving right + --- -1.19709 (0.63425), N = 194 moving right + --- -0.582421 (0.758916), N = 119 moving right + + -- best stat: 0.758916, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 1 6 9 12 + + + -- linear combo weights (showing up to 5) + + 0.5482 0.4001 0.6421 0.0829 0.1521 + + + -- cutpoint (score) + --- -0.493959 (0.626116), N = 210 moving right + --- -0.476927 (0.630625), N = 208 moving right + --- -0.372309 (0.631984), N = 187 moving right + --- -0.283893 (0.642679), N = 171 moving right + --- -0.0781333 (0.653895), N = 128 moving right + + -- best stat: 0.653895, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 5 9 6 17 + + + -- linear combo weights (showing up to 5) + + 12.4082 0.2832 0.2840 1.2416 0.4089 + + + -- cutpoint (score) + --- 1.05812 (0.63058), N = 201 moving right + --- 1.271 (0.653011), N = 156 moving right + --- 1.43442 (0.672158), N = 128 moving right + --- 1.50326 (0.678706), N = 109 moving right + --- 2.97719 (0.617574), N = 23 moving right + + -- best stat: 0.678706, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 1.1000e+02 9.8188e-01 1.8196e-02 + 1.7900e+02 9.6739e-01 3.2956e-02 + 1.8600e+02 9.6377e-01 3.6701e-02 + 2.1600e+02 9.6014e-01 4.0460e-02 + + +------------ Growing tree 320 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 14 16 4 7 + + + -- linear combo weights (showing up to 5) + + -0.1765 0.2722 0.4378 0.8381 9.9872 + + + -- cutpoint (score) + --- -0.705577 (0.504027), N = 269 moving right + --- -0.21743 (0.580088), N = 230 moving right + --- -0.0690105 (0.627123), N = 200 moving right + --- 0.942984 (0.657652), N = 70 moving right + --- 1.02415 (0.664789), N = 62 moving right + + -- best stat: 0.664789, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 8 9 13 15 + + + -- linear combo weights (showing up to 5) + + -0.4469 1.7878 -0.4836 0.1502 -0.0249 + + + -- cutpoint (score) + --- -1.34855 (0.556216), N = 243 moving right + --- -0.922045 (0.638412), N = 193 moving right + --- -0.284188 (0.7382), N = 110 moving right + --- 0.0463712 (0.692646), N = 83 moving right + --- 0.966612 (0.64486), N = 42 moving right + + -- best stat: 0.7382, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 12 14 15 10 + + + -- linear combo weights (showing up to 5) + + 10.0100 0.1120 0.2370 -0.1367 -0.5591 + + + -- cutpoint (score) + --- -0.589765 (0.574893), N = 239 moving right + --- -0.0344328 (0.596803), N = 148 moving right + --- 0.412341 (0.616084), N = 69 moving right + --- 0.771922 (0.596156), N = 30 moving right + --- 0.913579 (0.589312), N = 22 moving right + + -- best stat: 0.616084, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 321 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 10 13 17 2 + + + -- linear combo weights (showing up to 5) + + 0.2842 -0.7336 0.3033 0.4963 -0.9418 + + + -- cutpoint (score) + --- -0.709118 (0.53859), N = 258 moving right + --- -0.00445378 (0.626626), N = 204 moving right + --- 0.121006 (0.649511), N = 190 moving right + --- 1.00272 (0.701825), N = 117 moving right + --- 3.4305 (0.533605), N = 8 moving right + + -- best stat: 0.701825, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 13 2 17 16 + + + -- linear combo weights (showing up to 5) + + 0.2429 0.4713 -0.6616 0.6423 0.4887 + + + -- cutpoint (score) + --- -0.194311 (0.531488), N = 262 moving right + --- 0.159192 (0.573254), N = 239 moving right + --- 0.496016 (0.628243), N = 213 moving right + --- 0.66004 (0.662503), N = 199 moving right + --- 1.91407 (0.702056), N = 87 moving right + + -- best stat: 0.702056, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 8 16 2 0 + + + -- linear combo weights (showing up to 5) + + 0.1567 1.4069 0.4465 -0.4549 -0.4053 + + + -- cutpoint (score) + --- -1.7438 (0.619909), N = 217 moving right + --- -1.67298 (0.630264), N = 207 moving right + --- -0.986667 (0.752675), N = 128 moving right + --- -0.332929 (0.70833), N = 81 moving right + --- 0.236786 (0.648125), N = 52 moving right + + -- best stat: 0.752675, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 322 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 1 14 5 13 + + + -- linear combo weights (showing up to 5) + + 0.2965 0.6509 0.2696 1.2527 0.4470 + + + -- cutpoint (score) + --- -0.675809 (0.603662), N = 226 moving right + --- -0.259618 (0.660254), N = 186 moving right + --- -0.204911 (0.673263), N = 179 moving right + --- 0.203963 (0.699302), N = 128 moving right + --- 0.427076 (0.724986), N = 116 moving right + + -- best stat: 0.724986, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 17 0 14 3 + + + -- linear combo weights (showing up to 5) + + 1.3997 0.4994 -0.4086 -0.0068 3.3745 + + + -- cutpoint (score) + --- 0.248709 (0.629425), N = 215 moving right + --- 0.270018 (0.6339), N = 213 moving right + --- 1.5871 (0.726918), N = 68 moving right + --- 3.85703 (0.635595), N = 31 moving right + --- 5.72756 (0.558957), N = 12 moving right + + -- best stat: 0.726918, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 0 2 15 16 + + + -- linear combo weights (showing up to 5) + + 0.6575 -0.3379 -1.3580 -0.0690 0.4849 + + + -- cutpoint (score) + --- -0.55501 (0.569443), N = 243 moving right + --- -0.197785 (0.628755), N = 211 moving right + --- -0.0123634 (0.64752), N = 185 moving right + --- 0.0669987 (0.667764), N = 174 moving right + --- 0.945288 (0.673874), N = 86 moving right + + -- best stat: 0.673874, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.3100e+02 9.8188e-01 1.8209e-02 + 1.8600e+02 9.7826e-01 2.1899e-02 + 1.9100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 323 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 2 16 12 14 + + + -- linear combo weights (showing up to 5) + + -0.2548 0.2357 0.4427 0.0559 0.6124 + + + -- cutpoint (score) + --- -0.666763 (0.551148), N = 246 moving right + --- -0.438953 (0.575847), N = 216 moving right + --- -0.293188 (0.594041), N = 202 moving right + --- 0.330807 (0.644634), N = 100 moving right + --- 0.884895 (0.596152), N = 45 moving right + + -- best stat: 0.644634, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 0 5 1 11 + + + -- linear combo weights (showing up to 5) + + 0.2100 -0.0560 1.2186 0.4077 0.6455 + + + -- cutpoint (score) + --- 0.343732 (0.728607), N = 110 moving right + --- 0.561435 (0.71229), N = 99 moving right + --- 1.04429 (0.698959), N = 58 moving right + --- 1.72462 (0.590201), N = 26 moving right + --- 2.00683 (0.544216), N = 14 moving right + + -- best stat: 0.728607, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 10 2 16 11 + + + -- linear combo weights (showing up to 5) + + 1.6010 -0.2981 0.1391 0.2424 0.2911 + + + -- cutpoint (score) + --- -1.118 (0.578065), N = 219 moving right + --- -1.01356 (0.615818), N = 199 moving right + --- -0.929677 (0.653976), N = 177 moving right + --- -0.320507 (0.709816), N = 110 moving right + --- -0.0378721 (0.739037), N = 96 moving right + + -- best stat: 0.739037, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 2.2300e+02 9.7826e-01 2.1912e-02 + 2.6400e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 324 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 2 6 11 4 + + + -- linear combo weights (showing up to 5) + + 0.8336 0.4650 0.0981 0.9751 0.7280 + + + -- cutpoint (score) + --- -0.449308 (0.518202), N = 267 moving right + --- -0.294651 (0.5513), N = 252 moving right + --- 0.797863 (0.693629), N = 128 moving right + --- 1.2349 (0.709321), N = 96 moving right + --- 1.284 (0.712545), N = 87 moving right + + -- best stat: 0.712545, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 15 6 7 4 + + + -- linear combo weights (showing up to 5) + + 0.6283 -0.0927 0.1291 9.3336 0.5735 + + + -- cutpoint (score) + --- -0.0739033 (0.523385), N = 251 moving right + --- -0.0191441 (0.575909), N = 216 moving right + --- 0.0107246 (0.60766), N = 200 moving right + --- 0.0366107 (0.634759), N = 186 moving right + --- 1.20565 (0.660531), N = 40 moving right + + -- best stat: 0.660531, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 6 15 11 17 + + + -- linear combo weights (showing up to 5) + + 0.3395 0.1583 -0.1307 0.9064 0.5448 + + + -- cutpoint (score) + --- 0.850154 (0.615904), N = 217 moving right + --- 1.15302 (0.631882), N = 199 moving right + --- 1.80062 (0.713566), N = 125 moving right + --- 2.21197 (0.733624), N = 89 moving right + --- 3.53358 (0.581602), N = 24 moving right + + -- best stat: 0.733624, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 325 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 2 16 1 8 + + + -- linear combo weights (showing up to 5) + + 10.9179 0.0331 0.0436 0.3482 1.2212 + + + -- cutpoint (score) + --- -0.578165 (0.656205), N = 180 moving right + --- -0.523857 (0.689585), N = 163 moving right + --- -0.517779 (0.693396), N = 160 moving right + --- -0.485369 (0.709737), N = 150 moving right + --- -0.395682 (0.743615), N = 133 moving right + + -- best stat: 0.743615, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 13 5 17 0 + + + -- linear combo weights (showing up to 5) + + 0.0654 0.3508 0.5357 0.6801 -0.2037 + + + -- cutpoint (score) + --- 1.30986 (0.597606), N = 228 moving right + --- 1.58111 (0.604868), N = 214 moving right + --- 1.61692 (0.619693), N = 204 moving right + --- 1.86532 (0.650479), N = 178 moving right + --- 2.85142 (0.641381), N = 68 moving right + + -- best stat: 0.650479, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 8 2 5 7 + + + -- linear combo weights (showing up to 5) + + 0.0086 1.2094 -0.2745 0.0449 11.1864 + + + -- cutpoint (score) + --- -1.01068 (0.545311), N = 248 moving right + --- -0.821694 (0.70421), N = 156 moving right + --- -0.617656 (0.739246), N = 127 moving right + --- 0.135984 (0.67919), N = 57 moving right + --- 1.13942 (0.652973), N = 34 moving right + + -- best stat: 0.739246, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7101e-01 2.9265e-02 + 1.8600e+02 9.6739e-01 3.2996e-02 + + +------------ Growing tree 326 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 4 1 8 17 + + + -- linear combo weights (showing up to 5) + + -0.5533 0.2142 0.2791 1.4424 0.5168 + + + -- cutpoint (score) + --- 0.265307 (0.635826), N = 210 moving right + --- 0.811727 (0.700591), N = 152 moving right + --- 1.17784 (0.758368), N = 115 moving right + --- 2.17498 (0.695329), N = 52 moving right + --- 6.43053 (0.534205), N = 6 moving right + + -- best stat: 0.758368, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 0 14 17 3 + + + -- linear combo weights (showing up to 5) + + 1.4359 -0.5472 -0.1530 0.5104 4.4742 + + + -- cutpoint (score) + --- 0.144957 (0.602549), N = 226 moving right + --- 0.756652 (0.701044), N = 158 moving right + --- 0.859184 (0.716874), N = 149 moving right + --- 0.956264 (0.743465), N = 131 moving right + --- 1.45952 (0.739001), N = 78 moving right + + -- best stat: 0.743465, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 2 8 6 16 + + + -- linear combo weights (showing up to 5) + + 0.4829 0.6998 1.3582 0.4390 0.2526 + + + -- cutpoint (score) + --- 0.923724 (0.670204), N = 72 moving right + --- 0.93557 (0.672986), N = 70 moving right + --- 1.09689 (0.680426), N = 60 moving right + --- 1.91379 (0.663647), N = 42 moving right + --- 2.75568 (0.602873), N = 20 moving right + + -- best stat: 0.680426, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.7900e+02 9.8913e-01 1.0909e-02 + 1.8600e+02 9.8551e-01 1.4572e-02 + 1.9800e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 327 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 5 7 11 1 + + + -- linear combo weights (showing up to 5) + + 0.4510 0.4430 9.5859 1.1441 0.5407 + + + -- cutpoint (score) + --- 0.649695 (0.685771), N = 174 moving right + --- 0.940354 (0.732596), N = 151 moving right + --- 1.29971 (0.76263), N = 127 moving right + --- 1.73809 (0.784155), N = 105 moving right + --- 2.3908 (0.749776), N = 59 moving right + + -- best stat: 0.784155, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 12 13 5 14 + + + -- linear combo weights (showing up to 5) + + 0.0400 0.1274 0.3031 1.3930 0.1868 + + + -- cutpoint (score) + --- -0.140367 (0.621787), N = 187 moving right + --- -0.018716 (0.649106), N = 165 moving right + --- 0.0367333 (0.654309), N = 155 moving right + --- 0.20168 (0.643863), N = 116 moving right + --- 0.883804 (0.623031), N = 70 moving right + + -- best stat: 0.654309, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 9 4 17 5 + + + -- linear combo weights (showing up to 5) + + -1.5362 0.3404 0.2473 0.5295 1.0262 + + + -- cutpoint (score) + --- -0.0307588 (0.681099), N = 184 moving right + --- 0.640832 (0.710969), N = 127 moving right + --- 0.837442 (0.700849), N = 107 moving right + --- 1.23291 (0.68977), N = 80 moving right + --- 1.96656 (0.562087), N = 24 moving right + + -- best stat: 0.710969, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8188e-01 1.8169e-02 + 1.8600e+02 9.7826e-01 2.1859e-02 + 1.9100e+02 9.6739e-01 3.2970e-02 + 1.9800e+02 9.6014e-01 4.0460e-02 + + +------------ Growing tree 328 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 1 12 7 4 + + + -- linear combo weights (showing up to 5) + + -0.4254 0.4515 0.2340 5.4871 0.6520 + + + -- cutpoint (score) + --- -1.10678 (0.507363), N = 269 moving right + --- 0.0803287 (0.677381), N = 153 moving right + --- 0.130264 (0.69227), N = 139 moving right + --- 0.6391 (0.631654), N = 77 moving right + --- 0.74188 (0.6165), N = 62 moving right + + -- best stat: 0.69227, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 11 0 1 17 + + + -- linear combo weights (showing up to 5) + + 0.3154 1.0563 -0.3277 0.3881 0.3386 + + + -- cutpoint (score) + --- 0.061142 (0.658515), N = 188 moving right + --- 0.757339 (0.749031), N = 130 moving right + --- 1.19465 (0.761554), N = 98 moving right + --- 1.47124 (0.763635), N = 85 moving right + --- 4.11213 (0.5031), N = 5 moving right + + -- best stat: 0.763635, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 5 8 9 3 + + + -- linear combo weights (showing up to 5) + + -0.1445 0.8768 1.4103 -0.0720 5.5614 + + + -- cutpoint (score) + --- -0.694047 (0.594473), N = 227 moving right + --- -0.34852 (0.710422), N = 157 moving right + --- 0.171188 (0.697532), N = 121 moving right + --- 0.437583 (0.716337), N = 88 moving right + --- 0.838303 (0.715847), N = 63 moving right + + -- best stat: 0.716337, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8188e-01 1.8169e-02 + 7.7000e+01 9.7826e-01 2.1859e-02 + 1.7900e+02 9.7101e-01 2.9266e-02 + 1.8600e+02 9.6739e-01 3.2997e-02 + + +------------ Growing tree 329 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 2 1 14 8 + + + -- linear combo weights (showing up to 5) + + -0.7312 -0.3843 0.2809 0.0685 1.7845 + + + -- cutpoint (score) + --- -2.64722 (0.515862), N = 266 moving right + --- -1.21246 (0.717004), N = 145 moving right + --- -0.917872 (0.738511), N = 127 moving right + --- -0.187624 (0.7415), N = 80 moving right + --- 1.71489 (0.658219), N = 33 moving right + + -- best stat: 0.7415, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 6 12 2 0 + + + -- linear combo weights (showing up to 5) + + 0.2736 0.6253 0.0688 -0.4107 0.0006 + + + -- cutpoint (score) + --- -0.264676 (0.6449), N = 106 moving right + --- -0.225198 (0.604609), N = 94 moving right + --- -0.191201 (0.60423), N = 84 moving right + --- 0.060509 (0.535361), N = 39 moving right + --- 0.123068 (0.553699), N = 33 moving right + + -- best stat: 0.6449, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 2 1 6 8 + + + -- linear combo weights (showing up to 5) + + -0.7242 -0.4141 0.2863 0.0158 1.8243 + + + -- cutpoint (score) + --- -1.85545 (0.585512), N = 226 moving right + --- -0.914248 (0.742861), N = 122 moving right + --- -0.904437 (0.748795), N = 119 moving right + --- 2.34162 (0.632251), N = 29 moving right + --- 3.95697 (0.579221), N = 17 moving right + + -- best stat: 0.748795, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 5.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.8188e-01 1.8209e-02 + 1.3100e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 330 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 2 17 7 9 + + + -- linear combo weights (showing up to 5) + + 0.3289 -0.5932 0.5974 6.6503 0.3064 + + + -- cutpoint (score) + --- 0.898559 (0.60522), N = 191 moving right + --- 0.901944 (0.608505), N = 190 moving right + --- 1.51929 (0.699112), N = 110 moving right + --- 2.07121 (0.660787), N = 56 moving right + --- 2.67264 (0.634965), N = 35 moving right + + -- best stat: 0.699112, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 15 9 11 7 + + + -- linear combo weights (showing up to 5) + + 1.1001 0.1743 0.3045 0.8180 6.2837 + + + -- cutpoint (score) + --- -0.325287 (0.671478), N = 166 moving right + --- -0.307804 (0.685872), N = 157 moving right + --- 0.252208 (0.736502), N = 98 moving right + --- 1.01801 (0.705583), N = 67 moving right + --- 1.14621 (0.694394), N = 59 moving right + + -- best stat: 0.736502, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 14 9 0 3 + + + -- linear combo weights (showing up to 5) + + 0.2351 0.0039 0.3789 0.0014 5.5851 + + + -- cutpoint (score) + --- -0.170638 (0.594091), N = 190 moving right + --- -0.155174 (0.598113), N = 188 moving right + --- -0.0199381 (0.681313), N = 123 moving right + --- -0.00640059 (0.678546), N = 120 moving right + --- 0.00910248 (0.690093), N = 115 moving right + + -- best stat: 0.690093, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8188e-01 1.8195e-02 + 7.7000e+01 9.7101e-01 2.9265e-02 + 1.1000e+02 9.6739e-01 3.2997e-02 + 1.4000e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 331 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 3 16 1 4 + + + -- linear combo weights (showing up to 5) + + 0.1500 5.0679 0.6106 0.1257 0.9606 + + + -- cutpoint (score) + --- -0.798683 (0.523851), N = 263 moving right + --- -0.0957722 (0.641331), N = 184 moving right + --- 0.0652239 (0.662661), N = 173 moving right + --- 0.821052 (0.737944), N = 97 moving right + --- 2.20466 (0.604536), N = 26 moving right + + -- best stat: 0.737944, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 10 2 15 11 + + + -- linear combo weights (showing up to 5) + + 0.1261 -0.7016 -0.0908 -0.3006 0.7177 + + + -- cutpoint (score) + --- -2.00639 (0.512722), N = 269 moving right + --- -1.55775 (0.535867), N = 256 moving right + --- 0.550457 (0.70498), N = 73 moving right + --- 1.26639 (0.637903), N = 36 moving right + --- 1.92133 (0.565786), N = 18 moving right + + -- best stat: 0.70498, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 2 14 16 12 + + + -- linear combo weights (showing up to 5) + + 0.3330 0.3016 0.4742 0.7896 0.1644 + + + -- cutpoint (score) + --- -0.598472 (0.573427), N = 229 moving right + --- 0.171637 (0.727097), N = 122 moving right + --- 0.428727 (0.724819), N = 100 moving right + --- 0.444723 (0.724375), N = 98 moving right + --- 0.519479 (0.720625), N = 90 moving right + + -- best stat: 0.727097, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.8188e-01 1.8196e-02 + 1.1000e+02 9.7464e-01 2.5576e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 332 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 8 15 4 9 + + + -- linear combo weights (showing up to 5) + + -0.0229 1.8320 -0.1652 0.1960 -0.0434 + + + -- cutpoint (score) + --- -1.00114 (0.590224), N = 221 moving right + --- -0.361829 (0.738563), N = 112 moving right + --- 0.792643 (0.653951), N = 53 moving right + --- 0.966879 (0.651335), N = 41 moving right + --- 0.973688 (0.652095), N = 40 moving right + + -- best stat: 0.738563, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 9 15 4 2 + + + -- linear combo weights (showing up to 5) + + 0.8164 0.8548 -0.1532 0.3409 -0.4849 + + + -- cutpoint (score) + --- -1.60927 (0.534278), N = 258 moving right + --- -1.55855 (0.54528), N = 253 moving right + --- -1.49523 (0.556236), N = 244 moving right + --- -0.734235 (0.712133), N = 149 moving right + --- -0.594185 (0.709964), N = 135 moving right + + -- best stat: 0.712133, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 6 9 15 1 + + + -- linear combo weights (showing up to 5) + + 0.1740 0.5688 1.0755 -0.2406 0.5512 + + + -- cutpoint (score) + --- -0.496674 (0.616743), N = 203 moving right + --- 0.265992 (0.681208), N = 93 moving right + --- 0.630867 (0.642749), N = 56 moving right + --- 1.01566 (0.642547), N = 37 moving right + --- 1.33191 (0.572962), N = 23 moving right + + -- best stat: 0.681208, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 1.3100e+02 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.8600e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 333 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 2 3 12 14 + + + -- linear combo weights (showing up to 5) + + 8.2379 -0.9539 3.2960 0.0585 0.2825 + + + -- cutpoint (score) + --- -1.13967 (0.584851), N = 211 moving right + --- -1.12478 (0.600676), N = 201 moving right + --- -0.81016 (0.670315), N = 90 moving right + --- 0.012146 (0.597455), N = 33 moving right + --- 4.3915 (0.593524), N = 15 moving right + + -- best stat: 0.670315, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 17 9 15 16 + + + -- linear combo weights (showing up to 5) + + 5.2900 0.6603 0.6653 -0.0737 0.4047 + + + -- cutpoint (score) + --- 1.00674 (0.567506), N = 237 moving right + --- 1.28354 (0.636374), N = 200 moving right + --- 1.36958 (0.646193), N = 196 moving right + --- 2.58024 (0.724308), N = 68 moving right + --- 2.8723 (0.664526), N = 42 moving right + + -- best stat: 0.724308, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 13 11 1 8 + + + -- linear combo weights (showing up to 5) + + -0.0393 0.0277 0.9168 0.5062 1.4476 + + + -- cutpoint (score) + --- -1.42381 (0.621143), N = 210 moving right + --- -0.91325 (0.748864), N = 136 moving right + --- 1.07891 (0.683611), N = 48 moving right + --- 1.91233 (0.659904), N = 37 moving right + --- 3.36547 (0.605555), N = 20 moving right + + -- best stat: 0.748864, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 334 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 5 1 16 12 + + + -- linear combo weights (showing up to 5) + + 7.7139 0.8824 0.5657 0.2138 0.0879 + + + -- cutpoint (score) + --- -0.54712 (0.564184), N = 232 moving right + --- -0.455428 (0.590552), N = 220 moving right + --- 0.308552 (0.702075), N = 133 moving right + --- 1.12921 (0.688762), N = 60 moving right + --- 1.33673 (0.66539), N = 42 moving right + + -- best stat: 0.702075, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 7 15 4 17 + + + -- linear combo weights (showing up to 5) + + 0.4863 7.3023 -0.0455 0.5786 0.3583 + + + -- cutpoint (score) + --- 0.793744 (0.633546), N = 215 moving right + --- 0.962039 (0.666561), N = 190 moving right + --- 1.59968 (0.727233), N = 115 moving right + --- 1.84964 (0.750089), N = 86 moving right + --- 9.65332 (0.545851), N = 10 moving right + + -- best stat: 0.750089, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 17 4 1 9 + + + -- linear combo weights (showing up to 5) + + 5.3703 0.3119 0.7847 0.3522 0.1571 + + + -- cutpoint (score) + --- 1.33865 (0.71769), N = 152 moving right + --- 2.05511 (0.681104), N = 67 moving right + --- 2.056 (0.674557), N = 66 moving right + --- 2.35748 (0.666779), N = 43 moving right + --- 2.47333 (0.650966), N = 39 moving right + + -- best stat: 0.71769, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.6377e-01 3.6700e-02 + 1.4000e+02 9.6014e-01 4.0460e-02 + + +------------ Growing tree 335 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 8 14 7 6 + + + -- linear combo weights (showing up to 5) + + 0.2820 1.5355 -0.0956 2.4468 0.8762 + + + -- cutpoint (score) + --- -0.667888 (0.633185), N = 199 moving right + --- -0.35833 (0.747569), N = 135 moving right + --- -0.0190781 (0.75312), N = 118 moving right + --- 0.472048 (0.744694), N = 89 moving right + --- 2.82734 (0.641099), N = 32 moving right + + -- best stat: 0.75312, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 7 13 1 12 + + + -- linear combo weights (showing up to 5) + + 0.7688 3.1715 0.4613 0.5342 0.0017 + + + -- cutpoint (score) + --- -0.822638 (0.61586), N = 212 moving right + --- -0.0766039 (0.741485), N = 134 moving right + --- -0.00606165 (0.751939), N = 129 moving right + --- 0.576438 (0.708666), N = 84 moving right + --- 0.964357 (0.702071), N = 69 moving right + + -- best stat: 0.751939, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 7 13 16 12 + + + -- linear combo weights (showing up to 5) + + 0.4922 2.8645 0.4695 0.4952 0.1180 + + + -- cutpoint (score) + --- 0.160073 (0.528921), N = 264 moving right + --- 0.559273 (0.572351), N = 243 moving right + --- 0.692943 (0.592767), N = 223 moving right + --- 0.9892 (0.651219), N = 191 moving right + --- 2.227 (0.703705), N = 79 moving right + + -- best stat: 0.703705, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.6739e-01 3.3037e-02 + + +------------ Growing tree 336 -------------- + +- N obs inbag: 276 +- N row inbag: 188 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 11 8 4 17 + + + -- linear combo weights (showing up to 5) + + -0.0649 0.4438 1.9354 0.1249 0.4170 + + + -- cutpoint (score) + --- -0.405845 (0.588739), N = 232 moving right + --- -0.155035 (0.633557), N = 209 moving right + --- 0.377951 (0.715431), N = 164 moving right + --- 0.434727 (0.728108), N = 158 moving right + --- 1.29626 (0.769045), N = 98 moving right + + -- best stat: 0.769045, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 12 14 3 8 + + + -- linear combo weights (showing up to 5) + + 0.0187 0.0347 -0.0651 6.4857 1.8312 + + + -- cutpoint (score) + --- -1.10962 (0.523053), N = 263 moving right + --- -0.985816 (0.602274), N = 223 moving right + --- -0.677774 (0.764462), N = 125 moving right + --- -0.569698 (0.770195), N = 117 moving right + --- -0.466991 (0.783379), N = 109 moving right + + -- best stat: 0.783379, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 1 16 9 8 + + + -- linear combo weights (showing up to 5) + + -0.1314 0.4716 0.2749 -0.5393 2.5280 + + + -- cutpoint (score) + --- -2.06176 (0.527597), N = 254 moving right + --- -1.89117 (0.56044), N = 237 moving right + --- -0.618889 (0.773725), N = 112 moving right + --- 0.80302 (0.704997), N = 49 moving right + --- 8.22993 (0.541483), N = 7 moving right + + -- best stat: 0.773725, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.7826e-01 2.1898e-02 + 1.1000e+02 9.6739e-01 3.3009e-02 + + +------------ Growing tree 337 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 11 0 7 1 + + + -- linear combo weights (showing up to 5) + + 0.9986 0.6458 0.1967 24.2718 0.2565 + + + -- cutpoint (score) + --- -0.139487 (0.671857), N = 180 moving right + --- -0.032769 (0.699573), N = 157 moving right + --- 0.280698 (0.720659), N = 126 moving right + --- 0.828052 (0.735204), N = 84 moving right + --- 24.9227 (0.556697), N = 8 moving right + + -- best stat: 0.735204, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 10 5 1 15 + + + -- linear combo weights (showing up to 5) + + 24.5482 -0.5565 0.9716 0.1606 -0.0819 + + + -- cutpoint (score) + --- -0.648596 (0.53585), N = 255 moving right + --- 0.263002 (0.678377), N = 123 moving right + --- 0.799089 (0.690915), N = 64 moving right + --- 1.62047 (0.628418), N = 20 moving right + --- 2.30721 (0.604649), N = 16 moving right + + -- best stat: 0.690915, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 11 1 2 13 + + + -- linear combo weights (showing up to 5) + + 2.1302 0.3821 0.5736 0.3980 0.0489 + + + -- cutpoint (score) + --- -1.61263 (0.542348), N = 256 moving right + --- -0.501596 (0.762659), N = 138 moving right + --- 1.35792 (0.673296), N = 43 moving right + --- 1.94042 (0.637795), N = 32 moving right + --- 6.9397 (0.563762), N = 10 moving right + + -- best stat: 0.762659, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.7900e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 338 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 9 7 16 17 + + + -- linear combo weights (showing up to 5) + + 0.3003 0.3865 2.6382 0.4475 0.5697 + + + -- cutpoint (score) + --- 1.02877 (0.591148), N = 227 moving right + --- 1.48121 (0.668752), N = 182 moving right + --- 1.90251 (0.720069), N = 126 moving right + --- 2.49749 (0.693886), N = 72 moving right + --- 2.87851 (0.628585), N = 44 moving right + + -- best stat: 0.720069, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 13 15 12 9 + + + -- linear combo weights (showing up to 5) + + 0.4110 0.1145 -0.3508 0.2110 0.2881 + + + -- cutpoint (score) + --- -0.395376 (0.612418), N = 196 moving right + --- -0.26834 (0.631231), N = 183 moving right + --- -0.00728209 (0.690736), N = 131 moving right + --- 0.574879 (0.591946), N = 46 moving right + --- 1.30469 (0.508525), N = 7 moving right + + -- best stat: 0.690736, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 17 13 12 14 + + + -- linear combo weights (showing up to 5) + + 0.2785 0.6299 0.2821 0.1011 0.1679 + + + -- cutpoint (score) + --- 0.86499 (0.552408), N = 250 moving right + --- 1.20268 (0.612481), N = 215 moving right + --- 2.02528 (0.706925), N = 126 moving right + --- 2.74759 (0.584345), N = 28 moving right + --- 2.80225 (0.574014), N = 20 moving right + + -- best stat: 0.706925, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 339 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 17 14 10 4 + + + -- linear combo weights (showing up to 5) + + 7.3419 0.4678 0.3938 -0.5430 0.3100 + + + -- cutpoint (score) + --- 1.07197 (0.660919), N = 188 moving right + --- 1.7312 (0.676301), N = 105 moving right + --- 1.82796 (0.670025), N = 93 moving right + --- 1.93709 (0.651596), N = 80 moving right + --- 2.25648 (0.683209), N = 58 moving right + + -- best stat: 0.683209, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 13 3 16 0 + + + -- linear combo weights (showing up to 5) + + 0.1896 0.2252 14.3340 0.6267 -0.0154 + + + -- cutpoint (score) + --- -0.620507 (0.601136), N = 203 moving right + --- -0.608968 (0.604838), N = 200 moving right + --- -0.370105 (0.645004), N = 174 moving right + --- -0.234561 (0.658841), N = 160 moving right + --- 0.660675 (0.67828), N = 55 moving right + + -- best stat: 0.67828, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 1 0 12 + + + -- linear combo weights (showing up to 5) + + 0.5898 0.6682 0.6357 -0.1590 0.1426 + + + -- cutpoint (score) + --- 0.276346 (0.562594), N = 240 moving right + --- 0.406254 (0.581657), N = 230 moving right + --- 0.52734 (0.599632), N = 222 moving right + --- 0.894534 (0.646706), N = 190 moving right + --- 1.23327 (0.692969), N = 165 moving right + + -- best stat: 0.692969, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 340 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 189 +- max leaves: 95 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 14 15 6 7 + + + -- linear combo weights (showing up to 5) + + 0.3589 0.6539 -0.1252 1.9522 8.5551 + + + -- cutpoint (score) + --- -0.565105 (0.619112), N = 205 moving right + --- 0.36569 (0.674662), N = 82 moving right + --- 0.652992 (0.675807), N = 55 moving right + --- 1.89632 (0.642206), N = 31 moving right + --- 2.57442 (0.613092), N = 22 moving right + + -- best stat: 0.675807, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 8 14 9 7 + + + -- linear combo weights (showing up to 5) + + 0.5438 1.8740 0.1990 -0.2145 6.0113 + + + -- cutpoint (score) + --- 0.546198 (0.642916), N = 195 moving right + --- 1.13801 (0.71783), N = 127 moving right + --- 1.63983 (0.744289), N = 73 moving right + --- 2.97454 (0.684619), N = 44 moving right + --- 3.68603 (0.665827), N = 32 moving right + + -- best stat: 0.744289, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 15 1 0 12 + + + -- linear combo weights (showing up to 5) + + 8.2810 -0.1598 0.4541 -0.3118 0.0328 + + + -- cutpoint (score) + --- -0.745204 (0.518723), N = 237 moving right + --- -0.671248 (0.540215), N = 226 moving right + --- -0.223352 (0.621218), N = 133 moving right + --- -0.035229 (0.633028), N = 106 moving right + --- 0.386545 (0.626734), N = 57 moving right + + -- best stat: 0.633028, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 3.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 2.6400e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 341 -------------- + +- N obs inbag: 276 +- N row inbag: 156 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 0 16 14 1 + + + -- linear combo weights (showing up to 5) + + 1.0847 0.2629 0.3991 0.3943 0.2770 + + + -- cutpoint (score) + --- -1.25665 (0.549892), N = 253 moving right + --- -1.07869 (0.598496), N = 228 moving right + --- 0.167459 (0.713438), N = 105 moving right + --- 0.798399 (0.70357), N = 65 moving right + --- 2.48822 (0.568478), N = 16 moving right + + -- best stat: 0.713438, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 8 7 2 16 + + + -- linear combo weights (showing up to 5) + + 0.3698 1.6493 5.2934 -0.5055 0.1651 + + + -- cutpoint (score) + --- -0.203631 (0.706836), N = 158 moving right + --- -0.0130855 (0.725721), N = 137 moving right + --- 1.81042 (0.660533), N = 45 moving right + --- 2.31846 (0.657933), N = 40 moving right + --- 2.67693 (0.657841), N = 35 moving right + + -- best stat: 0.725721, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 7 16 9 14 + + + -- linear combo weights (showing up to 5) + + 0.8365 6.9432 0.3617 0.1858 0.5378 + + + -- cutpoint (score) + --- -0.539226 (0.573561), N = 229 moving right + --- -0.214035 (0.653241), N = 176 moving right + --- 0.0906959 (0.688687), N = 134 moving right + --- 0.203988 (0.698187), N = 124 moving right + --- 7.34613 (0.568846), N = 13 moving right + + -- best stat: 0.698187, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7101e-01 2.9293e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 342 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 4 16 6 3 + + + -- linear combo weights (showing up to 5) + + -0.4167 0.4209 0.1457 0.1102 5.3844 + + + -- cutpoint (score) + --- -0.21666 (0.574104), N = 201 moving right + --- 0.218245 (0.660693), N = 126 moving right + --- 0.524934 (0.646351), N = 68 moving right + --- 0.62077 (0.615004), N = 55 moving right + --- 1.1184 (0.60677), N = 17 moving right + + -- best stat: 0.660693, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 13 1 10 3 + + + -- linear combo weights (showing up to 5) + + 1.3276 0.2069 0.5207 -0.1626 5.3995 + + + -- cutpoint (score) + --- -1.09052 (0.635924), N = 206 moving right + --- -0.748368 (0.69459), N = 157 moving right + --- 1.04797 (0.686267), N = 41 moving right + --- 1.07418 (0.689198), N = 39 moving right + --- 2.40958 (0.625073), N = 23 moving right + + -- best stat: 0.69459, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 7 8 15 0 + + + -- linear combo weights (showing up to 5) + + -0.5558 11.6057 2.2490 0.0798 -0.5484 + + + -- cutpoint (score) + --- -1.92614 (0.658948), N = 185 moving right + --- -1.60031 (0.728979), N = 140 moving right + --- -1.57289 (0.737549), N = 134 moving right + --- -1.38418 (0.749139), N = 115 moving right + --- -0.521452 (0.717143), N = 68 moving right + + -- best stat: 0.749139, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8551e-01 1.4532e-02 + 1.3100e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.9800e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 343 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 6 4 15 9 + + + -- linear combo weights (showing up to 5) + + -0.5911 0.7977 0.5504 -0.3146 0.1312 + + + -- cutpoint (score) + --- -0.748693 (0.54936), N = 249 moving right + --- 0.104874 (0.678685), N = 156 moving right + --- 0.132167 (0.677677), N = 154 moving right + --- 0.260682 (0.701884), N = 139 moving right + --- 0.578075 (0.716836), N = 115 moving right + + -- best stat: 0.716836, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 17 6 4 11 + + + -- linear combo weights (showing up to 5) + + 0.0990 0.4882 1.2465 0.3006 0.7809 + + + -- cutpoint (score) + --- 0.651901 (0.598145), N = 227 moving right + --- 1.223 (0.674715), N = 184 moving right + --- 1.46725 (0.695652), N = 152 moving right + --- 1.50476 (0.707931), N = 145 moving right + --- 1.76398 (0.746822), N = 126 moving right + + -- best stat: 0.746822, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 5 14 17 8 + + + -- linear combo weights (showing up to 5) + + 3.3674 0.4169 0.0774 0.4575 1.1763 + + + -- cutpoint (score) + --- 0.507337 (0.610382), N = 224 moving right + --- 1.87056 (0.772654), N = 91 moving right + --- 2.67449 (0.694233), N = 53 moving right + --- 3.76031 (0.663527), N = 40 moving right + --- 3.82712 (0.668072), N = 37 moving right + + -- best stat: 0.772654, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.7826e-01 2.1858e-02 + 7.7000e+01 9.7464e-01 2.5562e-02 + 1.1000e+02 9.6377e-01 3.6714e-02 + + +------------ Growing tree 344 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 12 11 2 7 + + + -- linear combo weights (showing up to 5) + + 0.1539 -0.0277 0.5227 0.2487 4.0459 + + + -- cutpoint (score) + --- -0.0430641 (0.616826), N = 181 moving right + --- 0.260667 (0.66521), N = 99 moving right + --- 0.303468 (0.660518), N = 95 moving right + --- 0.359354 (0.662082), N = 83 moving right + --- 1.46179 (0.556005), N = 15 moving right + + -- best stat: 0.66521, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 13 16 11 7 + + + -- linear combo weights (showing up to 5) + + 0.6512 0.3683 0.5297 0.3504 3.4148 + + + -- cutpoint (score) + --- -0.79513 (0.610099), N = 210 moving right + --- -0.756158 (0.607219), N = 207 moving right + --- -0.717717 (0.621667), N = 200 moving right + --- -0.101937 (0.683184), N = 118 moving right + --- 0.0128972 (0.701703), N = 97 moving right + + -- best stat: 0.701703, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 6 7 13 17 + + + -- linear combo weights (showing up to 5) + + 0.5253 0.3810 3.9558 0.1910 0.6945 + + + -- cutpoint (score) + --- 1.07818 (0.576709), N = 237 moving right + --- 1.83347 (0.65883), N = 181 moving right + --- 2.1553 (0.720148), N = 125 moving right + --- 2.5941 (0.727595), N = 84 moving right + --- 3.19177 (0.65034), N = 45 moving right + + -- best stat: 0.727595, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 345 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 16 0 2 9 + + + -- linear combo weights (showing up to 5) + + 0.1087 0.7535 -0.1176 -0.1620 0.3309 + + + -- cutpoint (score) + --- -0.916857 (0.603966), N = 221 moving right + --- -0.775483 (0.616135), N = 208 moving right + --- -0.360686 (0.672648), N = 150 moving right + --- 0.395734 (0.636236), N = 49 moving right + --- 0.523048 (0.598503), N = 38 moving right + + -- best stat: 0.672648, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 7 17 15 2 + + + -- linear combo weights (showing up to 5) + + 0.6485 6.0125 0.4618 0.0365 -0.5856 + + + -- cutpoint (score) + --- 0.761754 (0.614561), N = 221 moving right + --- 0.825164 (0.671384), N = 180 moving right + --- 1.4768 (0.692535), N = 107 moving right + --- 1.53003 (0.689016), N = 100 moving right + --- 1.97947 (0.605482), N = 28 moving right + + -- best stat: 0.692535, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 12 16 7 5 + + + -- linear combo weights (showing up to 5) + + -0.1027 0.1952 0.5555 5.2976 0.7333 + + + -- cutpoint (score) + --- -0.306129 (0.595859), N = 198 moving right + --- -0.285175 (0.594635), N = 192 moving right + --- 0.697206 (0.663453), N = 73 moving right + --- 5.48536 (0.573736), N = 15 moving right + --- 6.62764 (0.53297), N = 7 moving right + + -- best stat: 0.663453, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 346 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 6 8 15 5 + + + -- linear combo weights (showing up to 5) + + -0.0631 0.8997 1.5909 -0.3430 0.6557 + + + -- cutpoint (score) + --- -0.916681 (0.592349), N = 226 moving right + --- -0.273569 (0.721332), N = 134 moving right + --- -0.162128 (0.712601), N = 115 moving right + --- 2.1078 (0.606661), N = 25 moving right + --- 4.86331 (0.535911), N = 6 moving right + + -- best stat: 0.721332, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 15 6 16 3 + + + -- linear combo weights (showing up to 5) + + -0.2715 -0.1902 0.5130 0.5760 10.1145 + + + -- cutpoint (score) + --- -0.861617 (0.545496), N = 244 moving right + --- -0.616735 (0.571232), N = 202 moving right + --- 0.160726 (0.700959), N = 68 moving right + --- 0.592345 (0.681876), N = 41 moving right + --- 11.1136 (0.557379), N = 9 moving right + + -- best stat: 0.700959, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 15 7 17 6 + + + -- linear combo weights (showing up to 5) + + 0.2974 -0.0335 12.2099 0.6707 1.9501 + + + -- cutpoint (score) + --- 1.84938 (0.650166), N = 170 moving right + --- 2.5365 (0.723608), N = 99 moving right + --- 2.64872 (0.752582), N = 82 moving right + --- 2.83382 (0.68947), N = 60 moving right + --- 4.94448 (0.616662), N = 16 moving right + + -- best stat: 0.752582, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 347 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 2 9 13 14 + + + -- linear combo weights (showing up to 5) + + 0.8275 -0.1945 0.3182 0.6822 0.3115 + + + -- cutpoint (score) + --- -0.883393 (0.575101), N = 224 moving right + --- -0.872751 (0.578138), N = 221 moving right + --- -0.41807 (0.667881), N = 161 moving right + --- 0.969221 (0.612152), N = 44 moving right + --- 1.07603 (0.621133), N = 40 moving right + + -- best stat: 0.667881, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 13 4 6 5 + + + -- linear combo weights (showing up to 5) + + 0.3679 0.6958 0.8188 0.3942 0.8861 + + + -- cutpoint (score) + --- -0.949384 (0.521715), N = 263 moving right + --- -0.371215 (0.614408), N = 216 moving right + --- 0.601164 (0.703132), N = 139 moving right + --- 1.01205 (0.711788), N = 100 moving right + --- 1.02734 (0.702286), N = 98 moving right + + -- best stat: 0.711788, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 16 10 14 1 + + + -- linear combo weights (showing up to 5) + + 0.0550 0.4953 -1.0864 0.5178 0.1599 + + + -- cutpoint (score) + --- -0.82554 (0.644757), N = 206 moving right + --- -0.733828 (0.652089), N = 196 moving right + --- -0.434201 (0.673977), N = 172 moving right + --- 0.344789 (0.735889), N = 99 moving right + --- 1.00418 (0.710378), N = 68 moving right + + -- best stat: 0.735889, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7826e-01 2.1899e-02 + 1.7900e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 348 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 185 +- max leaves: 93 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 17 15 3 14 + + + -- linear combo weights (showing up to 5) + + 0.4384 0.3736 -0.1307 4.1186 0.1157 + + + -- cutpoint (score) + --- 0.498231 (0.530402), N = 257 moving right + --- 0.759128 (0.569589), N = 236 moving right + --- 0.94458 (0.59707), N = 204 moving right + --- 1.15033 (0.643223), N = 155 moving right + --- 2.0808 (0.602552), N = 23 moving right + + -- best stat: 0.643223, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 3 9 4 10 + + + -- linear combo weights (showing up to 5) + + -0.3928 3.9083 0.4352 0.9813 -0.4994 + + + -- cutpoint (score) + --- -1.08978 (0.534735), N = 257 moving right + --- -0.615633 (0.620338), N = 209 moving right + --- -0.371668 (0.681165), N = 179 moving right + --- -0.0824343 (0.700124), N = 162 moving right + --- 0.282116 (0.710083), N = 138 moving right + + -- best stat: 0.710083, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 9 4 11 3 + + + -- linear combo weights (showing up to 5) + + -0.0250 0.4352 1.0656 0.3737 4.0641 + + + -- cutpoint (score) + --- -0.59179 (0.533083), N = 261 moving right + --- -0.360551 (0.595705), N = 229 moving right + --- 0.501331 (0.689639), N = 150 moving right + --- 0.895912 (0.740173), N = 110 moving right + --- 1.68763 (0.632642), N = 32 moving right + + -- best stat: 0.740173, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.8913e-01 1.0870e-02 + 1.1000e+02 9.8551e-01 1.4533e-02 + 1.3100e+02 9.8188e-01 1.8209e-02 + 1.8600e+02 9.7826e-01 2.1899e-02 + 1.9100e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 349 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 15 10 9 4 + + + -- linear combo weights (showing up to 5) + + 7.1952 -0.1650 -0.2568 0.5381 0.7514 + + + -- cutpoint (score) + --- -0.604391 (0.533466), N = 254 moving right + --- -0.425244 (0.578165), N = 233 moving right + --- 0.98284 (0.704466), N = 54 moving right + --- 1.42817 (0.667603), N = 39 moving right + --- 7.95011 (0.575985), N = 14 moving right + + -- best stat: 0.704466, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 7 13 5 14 + + + -- linear combo weights (showing up to 5) + + 1.1233 11.8660 0.2548 0.4508 0.0258 + + + -- cutpoint (score) + --- -0.346984 (0.726757), N = 138 moving right + --- -0.316897 (0.73202), N = 136 moving right + --- -0.294283 (0.727208), N = 135 moving right + --- 0.200243 (0.756118), N = 92 moving right + --- 0.511237 (0.716191), N = 67 moving right + + -- best stat: 0.756118, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 15 11 8 9 + + + -- linear combo weights (showing up to 5) + + 0.0201 -0.2227 0.3693 2.0438 -0.4210 + + + -- cutpoint (score) + --- -1.1322 (0.642327), N = 190 moving right + --- -1.07516 (0.649574), N = 182 moving right + --- -1.07094 (0.655701), N = 179 moving right + --- -0.846144 (0.727366), N = 143 moving right + --- 2.02091 (0.64215), N = 34 moving right + + -- best stat: 0.727366, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 350 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 9 5 7 1 + + + -- linear combo weights (showing up to 5) + + -0.1943 0.3810 0.6294 6.3111 0.4640 + + + -- cutpoint (score) + --- -0.600525 (0.547507), N = 249 moving right + --- -0.111778 (0.636468), N = 190 moving right + --- 0.0275848 (0.645031), N = 172 moving right + --- 1.05879 (0.658129), N = 42 moving right + --- 2.92237 (0.600736), N = 20 moving right + + -- best stat: 0.658129, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 1 6 15 3 + + + -- linear combo weights (showing up to 5) + + 0.6793 0.3266 -0.5240 -0.1590 8.7226 + + + -- cutpoint (score) + --- -0.50081 (0.515901), N = 264 moving right + --- 0.277702 (0.641995), N = 154 moving right + --- 0.443078 (0.654801), N = 121 moving right + --- 0.500477 (0.658168), N = 110 moving right + --- 1.06672 (0.641509), N = 37 moving right + + -- best stat: 0.658168, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 5 8 1 7 + + + -- linear combo weights (showing up to 5) + + 0.0221 0.2428 2.0749 0.4854 5.1290 + + + -- cutpoint (score) + --- -1.15511 (0.592211), N = 218 moving right + --- -1.04074 (0.622961), N = 202 moving right + --- -0.85576 (0.683235), N = 169 moving right + --- -0.822839 (0.691954), N = 164 moving right + --- -0.458014 (0.736581), N = 131 moving right + + -- best stat: 0.736581, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7101e-01 2.9265e-02 + 1.3100e+02 9.6739e-01 3.2997e-02 + 1.4000e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 351 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 3 2 11 0 + + + -- linear combo weights (showing up to 5) + + 0.5707 3.9239 0.1717 0.6866 -0.0681 + + + -- cutpoint (score) + --- 0.186138 (0.671132), N = 156 moving right + --- 0.347606 (0.703153), N = 125 moving right + --- 0.45837 (0.686665), N = 110 moving right + --- 1.67703 (0.632643), N = 27 moving right + --- 5.04935 (0.518219), N = 6 moving right + + -- best stat: 0.703153, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 7 9 14 13 + + + -- linear combo weights (showing up to 5) + + 0.1045 5.0971 0.3054 0.2629 0.3696 + + + -- cutpoint (score) + --- -0.762922 (0.539655), N = 247 moving right + --- -0.463866 (0.596823), N = 217 moving right + --- -0.217226 (0.656853), N = 170 moving right + --- -0.197682 (0.661271), N = 165 moving right + --- 0.220073 (0.672492), N = 95 moving right + + -- best stat: 0.672492, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 10 5 8 12 + + + -- linear combo weights (showing up to 5) + + 0.2350 -0.4781 0.1083 1.3506 0.0554 + + + -- cutpoint (score) + --- -1.71068 (0.491447), N = 270 moving right + --- -0.260593 (0.708595), N = 119 moving right + --- -0.0735808 (0.725207), N = 102 moving right + --- 0.834119 (0.671026), N = 48 moving right + --- 5.48963 (0.539443), N = 7 moving right + + -- best stat: 0.725207, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 352 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 3 17 7 15 + + + -- linear combo weights (showing up to 5) + + 0.0727 4.5867 0.6098 5.4469 0.0013 + + + -- cutpoint (score) + --- 1.22471 (0.615474), N = 211 moving right + --- 1.27154 (0.618573), N = 210 moving right + --- 1.81704 (0.717831), N = 141 moving right + --- 2.16156 (0.713771), N = 99 moving right + --- 2.42291 (0.665605), N = 62 moving right + + -- best stat: 0.717831, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 13 1 12 6 + + + -- linear combo weights (showing up to 5) + + 0.1687 0.8442 0.4965 -0.0198 0.6081 + + + -- cutpoint (score) + --- -0.506663 (0.653055), N = 179 moving right + --- -0.386179 (0.664622), N = 161 moving right + --- 0.180192 (0.698778), N = 97 moving right + --- 0.193746 (0.698232), N = 95 moving right + --- 1.38049 (0.57045), N = 22 moving right + + -- best stat: 0.698778, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 5 6 16 14 + + + -- linear combo weights (showing up to 5) + + -0.3238 1.2663 0.4250 0.4040 0.2877 + + + -- cutpoint (score) + --- -0.607143 (0.584941), N = 208 moving right + --- -0.549846 (0.588455), N = 190 moving right + --- -0.357533 (0.662178), N = 141 moving right + --- 0.422866 (0.660279), N = 93 moving right + --- 1.18506 (0.648865), N = 35 moving right + + -- best stat: 0.662178, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 353 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 3 5 17 0 + + + -- linear combo weights (showing up to 5) + + 19.8499 0.7003 0.6664 0.3895 -0.2306 + + + -- cutpoint (score) + --- 0.937989 (0.646741), N = 153 moving right + --- 1.16859 (0.67592), N = 120 moving right + --- 1.21487 (0.682418), N = 117 moving right + --- 1.6044 (0.668188), N = 71 moving right + --- 2.92481 (0.595065), N = 15 moving right + + -- best stat: 0.682418, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 10 11 14 13 + + + -- linear combo weights (showing up to 5) + + 0.1867 -0.5919 0.6827 0.2864 0.3712 + + + -- cutpoint (score) + --- -1.02934 (0.587744), N = 214 moving right + --- -0.859401 (0.599774), N = 208 moving right + --- -0.544766 (0.667448), N = 156 moving right + --- 0.148651 (0.707012), N = 105 moving right + --- 0.373755 (0.70111), N = 88 moving right + + -- best stat: 0.707012, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 9 10 17 0 + + + -- linear combo weights (showing up to 5) + + 0.6618 0.2741 -0.5399 0.4236 -0.1366 + + + -- cutpoint (score) + --- 0.603274 (0.598828), N = 211 moving right + --- 0.624033 (0.607773), N = 207 moving right + --- 1.27474 (0.694859), N = 134 moving right + --- 1.57537 (0.693173), N = 113 moving right + --- 2.43257 (0.636377), N = 40 moving right + + -- best stat: 0.694859, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.7826e-01 2.1899e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + 1.3100e+02 9.6739e-01 3.3037e-02 + + +------------ Growing tree 354 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 17 2 3 11 + + + -- linear combo weights (showing up to 5) + + 0.0529 0.2229 0.7417 8.8985 1.2390 + + + -- cutpoint (score) + --- 0.680897 (0.637425), N = 200 moving right + --- 0.910132 (0.689992), N = 166 moving right + --- 1.36986 (0.739812), N = 110 moving right + --- 2.76188 (0.642615), N = 37 moving right + --- 3.53749 (0.623652), N = 26 moving right + + -- best stat: 0.739812, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 5 7 8 3 + + + -- linear combo weights (showing up to 5) + + 0.1970 0.8115 1.0778 1.2993 7.8452 + + + -- cutpoint (score) + --- -0.955435 (0.540995), N = 254 moving right + --- -0.780433 (0.610748), N = 214 moving right + --- -0.621761 (0.663112), N = 182 moving right + --- 0.0557711 (0.701381), N = 115 moving right + --- 1.86324 (0.662668), N = 37 moving right + + -- best stat: 0.701381, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 13 0 17 5 + + + -- linear combo weights (showing up to 5) + + 0.3966 0.3021 -0.6006 0.3891 1.1700 + + + -- cutpoint (score) + --- 0.406581 (0.606789), N = 214 moving right + --- 1.02192 (0.661436), N = 142 moving right + --- 1.08916 (0.646613), N = 136 moving right + --- 1.48434 (0.644897), N = 104 moving right + --- 2.01636 (0.628903), N = 54 moving right + + -- best stat: 0.661436, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 5.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.7464e-01 2.5508e-02 + 1.4000e+02 9.7101e-01 2.9225e-02 + 1.7900e+02 9.6739e-01 3.2957e-02 + + +------------ Growing tree 355 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 8 13 5 12 + + + -- linear combo weights (showing up to 5) + + -0.0969 1.6092 -0.0033 0.2708 0.0513 + + + -- cutpoint (score) + --- -0.934561 (0.553643), N = 249 moving right + --- -0.901552 (0.594165), N = 232 moving right + --- 0.172668 (0.701469), N = 84 moving right + --- 0.234866 (0.694815), N = 75 moving right + --- 0.356625 (0.684292), N = 64 moving right + + -- best stat: 0.701469, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 11 4 3 1 + + + -- linear combo weights (showing up to 5) + + -0.3444 0.7180 0.5911 4.7908 0.2859 + + + -- cutpoint (score) + --- 0.12414 (0.693619), N = 148 moving right + --- 0.564807 (0.750869), N = 103 moving right + --- 1.15911 (0.717749), N = 65 moving right + --- 6.01958 (0.57824), N = 17 moving right + --- 6.85479 (0.529737), N = 7 moving right + + -- best stat: 0.750869, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 9 12 7 + + + -- linear combo weights (showing up to 5) + + 0.4123 0.5342 0.5960 0.0742 5.2049 + + + -- cutpoint (score) + --- 0.613706 (0.614986), N = 211 moving right + --- 1.16034 (0.682722), N = 158 moving right + --- 1.34671 (0.69003), N = 123 moving right + --- 1.48319 (0.694105), N = 106 moving right + --- 3.48696 (0.595903), N = 22 moving right + + -- best stat: 0.694105, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 4.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 356 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 14 16 0 4 + + + -- linear combo weights (showing up to 5) + + 0.2408 0.4275 0.8725 -0.3868 0.4978 + + + -- cutpoint (score) + --- -1.05678 (0.542992), N = 247 moving right + --- -0.81254 (0.572899), N = 231 moving right + --- -0.732756 (0.579254), N = 226 moving right + --- -0.613679 (0.609122), N = 211 moving right + --- -0.476141 (0.645541), N = 193 moving right + + -- best stat: 0.645541, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 0 3 16 7 + + + -- linear combo weights (showing up to 5) + + 0.5015 -0.2759 2.5969 0.6815 5.1229 + + + -- cutpoint (score) + --- -0.752728 (0.574197), N = 228 moving right + --- -0.607589 (0.598398), N = 204 moving right + --- -0.35936 (0.63106), N = 149 moving right + --- 0.100423 (0.669487), N = 100 moving right + --- 0.172797 (0.66929), N = 89 moving right + + -- best stat: 0.669487, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 1 2 15 8 + + + -- linear combo weights (showing up to 5) + + -0.1273 0.4487 -0.3743 -0.0293 2.4208 + + + -- cutpoint (score) + --- -1.79684 (0.577424), N = 226 moving right + --- -1.59501 (0.605364), N = 206 moving right + --- -1.50332 (0.633933), N = 186 moving right + --- -1.14748 (0.715823), N = 148 moving right + --- -0.870976 (0.758815), N = 120 moving right + + -- best stat: 0.758815, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 1.3100e+02 9.8913e-01 1.0896e-02 + 1.4000e+02 9.7826e-01 2.1885e-02 + 1.7900e+02 9.6739e-01 3.2996e-02 + 1.8600e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 357 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 9 3 16 7 + + + -- linear combo weights (showing up to 5) + + 0.2118 0.4007 7.3644 0.2078 4.9603 + + + -- cutpoint (score) + --- -0.522166 (0.526409), N = 261 moving right + --- -0.393998 (0.584871), N = 217 moving right + --- -0.341859 (0.590516), N = 207 moving right + --- 0.182155 (0.661462), N = 79 moving right + --- 1.45724 (0.60166), N = 23 moving right + + -- best stat: 0.661462, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 16 13 8 6 + + + -- linear combo weights (showing up to 5) + + 0.6288 0.1382 0.1089 1.4609 1.3793 + + + -- cutpoint (score) + --- -0.987365 (0.556876), N = 243 moving right + --- -0.578876 (0.700684), N = 168 moving right + --- -0.469406 (0.689148), N = 158 moving right + --- 0.775005 (0.71739), N = 69 moving right + --- 1.75631 (0.627472), N = 32 moving right + + -- best stat: 0.71739, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 1 15 6 17 + + + -- linear combo weights (showing up to 5) + + -0.2083 0.2288 -0.1260 1.4496 0.4935 + + + -- cutpoint (score) + --- 0.579729 (0.556073), N = 247 moving right + --- 1.15355 (0.624835), N = 167 moving right + --- 1.45215 (0.648628), N = 119 moving right + --- 1.73209 (0.669455), N = 84 moving right + --- 2.84252 (0.55768), N = 18 moving right + + -- best stat: 0.669455, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 358 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 8 7 5 15 + + + -- linear combo weights (showing up to 5) + + 1.6245 1.1250 6.6313 0.2115 0.0044 + + + -- cutpoint (score) + --- -0.591155 (0.629949), N = 210 moving right + --- -0.51465 (0.659595), N = 188 moving right + --- -0.405248 (0.685813), N = 163 moving right + --- -0.329058 (0.704192), N = 150 moving right + --- 1.10045 (0.734488), N = 56 moving right + + -- best stat: 0.734488, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 5 2 3 16 + + + -- linear combo weights (showing up to 5) + + 0.1175 0.5058 -0.9879 4.2118 0.7175 + + + -- cutpoint (score) + --- -0.991582 (0.611787), N = 193 moving right + --- -0.849274 (0.650475), N = 179 moving right + --- -0.329613 (0.693358), N = 121 moving right + --- -0.0588257 (0.696234), N = 98 moving right + --- -0.0124568 (0.697613), N = 96 moving right + + -- best stat: 0.697613, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 4 14 11 9 + + + -- linear combo weights (showing up to 5) + + 1.1957 0.2799 -0.0104 0.7574 -0.2765 + + + -- cutpoint (score) + --- -1.22496 (0.527597), N = 262 moving right + --- -1.10036 (0.556987), N = 250 moving right + --- 0.520779 (0.726155), N = 83 moving right + --- 1.08608 (0.676142), N = 50 moving right + --- 3.82466 (0.570677), N = 15 moving right + + -- best stat: 0.726155, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 359 -------------- + +- N obs inbag: 276 +- N row inbag: 163 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 9 17 6 8 + + + -- linear combo weights (showing up to 5) + + -0.5920 -0.0894 0.3793 -0.8439 1.4918 + + + -- cutpoint (score) + --- 0.317289 (0.662449), N = 178 moving right + --- 1.06035 (0.772865), N = 107 moving right + --- 1.34256 (0.769956), N = 88 moving right + --- 2.8527 (0.666045), N = 34 moving right + --- 2.91834 (0.657055), N = 31 moving right + + -- best stat: 0.772865, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 9 7 0 3 + + + -- linear combo weights (showing up to 5) + + 0.5576 0.5204 7.3202 0.0545 4.3114 + + + -- cutpoint (score) + --- -0.437209 (0.513097), N = 270 moving right + --- -0.220892 (0.567595), N = 227 moving right + --- -0.118047 (0.616587), N = 202 moving right + --- -0.0191998 (0.68336), N = 152 moving right + --- 0.094727 (0.688244), N = 130 moving right + + -- best stat: 0.688244, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 15 13 7 12 + + + -- linear combo weights (showing up to 5) + + 0.6601 0.0671 0.4906 9.8249 0.0399 + + + -- cutpoint (score) + --- -0.470918 (0.599183), N = 229 moving right + --- -0.184205 (0.671328), N = 188 moving right + --- 0.117096 (0.697523), N = 118 moving right + --- 0.364542 (0.655079), N = 83 moving right + --- 0.395485 (0.661073), N = 78 moving right + + -- best stat: 0.697523, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.7900e+02 9.8188e-01 1.8222e-02 + 1.8600e+02 9.7826e-01 2.1912e-02 + 1.9100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 360 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 3 7 4 8 + + + -- linear combo weights (showing up to 5) + + 0.2731 4.3279 3.6653 -0.0267 1.1158 + + + -- cutpoint (score) + --- -0.883577 (0.522804), N = 258 moving right + --- -0.529879 (0.713954), N = 148 moving right + --- -0.232771 (0.75312), N = 113 moving right + --- -0.0494773 (0.742139), N = 103 moving right + --- 0.283465 (0.738698), N = 78 moving right + + -- best stat: 0.75312, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 15 8 14 4 + + + -- linear combo weights (showing up to 5) + + 0.4076 -0.1653 1.3393 -0.0610 0.0566 + + + -- cutpoint (score) + --- -1.11075 (0.539226), N = 254 moving right + --- -0.69712 (0.706673), N = 158 moving right + --- -0.508999 (0.739818), N = 142 moving right + --- -0.14436 (0.738098), N = 121 moving right + --- 2.70769 (0.611358), N = 21 moving right + + -- best stat: 0.739818, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 8 17 2 1 + + + -- linear combo weights (showing up to 5) + + 0.1370 1.3468 0.4268 -0.4870 0.2347 + + + -- cutpoint (score) + --- -0.302937 (0.586734), N = 233 moving right + --- 0.13075 (0.651564), N = 181 moving right + --- 0.140327 (0.654425), N = 180 moving right + --- 0.23479 (0.696311), N = 160 moving right + --- 3.27517 (0.607337), N = 25 moving right + + -- best stat: 0.696311, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.6739e-01 3.3037e-02 + + +------------ Growing tree 361 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 5 12 8 11 + + + -- linear combo weights (showing up to 5) + + 5.5665 0.8149 0.0475 1.3451 0.5089 + + + -- cutpoint (score) + --- -1.11188 (0.581108), N = 235 moving right + --- -0.168681 (0.724848), N = 133 moving right + --- 0.141484 (0.764043), N = 109 moving right + --- 1.26553 (0.730087), N = 58 moving right + --- 2.14731 (0.671), N = 39 moving right + + -- best stat: 0.764043, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 6 13 7 14 + + + -- linear combo weights (showing up to 5) + + 1.3374 0.3568 -0.0302 15.8549 0.1925 + + + -- cutpoint (score) + --- -0.398031 (0.73832), N = 135 moving right + --- -0.152483 (0.726562), N = 99 moving right + --- -0.048516 (0.730147), N = 82 moving right + --- 0.0113298 (0.722091), N = 76 moving right + --- 0.636989 (0.708836), N = 52 moving right + + -- best stat: 0.73832, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 15 5 1 14 + + + -- linear combo weights (showing up to 5) + + -0.0904 -0.1781 1.1120 0.5878 0.5292 + + + -- cutpoint (score) + --- -0.529774 (0.586918), N = 214 moving right + --- -0.093749 (0.635606), N = 176 moving right + --- 0.162026 (0.667376), N = 148 moving right + --- 1.07892 (0.672792), N = 58 moving right + --- 1.31294 (0.641692), N = 40 moving right + + -- best stat: 0.672792, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 362 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 6 10 9 13 + + + -- linear combo weights (showing up to 5) + + 1.7874 0.0538 -0.6237 -0.5195 0.1019 + + + -- cutpoint (score) + --- -1.51684 (0.528734), N = 245 moving right + --- -1.06979 (0.595666), N = 208 moving right + --- -0.874654 (0.639767), N = 184 moving right + --- -0.307276 (0.734743), N = 123 moving right + --- 6.15895 (0.555834), N = 10 moving right + + -- best stat: 0.734743, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 8 15 10 12 + + + -- linear combo weights (showing up to 5) + + 12.9432 1.0310 -0.2195 -0.3888 0.2527 + + + -- cutpoint (score) + --- -0.888391 (0.587002), N = 223 moving right + --- -0.788875 (0.620241), N = 209 moving right + --- -0.384545 (0.70461), N = 158 moving right + --- 0.382637 (0.706063), N = 74 moving right + --- 1.89605 (0.646451), N = 30 moving right + + -- best stat: 0.706063, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 2 6 3 13 + + + -- linear combo weights (showing up to 5) + + 0.1456 -0.7855 0.7129 5.1215 0.2875 + + + -- cutpoint (score) + --- -1.20842 (0.526573), N = 262 moving right + --- -1.10609 (0.555108), N = 248 moving right + --- -0.669058 (0.651755), N = 133 moving right + --- -0.294458 (0.667121), N = 82 moving right + --- 0.547458 (0.604112), N = 29 moving right + + -- best stat: 0.667121, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 363 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 5 15 7 16 + + + -- linear combo weights (showing up to 5) + + 0.4864 0.7423 -0.0807 7.1645 0.7280 + + + -- cutpoint (score) + --- -0.763181 (0.555396), N = 245 moving right + --- 0.0267076 (0.699547), N = 143 moving right + --- 0.059414 (0.694844), N = 140 moving right + --- 0.534221 (0.70351), N = 104 moving right + --- 0.571545 (0.703837), N = 103 moving right + + -- best stat: 0.703837, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 13 3 4 9 + + + -- linear combo weights (showing up to 5) + + 1.9072 0.1195 4.4313 0.4149 -0.0215 + + + -- cutpoint (score) + --- -1.24803 (0.537802), N = 256 moving right + --- -1.24379 (0.542636), N = 254 moving right + --- -0.926751 (0.647178), N = 206 moving right + --- -0.392104 (0.75932), N = 128 moving right + --- 1.77209 (0.641342), N = 31 moving right + + -- best stat: 0.75932, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 6 2 4 1 + + + -- linear combo weights (showing up to 5) + + 0.8043 -0.3521 0.4904 0.7524 0.3767 + + + -- cutpoint (score) + --- 0.235195 (0.661658), N = 185 moving right + --- 1.5037 (0.678883), N = 66 moving right + --- 1.65324 (0.657194), N = 55 moving right + --- 1.76868 (0.629867), N = 47 moving right + --- 1.84337 (0.624423), N = 36 moving right + + -- best stat: 0.678883, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 364 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 193 +- max leaves: 97 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 5 10 6 8 + + + -- linear combo weights (showing up to 5) + + 0.0648 0.8180 -0.2457 0.8679 1.2611 + + + -- cutpoint (score) + --- -0.956368 (0.547986), N = 240 moving right + --- -0.711463 (0.644861), N = 192 moving right + --- -0.570817 (0.702544), N = 159 moving right + --- 0.314942 (0.736955), N = 98 moving right + --- 0.664166 (0.741758), N = 81 moving right + + -- best stat: 0.741758, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 12 16 5 8 + + + -- linear combo weights (showing up to 5) + + -0.1822 0.0630 0.4980 0.6687 1.4293 + + + -- cutpoint (score) + --- -1.03048 (0.607135), N = 211 moving right + --- -0.563908 (0.7133), N = 149 moving right + --- 0.771205 (0.745975), N = 71 moving right + --- 1.10788 (0.7324), N = 59 moving right + --- 1.82903 (0.693298), N = 44 moving right + + -- best stat: 0.745975, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 11 9 15 4 + + + -- linear combo weights (showing up to 5) + + 1.8494 1.1298 0.2633 -0.0217 0.4536 + + + -- cutpoint (score) + --- -1.17528 (0.521242), N = 264 moving right + --- -0.923245 (0.540748), N = 247 moving right + --- -0.63381 (0.611284), N = 210 moving right + --- -0.403503 (0.685045), N = 174 moving right + --- 1.05819 (0.7041), N = 67 moving right + + -- best stat: 0.7041, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7464e-01 2.5548e-02 + 1.4000e+02 9.6377e-01 3.6700e-02 + 1.8600e+02 9.6014e-01 4.0460e-02 + + +------------ Growing tree 365 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 1 13 16 14 + + + -- linear combo weights (showing up to 5) + + 0.0797 0.6545 0.5746 0.5315 0.5737 + + + -- cutpoint (score) + --- -0.600449 (0.640719), N = 186 moving right + --- 0.0112522 (0.704797), N = 111 moving right + --- 0.0240568 (0.695059), N = 108 moving right + --- 0.986707 (0.685501), N = 59 moving right + --- 1.52938 (0.605374), N = 29 moving right + + -- best stat: 0.704797, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 9 4 12 16 + + + -- linear combo weights (showing up to 5) + + -0.1527 0.3880 0.5924 0.1869 0.4546 + + + -- cutpoint (score) + --- -0.710826 (0.521299), N = 254 moving right + --- -0.314493 (0.588202), N = 214 moving right + --- 0.483863 (0.675904), N = 114 moving right + --- 0.88162 (0.628817), N = 67 moving right + --- 1.28652 (0.548609), N = 25 moving right + + -- best stat: 0.675904, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 15 11 7 10 + + + -- linear combo weights (showing up to 5) + + 0.2719 -0.0922 0.8650 2.6220 -0.4908 + + + -- cutpoint (score) + --- -1.2796 (0.535305), N = 246 moving right + --- -0.590739 (0.670033), N = 170 moving right + --- -0.450538 (0.700108), N = 155 moving right + --- -0.317989 (0.704436), N = 144 moving right + --- 3.71018 (0.560171), N = 18 moving right + + -- best stat: 0.704436, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 366 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 245 +- max leaves: 123 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 11 2 12 15 + + + -- linear combo weights (showing up to 5) + + -0.0157 1.4275 0.5722 -0.1513 -0.2786 + + + -- cutpoint (score) + --- -0.944918 (0.534603), N = 253 moving right + --- -0.661937 (0.55893), N = 238 moving right + --- -0.140049 (0.660868), N = 181 moving right + --- 0.466604 (0.703045), N = 120 moving right + --- 2.11966 (0.640167), N = 38 moving right + + -- best stat: 0.703045, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 17 0 5 1 + + + -- linear combo weights (showing up to 5) + + 0.5941 0.3446 -0.0453 1.4735 0.4156 + + + -- cutpoint (score) + --- 0.123501 (0.533885), N = 258 moving right + --- 0.277819 (0.567807), N = 242 moving right + --- 0.316125 (0.575646), N = 239 moving right + --- 1.43292 (0.716852), N = 114 moving right + --- 1.51709 (0.705783), N = 109 moving right + + -- best stat: 0.716852, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 17 3 15 0 + + + -- linear combo weights (showing up to 5) + + 0.7296 0.3248 8.2235 -0.1189 -0.2033 + + + -- cutpoint (score) + --- 0.247464 (0.598972), N = 224 moving right + --- 1.21463 (0.712016), N = 95 moving right + --- 1.41952 (0.671672), N = 65 moving right + --- 10.3057 (0.53362), N = 6 moving right + --- 10.4533 (0.526009), N = 5 moving right + + -- best stat: 0.712016, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.7826e-01 2.1886e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 367 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 4 2 17 0 + + + -- linear combo weights (showing up to 5) + + -0.7278 0.1548 -0.8929 0.5312 -0.0793 + + + -- cutpoint (score) + --- -0.159884 (0.598752), N = 218 moving right + --- -0.0594252 (0.607843), N = 215 moving right + --- 0.676977 (0.660707), N = 158 moving right + --- 0.723496 (0.663427), N = 148 moving right + --- 1.46107 (0.647815), N = 64 moving right + + -- best stat: 0.663427, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 10 13 16 7 + + + -- linear combo weights (showing up to 5) + + 1.3030 -0.6812 -0.1013 0.2603 3.2431 + + + -- cutpoint (score) + --- -0.517967 (0.693984), N = 140 moving right + --- 0.0586261 (0.692515), N = 93 moving right + --- 0.0616543 (0.694567), N = 92 moving right + --- 0.439712 (0.705558), N = 59 moving right + --- 0.441827 (0.700052), N = 58 moving right + + -- best stat: 0.705558, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 15 14 2 3 + + + -- linear combo weights (showing up to 5) + + 0.0951 0.0068 0.2195 -0.5778 14.0828 + + + -- cutpoint (score) + --- -0.816975 (0.533256), N = 239 moving right + --- -0.799017 (0.528116), N = 236 moving right + --- -0.765543 (0.571823), N = 218 moving right + --- -0.700365 (0.590222), N = 185 moving right + --- -0.599101 (0.633713), N = 145 moving right + + -- best stat: 0.633713, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8551e-01 1.4493e-02 + 7.1000e+01 9.8188e-01 1.8169e-02 + 7.7000e+01 9.7826e-01 2.1859e-02 + 1.1000e+02 9.7464e-01 2.5563e-02 + 1.7900e+02 9.7101e-01 2.9280e-02 + + +------------ Growing tree 368 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 7 5 1 6 + + + -- linear combo weights (showing up to 5) + + 0.6264 2.8187 0.7803 0.3653 2.0621 + + + -- cutpoint (score) + --- -0.612878 (0.571736), N = 230 moving right + --- -0.553523 (0.578761), N = 227 moving right + --- -0.482869 (0.613908), N = 211 moving right + --- 0.631956 (0.689784), N = 80 moving right + --- 0.863199 (0.666513), N = 59 moving right + + -- best stat: 0.689784, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 12 7 15 13 + + + -- linear combo weights (showing up to 5) + + -0.2362 0.0829 2.6645 -0.1179 0.2118 + + + -- cutpoint (score) + --- -0.630542 (0.512963), N = 266 moving right + --- -0.525724 (0.535293), N = 253 moving right + --- -0.40696 (0.600903), N = 213 moving right + --- -0.245016 (0.667977), N = 151 moving right + --- 0.00689135 (0.619595), N = 71 moving right + + -- best stat: 0.667977, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 2 11 3 13 + + + -- linear combo weights (showing up to 5) + + 0.2989 0.2968 0.5869 7.3609 0.0132 + + + -- cutpoint (score) + --- -0.521851 (0.520427), N = 268 moving right + --- -0.46391 (0.53615), N = 261 moving right + --- 0.599316 (0.698649), N = 63 moving right + --- 1.10764 (0.63996), N = 36 moving right + --- 7.90549 (0.538555), N = 8 moving right + + -- best stat: 0.698649, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 369 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 17 15 7 2 + + + -- linear combo weights (showing up to 5) + + 0.5816 0.4885 -0.0466 3.2806 0.2496 + + + -- cutpoint (score) + --- 0.760863 (0.549903), N = 252 moving right + --- 1.25344 (0.606839), N = 213 moving right + --- 1.32355 (0.648479), N = 193 moving right + --- 1.3957 (0.678706), N = 173 moving right + --- 2.04668 (0.728414), N = 89 moving right + + -- best stat: 0.728414, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 3 9 17 8 + + + -- linear combo weights (showing up to 5) + + -0.1750 2.3525 -0.3665 0.4138 1.8068 + + + -- cutpoint (score) + --- -0.150044 (0.530227), N = 255 moving right + --- 0.0272802 (0.575016), N = 229 moving right + --- 0.808287 (0.698921), N = 132 moving right + --- 0.880546 (0.715922), N = 118 moving right + --- 0.910779 (0.725523), N = 112 moving right + + -- best stat: 0.725523, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 3 10 15 5 + + + -- linear combo weights (showing up to 5) + + 0.5643 2.2697 -0.4869 -0.0408 0.5146 + + + -- cutpoint (score) + --- -0.699746 (0.543279), N = 236 moving right + --- -0.574728 (0.581251), N = 217 moving right + --- -0.460288 (0.612082), N = 199 moving right + --- -0.285517 (0.672643), N = 167 moving right + --- 3.77018 (0.543301), N = 11 moving right + + -- best stat: 0.672643, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.8600e+02 9.7101e-01 2.9292e-02 + 1.9100e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 370 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 191 +- max leaves: 96 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 5 1 13 4 + + + -- linear combo weights (showing up to 5) + + -0.2487 1.7992 0.6626 0.4272 0.0646 + + + -- cutpoint (score) + --- -0.47542 (0.630416), N = 208 moving right + --- -0.263294 (0.644209), N = 193 moving right + --- 0.796419 (0.738972), N = 95 moving right + --- 0.838812 (0.733288), N = 90 moving right + --- 2.74707 (0.536725), N = 8 moving right + + -- best stat: 0.738972, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 2 15 9 0 + + + -- linear combo weights (showing up to 5) + + 0.4465 -0.6803 -0.1726 0.3114 -0.2401 + + + -- cutpoint (score) + --- -1.31 (0.509356), N = 270 moving right + --- -0.853405 (0.616688), N = 153 moving right + --- -0.801353 (0.634198), N = 139 moving right + --- -0.316731 (0.586456), N = 50 moving right + --- -0.313317 (0.5811), N = 48 moving right + + -- best stat: 0.634198, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 13 5 4 3 + + + -- linear combo weights (showing up to 5) + + 0.5061 0.3220 1.1946 0.1170 7.5025 + + + -- cutpoint (score) + --- -0.285165 (0.664167), N = 191 moving right + --- 0.00373535 (0.72402), N = 151 moving right + --- 0.205081 (0.729791), N = 135 moving right + --- 0.795305 (0.71556), N = 96 moving right + --- 1.7508 (0.680409), N = 46 moving right + + -- best stat: 0.729791, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.6739e-01 3.2982e-02 + 1.1000e+02 9.6377e-01 3.6728e-02 + + +------------ Growing tree 371 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 15 9 3 17 + + + -- linear combo weights (showing up to 5) + + 0.4583 -0.2740 0.3483 6.1882 0.4830 + + + -- cutpoint (score) + --- 0.587575 (0.542348), N = 247 moving right + --- 0.631562 (0.551852), N = 243 moving right + --- 1.86053 (0.678698), N = 71 moving right + --- 2.32012 (0.62784), N = 31 moving right + --- 2.57924 (0.590067), N = 23 moving right + + -- best stat: 0.678698, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 1 16 14 13 + + + -- linear combo weights (showing up to 5) + + 0.7945 0.5867 0.5240 0.4394 0.3558 + + + -- cutpoint (score) + --- -0.530086 (0.626514), N = 205 moving right + --- -0.178204 (0.685992), N = 151 moving right + --- 1.11363 (0.676709), N = 54 moving right + --- 1.14842 (0.667094), N = 46 moving right + --- 1.32182 (0.644616), N = 40 moving right + + -- best stat: 0.685992, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 11 7 17 0 + + + -- linear combo weights (showing up to 5) + + 0.2160 0.8797 8.5689 0.4316 -0.1592 + + + -- cutpoint (score) + --- 1.18755 (0.736783), N = 114 moving right + --- 2.09428 (0.672885), N = 50 moving right + --- 2.81507 (0.618314), N = 25 moving right + --- 9.8631 (0.561157), N = 11 moving right + --- 10.786 (0.529993), N = 7 moving right + + -- best stat: 0.736783, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.7826e-01 2.1885e-02 + 1.8600e+02 9.7464e-01 2.5589e-02 + 1.9100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 372 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 7 9 14 13 + + + -- linear combo weights (showing up to 5) + + 1.2294 6.6923 -0.1013 0.1157 0.0173 + + + -- cutpoint (score) + --- -0.513694 (0.711065), N = 158 moving right + --- -0.505595 (0.722268), N = 153 moving right + --- -0.316838 (0.742933), N = 128 moving right + --- 0.0174255 (0.705839), N = 85 moving right + --- 0.342313 (0.686302), N = 68 moving right + + -- best stat: 0.742933, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 7 12 3 6 + + + -- linear combo weights (showing up to 5) + + 0.3231 5.9061 0.2411 4.8375 1.3534 + + + -- cutpoint (score) + --- -0.334017 (0.536203), N = 249 moving right + --- -0.171156 (0.635273), N = 179 moving right + --- 0.135059 (0.68947), N = 97 moving right + --- 0.157307 (0.681849), N = 94 moving right + --- 1.23766 (0.650297), N = 37 moving right + + -- best stat: 0.68947, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 0 7 3 9 + + + -- linear combo weights (showing up to 5) + + -0.4346 -0.2764 5.9386 4.9307 0.3126 + + + -- cutpoint (score) + --- -0.840514 (0.534105), N = 240 moving right + --- -0.741998 (0.589667), N = 207 moving right + --- -0.435797 (0.663599), N = 106 moving right + --- -0.351089 (0.667439), N = 87 moving right + --- 10.1899 (0.543211), N = 8 moving right + + -- best stat: 0.667439, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 373 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 7 14 15 5 + + + -- linear combo weights (showing up to 5) + + 0.5982 32.5569 0.2078 0.0155 0.7195 + + + -- cutpoint (score) + --- -0.102791 (0.583396), N = 227 moving right + --- -0.0867247 (0.592794), N = 221 moving right + --- 0.536621 (0.693774), N = 129 moving right + --- 1.28671 (0.598178), N = 28 moving right + --- 33.3405 (0.538918), N = 6 moving right + + -- best stat: 0.693774, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 4 12 9 14 + + + -- linear combo weights (showing up to 5) + + 33.1771 0.6992 0.1396 0.4391 0.1187 + + + -- cutpoint (score) + --- -0.216181 (0.575718), N = 216 moving right + --- -0.0448025 (0.615519), N = 196 moving right + --- 0.328121 (0.670653), N = 147 moving right + --- 0.42358 (0.688391), N = 122 moving right + --- 2.3062 (0.580241), N = 14 moving right + + -- best stat: 0.688391, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 7 10 1 4 + + + -- linear combo weights (showing up to 5) + + 1.4357 29.5081 -0.4241 0.2576 0.2099 + + + -- cutpoint (score) + --- -1.33213 (0.542095), N = 256 moving right + --- -1.27151 (0.550435), N = 252 moving right + --- -0.962226 (0.638155), N = 215 moving right + --- -0.5225 (0.716873), N = 169 moving right + --- 0.875746 (0.701739), N = 49 moving right + + -- best stat: 0.716873, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 374 -------------- + +- N obs inbag: 276 +- N row inbag: 163 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 11 2 5 0 + + + -- linear combo weights (showing up to 5) + + 0.0294 1.0887 0.1015 0.9948 0.1468 + + + -- cutpoint (score) + --- 0.0496497 (0.707076), N = 146 moving right + --- 0.684339 (0.737733), N = 100 moving right + --- 1.33242 (0.661308), N = 53 moving right + --- 2.43874 (0.606984), N = 26 moving right + --- 3.31443 (0.532103), N = 13 moving right + + -- best stat: 0.737733, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 16 4 11 10 + + + -- linear combo weights (showing up to 5) + + 1.0992 0.7632 0.0687 0.6840 -0.5315 + + + -- cutpoint (score) + --- -2.31627 (0.50993), N = 266 moving right + --- -2.2606 (0.513087), N = 265 moving right + --- -1.57605 (0.593657), N = 223 moving right + --- 0.983493 (0.775668), N = 71 moving right + --- 6.0551 (0.577798), N = 14 moving right + + -- best stat: 0.775668, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 12 17 16 9 + + + -- linear combo weights (showing up to 5) + + 1.3956 0.1456 0.6972 0.8284 0.2627 + + + -- cutpoint (score) + --- 1.11747 (0.591343), N = 229 moving right + --- 1.79525 (0.677118), N = 170 moving right + --- 3.22046 (0.703726), N = 66 moving right + --- 3.70692 (0.651379), N = 37 moving right + --- 4.50647 (0.587752), N = 21 moving right + + -- best stat: 0.703726, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 5.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.9100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 375 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 15 9 1 11 + + + -- linear combo weights (showing up to 5) + + -0.6821 -0.0222 0.2828 0.5344 0.9393 + + + -- cutpoint (score) + --- -0.59706 (0.695943), N = 166 moving right + --- -0.510248 (0.708528), N = 160 moving right + --- -0.311543 (0.729755), N = 140 moving right + --- 0.456682 (0.748247), N = 86 moving right + --- 1.40581 (0.662193), N = 49 moving right + + -- best stat: 0.748247, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 1 2 10 3 + + + -- linear combo weights (showing up to 5) + + 0.4802 0.3841 -0.4472 -0.4311 6.6174 + + + -- cutpoint (score) + --- -0.855157 (0.643325), N = 194 moving right + --- -0.595812 (0.700639), N = 159 moving right + --- -0.391082 (0.722116), N = 130 moving right + --- -0.316862 (0.734847), N = 116 moving right + --- 0.124725 (0.685382), N = 62 moving right + + -- best stat: 0.734847, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 3 4 1 16 + + + -- linear combo weights (showing up to 5) + + 1.7461 4.8864 0.1692 0.5171 0.0444 + + + -- cutpoint (score) + --- -1.09637 (0.589664), N = 225 moving right + --- -0.840808 (0.629237), N = 186 moving right + --- -0.832756 (0.634392), N = 183 moving right + --- 0.548269 (0.752192), N = 66 moving right + --- 2.2514 (0.667474), N = 32 moving right + + -- best stat: 0.752192, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 376 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 3 10 9 4 + + + -- linear combo weights (showing up to 5) + + 0.2745 3.2055 -0.4009 0.3936 0.7112 + + + -- cutpoint (score) + --- 0.0338293 (0.549403), N = 254 moving right + --- 0.957022 (0.682874), N = 172 moving right + --- 1.58136 (0.69474), N = 102 moving right + --- 2.4107 (0.606945), N = 34 moving right + --- 5.62552 (0.53362), N = 9 moving right + + -- best stat: 0.69474, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 7 9 4 12 + + + -- linear combo weights (showing up to 5) + + 0.2860 8.7863 0.2814 0.9399 0.0519 + + + -- cutpoint (score) + --- -0.177488 (0.607154), N = 222 moving right + --- 0.516719 (0.696604), N = 159 moving right + --- 0.764685 (0.679908), N = 104 moving right + --- 0.905834 (0.647505), N = 88 moving right + --- 1.40957 (0.627558), N = 41 moving right + + -- best stat: 0.696604, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 9 16 14 17 + + + -- linear combo weights (showing up to 5) + + 7.8133 0.3167 0.4012 0.2740 0.6087 + + + -- cutpoint (score) + --- 1.44686 (0.659941), N = 197 moving right + --- 2.01556 (0.713014), N = 130 moving right + --- 2.17819 (0.723378), N = 106 moving right + --- 2.47865 (0.680859), N = 65 moving right + --- 3.56443 (0.58848), N = 19 moving right + + -- best stat: 0.723378, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 4.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.7464e-01 2.5522e-02 + 1.4000e+02 9.7101e-01 2.9239e-02 + 1.7900e+02 9.6377e-01 3.6702e-02 + 1.8600e+02 9.5652e-01 4.4221e-02 + + +------------ Growing tree 377 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 0 4 10 6 + + + -- linear combo weights (showing up to 5) + + -0.9615 -0.0228 0.9911 -0.7017 0.5326 + + + -- cutpoint (score) + --- -2.02451 (0.509937), N = 268 moving right + --- -1.24993 (0.59367), N = 218 moving right + --- -1.22709 (0.601094), N = 216 moving right + --- 0.642587 (0.621085), N = 42 moving right + --- 1.83498 (0.529754), N = 7 moving right + + -- best stat: 0.621085, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 7 5 3 13 + + + -- linear combo weights (showing up to 5) + + 0.3832 7.0331 0.4167 5.2570 0.3613 + + + -- cutpoint (score) + --- -0.296974 (0.576928), N = 239 moving right + --- 0.0387356 (0.696369), N = 154 moving right + --- 0.0803967 (0.692754), N = 145 moving right + --- 0.524144 (0.605889), N = 57 moving right + --- 1.30258 (0.598581), N = 28 moving right + + -- best stat: 0.696369, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 17 12 14 8 + + + -- linear combo weights (showing up to 5) + + 0.2379 0.4169 0.0987 -0.0103 1.2657 + + + -- cutpoint (score) + --- 0.0181723 (0.56786), N = 242 moving right + --- 0.15978 (0.577102), N = 234 moving right + --- 0.210895 (0.59048), N = 228 moving right + --- 0.584449 (0.698341), N = 170 moving right + --- 1.24503 (0.739908), N = 99 moving right + + -- best stat: 0.739908, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.8600e+02 9.8551e-01 1.4559e-02 + 1.9100e+02 9.8188e-01 1.8235e-02 + 2.2300e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 378 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 9 14 6 8 + + + -- linear combo weights (showing up to 5) + + -0.1188 -0.2468 -0.1857 -0.2758 2.2079 + + + -- cutpoint (score) + --- -1.20391 (0.629037), N = 206 moving right + --- -1.15326 (0.626915), N = 190 moving right + --- -1.04053 (0.669391), N = 160 moving right + --- -0.763708 (0.75488), N = 113 moving right + --- 0.889613 (0.633012), N = 34 moving right + + -- best stat: 0.75488, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 1 9 14 7 + + + -- linear combo weights (showing up to 5) + + 1.6976 0.4257 -0.0980 -0.1495 5.2340 + + + -- cutpoint (score) + --- -0.90517 (0.598106), N = 205 moving right + --- -0.831483 (0.615838), N = 193 moving right + --- -0.658477 (0.692059), N = 155 moving right + --- 0.3687 (0.748135), N = 57 moving right + --- 1.42891 (0.65789), N = 33 moving right + + -- best stat: 0.748135, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 13 14 0 17 + + + -- linear combo weights (showing up to 5) + + 0.2413 0.3203 0.0858 0.0558 0.4869 + + + -- cutpoint (score) + --- 0.923875 (0.606503), N = 217 moving right + --- 1.31346 (0.648265), N = 156 moving right + --- 1.91596 (0.628121), N = 67 moving right + --- 1.97883 (0.620952), N = 52 moving right + --- 2.55067 (0.547367), N = 17 moving right + + -- best stat: 0.648265, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.1000e+02 9.9638e-01 3.6232e-03 + 1.4000e+02 9.8551e-01 1.4532e-02 + 1.9100e+02 9.8188e-01 1.8209e-02 + 1.9800e+02 9.7826e-01 2.1899e-02 + 2.2300e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 379 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 11 14 7 16 + + + -- linear combo weights (showing up to 5) + + -0.0560 0.6563 0.3841 10.2177 0.4807 + + + -- cutpoint (score) + --- -0.72254 (0.619958), N = 215 moving right + --- -0.717507 (0.632248), N = 207 moving right + --- 0.0543662 (0.726408), N = 106 moving right + --- 0.205723 (0.731155), N = 100 moving right + --- 0.97028 (0.673151), N = 45 moving right + + -- best stat: 0.731155, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 16 10 6 7 + + + -- linear combo weights (showing up to 5) + + 0.0650 0.5969 -0.8349 -0.4714 10.2036 + + + -- cutpoint (score) + --- -1.10936 (0.556071), N = 243 moving right + --- -0.950974 (0.581261), N = 227 moving right + --- -0.502458 (0.632836), N = 187 moving right + --- -0.473944 (0.634664), N = 186 moving right + --- 1.35224 (0.643929), N = 32 moving right + + -- best stat: 0.643929, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 17 4 8 1 + + + -- linear combo weights (showing up to 5) + + 0.0381 0.1610 0.5257 2.0872 0.3388 + + + -- cutpoint (score) + --- -0.316246 (0.667857), N = 189 moving right + --- -0.246291 (0.693382), N = 175 moving right + --- 1.23082 (0.713866), N = 53 moving right + --- 4.4367 (0.610021), N = 20 moving right + --- 9.63035 (0.530189), N = 7 moving right + + -- best stat: 0.713866, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 4.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 380 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 8 13 15 16 + + + -- linear combo weights (showing up to 5) + + 5.1868 1.5659 0.0681 -0.0847 0.1216 + + + -- cutpoint (score) + --- -0.939486 (0.635911), N = 205 moving right + --- -0.905499 (0.655494), N = 195 moving right + --- -0.81949 (0.70025), N = 166 moving right + --- -0.413521 (0.737697), N = 124 moving right + --- -0.123798 (0.74442), N = 99 moving right + + -- best stat: 0.74442, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 1 17 14 11 + + + -- linear combo weights (showing up to 5) + + 0.7218 0.3361 0.2700 0.1931 1.0868 + + + -- cutpoint (score) + --- -0.499075 (0.550444), N = 253 moving right + --- 0.554886 (0.693644), N = 163 moving right + --- 0.61683 (0.698804), N = 158 moving right + --- 1.0589 (0.744049), N = 121 moving right + --- 2.90729 (0.604757), N = 28 moving right + + -- best stat: 0.744049, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 12 7 1 11 + + + -- linear combo weights (showing up to 5) + + 0.3152 -0.0152 6.9237 0.4009 1.0205 + + + -- cutpoint (score) + --- 0.659918 (0.7393), N = 135 moving right + --- 0.865649 (0.753117), N = 119 moving right + --- 1.09694 (0.750792), N = 101 moving right + --- 3.30658 (0.597936), N = 24 moving right + --- 5.58741 (0.586952), N = 16 moving right + + -- best stat: 0.753117, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7101e-01 2.9293e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 381 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 7 17 3 8 + + + -- linear combo weights (showing up to 5) + + 0.1516 1.5935 0.5052 11.8738 1.0958 + + + -- cutpoint (score) + --- 1.03492 (0.703018), N = 170 moving right + --- 1.12315 (0.694681), N = 155 moving right + --- 1.27239 (0.71086), N = 137 moving right + --- 2.7708 (0.678996), N = 45 moving right + --- 14.7505 (0.600161), N = 16 moving right + + -- best stat: 0.71086, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 10 11 6 12 + + + -- linear combo weights (showing up to 5) + + 5.5219 -0.7487 0.7440 1.6609 0.0617 + + + -- cutpoint (score) + --- -1.39643 (0.550245), N = 254 moving right + --- -1.09553 (0.566239), N = 245 moving right + --- -1.07378 (0.572455), N = 242 moving right + --- -0.905423 (0.601004), N = 228 moving right + --- 0.983465 (0.729509), N = 67 moving right + + -- best stat: 0.729509, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 5 15 17 16 + + + -- linear combo weights (showing up to 5) + + -0.5750 0.8991 -0.1371 0.6849 0.6985 + + + -- cutpoint (score) + --- 0.99062 (0.65337), N = 184 moving right + --- 1.54765 (0.697501), N = 139 moving right + --- 1.61833 (0.705796), N = 133 moving right + --- 2.15599 (0.703059), N = 104 moving right + --- 2.30826 (0.721234), N = 94 moving right + + -- best stat: 0.721234, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 5.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 382 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 7 2 9 16 + + + -- linear combo weights (showing up to 5) + + -0.0828 7.1586 -0.6007 0.5994 0.2465 + + + -- cutpoint (score) + --- -1.15078 (0.547741), N = 251 moving right + --- -0.880188 (0.666207), N = 183 moving right + --- -0.719923 (0.696874), N = 144 moving right + --- -0.550958 (0.724245), N = 110 moving right + --- 0.213777 (0.606376), N = 37 moving right + + -- best stat: 0.724245, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 17 14 4 11 + + + -- linear combo weights (showing up to 5) + + -0.2137 0.5582 0.1073 0.1034 1.3382 + + + -- cutpoint (score) + --- 0.130949 (0.592392), N = 234 moving right + --- 1.15703 (0.718293), N = 144 moving right + --- 1.51455 (0.720888), N = 111 moving right + --- 1.93485 (0.710014), N = 75 moving right + --- 2.89495 (0.664518), N = 42 moving right + + -- best stat: 0.720888, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 1 10 9 7 + + + -- linear combo weights (showing up to 5) + + -0.7208 0.5194 -0.7812 0.6255 6.6031 + + + -- cutpoint (score) + --- -2.01661 (0.541356), N = 250 moving right + --- -0.886688 (0.715327), N = 147 moving right + --- -0.834086 (0.715018), N = 143 moving right + --- -0.680616 (0.735655), N = 132 moving right + --- 1.74792 (0.598241), N = 22 moving right + + -- best stat: 0.735655, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 383 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 1 3 5 0 + + + -- linear combo weights (showing up to 5) + + 0.1304 0.4892 5.9073 1.0863 0.1243 + + + -- cutpoint (score) + --- -0.698937 (0.522986), N = 266 moving right + --- -0.106055 (0.60545), N = 203 moving right + --- 1.15019 (0.681785), N = 56 moving right + --- 1.25015 (0.664949), N = 46 moving right + --- 1.53754 (0.643299), N = 34 moving right + + -- best stat: 0.681785, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 7 16 10 1 + + + -- linear combo weights (showing up to 5) + + -0.6724 10.1585 0.3362 -0.5244 0.3490 + + + -- cutpoint (score) + --- -1.76198 (0.520038), N = 260 moving right + --- -1.14431 (0.613974), N = 203 moving right + --- -0.838084 (0.68821), N = 155 moving right + --- -0.680145 (0.696183), N = 137 moving right + --- -0.171122 (0.746544), N = 88 moving right + + -- best stat: 0.746544, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 12 11 17 10 + + + -- linear combo weights (showing up to 5) + + -0.0331 -0.1315 0.6628 0.4693 -0.5381 + + + -- cutpoint (score) + --- 0.560857 (0.589334), N = 218 moving right + --- 0.968629 (0.670759), N = 172 moving right + --- 1.62068 (0.724067), N = 103 moving right + --- 1.75617 (0.727205), N = 94 moving right + --- 2.52582 (0.677884), N = 44 moving right + + -- best stat: 0.727205, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 384 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 1 3 9 4 + + + -- linear combo weights (showing up to 5) + + 0.0119 0.2362 5.0621 0.8769 0.4217 + + + -- cutpoint (score) + --- -0.810574 (0.516746), N = 269 moving right + --- -0.192705 (0.619234), N = 186 moving right + --- 0.103686 (0.660957), N = 136 moving right + --- 0.600902 (0.702319), N = 62 moving right + --- 4.77642 (0.573303), N = 16 moving right + + -- best stat: 0.702319, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 7 5 14 1 + + + -- linear combo weights (showing up to 5) + + -0.0937 8.8861 0.5768 0.3155 0.2604 + + + -- cutpoint (score) + --- -0.0175916 (0.619093), N = 173 moving right + --- 0.217693 (0.674865), N = 101 moving right + --- 0.339369 (0.666532), N = 81 moving right + --- 0.57075 (0.649384), N = 48 moving right + --- 9.23752 (0.5759), N = 15 moving right + + -- best stat: 0.674865, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 15 14 1 16 + + + -- linear combo weights (showing up to 5) + + 0.7185 -0.1969 0.1078 0.1730 0.3787 + + + -- cutpoint (score) + --- -0.725057 (0.604339), N = 211 moving right + --- -0.687776 (0.618127), N = 205 moving right + --- -0.271295 (0.719205), N = 149 moving right + --- 0.813272 (0.654215), N = 54 moving right + --- 1.22601 (0.594215), N = 32 moving right + + -- best stat: 0.719205, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 385 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 5 1 14 11 + + + -- linear combo weights (showing up to 5) + + 1.2691 0.7610 0.4500 -0.1962 0.7005 + + + -- cutpoint (score) + --- -1.02901 (0.622838), N = 210 moving right + --- -0.227935 (0.764129), N = 119 moving right + --- 0.14624 (0.769567), N = 103 moving right + --- 1.08478 (0.740322), N = 70 moving right + --- 5.62312 (0.547405), N = 10 moving right + + -- best stat: 0.769567, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 10 11 13 4 + + + -- linear combo weights (showing up to 5) + + -0.1942 -0.7296 0.9927 0.1551 0.2436 + + + -- cutpoint (score) + --- -1.60188 (0.544088), N = 248 moving right + --- -1.55369 (0.548749), N = 245 moving right + --- -0.66688 (0.686177), N = 179 moving right + --- -0.270557 (0.719642), N = 148 moving right + --- -0.182098 (0.720986), N = 138 moving right + + -- best stat: 0.720986, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 11 17 5 15 + + + -- linear combo weights (showing up to 5) + + -0.0791 1.0322 0.2876 1.2139 -0.1978 + + + -- cutpoint (score) + --- 0.0729281 (0.608331), N = 221 moving right + --- 0.329215 (0.657373), N = 186 moving right + --- 0.420172 (0.684288), N = 164 moving right + --- 0.525255 (0.704211), N = 147 moving right + --- 0.904324 (0.741035), N = 112 moving right + + -- best stat: 0.741035, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.3100e+02 9.6739e-01 3.3010e-02 + 1.4000e+02 9.5290e-01 4.7991e-02 + + +------------ Growing tree 386 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 207 +- max leaves: 104 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 11 13 1 10 + + + -- linear combo weights (showing up to 5) + + -0.1134 0.7249 0.2230 0.4536 -0.8186 + + + -- cutpoint (score) + --- -0.707612 (0.667732), N = 186 moving right + --- -0.676263 (0.660703), N = 176 moving right + --- -0.595719 (0.672245), N = 166 moving right + --- 1.32274 (0.668367), N = 47 moving right + --- 1.47058 (0.665556), N = 33 moving right + + -- best stat: 0.672245, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 5 11 8 6 + + + -- linear combo weights (showing up to 5) + + -0.0906 0.9284 0.3421 1.7448 0.1588 + + + -- cutpoint (score) + --- -1.41153 (0.540862), N = 254 moving right + --- -1.40546 (0.550363), N = 249 moving right + --- -0.503183 (0.73288), N = 126 moving right + --- 0.180971 (0.718549), N = 73 moving right + --- 2.12301 (0.622698), N = 25 moving right + + -- best stat: 0.73288, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 0 9 13 16 + + + -- linear combo weights (showing up to 5) + + 1.3258 0.0511 0.0186 0.4376 0.7755 + + + -- cutpoint (score) + --- -0.337383 (0.643061), N = 179 moving right + --- -0.0426082 (0.667823), N = 148 moving right + --- 0.239537 (0.67737), N = 121 moving right + --- 0.505883 (0.661927), N = 95 moving right + --- 1.94843 (0.613469), N = 19 moving right + + -- best stat: 0.67737, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 1.1000e+02 9.7464e-01 2.5522e-02 + 1.3100e+02 9.7101e-01 2.9239e-02 + 1.7900e+02 9.6014e-01 4.0433e-02 + 1.9100e+02 9.5290e-01 4.7980e-02 + + +------------ Growing tree 387 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 17 1 0 8 + + + -- linear combo weights (showing up to 5) + + -0.2699 0.3704 0.4159 -0.0625 2.0475 + + + -- cutpoint (score) + --- -0.962639 (0.522257), N = 256 moving right + --- -0.414355 (0.617426), N = 204 moving right + --- 0.342214 (0.735979), N = 138 moving right + --- 1.3695 (0.758404), N = 78 moving right + --- 5.23487 (0.564831), N = 10 moving right + + -- best stat: 0.758404, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 8 17 1 2 + + + -- linear combo weights (showing up to 5) + + 0.0402 2.0441 0.4804 0.3789 -0.9725 + + + -- cutpoint (score) + --- -1.07255 (0.596254), N = 227 moving right + --- -0.875195 (0.627678), N = 203 moving right + --- -0.325926 (0.721886), N = 144 moving right + --- 1.41284 (0.685764), N = 47 moving right + --- 6.30497 (0.546958), N = 7 moving right + + -- best stat: 0.721886, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 12 16 0 10 + + + -- linear combo weights (showing up to 5) + + 0.3971 0.1198 0.6678 -0.0706 -0.4926 + + + -- cutpoint (score) + --- -1.42825 (0.505804), N = 265 moving right + --- -1.04971 (0.537249), N = 242 moving right + --- -0.161934 (0.682507), N = 114 moving right + --- -0.0260749 (0.671295), N = 104 moving right + --- 1.34741 (0.59805), N = 24 moving right + + -- best stat: 0.682507, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.9800e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 388 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 1 2 16 0 + + + -- linear combo weights (showing up to 5) + + 1.3174 0.2607 -2.1192 0.3539 0.2695 + + + -- cutpoint (score) + --- -2.14582 (0.622636), N = 194 moving right + --- -1.84842 (0.665786), N = 141 moving right + --- -1.35304 (0.674231), N = 109 moving right + --- -0.506627 (0.692066), N = 63 moving right + --- -0.307372 (0.671072), N = 56 moving right + + -- best stat: 0.692066, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 12 15 5 + + + -- linear combo weights (showing up to 5) + + 0.3048 1.4835 -0.0761 0.0116 0.5426 + + + -- cutpoint (score) + --- -0.455013 (0.551831), N = 251 moving right + --- -0.355804 (0.570376), N = 240 moving right + --- 0.323121 (0.701994), N = 163 moving right + --- 0.38106 (0.698491), N = 157 moving right + --- 0.635242 (0.696858), N = 135 moving right + + -- best stat: 0.701994, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 15 13 9 12 + + + -- linear combo weights (showing up to 5) + + 2.2389 -0.1593 0.0644 -0.4217 0.1566 + + + -- cutpoint (score) + --- -1.32464 (0.599321), N = 228 moving right + --- -1.19806 (0.61952), N = 204 moving right + --- -0.97076 (0.688435), N = 159 moving right + --- -0.939128 (0.709451), N = 147 moving right + --- -0.381221 (0.734764), N = 95 moving right + + -- best stat: 0.734764, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7464e-01 2.5588e-02 + 1.4000e+02 9.6377e-01 3.6741e-02 + + +------------ Growing tree 389 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 3 8 4 6 + + + -- linear combo weights (showing up to 5) + + 0.4372 4.0514 1.3069 0.2456 0.0100 + + + -- cutpoint (score) + --- -1.21122 (0.517058), N = 267 moving right + --- -0.812621 (0.669795), N = 192 moving right + --- -0.762086 (0.680526), N = 177 moving right + --- -0.712232 (0.699969), N = 164 moving right + --- -0.573649 (0.719893), N = 143 moving right + + -- best stat: 0.719893, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 2 0 11 3 + + + -- linear combo weights (showing up to 5) + + 0.6789 0.1984 0.1131 0.8908 5.0920 + + + -- cutpoint (score) + --- -0.180733 (0.668891), N = 187 moving right + --- 0.162388 (0.725086), N = 118 moving right + --- 1.05318 (0.7117), N = 62 moving right + --- 1.98163 (0.633851), N = 36 moving right + --- 3.33926 (0.613716), N = 24 moving right + + -- best stat: 0.725086, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 17 10 13 14 + + + -- linear combo weights (showing up to 5) + + 8.4198 0.5507 -0.4579 0.4061 0.2312 + + + -- cutpoint (score) + --- 0.750389 (0.592984), N = 226 moving right + --- 1.02489 (0.62587), N = 208 moving right + --- 2.0029 (0.655487), N = 85 moving right + --- 2.78736 (0.661141), N = 37 moving right + --- 2.88716 (0.658968), N = 34 moving right + + -- best stat: 0.661141, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 390 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 2 8 15 1 + + + -- linear combo weights (showing up to 5) + + 0.4440 -0.2877 1.5576 -0.2966 0.4133 + + + -- cutpoint (score) + --- -1.53126 (0.542311), N = 247 moving right + --- -0.519342 (0.733431), N = 152 moving right + --- -0.275332 (0.753005), N = 130 moving right + --- -0.152783 (0.766062), N = 121 moving right + --- 0.349857 (0.794887), N = 79 moving right + + -- best stat: 0.794887, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 5 1 6 13 + + + -- linear combo weights (showing up to 5) + + 19.4542 0.7214 0.4640 1.2393 0.4786 + + + -- cutpoint (score) + --- 0.18978 (0.696429), N = 143 moving right + --- 0.413345 (0.734934), N = 114 moving right + --- 0.530318 (0.731069), N = 101 moving right + --- 0.822825 (0.703669), N = 72 moving right + --- 1.13063 (0.69475), N = 62 moving right + + -- best stat: 0.734934, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 10 17 14 1 + + + -- linear combo weights (showing up to 5) + + -0.0735 -0.8155 0.4867 0.2360 0.2691 + + + -- cutpoint (score) + --- 0.594005 (0.622853), N = 209 moving right + --- 1.25694 (0.715105), N = 142 moving right + --- 1.2654 (0.719926), N = 140 moving right + --- 1.38519 (0.738193), N = 129 moving right + --- 1.46819 (0.734934), N = 123 moving right + + -- best stat: 0.738193, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.1000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 391 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 15 12 7 14 + + + -- linear combo weights (showing up to 5) + + 0.2782 -0.2320 0.2552 4.9305 0.4332 + + + -- cutpoint (score) + --- -0.413628 (0.610568), N = 216 moving right + --- -0.379937 (0.624064), N = 209 moving right + --- -0.362236 (0.621787), N = 199 moving right + --- 0.433849 (0.669415), N = 72 moving right + --- 5.12299 (0.537805), N = 6 moving right + + -- best stat: 0.669415, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 10 14 16 17 + + + -- linear combo weights (showing up to 5) + + 4.2783 -0.6489 0.4883 0.3243 0.4352 + + + -- cutpoint (score) + --- 0.0448951 (0.564667), N = 237 moving right + --- 0.500774 (0.614112), N = 206 moving right + --- 0.544569 (0.623862), N = 201 moving right + --- 1.15552 (0.709423), N = 145 moving right + --- 1.26774 (0.701913), N = 131 moving right + + -- best stat: 0.709423, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 14 12 13 4 + + + -- linear combo weights (showing up to 5) + + 9.2520 0.1201 0.1774 0.3091 0.6644 + + + -- cutpoint (score) + --- -0.198352 (0.612992), N = 212 moving right + --- -0.176133 (0.608292), N = 209 moving right + --- 0.477723 (0.709331), N = 122 moving right + --- 0.515585 (0.713407), N = 114 moving right + --- 1.73421 (0.590298), N = 24 moving right + + -- best stat: 0.713407, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.7826e-01 2.1845e-02 + 1.1000e+02 9.7101e-01 2.9252e-02 + 1.3100e+02 9.6739e-01 3.2984e-02 + 1.4000e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 392 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 17 12 16 9 + + + -- linear combo weights (showing up to 5) + + -0.6192 0.3631 0.0430 0.8958 0.2803 + + + -- cutpoint (score) + --- -0.401829 (0.553116), N = 247 moving right + --- -0.381071 (0.558601), N = 245 moving right + --- 0.520647 (0.700786), N = 164 moving right + --- 0.526045 (0.696532), N = 161 moving right + --- 3.09335 (0.642831), N = 36 moving right + + -- best stat: 0.700786, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 10 8 7 11 + + + -- linear combo weights (showing up to 5) + + 0.7943 -0.5034 1.2957 5.0736 0.2536 + + + -- cutpoint (score) + --- -1.33474 (0.564771), N = 243 moving right + --- -1.08599 (0.602763), N = 225 moving right + --- -0.898957 (0.647328), N = 202 moving right + --- -0.294508 (0.733958), N = 138 moving right + --- 0.676825 (0.729603), N = 74 moving right + + -- best stat: 0.733958, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 0 14 13 3 + + + -- linear combo weights (showing up to 5) + + -0.4922 0.0240 0.2973 0.7277 7.3039 + + + -- cutpoint (score) + --- -1.64533 (0.517362), N = 266 moving right + --- -0.498789 (0.649889), N = 196 moving right + --- -0.176341 (0.673583), N = 155 moving right + --- -0.0971856 (0.697399), N = 142 moving right + --- 0.195595 (0.724521), N = 105 moving right + + -- best stat: 0.724521, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 393 -------------- + +- N obs inbag: 276 +- N row inbag: 164 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 16 1 7 9 + + + -- linear combo weights (showing up to 5) + + 4.2379 0.1147 0.3075 4.6657 0.6408 + + + -- cutpoint (score) + --- -0.364286 (0.597514), N = 204 moving right + --- -0.108259 (0.675283), N = 147 moving right + --- 0.021502 (0.707097), N = 117 moving right + --- 0.103639 (0.708335), N = 102 moving right + --- 0.712562 (0.660918), N = 48 moving right + + -- best stat: 0.708335, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 5 11 15 0 + + + -- linear combo weights (showing up to 5) + + 1.0280 0.6894 0.6510 -0.0383 -0.0841 + + + -- cutpoint (score) + --- -0.58014 (0.559171), N = 242 moving right + --- -0.51223 (0.581979), N = 230 moving right + --- -0.477635 (0.598527), N = 222 moving right + --- -0.2663 (0.618836), N = 171 moving right + --- 1.1161 (0.609695), N = 38 moving right + + -- best stat: 0.618836, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 3 15 13 + + + -- linear combo weights (showing up to 5) + + 0.5130 0.2174 5.4541 0.1647 0.2511 + + + -- cutpoint (score) + --- 0.745919 (0.548791), N = 249 moving right + --- 1.06893 (0.594452), N = 222 moving right + --- 1.21316 (0.636894), N = 196 moving right + --- 1.27898 (0.647273), N = 182 moving right + --- 1.8817 (0.692057), N = 88 moving right + + -- best stat: 0.692057, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 1.1000e+02 9.8913e-01 1.0870e-02 + 1.3100e+02 9.8551e-01 1.4533e-02 + 1.7900e+02 9.7826e-01 2.1886e-02 + 1.8600e+02 9.7101e-01 2.9293e-02 + 1.9800e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 394 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 5 14 4 17 + + + -- linear combo weights (showing up to 5) + + -0.0625 1.1061 0.3257 0.7852 0.3055 + + + -- cutpoint (score) + --- 0.52622 (0.592229), N = 232 moving right + --- 2.27656 (0.613876), N = 62 moving right + --- 2.76794 (0.61113), N = 47 moving right + --- 2.79902 (0.613989), N = 46 moving right + --- 3.4077 (0.52727), N = 8 moving right + + -- best stat: 0.613989, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 16 14 10 4 + + + -- linear combo weights (showing up to 5) + + -0.0547 0.2656 0.4484 -0.5793 0.9059 + + + -- cutpoint (score) + --- -1.0386 (0.511585), N = 265 moving right + --- -0.0297867 (0.650549), N = 180 moving right + --- 0.32664 (0.67009), N = 153 moving right + --- 0.508425 (0.678026), N = 132 moving right + --- 1.77246 (0.616527), N = 34 moving right + + -- best stat: 0.678026, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 10 14 12 15 + + + -- linear combo weights (showing up to 5) + + 1.0146 -0.6192 0.4490 -0.0827 -0.0581 + + + -- cutpoint (score) + --- 0.673308 (0.654141), N = 122 moving right + --- 1.12066 (0.676766), N = 75 moving right + --- 1.33135 (0.654179), N = 59 moving right + --- 1.42182 (0.657056), N = 56 moving right + --- 2.09209 (0.594373), N = 23 moving right + + -- best stat: 0.676766, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.8600e+02 9.7826e-01 2.1899e-02 + 1.9100e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 395 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 6 2 13 4 + + + -- linear combo weights (showing up to 5) + + -0.4904 1.8479 -1.1817 0.3531 0.8807 + + + -- cutpoint (score) + --- -2.17482 (0.515318), N = 267 moving right + --- -1.55058 (0.584573), N = 228 moving right + --- -1.44683 (0.599002), N = 216 moving right + --- -1.14369 (0.651685), N = 186 moving right + --- -0.67903 (0.674561), N = 145 moving right + + -- best stat: 0.674561, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 16 0 15 11 + + + -- linear combo weights (showing up to 5) + + 4.7794 0.5284 -0.0478 -0.2237 0.5623 + + + -- cutpoint (score) + --- -0.463183 (0.644471), N = 184 moving right + --- 0.927124 (0.655768), N = 48 moving right + --- 1.43892 (0.622646), N = 31 moving right + --- 5.41483 (0.550845), N = 12 moving right + --- 6.13951 (0.522027), N = 5 moving right + + -- best stat: 0.655768, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 7 5 8 6 + + + -- linear combo weights (showing up to 5) + + 4.5660 2.5809 0.0925 1.8122 1.7855 + + + -- cutpoint (score) + --- -0.919145 (0.664114), N = 193 moving right + --- 0.630635 (0.706511), N = 75 moving right + --- 1.08953 (0.705743), N = 58 moving right + --- 3.16442 (0.628708), N = 30 moving right + --- 6.38521 (0.581582), N = 13 moving right + + -- best stat: 0.706511, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8188e-01 1.8208e-02 + 1.3100e+02 9.7826e-01 2.1898e-02 + 1.8600e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 396 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 1 8 5 10 + + + -- linear combo weights (showing up to 5) + + -0.0621 0.2660 2.2832 0.9448 -0.4287 + + + -- cutpoint (score) + --- -2.10624 (0.507439), N = 271 moving right + --- -1.32352 (0.65578), N = 201 moving right + --- -1.13024 (0.709803), N = 172 moving right + --- -0.943829 (0.727131), N = 163 moving right + --- -0.00819883 (0.759922), N = 98 moving right + + -- best stat: 0.759922, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 11 12 2 0 + + + -- linear combo weights (showing up to 5) + + 0.2787 1.2421 -0.0266 -0.2678 0.1092 + + + -- cutpoint (score) + --- -1.03743 (0.621709), N = 201 moving right + --- -0.801714 (0.666537), N = 161 moving right + --- -0.680769 (0.694405), N = 147 moving right + --- 0.111822 (0.662264), N = 82 moving right + --- 0.24932 (0.654348), N = 73 moving right + + -- best stat: 0.694405, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 3 2 10 17 + + + -- linear combo weights (showing up to 5) + + -0.0075 7.6699 -1.1823 -0.5049 0.4415 + + + -- cutpoint (score) + --- -0.133415 (0.647994), N = 195 moving right + --- 0.453405 (0.684971), N = 114 moving right + --- 0.632608 (0.658924), N = 84 moving right + --- 1.20547 (0.640382), N = 39 moving right + --- 8.62093 (0.524658), N = 5 moving right + + -- best stat: 0.684971, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8188e-01 1.8208e-02 + 1.8600e+02 9.7464e-01 2.5589e-02 + 3.0400e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 397 -------------- + +- N obs inbag: 276 +- N row inbag: 183 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 2 10 14 5 + + + -- linear combo weights (showing up to 5) + + 0.1520 -0.8176 -0.6296 0.2351 1.0640 + + + -- cutpoint (score) + --- -1.76716 (0.513757), N = 259 moving right + --- -1.64733 (0.526333), N = 254 moving right + --- -1.45613 (0.541652), N = 246 moving right + --- -0.124692 (0.642125), N = 99 moving right + --- 0.294306 (0.639743), N = 57 moving right + + -- best stat: 0.642125, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 12 17 0 10 + + + -- linear combo weights (showing up to 5) + + 0.0397 0.0914 0.6174 0.0332 -0.5917 + + + -- cutpoint (score) + --- 1.16328 (0.579303), N = 220 moving right + --- 1.46674 (0.630845), N = 175 moving right + --- 2.08741 (0.682177), N = 102 moving right + --- 2.34761 (0.660474), N = 87 moving right + --- 2.88593 (0.636923), N = 37 moving right + + -- best stat: 0.682177, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 4 10 14 0 + + + -- linear combo weights (showing up to 5) + + 0.2304 0.9299 -0.5489 0.2895 0.0480 + + + -- cutpoint (score) + --- -1.07519 (0.507793), N = 268 moving right + --- 0.652331 (0.68372), N = 117 moving right + --- 0.952982 (0.69138), N = 86 moving right + --- 1.01506 (0.689646), N = 83 moving right + --- 1.17531 (0.671754), N = 64 moving right + + -- best stat: 0.69138, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 398 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 8 10 15 17 + + + -- linear combo weights (showing up to 5) + + 0.0233 2.3852 -0.6557 -0.1819 0.2842 + + + -- cutpoint (score) + --- -1.16224 (0.57504), N = 225 moving right + --- -1.11789 (0.582481), N = 220 moving right + --- 0.475612 (0.733998), N = 94 moving right + --- 1.21453 (0.737131), N = 63 moving right + --- 7.97011 (0.559158), N = 9 moving right + + -- best stat: 0.737131, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 6 12 14 10 + + + -- linear combo weights (showing up to 5) + + 0.8846 -1.1338 0.1902 0.4298 -0.9513 + + + -- cutpoint (score) + --- -1.81573 (0.534333), N = 258 moving right + --- -0.743136 (0.618641), N = 201 moving right + --- 0.0285632 (0.672099), N = 115 moving right + --- 0.0301587 (0.673861), N = 114 moving right + --- 2.21482 (0.611092), N = 17 moving right + + -- best stat: 0.673861, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 3 8 14 12 + + + -- linear combo weights (showing up to 5) + + 0.0606 6.3767 2.1725 -0.0602 0.1855 + + + -- cutpoint (score) + --- -1.04381 (0.68376), N = 153 moving right + --- -0.0832821 (0.724055), N = 80 moving right + --- 1.11661 (0.686806), N = 48 moving right + --- 5.8935 (0.613093), N = 19 moving right + --- 11.8187 (0.537596), N = 5 moving right + + -- best stat: 0.724055, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.7826e-01 2.1845e-02 + 7.1000e+01 9.7464e-01 2.5549e-02 + 1.1000e+02 9.7101e-01 2.9266e-02 + 1.3100e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 399 -------------- + +- N obs inbag: 276 +- N row inbag: 185 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 13 17 10 9 + + + -- linear combo weights (showing up to 5) + + -0.0266 0.2891 0.3179 -0.7292 0.3553 + + + -- cutpoint (score) + --- -0.39264 (0.569665), N = 239 moving right + --- 1.02754 (0.707172), N = 114 moving right + --- 1.26237 (0.695726), N = 81 moving right + --- 1.77643 (0.687752), N = 56 moving right + --- 2.27808 (0.594765), N = 22 moving right + + -- best stat: 0.707172, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 10 13 11 5 + + + -- linear combo weights (showing up to 5) + + 0.0243 -0.6687 0.2990 0.7492 0.6639 + + + -- cutpoint (score) + --- -1.24033 (0.554767), N = 242 moving right + --- -0.77424 (0.628055), N = 204 moving right + --- -0.137901 (0.733066), N = 145 moving right + --- 0.70965 (0.707901), N = 76 moving right + --- 1.88175 (0.578796), N = 17 moving right + + -- best stat: 0.733066, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 14 8 5 11 + + + -- linear combo weights (showing up to 5) + + -0.5168 0.0673 1.7945 0.5279 0.3155 + + + -- cutpoint (score) + --- -1.34305 (0.62186), N = 210 moving right + --- -1.31566 (0.626768), N = 208 moving right + --- -0.135131 (0.73581), N = 97 moving right + --- 0.653501 (0.759153), N = 63 moving right + --- 1.67739 (0.666059), N = 37 moving right + + -- best stat: 0.759153, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 3.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.9100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 400 -------------- + +- N obs inbag: 276 +- N row inbag: 163 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 2 12 11 4 + + + -- linear combo weights (showing up to 5) + + 18.0276 0.5206 0.1129 0.8617 0.1912 + + + -- cutpoint (score) + --- -0.182156 (0.566927), N = 246 moving right + --- -0.169644 (0.567463), N = 242 moving right + --- -0.0219213 (0.617061), N = 203 moving right + --- 0.610916 (0.715964), N = 102 moving right + --- 18.8737 (0.566342), N = 11 moving right + + -- best stat: 0.715964, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 12 10 1 15 + + + -- linear combo weights (showing up to 5) + + 0.0273 0.1871 -0.9569 0.4849 -0.0608 + + + -- cutpoint (score) + --- -0.221141 (0.683207), N = 139 moving right + --- -0.200502 (0.681379), N = 136 moving right + --- 0.00189334 (0.680575), N = 117 moving right + --- 1.65592 (0.624299), N = 28 moving right + --- 1.77494 (0.617841), N = 26 moving right + + -- best stat: 0.683207, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 1 15 9 13 + + + -- linear combo weights (showing up to 5) + + 0.3936 0.6653 -0.0532 0.4960 0.1115 + + + -- cutpoint (score) + --- -0.713179 (0.599732), N = 218 moving right + --- -0.179884 (0.648111), N = 153 moving right + --- -0.0761885 (0.677529), N = 134 moving right + --- 0.0763153 (0.691275), N = 116 moving right + --- 1.04478 (0.609627), N = 35 moving right + + -- best stat: 0.691275, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 401 -------------- + +- N obs inbag: 276 +- N row inbag: 164 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 14 12 0 1 + + + -- linear combo weights (showing up to 5) + + 2.6140 -0.1947 0.0436 -0.0527 0.6115 + + + -- cutpoint (score) + --- -1.52047 (0.594857), N = 217 moving right + --- -1.41857 (0.619254), N = 202 moving right + --- -1.36228 (0.638422), N = 189 moving right + --- -0.894893 (0.721332), N = 135 moving right + --- 0.479361 (0.728121), N = 56 moving right + + -- best stat: 0.728121, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 14 13 17 12 + + + -- linear combo weights (showing up to 5) + + -0.2892 0.3223 0.3027 0.8747 0.1462 + + + -- cutpoint (score) + --- 1.39835 (0.556233), N = 247 moving right + --- 2.03402 (0.597735), N = 204 moving right + --- 2.72711 (0.680213), N = 145 moving right + --- 2.84828 (0.693911), N = 134 moving right + --- 4.21025 (0.561295), N = 11 moving right + + -- best stat: 0.693911, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 16 7 3 9 + + + -- linear combo weights (showing up to 5) + + 0.6432 0.2176 3.1317 8.9218 0.4052 + + + -- cutpoint (score) + --- -0.405146 (0.522359), N = 259 moving right + --- -0.311065 (0.56211), N = 239 moving right + --- -0.00538431 (0.68386), N = 131 moving right + --- 0.329566 (0.720756), N = 94 moving right + --- 1.02795 (0.653224), N = 36 moving right + + -- best stat: 0.720756, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 5.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8188e-01 1.8208e-02 + 1.1000e+02 9.7826e-01 2.1898e-02 + 1.3100e+02 9.6014e-01 4.0417e-02 + + +------------ Growing tree 402 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 15 5 0 2 + + + -- linear combo weights (showing up to 5) + + 0.5478 -0.0114 1.2453 -0.1915 -0.7231 + + + -- cutpoint (score) + --- -0.986071 (0.610236), N = 189 moving right + --- -0.500046 (0.648674), N = 137 moving right + --- 0.435455 (0.64534), N = 60 moving right + --- 0.477383 (0.638863), N = 53 moving right + --- 0.626348 (0.641009), N = 43 moving right + + -- best stat: 0.648674, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 7 9 3 15 + + + -- linear combo weights (showing up to 5) + + 0.9868 3.8531 0.3832 4.8145 -0.0692 + + + -- cutpoint (score) + --- -1.08213 (0.531559), N = 261 moving right + --- -0.955601 (0.578294), N = 236 moving right + --- -0.739103 (0.636832), N = 207 moving right + --- -0.193735 (0.72007), N = 132 moving right + --- -0.0572459 (0.708994), N = 116 moving right + + -- best stat: 0.72007, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 2 9 5 0 + + + -- linear combo weights (showing up to 5) + + 1.1291 0.1181 0.3163 0.8067 -0.0677 + + + -- cutpoint (score) + --- -0.696324 (0.627903), N = 207 moving right + --- -0.627501 (0.64032), N = 201 moving right + --- -0.588539 (0.648693), N = 197 moving right + --- 1.37885 (0.653982), N = 50 moving right + --- 2.25066 (0.578064), N = 23 moving right + + -- best stat: 0.653982, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.8600e+02 9.8188e-01 1.8235e-02 + 1.9800e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 403 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 11 5 16 17 + + + -- linear combo weights (showing up to 5) + + 0.3933 0.7320 0.6460 0.2646 0.3077 + + + -- cutpoint (score) + --- -0.163508 (0.5486), N = 252 moving right + --- 0.975648 (0.726067), N = 129 moving right + --- 2.04449 (0.695456), N = 55 moving right + --- 2.72358 (0.609728), N = 28 moving right + --- 3.18637 (0.550899), N = 14 moving right + + -- best stat: 0.726067, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 17 16 11 6 + + + -- linear combo weights (showing up to 5) + + 0.2897 0.4484 0.3254 0.7433 0.3747 + + + -- cutpoint (score) + --- 0.547002 (0.630015), N = 210 moving right + --- 1.49829 (0.7453), N = 119 moving right + --- 1.72927 (0.734582), N = 94 moving right + --- 2.15956 (0.695306), N = 64 moving right + --- 2.66094 (0.627209), N = 37 moving right + + -- best stat: 0.7453, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 10 17 4 1 + + + -- linear combo weights (showing up to 5) + + -0.1424 -0.5707 0.2648 0.6329 0.3223 + + + -- cutpoint (score) + --- -0.373967 (0.518932), N = 264 moving right + --- 1.21502 (0.715179), N = 128 moving right + --- 1.31305 (0.722714), N = 117 moving right + --- 2.06977 (0.651415), N = 57 moving right + --- 2.47414 (0.597163), N = 33 moving right + + -- best stat: 0.722714, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 404 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 4 10 13 5 + + + -- linear combo weights (showing up to 5) + + 0.2175 0.4177 -0.7303 0.6786 0.2271 + + + -- cutpoint (score) + --- -1.1515 (0.558187), N = 248 moving right + --- -0.579632 (0.574234), N = 220 moving right + --- -0.515395 (0.588193), N = 214 moving right + --- 0.322762 (0.661165), N = 128 moving right + --- 0.867808 (0.687258), N = 82 moving right + + -- best stat: 0.687258, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 12 17 9 15 + + + -- linear combo weights (showing up to 5) + + 0.3533 -0.0090 0.6558 0.4804 -0.1435 + + + -- cutpoint (score) + --- 1.33192 (0.59252), N = 217 moving right + --- 1.58895 (0.632529), N = 188 moving right + --- 2.14128 (0.70374), N = 120 moving right + --- 2.6325 (0.652011), N = 75 moving right + --- 2.77486 (0.636334), N = 61 moving right + + -- best stat: 0.70374, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 7 10 5 3 + + + -- linear combo weights (showing up to 5) + + 0.1565 6.3974 -0.4509 0.0599 3.5654 + + + -- cutpoint (score) + --- -0.260908 (0.568015), N = 201 moving right + --- -0.0799019 (0.625875), N = 155 moving right + --- 0.0251218 (0.639378), N = 134 moving right + --- 0.0593958 (0.654425), N = 125 moving right + --- 0.0804411 (0.652403), N = 111 moving right + + -- best stat: 0.654425, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8188e-01 1.8196e-02 + 1.3100e+02 9.7464e-01 2.5576e-02 + 1.4000e+02 9.7101e-01 2.9293e-02 + 1.9800e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 405 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 13 8 16 4 + + + -- linear combo weights (showing up to 5) + + 0.3571 -0.0146 1.8871 0.5925 0.3931 + + + -- cutpoint (score) + --- -1.68916 (0.516813), N = 254 moving right + --- -1.5724 (0.531903), N = 247 moving right + --- -1.34657 (0.564956), N = 222 moving right + --- -0.0642883 (0.749043), N = 106 moving right + --- 6.1341 (0.564439), N = 12 moving right + + -- best stat: 0.749043, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 16 10 9 6 + + + -- linear combo weights (showing up to 5) + + -0.1740 1.0817 -0.4904 0.3396 -0.2425 + + + -- cutpoint (score) + --- -1.32189 (0.552375), N = 235 moving right + --- -1.22377 (0.562792), N = 229 moving right + --- 0.0571625 (0.691383), N = 103 moving right + --- 0.351674 (0.699923), N = 74 moving right + --- 1.10115 (0.661126), N = 43 moving right + + -- best stat: 0.699923, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 1 9 0 3 + + + -- linear combo weights (showing up to 5) + + 0.4706 0.3634 0.2790 -0.0762 6.0085 + + + -- cutpoint (score) + --- 1.12509 (0.646304), N = 194 moving right + --- 1.18547 (0.644408), N = 184 moving right + --- 1.63878 (0.681559), N = 116 moving right + --- 1.72951 (0.692819), N = 106 moving right + --- 7.56815 (0.589927), N = 19 moving right + + -- best stat: 0.692819, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 406 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 6 12 8 13 + + + -- linear combo weights (showing up to 5) + + -0.1014 0.2227 -0.0811 1.1831 0.3527 + + + -- cutpoint (score) + --- -1.11821 (0.517411), N = 261 moving right + --- -1.11368 (0.523855), N = 259 moving right + --- -1.0128 (0.539265), N = 248 moving right + --- -0.38044 (0.701729), N = 141 moving right + --- -0.0789256 (0.71828), N = 113 moving right + + -- best stat: 0.71828, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 6 16 10 15 + + + -- linear combo weights (showing up to 5) + + 0.0374 1.0861 0.7032 -0.8819 -0.2311 + + + -- cutpoint (score) + --- -1.22144 (0.543408), N = 240 moving right + --- 0.519859 (0.731148), N = 89 moving right + --- 0.739037 (0.723123), N = 77 moving right + --- 2.47999 (0.596302), N = 19 moving right + --- 2.67793 (0.557757), N = 11 moving right + + -- best stat: 0.731148, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 8 2 0 10 + + + -- linear combo weights (showing up to 5) + + 0.2725 1.1257 -0.2708 -0.0406 -0.7521 + + + -- cutpoint (score) + --- -1.40087 (0.572787), N = 230 moving right + --- -0.957339 (0.642311), N = 193 moving right + --- -0.74707 (0.674612), N = 176 moving right + --- 0.361922 (0.748699), N = 84 moving right + --- 4.65499 (0.548211), N = 10 moving right + + -- best stat: 0.748699, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 407 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 247 +- max leaves: 124 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 3 2 17 16 + + + -- linear combo weights (showing up to 5) + + 0.8608 3.8288 -0.5778 0.4836 0.1886 + + + -- cutpoint (score) + --- 1.21888 (0.663602), N = 120 moving right + --- 1.49943 (0.667828), N = 107 moving right + --- 2.04226 (0.672985), N = 54 moving right + --- 2.52855 (0.621826), N = 28 moving right + --- 6.22395 (0.529291), N = 7 moving right + + -- best stat: 0.672985, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 15 14 0 4 + + + -- linear combo weights (showing up to 5) + + 5.7182 -0.0628 0.3122 -0.0356 0.6736 + + + -- cutpoint (score) + --- -0.37821 (0.491397), N = 267 moving right + --- -0.264514 (0.538712), N = 245 moving right + --- -0.105828 (0.592954), N = 218 moving right + --- -0.0252365 (0.595067), N = 194 moving right + --- 0.0311956 (0.605363), N = 185 moving right + + -- best stat: 0.605363, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 11 12 4 7 + + + -- linear combo weights (showing up to 5) + + 0.2920 0.9275 -0.1017 0.5372 4.6585 + + + -- cutpoint (score) + --- -0.952979 (0.530471), N = 262 moving right + --- -0.135037 (0.675288), N = 154 moving right + --- -0.109627 (0.681816), N = 147 moving right + --- 0.160276 (0.706007), N = 120 moving right + --- 5.46749 (0.553538), N = 14 moving right + + -- best stat: 0.706007, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 408 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 1 14 12 7 + + + -- linear combo weights (showing up to 5) + + 1.1164 0.5301 0.5163 0.0048 7.5255 + + + -- cutpoint (score) + --- -0.444184 (0.590347), N = 221 moving right + --- 0.263043 (0.688158), N = 132 moving right + --- 0.98032 (0.681381), N = 54 moving right + --- 1.10814 (0.66757), N = 48 moving right + --- 2.04398 (0.604412), N = 21 moving right + + -- best stat: 0.688158, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 16 8 11 13 + + + -- linear combo weights (showing up to 5) + + 1.3078 0.2449 1.3624 1.1660 -0.0536 + + + -- cutpoint (score) + --- -1.37153 (0.641777), N = 204 moving right + --- -1.13267 (0.67643), N = 180 moving right + --- -1.04333 (0.685152), N = 177 moving right + --- 0.783923 (0.743124), N = 81 moving right + --- 5.3009 (0.602762), N = 18 moving right + + -- best stat: 0.743124, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 5 0 14 10 + + + -- linear combo weights (showing up to 5) + + 0.1117 1.6320 -0.3734 0.4611 -0.6774 + + + -- cutpoint (score) + --- -0.184927 (0.671656), N = 153 moving right + --- 0.132574 (0.703186), N = 107 moving right + --- 0.211639 (0.680556), N = 99 moving right + --- 0.469413 (0.684426), N = 89 moving right + --- 1.10354 (0.633997), N = 48 moving right + + -- best stat: 0.703186, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 2.0000e+00 + 3.8800e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7101e-01 2.9292e-02 + 1.4000e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 409 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 8 12 3 9 + + + -- linear combo weights (showing up to 5) + + 0.3041 1.4767 0.1098 5.6072 -0.1576 + + + -- cutpoint (score) + --- -1.22385 (0.525719), N = 264 moving right + --- -0.960898 (0.564721), N = 232 moving right + --- -0.708306 (0.665768), N = 183 moving right + --- -0.653801 (0.689616), N = 166 moving right + --- -0.365623 (0.77573), N = 113 moving right + + -- best stat: 0.77573, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 1 3 17 0 + + + -- linear combo weights (showing up to 5) + + 0.7681 0.3839 6.9514 0.4061 -0.0190 + + + -- cutpoint (score) + --- 0.689153 (0.659589), N = 190 moving right + --- 0.790398 (0.698128), N = 168 moving right + --- 1.0555 (0.705313), N = 141 moving right + --- 1.11158 (0.712779), N = 134 moving right + --- 1.58237 (0.698028), N = 88 moving right + + -- best stat: 0.712779, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 17 9 8 11 + + + -- linear combo weights (showing up to 5) + + 0.0192 0.3566 -0.3147 1.4009 0.8649 + + + -- cutpoint (score) + --- -0.674801 (0.53705), N = 261 moving right + --- 0.10088 (0.681686), N = 176 moving right + --- 1.43181 (0.727309), N = 71 moving right + --- 1.7184 (0.706561), N = 58 moving right + --- 5.21192 (0.592393), N = 17 moving right + + -- best stat: 0.727309, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 410 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 14 9 8 4 + + + -- linear combo weights (showing up to 5) + + 0.0191 0.0712 -0.0797 2.2884 0.3910 + + + -- cutpoint (score) + --- -1.08312 (0.641025), N = 191 moving right + --- -1.04948 (0.654493), N = 186 moving right + --- -0.962651 (0.68083), N = 166 moving right + --- -0.913277 (0.692856), N = 158 moving right + --- -0.670033 (0.722454), N = 124 moving right + + -- best stat: 0.722454, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 13 8 2 12 + + + -- linear combo weights (showing up to 5) + + 0.4726 -0.1710 2.4536 -0.1405 0.0445 + + + -- cutpoint (score) + --- -1.7871 (0.563723), N = 241 moving right + --- -0.85096 (0.75041), N = 122 moving right + --- -0.826996 (0.751808), N = 121 moving right + --- -0.625119 (0.774196), N = 95 moving right + --- -0.0674344 (0.756645), N = 61 moving right + + -- best stat: 0.774196, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 0 17 12 3 + + + -- linear combo weights (showing up to 5) + + -0.4960 -0.1501 0.3873 0.1377 4.5343 + + + -- cutpoint (score) + --- 0.671531 (0.611116), N = 185 moving right + --- 0.762763 (0.632638), N = 166 moving right + --- 0.931821 (0.673929), N = 146 moving right + --- 0.960607 (0.703395), N = 131 moving right + --- 1.26449 (0.676614), N = 87 moving right + + -- best stat: 0.703395, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7464e-01 2.5548e-02 + 1.8600e+02 9.7101e-01 2.9265e-02 + 1.9100e+02 9.6739e-01 3.2997e-02 + + +------------ Growing tree 411 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 9 12 1 14 + + + -- linear combo weights (showing up to 5) + + 4.1556 0.4186 0.1233 0.2643 0.1599 + + + -- cutpoint (score) + --- -0.257519 (0.613363), N = 201 moving right + --- -0.043522 (0.650006), N = 138 moving right + --- -0.0366828 (0.652593), N = 136 moving right + --- 0.0211938 (0.663655), N = 126 moving right + --- 1.35662 (0.61931), N = 32 moving right + + -- best stat: 0.663655, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 1 16 10 12 + + + -- linear combo weights (showing up to 5) + + -0.8114 0.1302 0.2292 -0.8076 0.1363 + + + -- cutpoint (score) + --- -2.28579 (0.506622), N = 265 moving right + --- -1.34537 (0.594753), N = 213 moving right + --- -1.09117 (0.607996), N = 196 moving right + --- -0.585862 (0.675818), N = 131 moving right + --- 0.0828405 (0.670122), N = 70 moving right + + -- best stat: 0.675818, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 3 1 14 0 + + + -- linear combo weights (showing up to 5) + + 6.0831 2.5013 0.3281 0.4004 -0.2171 + + + -- cutpoint (score) + --- -0.584498 (0.572532), N = 235 moving right + --- -0.562426 (0.570447), N = 230 moving right + --- -0.183344 (0.641994), N = 159 moving right + --- 0.0185172 (0.68047), N = 116 moving right + --- 0.173801 (0.68242), N = 95 moving right + + -- best stat: 0.68242, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 412 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 11 13 10 6 + + + -- linear combo weights (showing up to 5) + + 4.0330 0.6292 0.2019 -0.6374 2.0565 + + + -- cutpoint (score) + --- -0.912301 (0.593221), N = 227 moving right + --- -0.0928593 (0.712326), N = 151 moving right + --- 1.02857 (0.74369), N = 72 moving right + --- 1.22486 (0.742984), N = 64 moving right + --- 1.48795 (0.70751), N = 53 moving right + + -- best stat: 0.74369, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 5 0 6 2 + + + -- linear combo weights (showing up to 5) + + 7.8792 1.1724 -0.4489 -0.2523 -0.8832 + + + -- cutpoint (score) + --- -0.883152 (0.70093), N = 117 moving right + --- -0.448881 (0.711994), N = 106 moving right + --- -0.411933 (0.698501), N = 103 moving right + --- -0.252305 (0.692482), N = 102 moving right + --- 0 (0.707012), N = 56 moving right + + -- best stat: 0.711994, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 3 6 7 12 + + + -- linear combo weights (showing up to 5) + + 0.1733 6.9577 0.8168 3.5731 0.1469 + + + -- cutpoint (score) + --- -0.275796 (0.507888), N = 268 moving right + --- -0.226329 (0.547098), N = 245 moving right + --- -0.18613 (0.580663), N = 219 moving right + --- 0.0345807 (0.676063), N = 118 moving right + --- 0.114842 (0.686504), N = 88 moving right + + -- best stat: 0.686504, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7464e-01 2.5575e-02 + 1.3100e+02 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 413 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 7 8 15 13 + + + -- linear combo weights (showing up to 5) + + 0.5618 2.2372 1.7541 -0.2035 -0.0757 + + + -- cutpoint (score) + --- -1.36737 (0.574273), N = 227 moving right + --- -0.880635 (0.671343), N = 162 moving right + --- -0.773069 (0.69012), N = 146 moving right + --- -0.174968 (0.733105), N = 101 moving right + --- 5.33188 (0.565441), N = 9 moving right + + -- best stat: 0.733105, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 16 17 9 11 + + + -- linear combo weights (showing up to 5) + + 0.3255 0.8120 0.1924 0.3544 0.5862 + + + -- cutpoint (score) + --- -0.477591 (0.590462), N = 230 moving right + --- 0.557858 (0.713837), N = 119 moving right + --- 0.626816 (0.720595), N = 116 moving right + --- 2.09849 (0.611719), N = 29 moving right + --- 2.25962 (0.615291), N = 27 moving right + + -- best stat: 0.720595, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 1 16 9 5 + + + -- linear combo weights (showing up to 5) + + 0.5618 0.3578 0.9628 0.3394 0.9114 + + + -- cutpoint (score) + --- -1.07473 (0.56358), N = 242 moving right + --- -0.1608 (0.702032), N = 161 moving right + --- -0.0907058 (0.697861), N = 157 moving right + --- -0.028491 (0.705967), N = 150 moving right + --- 1.00287 (0.699636), N = 66 moving right + + -- best stat: 0.705967, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 414 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 251 +- max leaves: 126 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 14 2 1 12 + + + -- linear combo weights (showing up to 5) + + 0.6065 0.2962 -0.0512 0.2099 0.0515 + + + -- cutpoint (score) + --- 1.53572 (0.646755), N = 198 moving right + --- 1.73378 (0.649214), N = 166 moving right + --- 1.77601 (0.638858), N = 161 moving right + --- 2.52993 (0.606771), N = 38 moving right + --- 2.79162 (0.528513), N = 10 moving right + + -- best stat: 0.649214, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 2 8 6 9 + + + -- linear combo weights (showing up to 5) + + 0.4681 -0.1543 2.0462 0.7561 0.0082 + + + -- cutpoint (score) + --- -1.46278 (0.51149), N = 270 moving right + --- -1.33103 (0.548765), N = 249 moving right + --- -1.28443 (0.567863), N = 240 moving right + --- -0.681966 (0.698152), N = 148 moving right + --- -0.680518 (0.691408), N = 145 moving right + + -- best stat: 0.698152, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 5 0 15 16 + + + -- linear combo weights (showing up to 5) + + 3.8799 1.1767 0.1867 -0.0720 0.2866 + + + -- cutpoint (score) + --- -0.141643 (0.569708), N = 232 moving right + --- -0.0208182 (0.625235), N = 186 moving right + --- 0.0196542 (0.65054), N = 157 moving right + --- 0.360501 (0.685125), N = 105 moving right + --- 0.754991 (0.672002), N = 87 moving right + + -- best stat: 0.685125, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 415 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 4 12 14 15 + + + -- linear combo weights (showing up to 5) + + 0.3614 0.8552 0.0896 0.2366 -0.0843 + + + -- cutpoint (score) + --- -0.241291 (0.580745), N = 208 moving right + --- -0.234593 (0.591106), N = 202 moving right + --- 0.377706 (0.660522), N = 149 moving right + --- 0.401184 (0.644614), N = 146 moving right + --- 0.888273 (0.609446), N = 76 moving right + + -- best stat: 0.660522, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 12 6 7 0 + + + -- linear combo weights (showing up to 5) + + 0.7786 0.0943 1.4544 18.6756 -0.0144 + + + -- cutpoint (score) + --- -0.0688337 (0.529433), N = 254 moving right + --- -0.049971 (0.593018), N = 223 moving right + --- -0.00698373 (0.632836), N = 176 moving right + --- 0.104002 (0.642938), N = 164 moving right + --- 0.769586 (0.687028), N = 90 moving right + + -- best stat: 0.687028, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 3 4 2 8 + + + -- linear combo weights (showing up to 5) + + 1.0936 6.3054 0.1138 0.3230 1.5045 + + + -- cutpoint (score) + --- -0.66904 (0.512085), N = 270 moving right + --- 0.621991 (0.728876), N = 118 moving right + --- 1.40678 (0.73015), N = 70 moving right + --- 3.59765 (0.639586), N = 25 moving right + --- 8.50259 (0.557591), N = 10 moving right + + -- best stat: 0.73015, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 2.1600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 416 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 16 17 10 2 + + + -- linear combo weights (showing up to 5) + + 0.3259 0.8538 0.4483 -0.7797 -1.2248 + + + -- cutpoint (score) + --- -0.562202 (0.662461), N = 186 moving right + --- -0.373175 (0.686388), N = 169 moving right + --- -0.0683626 (0.723264), N = 150 moving right + --- 0.0289943 (0.724848), N = 145 moving right + --- 2.68155 (0.596869), N = 19 moving right + + -- best stat: 0.724848, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 11 9 8 13 + + + -- linear combo weights (showing up to 5) + + -0.0137 0.5097 -0.3166 1.7616 0.0718 + + + -- cutpoint (score) + --- -1.1863 (0.643912), N = 191 moving right + --- -1.16261 (0.644833), N = 190 moving right + --- -0.783925 (0.711936), N = 146 moving right + --- 0.178425 (0.695985), N = 83 moving right + --- 3.09569 (0.585154), N = 19 moving right + + -- best stat: 0.711936, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 1 16 6 5 + + + -- linear combo weights (showing up to 5) + + -0.7704 0.4804 0.9379 -0.7133 0.8850 + + + -- cutpoint (score) + --- -1.67643 (0.549641), N = 251 moving right + --- 0.402066 (0.726598), N = 99 moving right + --- 0.894322 (0.696721), N = 68 moving right + --- 1.16121 (0.710775), N = 62 moving right + --- 2.47431 (0.634445), N = 27 moving right + + -- best stat: 0.726598, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 417 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 7 3 9 13 + + + -- linear combo weights (showing up to 5) + + 0.5089 4.4760 3.8301 0.2940 0.0780 + + + -- cutpoint (score) + --- 1.095 (0.597766), N = 219 moving right + --- 1.44709 (0.678387), N = 165 moving right + --- 1.95347 (0.651396), N = 76 moving right + --- 2.00083 (0.63758), N = 62 moving right + --- 5.66805 (0.61092), N = 25 moving right + + -- best stat: 0.678387, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 14 17 7 8 + + + -- linear combo weights (showing up to 5) + + 0.4792 0.0575 0.3808 4.0378 1.6644 + + + -- cutpoint (score) + --- 0.104333 (0.63334), N = 211 moving right + --- 0.568848 (0.695264), N = 164 moving right + --- 0.877716 (0.7612), N = 129 moving right + --- 1.16439 (0.790858), N = 109 moving right + --- 1.21443 (0.784881), N = 102 moving right + + -- best stat: 0.790858, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 1 2 6 4 + + + -- linear combo weights (showing up to 5) + + 0.6170 0.3784 0.3983 2.1223 0.9489 + + + -- cutpoint (score) + --- 0.304665 (0.631789), N = 189 moving right + --- 0.92607 (0.712699), N = 139 moving right + --- 0.998489 (0.721634), N = 136 moving right + --- 1.36711 (0.726867), N = 95 moving right + --- 1.58531 (0.717291), N = 77 moving right + + -- best stat: 0.726867, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 5.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8913e-01 1.0909e-02 + 1.7900e+02 9.8551e-01 1.4572e-02 + 1.8600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 418 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 0 15 11 7 + + + -- linear combo weights (showing up to 5) + + -0.1634 -0.0404 0.0207 1.0213 5.0825 + + + -- cutpoint (score) + --- -0.416688 (0.683397), N = 158 moving right + --- -0.304915 (0.700462), N = 134 moving right + --- -0.0612952 (0.718332), N = 101 moving right + --- -0.0508038 (0.712161), N = 95 moving right + --- 0.884085 (0.665869), N = 47 moving right + + -- best stat: 0.718332, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 5 10 3 1 + + + -- linear combo weights (showing up to 5) + + -0.3707 0.5992 -0.4972 1.3782 0.2405 + + + -- cutpoint (score) + --- -0.819656 (0.568543), N = 225 moving right + --- -0.77264 (0.583216), N = 219 moving right + --- -0.460151 (0.640422), N = 170 moving right + --- -0.404373 (0.655698), N = 163 moving right + --- 0.804474 (0.638693), N = 36 moving right + + -- best stat: 0.655698, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 4 0 13 8 5 + + + -- linear combo weights (showing up to 5) + + -0.0112 -0.0971 -0.0921 2.0025 0.3215 + + + -- cutpoint (score) + --- -1.3029 (0.520985), N = 267 moving right + --- -1.01219 (0.634854), N = 193 moving right + --- -0.712381 (0.690734), N = 140 moving right + --- 0.355577 (0.664884), N = 62 moving right + --- 2.57079 (0.607015), N = 19 moving right + + -- best stat: 0.690734, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 419 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 8 16 3 11 + + + -- linear combo weights (showing up to 5) + + 6.5859 1.1750 0.2309 7.3575 0.0214 + + + -- cutpoint (score) + --- -0.904187 (0.51473), N = 259 moving right + --- -0.816362 (0.568741), N = 226 moving right + --- -0.683244 (0.673286), N = 164 moving right + --- -0.330189 (0.758234), N = 90 moving right + --- 0.145883 (0.710111), N = 53 moving right + + -- best stat: 0.758234, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 5 17 2 14 + + + -- linear combo weights (showing up to 5) + + -0.4933 1.1237 0.5455 -0.1257 0.3109 + + + -- cutpoint (score) + --- 0.93207 (0.622447), N = 194 moving right + --- 1.71555 (0.668745), N = 105 moving right + --- 2.08891 (0.633506), N = 69 moving right + --- 2.92293 (0.544734), N = 18 moving right + --- 3.13941 (0.513014), N = 6 moving right + + -- best stat: 0.668745, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 15 12 11 3 + + + -- linear combo weights (showing up to 5) + + 0.2599 0.0253 0.1689 0.1087 11.1194 + + + -- cutpoint (score) + --- -0.392214 (0.569892), N = 239 moving right + --- -0.34076 (0.582754), N = 226 moving right + --- -0.0278072 (0.717107), N = 110 moving right + --- -0.00215519 (0.733662), N = 99 moving right + --- 0.154334 (0.671656), N = 67 moving right + + -- best stat: 0.733662, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.9100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 420 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 2 7 16 0 + + + -- linear combo weights (showing up to 5) + + 5.1621 -0.8369 3.0278 0.1928 -0.1060 + + + -- cutpoint (score) + --- -1.0836 (0.545889), N = 224 moving right + --- -0.977558 (0.603072), N = 176 moving right + --- -0.939307 (0.644115), N = 145 moving right + --- -0.862805 (0.659887), N = 106 moving right + --- -0.0172027 (0.650844), N = 39 moving right + + -- best stat: 0.659887, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 2 17 12 6 + + + -- linear combo weights (showing up to 5) + + -0.0466 -1.0811 0.5424 0.0973 2.1396 + + + -- cutpoint (score) + --- -0.0497538 (0.571765), N = 239 moving right + --- 0.500428 (0.694851), N = 162 moving right + --- 0.502543 (0.688317), N = 160 moving right + --- 1.00668 (0.692254), N = 109 moving right + --- 1.05038 (0.643185), N = 76 moving right + + -- best stat: 0.694851, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 16 13 12 7 + + + -- linear combo weights (showing up to 5) + + -0.0046 0.4982 0.4288 0.1406 3.5775 + + + -- cutpoint (score) + --- -0.424283 (0.647079), N = 181 moving right + --- 0.117862 (0.715924), N = 118 moving right + --- 1.31583 (0.599589), N = 19 moving right + --- 3.55805 (0.58241), N = 15 moving right + --- 3.68096 (0.569645), N = 13 moving right + + -- best stat: 0.715924, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7464e-01 2.5548e-02 + 1.1000e+02 9.6739e-01 3.2983e-02 + 1.4000e+02 9.6377e-01 3.6728e-02 + + +------------ Growing tree 421 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 17 5 15 10 + + + -- linear combo weights (showing up to 5) + + 0.1659 0.4271 1.1631 -0.0436 -0.6740 + + + -- cutpoint (score) + --- 0.767554 (0.608), N = 204 moving right + --- 1.39498 (0.696898), N = 152 moving right + --- 1.70848 (0.694719), N = 118 moving right + --- 2.66277 (0.671259), N = 66 moving right + --- 3.50386 (0.622363), N = 29 moving right + + -- best stat: 0.696898, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 5 8 2 10 + + + -- linear combo weights (showing up to 5) + + 4.0637 0.7733 1.3510 -0.7248 -0.5094 + + + -- cutpoint (score) + --- -1.93415 (0.56219), N = 242 moving right + --- -1.10362 (0.721507), N = 161 moving right + --- -0.401619 (0.745088), N = 115 moving right + --- -0.397433 (0.738573), N = 112 moving right + --- 0.0513664 (0.724654), N = 81 moving right + + -- best stat: 0.745088, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 5 0 12 4 + + + -- linear combo weights (showing up to 5) + + -0.7163 1.2288 -0.1322 0.1532 0.5265 + + + -- cutpoint (score) + --- -1.10911 (0.53526), N = 255 moving right + --- -0.739664 (0.558398), N = 236 moving right + --- 0.693343 (0.689777), N = 124 moving right + --- 1.08963 (0.681567), N = 98 moving right + --- 2.19256 (0.615968), N = 30 moving right + + -- best stat: 0.689777, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.7101e-01 2.9238e-02 + 1.4000e+02 9.6739e-01 3.2970e-02 + 1.7900e+02 9.5652e-01 4.4206e-02 + + +------------ Growing tree 422 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 13 8 10 6 + + + -- linear combo weights (showing up to 5) + + -0.0142 -0.1388 1.7910 -0.8944 -0.0927 + + + -- cutpoint (score) + --- -1.13711 (0.623823), N = 211 moving right + --- -0.611268 (0.696542), N = 145 moving right + --- -0.570785 (0.703454), N = 142 moving right + --- -0.433194 (0.723956), N = 122 moving right + --- 0.78369 (0.686055), N = 57 moving right + + -- best stat: 0.723956, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 12 0 13 4 + + + -- linear combo weights (showing up to 5) + + 1.0965 0.0159 -0.1534 0.4446 0.3944 + + + -- cutpoint (score) + --- -0.551528 (0.519089), N = 261 moving right + --- 0.256521 (0.693588), N = 140 moving right + --- 0.362414 (0.702983), N = 131 moving right + --- 0.985833 (0.658599), N = 72 moving right + --- 1.59714 (0.582263), N = 20 moving right + + -- best stat: 0.702983, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 4 11 5 14 + + + -- linear combo weights (showing up to 5) + + 0.3439 0.3797 0.9791 0.9542 0.3594 + + + -- cutpoint (score) + --- -1.1489 (0.513076), N = 267 moving right + --- -0.931648 (0.543657), N = 247 moving right + --- 0.185661 (0.697248), N = 142 moving right + --- 0.714069 (0.743195), N = 100 moving right + --- 1.13845 (0.700693), N = 67 moving right + + -- best stat: 0.743195, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 423 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 6 7 9 11 + + + -- linear combo weights (showing up to 5) + + 0.3503 0.6102 8.3741 0.4679 0.7314 + + + -- cutpoint (score) + --- -0.960951 (0.595735), N = 230 moving right + --- -0.472517 (0.69446), N = 168 moving right + --- -0.459886 (0.693702), N = 165 moving right + --- 0.127266 (0.739107), N = 99 moving right + --- 0.7977 (0.723046), N = 60 moving right + + -- best stat: 0.739107, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 10 17 4 16 + + + -- linear combo weights (showing up to 5) + + 0.6464 -0.8436 -0.0483 0.4709 0.7764 + + + -- cutpoint (score) + --- -1.99861 (0.491685), N = 271 moving right + --- -1.23756 (0.556856), N = 235 moving right + --- -0.0526525 (0.70709), N = 122 moving right + --- 0.0113949 (0.701785), N = 117 moving right + --- 1.54245 (0.672084), N = 44 moving right + + -- best stat: 0.70709, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 1 4 0 14 + + + -- linear combo weights (showing up to 5) + + 1.5417 0.3827 0.5096 0.1153 -0.0902 + + + -- cutpoint (score) + --- -0.16834 (0.714541), N = 140 moving right + --- -0.057042 (0.72353), N = 127 moving right + --- -0.0506831 (0.733486), N = 124 moving right + --- 0.675836 (0.72894), N = 61 moving right + --- 4.49179 (0.569339), N = 13 moving right + + -- best stat: 0.733486, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 4.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 424 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 17 14 7 13 + + + -- linear combo weights (showing up to 5) + + 3.8878 0.3088 0.4940 1.6465 0.3208 + + + -- cutpoint (score) + --- 0.149459 (0.566457), N = 244 moving right + --- 0.937111 (0.708373), N = 135 moving right + --- 1.37095 (0.645198), N = 79 moving right + --- 2.74603 (0.587788), N = 18 moving right + --- 5.53478 (0.553372), N = 7 moving right + + -- best stat: 0.708373, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 2 6 17 8 + + + -- linear combo weights (showing up to 5) + + 0.1064 -0.1295 0.3093 0.3925 2.0633 + + + -- cutpoint (score) + --- -0.16678 (0.623478), N = 213 moving right + --- 0.136052 (0.668106), N = 171 moving right + --- 0.349197 (0.709021), N = 146 moving right + --- 2.60346 (0.638052), N = 30 moving right + --- 3.86372 (0.602923), N = 17 moving right + + -- best stat: 0.709021, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 11 12 8 5 + + + -- linear combo weights (showing up to 5) + + 0.0561 0.4021 0.0534 1.9008 0.1789 + + + -- cutpoint (score) + --- -1.43939 (0.536661), N = 257 moving right + --- -1.17567 (0.63749), N = 204 moving right + --- -1.09602 (0.670913), N = 187 moving right + --- -0.327056 (0.743285), N = 102 moving right + --- 0.190305 (0.707013), N = 75 moving right + + -- best stat: 0.743285, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 425 -------------- + +- N obs inbag: 276 +- N row inbag: 194 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 16 0 17 3 + + + -- linear combo weights (showing up to 5) + + 0.0434 0.5768 -0.0470 0.4484 11.4146 + + + -- cutpoint (score) + --- 0.889818 (0.649014), N = 178 moving right + --- 0.916576 (0.639055), N = 174 moving right + --- 1.01599 (0.633047), N = 162 moving right + --- 2.1269 (0.65346), N = 39 moving right + --- 2.14949 (0.656879), N = 37 moving right + + -- best stat: 0.656879, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 12 7 6 15 + + + -- linear combo weights (showing up to 5) + + 10.7056 0.1043 3.7476 0.0424 0.0915 + + + -- cutpoint (score) + --- -0.0776326 (0.534601), N = 213 moving right + --- -0.0420716 (0.584437), N = 171 moving right + --- 0.168389 (0.634925), N = 51 moving right + --- 0.367103 (0.617615), N = 30 moving right + --- 10.9264 (0.57011), N = 11 moving right + + -- best stat: 0.634925, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 3 10 1 16 + + + -- linear combo weights (showing up to 5) + + -0.0023 11.0775 -0.4328 0.1500 0.7479 + + + -- cutpoint (score) + --- -1.27438 (0.512212), N = 263 moving right + --- -0.299504 (0.642355), N = 160 moving right + --- -0.222587 (0.644864), N = 142 moving right + --- 0.304212 (0.717326), N = 73 moving right + --- 0.52417 (0.722424), N = 49 moving right + + -- best stat: 0.722424, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8551e-01 1.4546e-02 + 1.3100e+02 9.7826e-01 2.1899e-02 + 1.4000e+02 9.7464e-01 2.5602e-02 + 1.8600e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 426 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 9 10 5 4 + + + -- linear combo weights (showing up to 5) + + 0.1684 0.1647 -0.8494 1.0151 0.0443 + + + -- cutpoint (score) + --- -0.0895704 (0.705456), N = 169 moving right + --- 0.0555478 (0.728592), N = 151 moving right + --- 0.396985 (0.727988), N = 124 moving right + --- 0.853031 (0.653665), N = 73 moving right + --- 1.16786 (0.658184), N = 51 moving right + + -- best stat: 0.728592, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 14 3 12 15 + + + -- linear combo weights (showing up to 5) + + 0.2124 0.1702 6.8674 0.1936 -0.1014 + + + -- cutpoint (score) + --- -0.370369 (0.588505), N = 236 moving right + --- -0.020819 (0.676197), N = 143 moving right + --- -0.020329 (0.678551), N = 142 moving right + --- 0.110359 (0.69419), N = 110 moving right + --- 0.335805 (0.656622), N = 72 moving right + + -- best stat: 0.69419, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 12 14 16 7 + + + -- linear combo weights (showing up to 5) + + 0.5504 0.1263 0.5797 0.2685 6.2302 + + + -- cutpoint (score) + --- 0.0441123 (0.585173), N = 224 moving right + --- 0.245446 (0.608892), N = 185 moving right + --- 0.257477 (0.618721), N = 181 moving right + --- 0.853584 (0.700479), N = 80 moving right + --- 1.37066 (0.628051), N = 37 moving right + + -- best stat: 0.700479, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 427 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 6 17 14 5 + + + -- linear combo weights (showing up to 5) + + 0.1671 -0.3994 0.4960 0.1566 1.5151 + + + -- cutpoint (score) + --- 0.547982 (0.527353), N = 264 moving right + --- 1.36812 (0.631923), N = 188 moving right + --- 1.78223 (0.675732), N = 131 moving right + --- 1.93368 (0.68271), N = 113 moving right + --- 3.3312 (0.62195), N = 31 moving right + + -- best stat: 0.68271, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 0 13 6 11 + + + -- linear combo weights (showing up to 5) + + 0.6342 0.1516 0.1556 0.2603 1.2872 + + + -- cutpoint (score) + --- -0.493644 (0.67348), N = 163 moving right + --- -0.297425 (0.713665), N = 132 moving right + --- -0.270017 (0.724629), N = 127 moving right + --- 0.675458 (0.709635), N = 66 moving right + --- 1.45027 (0.675124), N = 40 moving right + + -- best stat: 0.724629, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 0 9 3 4 + + + -- linear combo weights (showing up to 5) + + 0.4079 0.1008 0.3234 4.5276 1.1045 + + + -- cutpoint (score) + --- -0.519114 (0.530684), N = 253 moving right + --- 0.55637 (0.675934), N = 144 moving right + --- 0.572236 (0.677443), N = 143 moving right + --- 1.02766 (0.677015), N = 92 moving right + --- 2.181 (0.579063), N = 22 moving right + + -- best stat: 0.677443, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.4000e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 428 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 1 17 13 15 + + + -- linear combo weights (showing up to 5) + + 0.9204 0.3883 0.4600 0.2648 0.1995 + + + -- cutpoint (score) + --- 0.208277 (0.568298), N = 246 moving right + --- 1.39566 (0.729585), N = 120 moving right + --- 1.50464 (0.732523), N = 105 moving right + --- 2.69343 (0.663823), N = 42 moving right + --- 2.76892 (0.638367), N = 35 moving right + + -- best stat: 0.732523, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 13 6 14 3 + + + -- linear combo weights (showing up to 5) + + 1.7083 0.0558 0.3336 -0.1215 6.9277 + + + -- cutpoint (score) + --- -1.15826 (0.510987), N = 265 moving right + --- -0.754717 (0.693907), N = 159 moving right + --- -0.749508 (0.694812), N = 158 moving right + --- -0.147034 (0.738359), N = 99 moving right + --- 0.151689 (0.732141), N = 68 moving right + + -- best stat: 0.738359, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 7 13 11 6 + + + -- linear combo weights (showing up to 5) + + 1.3068 12.6750 0.0105 0.5341 0.4401 + + + -- cutpoint (score) + --- -0.681315 (0.722924), N = 145 moving right + --- -0.619772 (0.723769), N = 139 moving right + --- 0.0695639 (0.752103), N = 93 moving right + --- 3.02595 (0.65684), N = 26 moving right + --- 13.8246 (0.56214), N = 10 moving right + + -- best stat: 0.752103, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 429 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 195 +- max leaves: 98 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 8 3 6 4 + + + -- linear combo weights (showing up to 5) + + 0.4697 2.2523 7.0053 0.6441 0.1235 + + + -- cutpoint (score) + --- -1.62244 (0.541048), N = 248 moving right + --- -1.1394 (0.62789), N = 196 moving right + --- -0.99199 (0.678138), N = 161 moving right + --- -0.43995 (0.780747), N = 100 moving right + --- 0.237417 (0.775461), N = 78 moving right + + -- best stat: 0.780747, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 1 3 10 7 + + + -- linear combo weights (showing up to 5) + + 0.5629 0.5647 5.9403 -0.4298 4.7662 + + + -- cutpoint (score) + --- -0.524357 (0.612798), N = 209 moving right + --- -0.312742 (0.676091), N = 173 moving right + --- -0.286508 (0.674651), N = 171 moving right + --- 0.0590603 (0.730139), N = 115 moving right + --- 6.34534 (0.612551), N = 19 moving right + + -- best stat: 0.730139, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 8 13 10 15 + + + -- linear combo weights (showing up to 5) + + 0.7651 2.4236 -0.0299 -0.7526 -0.0835 + + + -- cutpoint (score) + --- -2.55039 (0.523482), N = 250 moving right + --- -1.92285 (0.592285), N = 214 moving right + --- -1.8195 (0.618916), N = 197 moving right + --- -1.28002 (0.690598), N = 154 moving right + --- 3.99928 (0.588169), N = 16 moving right + + -- best stat: 0.690598, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8188e-01 1.8195e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.4000e+02 9.7101e-01 2.9293e-02 + 1.8600e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 430 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 13 9 5 16 + + + -- linear combo weights (showing up to 5) + + 0.6687 0.3060 0.1859 0.3934 0.5517 + + + -- cutpoint (score) + --- 0.891974 (0.574718), N = 232 moving right + --- 1.05569 (0.578775), N = 222 moving right + --- 2.21545 (0.677464), N = 118 moving right + --- 3.07975 (0.679943), N = 56 moving right + --- 3.44465 (0.618295), N = 32 moving right + + -- best stat: 0.679943, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 2 11 7 8 + + + -- linear combo weights (showing up to 5) + + 0.4529 -0.4081 0.4112 6.8160 1.1463 + + + -- cutpoint (score) + --- -0.34976 (0.597009), N = 229 moving right + --- 1.76028 (0.71721), N = 69 moving right + --- 1.83886 (0.698771), N = 61 moving right + --- 1.88101 (0.694919), N = 56 moving right + --- 3.55875 (0.639582), N = 29 moving right + + -- best stat: 0.71721, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 10 14 16 4 + + + -- linear combo weights (showing up to 5) + + 0.2131 -0.7181 0.4774 0.6068 0.5693 + + + -- cutpoint (score) + --- 0.0357073 (0.684511), N = 135 moving right + --- 0.226696 (0.704548), N = 122 moving right + --- 0.94469 (0.708195), N = 68 moving right + --- 1.10044 (0.715734), N = 62 moving right + --- 1.80259 (0.632391), N = 30 moving right + + -- best stat: 0.715734, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 5.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.7101e-01 2.9211e-02 + 1.3100e+02 9.6739e-01 3.2942e-02 + 1.7900e+02 9.6377e-01 3.6688e-02 + + +------------ Growing tree 431 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 209 +- max leaves: 105 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 4 12 2 6 + + + -- linear combo weights (showing up to 5) + + 1.0041 0.4208 -0.0035 -0.5687 1.3668 + + + -- cutpoint (score) + --- -1.31579 (0.567406), N = 242 moving right + --- -0.973405 (0.647001), N = 198 moving right + --- 0.400711 (0.68753), N = 64 moving right + --- 0.844575 (0.673411), N = 44 moving right + --- 1.51256 (0.567467), N = 23 moving right + + -- best stat: 0.68753, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 5 17 9 16 + + + -- linear combo weights (showing up to 5) + + 0.8030 0.4250 0.2435 0.2951 0.6305 + + + -- cutpoint (score) + --- -0.719555 (0.548493), N = 250 moving right + --- -0.0218476 (0.679039), N = 179 moving right + --- 0.232103 (0.711218), N = 156 moving right + --- 1.12102 (0.70553), N = 101 moving right + --- 1.99007 (0.719507), N = 56 moving right + + -- best stat: 0.719507, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 15 11 13 4 + + + -- linear combo weights (showing up to 5) + + 0.3100 -0.0398 0.8889 0.3818 0.2487 + + + -- cutpoint (score) + --- -0.0722231 (0.604258), N = 221 moving right + --- 0.647433 (0.699395), N = 153 moving right + --- 0.69875 (0.716358), N = 143 moving right + --- 1.66732 (0.702259), N = 68 moving right + --- 1.77014 (0.692691), N = 64 moving right + + -- best stat: 0.716358, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 432 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 1 16 14 7 + + + -- linear combo weights (showing up to 5) + + 0.5115 0.5459 0.3262 0.4322 5.2568 + + + -- cutpoint (score) + --- -0.717199 (0.574401), N = 237 moving right + --- -0.353631 (0.619768), N = 202 moving right + --- -0.251689 (0.618448), N = 188 moving right + --- -0.17211 (0.632792), N = 177 moving right + --- 0.358897 (0.707436), N = 109 moving right + + -- best stat: 0.707436, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 3 16 17 1 + + + -- linear combo weights (showing up to 5) + + 0.4721 6.2552 0.3627 0.3530 0.3432 + + + -- cutpoint (score) + --- 0.404559 (0.579805), N = 238 moving right + --- 0.532609 (0.612861), N = 223 moving right + --- 0.873528 (0.657111), N = 184 moving right + --- 0.879053 (0.642198), N = 177 moving right + --- 1.04506 (0.681816), N = 143 moving right + + -- best stat: 0.681816, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 10 12 17 + + + -- linear combo weights (showing up to 5) + + 6.0450 0.3856 -0.6096 0.0371 0.2519 + + + -- cutpoint (score) + --- -0.128112 (0.544149), N = 245 moving right + --- 0.0419274 (0.55772), N = 236 moving right + --- 1.06251 (0.675376), N = 118 moving right + --- 1.25723 (0.684011), N = 97 moving right + --- 1.53825 (0.688582), N = 65 moving right + + -- best stat: 0.688582, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 433 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 12 0 6 16 + + + -- linear combo weights (showing up to 5) + + 7.4319 0.0570 0.0145 1.2826 0.8385 + + + -- cutpoint (score) + --- -0.813586 (0.540701), N = 253 moving right + --- -0.646887 (0.602407), N = 212 moving right + --- -0.452969 (0.667435), N = 165 moving right + --- 0.304257 (0.720109), N = 86 moving right + --- 2.91785 (0.620261), N = 25 moving right + + -- best stat: 0.720109, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 16 13 17 10 4 + + + -- linear combo weights (showing up to 5) + + 1.2707 0.4465 0.2215 -0.7959 0.3961 + + + -- cutpoint (score) + --- -0.50604 (0.617427), N = 221 moving right + --- -0.321014 (0.66496), N = 190 moving right + --- -0.00114736 (0.691763), N = 165 moving right + --- 0.2804 (0.727471), N = 136 moving right + --- 5.19258 (0.531689), N = 5 moving right + + -- best stat: 0.727471, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 0 15 1 14 + + + -- linear combo weights (showing up to 5) + + 1.1276 0.2423 -0.3598 0.4237 0.4312 + + + -- cutpoint (score) + --- -0.296762 (0.618358), N = 194 moving right + --- -0.0792326 (0.617871), N = 172 moving right + --- -0.0545046 (0.620917), N = 170 moving right + --- 0.424848 (0.717232), N = 109 moving right + --- 1.78306 (0.555847), N = 16 moving right + + -- best stat: 0.717232, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 434 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 13 9 15 17 + + + -- linear combo weights (showing up to 5) + + 4.6212 0.2947 0.3496 -0.0906 0.4071 + + + -- cutpoint (score) + --- 0.811144 (0.610405), N = 202 moving right + --- 1.03349 (0.660249), N = 173 moving right + --- 1.55143 (0.689249), N = 68 moving right + --- 2.77798 (0.570734), N = 17 moving right + --- 5.99813 (0.545694), N = 7 moving right + + -- best stat: 0.689249, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 8 1 7 13 + + + -- linear combo weights (showing up to 5) + + 0.1942 1.5440 0.3745 3.6957 -0.0350 + + + -- cutpoint (score) + --- -0.879018 (0.641492), N = 190 moving right + --- -0.425023 (0.767832), N = 111 moving right + --- -0.114927 (0.770606), N = 85 moving right + --- 0.290134 (0.714194), N = 65 moving right + --- 0.559702 (0.688063), N = 56 moving right + + -- best stat: 0.770606, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 2 0 4 3 + + + -- linear combo weights (showing up to 5) + + 0.3766 -0.9224 -0.3757 0.7100 5.1569 + + + -- cutpoint (score) + --- -1.44782 (0.551195), N = 254 moving right + --- -0.964399 (0.662122), N = 169 moving right + --- -0.282809 (0.668192), N = 81 moving right + --- -0.150667 (0.662288), N = 68 moving right + --- -0.128619 (0.660818), N = 66 moving right + + -- best stat: 0.668192, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.7000e+01 9.8551e-01 1.4546e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 435 -------------- + +- N obs inbag: 276 +- N row inbag: 186 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 17 3 4 8 + + + -- linear combo weights (showing up to 5) + + -0.5639 0.2403 3.0626 0.0597 1.7586 + + + -- cutpoint (score) + --- -1.20453 (0.530207), N = 263 moving right + --- -0.866301 (0.613541), N = 217 moving right + --- -0.473086 (0.712607), N = 159 moving right + --- -0.358424 (0.731066), N = 149 moving right + --- 0.795008 (0.695202), N = 68 moving right + + -- best stat: 0.731066, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 15 8 12 11 + + + -- linear combo weights (showing up to 5) + + 4.0941 -0.0666 1.6157 0.1241 0.3893 + + + -- cutpoint (score) + --- -1.19642 (0.610898), N = 220 moving right + --- -0.982354 (0.680728), N = 184 moving right + --- -0.62771 (0.736579), N = 139 moving right + --- 1.44123 (0.660039), N = 42 moving right + --- 2.13598 (0.642757), N = 28 moving right + + -- best stat: 0.736579, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 3 6 4 9 + + + -- linear combo weights (showing up to 5) + + 0.2551 4.8298 0.1535 0.6756 0.6080 + + + -- cutpoint (score) + --- 0.157465 (0.632412), N = 175 moving right + --- 0.51304 (0.722725), N = 97 moving right + --- 0.678724 (0.728733), N = 81 moving right + --- 1.86197 (0.645668), N = 38 moving right + --- 2.24737 (0.611579), N = 27 moving right + + -- best stat: 0.728733, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 436 -------------- + +- N obs inbag: 276 +- N row inbag: 180 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 8 5 3 10 + + + -- linear combo weights (showing up to 5) + + 0.0776 1.5069 0.1685 3.7045 -0.4455 + + + -- cutpoint (score) + --- -1.57445 (0.510281), N = 271 moving right + --- -1.54299 (0.517046), N = 268 moving right + --- -1.36423 (0.514253), N = 260 moving right + --- -1.05489 (0.582437), N = 226 moving right + --- 0.995751 (0.688495), N = 51 moving right + + -- best stat: 0.688495, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 9 3 6 + + + -- linear combo weights (showing up to 5) + + 0.3950 0.0282 0.4038 6.3073 1.0824 + + + -- cutpoint (score) + --- -0.526338 (0.575539), N = 236 moving right + --- -0.486926 (0.58582), N = 231 moving right + --- -0.137567 (0.650488), N = 157 moving right + --- 0.857564 (0.629319), N = 45 moving right + --- 1.33841 (0.586485), N = 27 moving right + + -- best stat: 0.650488, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 17 11 15 3 + + + -- linear combo weights (showing up to 5) + + 0.2045 0.4274 0.4032 0.0489 5.2914 + + + -- cutpoint (score) + --- 0.621067 (0.564745), N = 242 moving right + --- 0.674054 (0.573277), N = 237 moving right + --- 1.29976 (0.699916), N = 145 moving right + --- 1.35277 (0.684106), N = 134 moving right + --- 1.66189 (0.722378), N = 99 moving right + + -- best stat: 0.722378, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 437 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 257 +- max leaves: 129 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 2 13 5 4 + + + -- linear combo weights (showing up to 5) + + 5.8830 -0.1807 0.4466 0.3933 0.5008 + + + -- cutpoint (score) + --- 0.111629 (0.683477), N = 163 moving right + --- 0.306162 (0.689249), N = 134 moving right + --- 0.428949 (0.685065), N = 112 moving right + --- 0.660837 (0.658579), N = 73 moving right + --- 5.77264 (0.56812), N = 16 moving right + + -- best stat: 0.689249, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 17 5 16 8 + + + -- linear combo weights (showing up to 5) + + -0.4902 0.3443 -0.0665 0.3043 1.4665 + + + -- cutpoint (score) + --- -0.664469 (0.514868), N = 258 moving right + --- 1.11844 (0.744873), N = 93 moving right + --- 1.1195 (0.738298), N = 92 moving right + --- 2.54879 (0.635437), N = 39 moving right + --- 3.20655 (0.602675), N = 30 moving right + + -- best stat: 0.744873, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 10 8 12 0 + + + -- linear combo weights (showing up to 5) + + 0.0877 -0.5624 1.5492 -0.0233 -0.0846 + + + -- cutpoint (score) + --- -1.15572 (0.594157), N = 214 moving right + --- -0.639084 (0.712914), N = 146 moving right + --- -0.550689 (0.723785), N = 136 moving right + --- -0.539756 (0.721189), N = 135 moving right + --- 0.697111 (0.672718), N = 54 moving right + + -- best stat: 0.723785, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 4.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.4000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 438 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 15 4 6 13 + + + -- linear combo weights (showing up to 5) + + 0.4290 -0.0502 1.1781 0.8909 0.2913 + + + -- cutpoint (score) + --- -0.369974 (0.570647), N = 230 moving right + --- -0.335123 (0.573312), N = 227 moving right + --- 0.159457 (0.625504), N = 172 moving right + --- 0.252157 (0.62762), N = 162 moving right + --- 0.922679 (0.676372), N = 105 moving right + + -- best stat: 0.676372, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 15 17 12 8 + + + -- linear combo weights (showing up to 5) + + 0.4736 -0.1022 0.4308 -0.0335 1.9372 + + + -- cutpoint (score) + --- 0.100281 (0.622838), N = 209 moving right + --- 0.117729 (0.63405), N = 203 moving right + --- 0.270357 (0.657673), N = 187 moving right + --- 0.658884 (0.680829), N = 151 moving right + --- 1.05405 (0.694177), N = 111 moving right + + -- best stat: 0.694177, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 3 16 12 10 + + + -- linear combo weights (showing up to 5) + + 0.3056 6.2531 0.2203 0.1220 -0.6169 + + + -- cutpoint (score) + --- -1.35289 (0.501526), N = 267 moving right + --- -0.950076 (0.560859), N = 235 moving right + --- -0.081147 (0.693383), N = 119 moving right + --- 0.645931 (0.670411), N = 47 moving right + --- 7.75669 (0.540227), N = 9 moving right + + -- best stat: 0.693383, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 439 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 12 6 17 1 + + + -- linear combo weights (showing up to 5) + + -0.1654 0.3384 -0.1566 0.6861 0.5181 + + + -- cutpoint (score) + --- 1.35485 (0.622295), N = 197 moving right + --- 1.47896 (0.643688), N = 189 moving right + --- 1.92205 (0.667719), N = 148 moving right + --- 2.82765 (0.687872), N = 58 moving right + --- 3.03533 (0.65913), N = 49 moving right + + -- best stat: 0.687872, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 15 0 10 4 + + + -- linear combo weights (showing up to 5) + + 5.0171 -0.1324 -0.3820 -0.4882 0.7943 + + + -- cutpoint (score) + --- -0.855083 (0.515893), N = 262 moving right + --- -0.157389 (0.661001), N = 169 moving right + --- 0.201845 (0.659671), N = 133 moving right + --- 0.445521 (0.648625), N = 96 moving right + --- 6.0256 (0.572295), N = 13 moving right + + -- best stat: 0.661001, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 2 3 4 13 + + + -- linear combo weights (showing up to 5) + + 0.2848 -0.7895 6.2043 0.7734 0.4181 + + + -- cutpoint (score) + --- -1.17532 (0.564179), N = 230 moving right + --- -1.12834 (0.579125), N = 220 moving right + --- -0.395236 (0.691005), N = 149 moving right + --- -0.131275 (0.729306), N = 108 moving right + --- 0.389973 (0.686069), N = 60 moving right + + -- best stat: 0.729306, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.3100e+02 9.7464e-01 2.5548e-02 + 1.4000e+02 9.6739e-01 3.2983e-02 + 1.7900e+02 9.5652e-01 4.4219e-02 + + +------------ Growing tree 440 -------------- + +- N obs inbag: 276 +- N row inbag: 171 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 3 0 15 12 + + + -- linear combo weights (showing up to 5) + + 0.3678 8.6471 -0.1191 -0.1704 0.1674 + + + -- cutpoint (score) + --- -0.432261 (0.583057), N = 218 moving right + --- -0.155545 (0.627587), N = 172 moving right + --- 0.0392156 (0.634528), N = 112 moving right + --- 0.330555 (0.635358), N = 64 moving right + --- 8.51605 (0.607199), N = 16 moving right + + -- best stat: 0.635358, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 4 8 5 15 + + + -- linear combo weights (showing up to 5) + + 1.0382 -0.2090 1.3146 0.9448 -0.1681 + + + -- cutpoint (score) + --- -1.94647 (0.515236), N = 265 moving right + --- -1.86407 (0.52364), N = 260 moving right + --- -1.80796 (0.539793), N = 253 moving right + --- -1.33041 (0.637169), N = 206 moving right + --- 1.32969 (0.696259), N = 50 moving right + + -- best stat: 0.696259, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 6 2 4 14 + + + -- linear combo weights (showing up to 5) + + 0.0883 0.1680 -0.9676 0.9545 0.3555 + + + -- cutpoint (score) + --- -1.10323 (0.577884), N = 209 moving right + --- -1.05802 (0.57354), N = 204 moving right + --- -0.461789 (0.638741), N = 160 moving right + --- -0.23421 (0.659674), N = 124 moving right + --- -0.185005 (0.644285), N = 108 moving right + + -- best stat: 0.659674, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.3100e+02 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 441 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 9 10 8 5 + + + -- linear combo weights (showing up to 5) + + 0.4854 -0.1012 -0.5858 1.4680 0.4488 + + + -- cutpoint (score) + --- -0.806396 (0.663847), N = 186 moving right + --- -0.286189 (0.73512), N = 152 moving right + --- -0.276931 (0.739605), N = 150 moving right + --- 0.368663 (0.766368), N = 102 moving right + --- 1.13411 (0.687293), N = 52 moving right + + -- best stat: 0.766368, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 15 6 3 1 + + + -- linear combo weights (showing up to 5) + + 0.6211 0.0005 0.4688 3.7321 0.2515 + + + -- cutpoint (score) + --- 1.01526 (0.544937), N = 249 moving right + --- 1.52657 (0.634895), N = 189 moving right + --- 1.91738 (0.656768), N = 122 moving right + --- 2.28261 (0.704681), N = 84 moving right + --- 2.77524 (0.610088), N = 29 moving right + + -- best stat: 0.704681, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 10 2 7 12 3 + + + -- linear combo weights (showing up to 5) + + -0.6729 -0.9992 2.5320 0.2359 2.6186 + + + -- cutpoint (score) + --- -0.754867 (0.702555), N = 93 moving right + --- -0.737581 (0.705233), N = 92 moving right + --- -0.367183 (0.655982), N = 70 moving right + --- 0.177121 (0.619675), N = 34 moving right + --- 0.632283 (0.608175), N = 26 moving right + + -- best stat: 0.705233, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9275e-01 7.2464e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.8188e-01 1.8235e-02 + 1.8600e+02 9.7826e-01 2.1926e-02 + + +------------ Growing tree 442 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 9 5 11 15 + + + -- linear combo weights (showing up to 5) + + -0.0076 0.0422 0.9856 1.1246 -0.2128 + + + -- cutpoint (score) + --- -0.386883 (0.667816), N = 167 moving right + --- 0.36296 (0.725689), N = 112 moving right + --- 0.600092 (0.7322), N = 100 moving right + --- 1.35644 (0.65027), N = 47 moving right + --- 3.65539 (0.51566), N = 7 moving right + + -- best stat: 0.7322, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 4 2 1 13 + + + -- linear combo weights (showing up to 5) + + -0.1263 0.7591 0.1238 0.7004 0.5027 + + + -- cutpoint (score) + --- -0.468271 (0.574689), N = 234 moving right + --- 0.482765 (0.694815), N = 136 moving right + --- 0.589834 (0.719806), N = 120 moving right + --- 0.662746 (0.705708), N = 116 moving right + --- 1.86921 (0.599619), N = 28 moving right + + -- best stat: 0.719806, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 5 13 7 12 + + + -- linear combo weights (showing up to 5) + + 1.5780 0.2941 0.1358 4.4470 0.0678 + + + -- cutpoint (score) + --- -1.17258 (0.517607), N = 265 moving right + --- -0.86759 (0.64177), N = 206 moving right + --- -0.792561 (0.678932), N = 187 moving right + --- -0.740591 (0.689521), N = 176 moving right + --- 4.4205 (0.615644), N = 23 moving right + + -- best stat: 0.689521, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.7464e-01 2.5562e-02 + 1.1000e+02 9.6739e-01 3.2997e-02 + 1.3100e+02 9.6014e-01 4.0488e-02 + + +------------ Growing tree 443 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 16 8 2 12 + + + -- linear combo weights (showing up to 5) + + 0.0267 0.3934 1.7645 -0.3044 0.2428 + + + -- cutpoint (score) + --- -1.78295 (0.533843), N = 250 moving right + --- -0.105499 (0.706537), N = 73 moving right + --- 0.227618 (0.70035), N = 56 moving right + --- 0.287193 (0.694512), N = 53 moving right + --- 0.955743 (0.659488), N = 38 moving right + + -- best stat: 0.706537, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 15 9 10 3 + + + -- linear combo weights (showing up to 5) + + 0.3505 -0.3240 0.1273 -0.2648 6.0043 + + + -- cutpoint (score) + --- -0.334433 (0.623721), N = 192 moving right + --- -0.2105 (0.65422), N = 159 moving right + --- 0.0826725 (0.708308), N = 126 moving right + --- 0.213266 (0.747551), N = 97 moving right + --- 0.292825 (0.725186), N = 86 moving right + + -- best stat: 0.747551, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 9 7 10 11 + + + -- linear combo weights (showing up to 5) + + -0.3548 0.1351 6.3090 -0.5109 0.5436 + + + -- cutpoint (score) + --- -1.16603 (0.556952), N = 237 moving right + --- -1.1003 (0.567162), N = 234 moving right + --- -0.560275 (0.665479), N = 173 moving right + --- 0.361712 (0.735942), N = 70 moving right + --- 1.36174 (0.61913), N = 28 moving right + + -- best stat: 0.735942, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.7464e-01 2.5548e-02 + 1.4000e+02 9.7101e-01 2.9265e-02 + 1.7900e+02 9.6377e-01 3.6728e-02 + + +------------ Growing tree 444 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 255 +- max leaves: 128 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 9 10 4 12 + + + -- linear combo weights (showing up to 5) + + 0.7932 0.2636 -0.7329 0.3439 -0.0453 + + + -- cutpoint (score) + --- -0.817916 (0.591956), N = 228 moving right + --- 1.89072e-05 (0.69267), N = 143 moving right + --- 0.713505 (0.720245), N = 86 moving right + --- 1.32949 (0.678173), N = 54 moving right + --- 2.03341 (0.605132), N = 26 moving right + + -- best stat: 0.720245, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 17 0 4 14 + + + -- linear combo weights (showing up to 5) + + 1.7752 0.2813 -0.5839 -0.0536 -0.1602 + + + -- cutpoint (score) + --- -0.580769 (0.621326), N = 216 moving right + --- -0.326459 (0.688213), N = 185 moving right + --- -0.221002 (0.714663), N = 171 moving right + --- -0.0625368 (0.747051), N = 152 moving right + --- 0.606318 (0.691152), N = 80 moving right + + -- best stat: 0.747051, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 6 15 16 + + + -- linear combo weights (showing up to 5) + + 5.4435 0.5162 0.6378 -0.2757 0.1430 + + + -- cutpoint (score) + --- -0.102028 (0.587854), N = 205 moving right + --- -0.0524557 (0.615448), N = 185 moving right + --- 0.142872 (0.637757), N = 134 moving right + --- 0.191424 (0.642668), N = 126 moving right + --- 6.0958 (0.569273), N = 13 moving right + + -- best stat: 0.642668, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7101e-01 2.9292e-02 + 1.7900e+02 9.6377e-01 3.6755e-02 + + +------------ Growing tree 445 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 11 16 0 12 + + + -- linear combo weights (showing up to 5) + + 1.5607 0.5504 0.6350 -0.6081 -0.1353 + + + -- cutpoint (score) + --- -1.96259 (0.588528), N = 228 moving right + --- -1.94572 (0.594476), N = 225 moving right + --- -1.54866 (0.665034), N = 185 moving right + --- 0.749104 (0.683425), N = 48 moving right + --- 3.33006 (0.567027), N = 16 moving right + + -- best stat: 0.683425, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 6 15 13 17 + + + -- linear combo weights (showing up to 5) + + 3.0458 1.3145 0.0144 0.2452 0.7430 + + + -- cutpoint (score) + --- 1.57088 (0.597272), N = 220 moving right + --- 2.05817 (0.638783), N = 189 moving right + --- 2.50513 (0.715583), N = 122 moving right + --- 3.0274 (0.675711), N = 70 moving right + --- 6.12388 (0.519295), N = 7 moving right + + -- best stat: 0.715583, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 17 10 0 15 + + + -- linear combo weights (showing up to 5) + + 0.6579 0.7675 -0.7603 -0.8741 0.1091 + + + -- cutpoint (score) + --- 0.609233 (0.606835), N = 224 moving right + --- 1.3074 (0.664488), N = 170 moving right + --- 1.61648 (0.705095), N = 146 moving right + --- 1.61973 (0.707617), N = 143 moving right + --- 2.33731 (0.765501), N = 88 moving right + + -- best stat: 0.765501, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8188e-01 1.8169e-02 + 7.7000e+01 9.7826e-01 2.1859e-02 + 1.4000e+02 9.7101e-01 2.9266e-02 + 1.7900e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 446 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 199 +- max leaves: 100 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 6 1 4 14 + + + -- linear combo weights (showing up to 5) + + -0.0579 1.0090 0.1843 0.9124 0.6641 + + + -- cutpoint (score) + --- 0.0394755 (0.620188), N = 177 moving right + --- 0.383727 (0.633149), N = 154 moving right + --- 0.39928 (0.639595), N = 150 moving right + --- 0.838876 (0.657561), N = 81 moving right + --- 0.889687 (0.645264), N = 78 moving right + + -- best stat: 0.657561, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 4 10 13 11 + + + -- linear combo weights (showing up to 5) + + 2.3071 0.6843 -0.3079 0.0407 1.0305 + + + -- cutpoint (score) + --- -0.904859 (0.548779), N = 238 moving right + --- -0.724382 (0.594907), N = 216 moving right + --- -0.593976 (0.617217), N = 203 moving right + --- -0.295236 (0.671734), N = 178 moving right + --- 2.26772 (0.613491), N = 25 moving right + + -- best stat: 0.671734, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 8 3 5 17 + + + -- linear combo weights (showing up to 5) + + 0.0570 1.7844 6.9298 0.6963 0.3166 + + + -- cutpoint (score) + --- -0.186392 (0.617125), N = 220 moving right + --- 0.0350671 (0.689906), N = 184 moving right + --- 0.296166 (0.695712), N = 155 moving right + --- 2.42163 (0.655253), N = 38 moving right + --- 4.7393 (0.612897), N = 17 moving right + + -- best stat: 0.695712, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.4000e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 447 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 13 6 10 7 + + + -- linear combo weights (showing up to 5) + + 0.4896 0.3964 1.0222 -0.3627 13.1986 + + + -- cutpoint (score) + --- -0.734224 (0.584003), N = 236 moving right + --- -0.485817 (0.628483), N = 194 moving right + --- -0.266279 (0.662092), N = 171 moving right + --- 0.257917 (0.710554), N = 91 moving right + --- 12.8556 (0.58073), N = 13 moving right + + -- best stat: 0.710554, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 7 10 2 5 + + + -- linear combo weights (showing up to 5) + + 0.3637 12.9921 -0.4330 -1.0250 0.4711 + + + -- cutpoint (score) + --- -1.0995 (0.643049), N = 171 moving right + --- -0.98678 (0.656197), N = 154 moving right + --- -0.726922 (0.697596), N = 122 moving right + --- -0.522566 (0.690266), N = 98 moving right + --- -0.311126 (0.684103), N = 73 moving right + + -- best stat: 0.697596, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 16 0 11 14 + + + -- linear combo weights (showing up to 5) + + 1.2698 0.6144 -0.3519 0.7865 -0.0446 + + + -- cutpoint (score) + --- -2.02709 (0.523388), N = 258 moving right + --- -0.637235 (0.743914), N = 130 moving right + --- -0.439642 (0.757369), N = 124 moving right + --- -0.39624 (0.75312), N = 115 moving right + --- 0.297022 (0.726554), N = 81 moving right + + -- best stat: 0.757369, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8551e-01 1.4532e-02 + 7.1000e+01 9.8188e-01 1.8209e-02 + 7.7000e+01 9.7464e-01 2.5589e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 448 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 201 +- max leaves: 101 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 2 17 13 1 + + + -- linear combo weights (showing up to 5) + + 0.0343 -0.6696 0.5262 0.2556 0.4726 + + + -- cutpoint (score) + --- -0.168695 (0.531372), N = 254 moving right + --- -0.0444335 (0.555442), N = 242 moving right + --- 0.990193 (0.707209), N = 117 moving right + --- 1.02177 (0.69086), N = 111 moving right + --- 2.14763 (0.587186), N = 19 moving right + + -- best stat: 0.707209, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 17 8 4 15 + + + -- linear combo weights (showing up to 5) + + 0.1771 0.2707 2.0164 0.3580 -0.0243 + + + -- cutpoint (score) + --- -0.245583 (0.652698), N = 191 moving right + --- -0.12324 (0.666512), N = 179 moving right + --- -0.0621456 (0.672465), N = 170 moving right + --- 1.70798 (0.667977), N = 45 moving right + --- 6.17258 (0.565791), N = 11 moving right + + -- best stat: 0.672465, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 16 10 15 17 + + + -- linear combo weights (showing up to 5) + + 0.3272 0.4531 -0.6387 -0.0246 0.4532 + + + -- cutpoint (score) + --- -0.104105 (0.530256), N = 262 moving right + --- 0.466397 (0.58), N = 217 moving right + --- 0.66668 (0.613233), N = 190 moving right + --- 0.711299 (0.623326), N = 176 moving right + --- 1.59769 (0.694791), N = 89 moving right + + -- best stat: 0.694791, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.3100e+02 9.9275e-01 7.2596e-03 + 1.4000e+02 9.8913e-01 1.0909e-02 + 1.8600e+02 9.8188e-01 1.8235e-02 + 1.9100e+02 9.7101e-01 2.9305e-02 + + +------------ Growing tree 449 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 7 5 1 15 + + + -- linear combo weights (showing up to 5) + + 0.4737 4.9966 0.6226 0.2217 -0.2687 + + + -- cutpoint (score) + --- -0.803134 (0.510796), N = 266 moving right + --- -0.0182201 (0.612718), N = 172 moving right + --- -0.0132237 (0.615497), N = 170 moving right + --- 0.231697 (0.650233), N = 114 moving right + --- 0.377508 (0.683869), N = 92 moving right + + -- best stat: 0.683869, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 10 6 14 11 + + + -- linear combo weights (showing up to 5) + + 0.2207 -0.5284 -0.3216 0.2434 0.8383 + + + -- cutpoint (score) + --- -1.63719 (0.509309), N = 265 moving right + --- -1.2777 (0.527969), N = 252 moving right + --- -0.711899 (0.655383), N = 177 moving right + --- 0.326689 (0.699535), N = 74 moving right + --- 1.14213 (0.626013), N = 34 moving right + + -- best stat: 0.699535, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 3 15 6 11 + + + -- linear combo weights (showing up to 5) + + 1.0490 3.4566 -0.1826 0.1208 0.6491 + + + -- cutpoint (score) + --- -0.497285 (0.569988), N = 232 moving right + --- -0.365909 (0.644027), N = 194 moving right + --- -0.138941 (0.704275), N = 140 moving right + --- 0.224298 (0.715609), N = 112 moving right + --- 1.1682 (0.675918), N = 55 moving right + + -- best stat: 0.715609, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8188e-01 1.8169e-02 + 1.1000e+02 9.7101e-01 2.9239e-02 + 1.4000e+02 9.6739e-01 3.2970e-02 + 1.7900e+02 9.6377e-01 3.6715e-02 + + +------------ Growing tree 450 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 17 7 2 6 + + + -- linear combo weights (showing up to 5) + + 0.0870 0.4686 11.3270 -1.1611 0.7762 + + + -- cutpoint (score) + --- 1.02073 (0.667848), N = 54 moving right + --- 1.02413 (0.675428), N = 51 moving right + --- 1.10774 (0.669738), N = 47 moving right + --- 1.49269 (0.632467), N = 30 moving right + --- 1.87424 (0.62343), N = 25 moving right + + -- best stat: 0.675428, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 7 13 0 9 12 + + + -- linear combo weights (showing up to 5) + + 11.6923 0.0901 0.0136 0.2884 0.1170 + + + -- cutpoint (score) + --- -0.255103 (0.557826), N = 228 moving right + --- -0.233282 (0.567809), N = 222 moving right + --- -0.226026 (0.581512), N = 213 moving right + --- -0.0399666 (0.634889), N = 117 moving right + --- 0.224938 (0.648888), N = 64 moving right + + -- best stat: 0.648888, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 11 3 1 6 + + + -- linear combo weights (showing up to 5) + + 0.3639 0.9726 2.4659 0.2503 0.3601 + + + -- cutpoint (score) + --- -0.545287 (0.676157), N = 168 moving right + --- -0.482867 (0.690549), N = 160 moving right + --- -0.432313 (0.708978), N = 148 moving right + --- -0.302898 (0.718586), N = 135 moving right + --- 0.835799 (0.699882), N = 61 moving right + + -- best stat: 0.718586, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 451 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 13 16 9 6 + + + -- linear combo weights (showing up to 5) + + -0.0011 0.4747 0.9068 0.1234 0.3197 + + + -- cutpoint (score) + --- -0.468423 (0.670078), N = 169 moving right + --- -0.156886 (0.689545), N = 141 moving right + --- 0.414453 (0.703489), N = 93 moving right + --- 0.698871 (0.663575), N = 68 moving right + --- 0.79068 (0.6449), N = 58 moving right + + -- best stat: 0.703489, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 12 16 6 1 + + + -- linear combo weights (showing up to 5) + + 0.5722 0.0712 0.8622 0.0728 0.5220 + + + -- cutpoint (score) + --- -0.692552 (0.642211), N = 185 moving right + --- -0.653354 (0.650611), N = 181 moving right + --- 0.580842 (0.691484), N = 80 moving right + --- 0.737094 (0.690087), N = 71 moving right + --- 2.19828 (0.564488), N = 10 moving right + + -- best stat: 0.691484, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 9 11 13 12 + + + -- linear combo weights (showing up to 5) + + 0.7423 0.1900 1.0229 0.2235 -0.0474 + + + -- cutpoint (score) + --- -1.06051 (0.55119), N = 254 moving right + --- -0.74529 (0.61226), N = 206 moving right + --- 1.03288 (0.649027), N = 46 moving right + --- 1.77856 (0.565926), N = 25 moving right + --- 1.96433 (0.559381), N = 23 moving right + + -- best stat: 0.649027, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.7826e-01 2.1898e-02 + 1.4000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 452 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 3 15 6 12 + + + -- linear combo weights (showing up to 5) + + 1.1950 6.0489 -0.2265 0.1691 0.1597 + + + -- cutpoint (score) + --- -1.05944 (0.527575), N = 263 moving right + --- -0.916283 (0.546538), N = 249 moving right + --- -0.706404 (0.625789), N = 205 moving right + --- -0.615242 (0.65273), N = 184 moving right + --- -0.302815 (0.72873), N = 140 moving right + + -- best stat: 0.72873, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 11 3 8 14 + + + -- linear combo weights (showing up to 5) + + 0.1825 0.4889 6.1287 1.2300 -0.3816 + + + -- cutpoint (score) + --- -0.634513 (0.550349), N = 250 moving right + --- -0.377852 (0.613534), N = 218 moving right + --- -0.309133 (0.648358), N = 203 moving right + --- 0.128201 (0.731495), N = 144 moving right + --- 0.880537 (0.711224), N = 93 moving right + + -- best stat: 0.731495, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 13 1 8 6 + + + -- linear combo weights (showing up to 5) + + 3.9363 0.2335 0.6553 1.2519 0.4545 + + + -- cutpoint (score) + --- -0.671336 (0.672365), N = 187 moving right + --- -0.665196 (0.677446), N = 184 moving right + --- -0.327083 (0.752326), N = 133 moving right + --- 0.248289 (0.778706), N = 98 moving right + --- 1.16899 (0.675279), N = 50 moving right + + -- best stat: 0.778706, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 453 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 205 +- max leaves: 103 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 17 0 1 7 + + + -- linear combo weights (showing up to 5) + + 1.8549 0.3456 -0.5408 0.3040 3.0266 + + + -- cutpoint (score) + --- -0.512061 (0.611676), N = 225 moving right + --- -0.511955 (0.615496), N = 224 moving right + --- -0.256378 (0.660208), N = 196 moving right + --- -0.0323121 (0.68154), N = 175 moving right + --- 0.0431921 (0.696106), N = 164 moving right + + -- best stat: 0.696106, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 2 10 14 7 + + + -- linear combo weights (showing up to 5) + + 2.1868 -0.6266 -0.5060 0.1892 5.0831 + + + -- cutpoint (score) + --- -0.839945 (0.600999), N = 197 moving right + --- -0.490488 (0.692655), N = 122 moving right + --- -0.270765 (0.700847), N = 93 moving right + --- -0.213144 (0.675051), N = 86 moving right + --- -0.156805 (0.669068), N = 77 moving right + + -- best stat: 0.700847, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 16 11 14 1 + + + -- linear combo weights (showing up to 5) + + 4.8956 0.1711 0.6723 0.2091 0.3081 + + + -- cutpoint (score) + --- -0.837035 (0.568644), N = 239 moving right + --- -0.438889 (0.667342), N = 167 moving right + --- -0.254449 (0.702895), N = 123 moving right + --- 0.040796 (0.713895), N = 99 moving right + --- 2.06159 (0.597409), N = 21 moving right + + -- best stat: 0.713895, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 454 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 5 17 16 10 11 + + + -- linear combo weights (showing up to 5) + + 0.3164 0.3373 0.5055 -0.6724 0.5386 + + + -- cutpoint (score) + --- -0.22442 (0.564474), N = 240 moving right + --- 1.98769 (0.705113), N = 62 moving right + --- 2.05743 (0.697425), N = 60 moving right + --- 2.49187 (0.650752), N = 35 moving right + --- 3.57866 (0.53985), N = 12 moving right + + -- best stat: 0.705113, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 0 7 4 10 + + + -- linear combo weights (showing up to 5) + + 1.2201 0.2146 4.2271 0.3960 -0.6565 + + + -- cutpoint (score) + --- -0.574476 (0.657801), N = 184 moving right + --- -0.341789 (0.689812), N = 168 moving right + --- -0.173676 (0.708102), N = 154 moving right + --- -0.0217824 (0.721955), N = 138 moving right + --- 0.156233 (0.73782), N = 113 moving right + + -- best stat: 0.73782, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 10 7 8 13 + + + -- linear combo weights (showing up to 5) + + 0.1760 -0.6915 4.6295 1.1422 0.1488 + + + -- cutpoint (score) + --- -1.57203 (0.529041), N = 258 moving right + --- -1.09637 (0.587387), N = 220 moving right + --- -0.635789 (0.666241), N = 171 moving right + --- -0.427397 (0.700808), N = 139 moving right + --- 0.227786 (0.747726), N = 87 moving right + + -- best stat: 0.747726, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.7464e-01 2.5602e-02 + 1.7900e+02 9.7101e-01 2.9320e-02 + + +------------ Growing tree 455 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 183 +- max leaves: 92 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 13 7 10 11 + + + -- linear combo weights (showing up to 5) + + 0.7277 0.2425 5.6060 -0.6314 0.7444 + + + -- cutpoint (score) + --- -0.984691 (0.634634), N = 194 moving right + --- -0.430854 (0.703806), N = 141 moving right + --- 0.031901 (0.737536), N = 113 moving right + --- 0.499691 (0.746337), N = 76 moving right + --- 1.80616 (0.662964), N = 27 moving right + + -- best stat: 0.746337, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 15 10 4 13 + + + -- linear combo weights (showing up to 5) + + 0.9860 0.0322 -0.7918 0.0699 0.2757 + + + -- cutpoint (score) + --- -0.815223 (0.537155), N = 242 moving right + --- -0.0785261 (0.655352), N = 160 moving right + --- 0.597019 (0.649786), N = 85 moving right + --- 1.67485 (0.610395), N = 29 moving right + --- 2.89156 (0.538606), N = 5 moving right + + -- best stat: 0.655352, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 13 17 10 4 + + + -- linear combo weights (showing up to 5) + + 0.3499 0.1367 0.6396 -0.7856 -0.3054 + + + -- cutpoint (score) + --- 1.46692 (0.659634), N = 172 moving right + --- 1.53037 (0.650928), N = 158 moving right + --- 1.72192 (0.665105), N = 133 moving right + --- 2.27121 (0.643673), N = 72 moving right + --- 2.50336 (0.652331), N = 50 moving right + + -- best stat: 0.665105, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + 5.3300e+02 0 4.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 1.4000e+02 9.8913e-01 1.0896e-02 + 1.7900e+02 9.8188e-01 1.8222e-02 + 1.9800e+02 9.7464e-01 2.5602e-02 + 2.6400e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 456 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 235 +- max leaves: 118 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 10 5 7 0 + + + -- linear combo weights (showing up to 5) + + 2.7159 -0.2456 0.6063 8.5630 0.0849 + + + -- cutpoint (score) + --- 0.0587319 (0.620011), N = 169 moving right + --- 0.392083 (0.653432), N = 87 moving right + --- 0.440614 (0.643597), N = 80 moving right + --- 0.665074 (0.641047), N = 53 moving right + --- 0.786404 (0.631029), N = 40 moving right + + -- best stat: 0.653432, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 8 0 9 10 + + + -- linear combo weights (showing up to 5) + + -0.1506 1.6175 -0.0740 -0.0888 -0.4266 + + + -- cutpoint (score) + --- -1.17194 (0.554456), N = 240 moving right + --- -1.15731 (0.567779), N = 234 moving right + --- -0.78056 (0.687628), N = 179 moving right + --- 0.346564 (0.672958), N = 53 moving right + --- 0.978479 (0.638905), N = 40 moving right + + -- best stat: 0.687628, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 11 15 3 10 + + + -- linear combo weights (showing up to 5) + + 0.2849 0.3828 0.1254 4.6896 -0.3119 + + + -- cutpoint (score) + --- -0.583684 (0.548641), N = 243 moving right + --- -0.385432 (0.595548), N = 210 moving right + --- -0.0322586 (0.69383), N = 123 moving right + --- 0.719459 (0.653024), N = 44 moving right + --- 0.765586 (0.644128), N = 43 moving right + + -- best stat: 0.69383, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 1.1000e+02 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7101e-01 2.9292e-02 + 1.7900e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 457 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 2 6 9 15 + + + -- linear combo weights (showing up to 5) + + 0.2033 -0.2568 2.7510 0.4566 -0.2322 + + + -- cutpoint (score) + --- -0.614491 (0.584839), N = 229 moving right + --- -0.521034 (0.598168), N = 208 moving right + --- -0.474328 (0.634549), N = 189 moving right + --- -0.25319 (0.670491), N = 133 moving right + --- -0.185809 (0.698757), N = 114 moving right + + -- best stat: 0.698757, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 7 6 11 0 + + + -- linear combo weights (showing up to 5) + + 0.0824 4.3506 2.9076 1.1610 0.0026 + + + -- cutpoint (score) + --- -0.0101027 (0.734386), N = 117 moving right + --- 0.0319584 (0.727899), N = 112 moving right + --- 1.09822 (0.71386), N = 70 moving right + --- 1.45594 (0.709729), N = 60 moving right + --- 2.07149 (0.677271), N = 49 moving right + + -- best stat: 0.734386, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 11 10 14 2 + + + -- linear combo weights (showing up to 5) + + 2.6207 1.2945 -0.3857 0.0348 0.1342 + + + -- cutpoint (score) + --- -0.53714 (0.659769), N = 176 moving right + --- -0.254381 (0.688535), N = 150 moving right + --- 0.230671 (0.706913), N = 101 moving right + --- 0.497832 (0.709249), N = 86 moving right + --- 1.73057 (0.686741), N = 56 moving right + + -- best stat: 0.709249, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.8913e-01 1.0896e-02 + 1.3100e+02 9.8188e-01 1.8222e-02 + 1.4000e+02 9.7826e-01 2.1912e-02 + 1.9800e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 458 -------------- + +- N obs inbag: 276 +- N row inbag: 184 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 12 0 7 2 + + + -- linear combo weights (showing up to 5) + + -0.1181 0.1282 -0.2141 7.0093 -0.5907 + + + -- cutpoint (score) + --- -0.9331 (0.519297), N = 258 moving right + --- -0.854081 (0.546323), N = 222 moving right + --- -0.751157 (0.593387), N = 174 moving right + --- -0.655095 (0.612189), N = 130 moving right + --- -0.0719866 (0.592475), N = 34 moving right + + -- best stat: 0.612189, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 12 10 9 8 + + + -- linear combo weights (showing up to 5) + + 0.4565 -0.0362 -0.4720 -0.3187 1.8069 + + + -- cutpoint (score) + --- -1.60059 (0.544937), N = 245 moving right + --- -0.895141 (0.700353), N = 155 moving right + --- -0.845836 (0.718548), N = 143 moving right + --- -0.479105 (0.728823), N = 118 moving right + --- -0.401876 (0.723144), N = 107 moving right + + -- best stat: 0.728823, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 15 17 3 0 + + + -- linear combo weights (showing up to 5) + + 4.6436 -0.0532 0.4671 3.9445 -0.0984 + + + -- cutpoint (score) + --- 0.472722 (0.517416), N = 267 moving right + --- 1.30754 (0.592076), N = 180 moving right + --- 1.36927 (0.640166), N = 138 moving right + --- 1.37486 (0.644838), N = 136 moving right + --- 1.77226 (0.656917), N = 69 moving right + + -- best stat: 0.656917, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 459 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 173 +- max leaves: 87 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 12 7 2 1 + + + -- linear combo weights (showing up to 5) + + 0.1632 0.2111 12.0703 -1.1873 0.4129 + + + -- cutpoint (score) + --- -1.38954 (0.579313), N = 195 moving right + --- -1.22024 (0.640204), N = 160 moving right + --- -1.05937 (0.635365), N = 126 moving right + --- -0.857765 (0.661623), N = 101 moving right + --- 10.8154 (0.577225), N = 10 moving right + + -- best stat: 0.661623, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 0 5 8 16 + + + -- linear combo weights (showing up to 5) + + 0.2974 -0.3667 0.4707 2.0504 0.5729 + + + -- cutpoint (score) + --- -1.21964 (0.682305), N = 178 moving right + --- -0.414079 (0.78429), N = 110 moving right + --- 0.168469 (0.753316), N = 82 moving right + --- 2.46808 (0.629569), N = 26 moving right + --- 5.24545 (0.543083), N = 7 moving right + + -- best stat: 0.78429, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 2 3 17 12 + + + -- linear combo weights (showing up to 5) + + 10.0201 -1.4666 1.3150 0.6885 0.2220 + + + -- cutpoint (score) + --- 0.489535 (0.671915), N = 188 moving right + --- 0.54768 (0.709545), N = 154 moving right + --- 0.565312 (0.743466), N = 137 moving right + --- 0.569406 (0.751769), N = 133 moving right + --- 1.26567 (0.699253), N = 75 moving right + + -- best stat: 0.751769, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 1.7900e+02 9.8913e-01 1.0896e-02 + 1.9800e+02 9.8551e-01 1.4559e-02 + 3.0400e+02 9.7826e-01 2.1912e-02 + 3.2100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 460 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 17 1 9 8 + + + -- linear combo weights (showing up to 5) + + 0.0497 0.2395 0.4539 -0.2294 1.8229 + + + -- cutpoint (score) + --- -0.420482 (0.559321), N = 236 moving right + --- -0.312835 (0.597064), N = 220 moving right + --- -0.145001 (0.634961), N = 203 moving right + --- 0.305814 (0.721467), N = 137 moving right + --- 0.714959 (0.763679), N = 100 moving right + + -- best stat: 0.763679, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 16 10 17 14 + + + -- linear combo weights (showing up to 5) + + -0.6598 0.3282 -0.7790 0.4260 0.2903 + + + -- cutpoint (score) + --- -0.0211941 (0.593654), N = 222 moving right + --- 0.907522 (0.683184), N = 127 moving right + --- 0.967657 (0.693261), N = 120 moving right + --- 2.86803 (0.577605), N = 15 moving right + --- 3.09685 (0.565159), N = 12 moving right + + -- best stat: 0.693261, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 1 17 3 10 + + + -- linear combo weights (showing up to 5) + + -0.6012 0.3379 0.3794 6.3481 -0.5350 + + + -- cutpoint (score) + --- 0.427288 (0.569975), N = 230 moving right + --- 1.59516 (0.685978), N = 84 moving right + --- 1.9042 (0.68723), N = 51 moving right + --- 2.46453 (0.636945), N = 24 moving right + --- 2.53837 (0.629373), N = 23 moving right + + -- best stat: 0.68723, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.4000e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 461 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 6 0 4 10 + + + -- linear combo weights (showing up to 5) + + 0.5607 -0.7635 -0.2885 0.4714 -0.6129 + + + -- cutpoint (score) + --- -0.418752 (0.634485), N = 164 moving right + --- -0.408276 (0.637676), N = 163 moving right + --- -0.290434 (0.640325), N = 152 moving right + --- 0.222382 (0.654507), N = 84 moving right + --- 0.308979 (0.653798), N = 80 moving right + + -- best stat: 0.654507, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 7 4 0 8 + + + -- linear combo weights (showing up to 5) + + -0.3058 11.5796 0.0126 -0.2862 2.2816 + + + -- cutpoint (score) + --- -1.37437 (0.589142), N = 222 moving right + --- -1.07344 (0.680974), N = 150 moving right + --- -0.984687 (0.706691), N = 139 moving right + --- -0.837914 (0.734264), N = 122 moving right + --- -0.54405 (0.744692), N = 98 moving right + + -- best stat: 0.744692, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 8 6 7 0 1 + + + -- linear combo weights (showing up to 5) + + 1.9769 -0.1786 11.7969 -0.2290 0.4059 + + + -- cutpoint (score) + --- -1.46172 (0.583365), N = 235 moving right + --- -0.816657 (0.717036), N = 135 moving right + --- -0.400728 (0.764965), N = 96 moving right + --- -0.239786 (0.767801), N = 92 moving right + --- 8.97695 (0.578672), N = 12 moving right + + -- best stat: 0.767801, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 462 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 13 17 12 16 + + + -- linear combo weights (showing up to 5) + + 16.5460 0.1802 0.6492 0.0805 0.4011 + + + -- cutpoint (score) + --- 0.797122 (0.543297), N = 247 moving right + --- 1.76629 (0.700439), N = 140 moving right + --- 2.02308 (0.715224), N = 107 moving right + --- 2.7028 (0.700419), N = 56 moving right + --- 2.71739 (0.692406), N = 54 moving right + + -- best stat: 0.715224, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 13 6 16 3 9 + + + -- linear combo weights (showing up to 5) + + 0.1968 1.9891 0.4470 8.1939 0.3159 + + + -- cutpoint (score) + --- -0.602541 (0.568596), N = 240 moving right + --- -0.433541 (0.633328), N = 208 moving right + --- -0.37436 (0.659542), N = 194 moving right + --- 0.0293667 (0.749146), N = 125 moving right + --- 2.18975 (0.629708), N = 25 moving right + + -- best stat: 0.749146, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 6 15 12 14 + + + -- linear combo weights (showing up to 5) + + 1.1131 1.9486 -0.3600 0.1399 0.0817 + + + -- cutpoint (score) + --- -1.45043 (0.518445), N = 267 moving right + --- -0.763059 (0.656268), N = 190 moving right + --- -0.183634 (0.751037), N = 115 moving right + --- 0.111149 (0.731331), N = 90 moving right + --- 2.97687 (0.542626), N = 14 moving right + + -- best stat: 0.751037, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 3.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8188e-01 1.8208e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 463 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 12 8 7 13 + + + -- linear combo weights (showing up to 5) + + -0.1347 0.1699 1.7752 2.2624 -0.0201 + + + -- cutpoint (score) + --- -0.897449 (0.677547), N = 171 moving right + --- -0.888249 (0.673318), N = 166 moving right + --- -0.825817 (0.687069), N = 158 moving right + --- -0.155813 (0.733852), N = 98 moving right + --- 1.30531 (0.673166), N = 39 moving right + + -- best stat: 0.733852, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 6 10 9 8 + + + -- linear combo weights (showing up to 5) + + -0.1111 1.6616 -0.6861 -0.3818 2.0284 + + + -- cutpoint (score) + --- -1.66038 (0.540364), N = 239 moving right + --- -1.28211 (0.601505), N = 206 moving right + --- -1.08415 (0.670911), N = 171 moving right + --- -0.557206 (0.730642), N = 128 moving right + --- 0.273595 (0.739774), N = 84 moving right + + -- best stat: 0.739774, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 6 4 10 15 + + + -- linear combo weights (showing up to 5) + + -0.0601 1.9285 0.6728 -0.9889 -0.1252 + + + -- cutpoint (score) + --- -0.686035 (0.573743), N = 226 moving right + --- 0.103062 (0.669653), N = 163 moving right + --- 1.283 (0.695202), N = 64 moving right + --- 1.41519 (0.703444), N = 61 moving right + --- 1.43203 (0.706372), N = 60 moving right + + -- best stat: 0.706372, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 4.0000e+00 + 2.6400e+02 1.0000e+00 7.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.8188e-01 1.8235e-02 + 1.1000e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 464 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 4 6 8 11 + + + -- linear combo weights (showing up to 5) + + 0.2547 0.4520 0.6031 1.4417 0.5050 + + + -- cutpoint (score) + --- -1.3262 (0.543536), N = 256 moving right + --- -0.99582 (0.629516), N = 201 moving right + --- -0.0650013 (0.748095), N = 114 moving right + --- 0.129597 (0.766824), N = 98 moving right + --- 0.756161 (0.696789), N = 56 moving right + + -- best stat: 0.766824, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 13 17 11 7 + + + -- linear combo weights (showing up to 5) + + 0.6334 0.2763 0.4538 0.7729 3.6173 + + + -- cutpoint (score) + --- 0.678019 (0.540668), N = 255 moving right + --- 1.55392 (0.653446), N = 159 moving right + --- 1.58726 (0.676798), N = 148 moving right + --- 2.64487 (0.725107), N = 59 moving right + --- 4.39662 (0.586558), N = 19 moving right + + -- best stat: 0.725107, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 15 6 17 9 + + + -- linear combo weights (showing up to 5) + + 0.3167 -0.0999 1.8685 0.6492 0.3835 + + + -- cutpoint (score) + --- 0.640424 (0.523223), N = 265 moving right + --- 1.41223 (0.602911), N = 210 moving right + --- 1.82894 (0.681699), N = 157 moving right + --- 1.94117 (0.694499), N = 144 moving right + --- 2.19455 (0.716246), N = 115 moving right + + -- best stat: 0.716246, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.7464e-01 2.5575e-02 + 1.1000e+02 9.7101e-01 2.9293e-02 + 1.8600e+02 9.6014e-01 4.0487e-02 + + +------------ Growing tree 465 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 253 +- max leaves: 127 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 12 10 3 16 + + + -- linear combo weights (showing up to 5) + + 0.1427 0.0275 -0.6357 3.7194 0.6744 + + + -- cutpoint (score) + --- -0.575726 (0.625956), N = 202 moving right + --- -0.555506 (0.634318), N = 197 moving right + --- -0.481739 (0.636144), N = 194 moving right + --- -0.280829 (0.659403), N = 169 moving right + --- 3.85597 (0.589024), N = 22 moving right + + -- best stat: 0.659403, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 17 10 14 13 + + + -- linear combo weights (showing up to 5) + + 0.4375 0.2081 -0.7511 0.2407 0.3850 + + + -- cutpoint (score) + --- -0.11395 (0.599363), N = 233 moving right + --- 1.09662 (0.715036), N = 127 moving right + --- 1.28199 (0.695714), N = 107 moving right + --- 1.94208 (0.659931), N = 62 moving right + --- 2.86831 (0.574918), N = 18 moving right + + -- best stat: 0.715036, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 1 0 12 4 + + + -- linear combo weights (showing up to 5) + + 0.3679 0.3815 -0.1132 0.1339 0.6449 + + + -- cutpoint (score) + --- 0.248021 (0.524106), N = 263 moving right + --- 0.661046 (0.593695), N = 231 moving right + --- 0.912237 (0.64396), N = 203 moving right + --- 1.64338 (0.68722), N = 111 moving right + --- 1.7908 (0.695337), N = 95 moving right + + -- best stat: 0.695337, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.8188e-01 1.8196e-02 + 1.1000e+02 9.7464e-01 2.5576e-02 + 1.4000e+02 9.7101e-01 2.9293e-02 + 1.7900e+02 9.6377e-01 3.6756e-02 + + +------------ Growing tree 466 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 6 12 17 13 + + + -- linear combo weights (showing up to 5) + + -0.0569 1.0614 -0.0438 0.7813 0.6338 + + + -- cutpoint (score) + --- 2.15572 (0.717676), N = 157 moving right + --- 2.25329 (0.706257), N = 143 moving right + --- 3.1484 (0.654693), N = 59 moving right + --- 3.46456 (0.633956), N = 44 moving right + --- 4.52895 (0.529737), N = 10 moving right + + -- best stat: 0.717676, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 7 16 1 9 + + + -- linear combo weights (showing up to 5) + + 0.5975 6.9908 0.4011 0.3080 0.3586 + + + -- cutpoint (score) + --- 0.817825 (0.562289), N = 246 moving right + --- 1.51079 (0.702074), N = 155 moving right + --- 1.79164 (0.72063), N = 130 moving right + --- 2.77796 (0.668689), N = 51 moving right + --- 4.07748 (0.613358), N = 22 moving right + + -- best stat: 0.72063, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 4 13 12 8 + + + -- linear combo weights (showing up to 5) + + 0.0930 0.5309 0.2101 -0.1115 1.3699 + + + -- cutpoint (score) + --- -1.02088 (0.537112), N = 259 moving right + --- -0.756694 (0.64593), N = 201 moving right + --- -0.499709 (0.711074), N = 163 moving right + --- 0.188795 (0.725566), N = 87 moving right + --- 0.58429 (0.699615), N = 62 moving right + + -- best stat: 0.725566, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 4.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 5.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.7464e-01 2.5548e-02 + 7.7000e+01 9.7101e-01 2.9265e-02 + 1.1000e+02 9.6739e-01 3.2997e-02 + + +------------ Growing tree 467 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 241 +- max leaves: 121 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 1 8 5 0 + + + -- linear combo weights (showing up to 5) + + 0.3685 0.4539 1.4355 0.5630 -0.0920 + + + -- cutpoint (score) + --- 0.0221543 (0.609924), N = 221 moving right + --- 0.537524 (0.703174), N = 172 moving right + --- 0.544448 (0.705412), N = 171 moving right + --- 2.9561 (0.66291), N = 36 moving right + --- 4.01212 (0.622384), N = 25 moving right + + -- best stat: 0.705412, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 4 12 13 2 + + + -- linear combo weights (showing up to 5) + + -0.9712 0.8730 -0.1673 0.4511 -1.3511 + + + -- cutpoint (score) + --- -2.40648 (0.535384), N = 255 moving right + --- -2.0041 (0.581031), N = 233 moving right + --- -0.15034 (0.743094), N = 91 moving right + --- 0.419521 (0.695774), N = 53 moving right + --- 0.57852 (0.672164), N = 48 moving right + + -- best stat: 0.743094, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 5 2 16 13 + + + -- linear combo weights (showing up to 5) + + 5.8655 1.0678 -1.0674 0.5758 0.5027 + + + -- cutpoint (score) + --- -1.77894 (0.561716), N = 244 moving right + --- -1.74437 (0.571213), N = 239 moving right + --- -1.36448 (0.651821), N = 198 moving right + --- -0.023488 (0.721823), N = 95 moving right + --- 0.266829 (0.705089), N = 75 moving right + + -- best stat: 0.721823, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 468 -------------- + +- N obs inbag: 276 +- N row inbag: 173 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 17 10 7 16 11 + + + -- linear combo weights (showing up to 5) + + 0.1695 -0.3123 5.1973 0.2026 1.2547 + + + -- cutpoint (score) + --- -1.03223 (0.519166), N = 264 moving right + --- -0.562856 (0.610005), N = 213 moving right + --- -0.422942 (0.622585), N = 201 moving right + --- 0.206764 (0.722139), N = 127 moving right + --- 1.27224 (0.714114), N = 63 moving right + + -- best stat: 0.722139, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 0 14 9 6 13 + + + -- linear combo weights (showing up to 5) + + -0.4420 0.3210 0.1619 1.0592 0.3303 + + + -- cutpoint (score) + --- -0.778136 (0.570353), N = 234 moving right + --- -0.451978 (0.626627), N = 176 moving right + --- -0.0643766 (0.647685), N = 120 moving right + --- 0.63139 (0.57331), N = 41 moving right + --- 1.40348 (0.5307), N = 9 moving right + + -- best stat: 0.647685, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 14 12 0 7 + + + -- linear combo weights (showing up to 5) + + 0.5239 0.5637 0.0238 -0.4856 7.3184 + + + -- cutpoint (score) + --- -0.899105 (0.570353), N = 228 moving right + --- -0.555088 (0.624951), N = 177 moving right + --- -0.256935 (0.624458), N = 148 moving right + --- -0.163648 (0.646285), N = 139 moving right + --- -0.0302861 (0.647311), N = 119 moving right + + -- best stat: 0.647311, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 469 -------------- + +- N obs inbag: 276 +- N row inbag: 168 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 8 14 11 16 + + + -- linear combo weights (showing up to 5) + + 4.3551 1.8068 0.1795 0.1544 0.4264 + + + -- cutpoint (score) + --- -1.58605 (0.531717), N = 257 moving right + --- -0.849708 (0.711839), N = 146 moving right + --- 0.0829573 (0.727414), N = 91 moving right + --- 0.408783 (0.715659), N = 71 moving right + --- 3.95046 (0.63157), N = 23 moving right + + -- best stat: 0.727414, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 9 12 7 3 + + + -- linear combo weights (showing up to 5) + + 0.7131 0.5467 -0.0659 3.0508 6.5424 + + + -- cutpoint (score) + --- -0.23178 (0.57225), N = 232 moving right + --- -0.0495306 (0.636461), N = 187 moving right + --- 0.568189 (0.69471), N = 97 moving right + --- 0.682301 (0.69872), N = 72 moving right + --- 1.40509 (0.632767), N = 31 moving right + + -- best stat: 0.69872, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 2 12 4 0 8 + + + -- linear combo weights (showing up to 5) + + -0.4718 -0.0543 0.4735 -0.4398 2.2353 + + + -- cutpoint (score) + --- -1.55348 (0.625378), N = 189 moving right + --- -0.66182 (0.683417), N = 100 moving right + --- 0.291129 (0.714106), N = 57 moving right + --- 1.39301 (0.654303), N = 37 moving right + --- 3.48598 (0.587531), N = 14 moving right + + -- best stat: 0.714106, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.1000e+02 9.7826e-01 2.1899e-02 + 1.7900e+02 9.7464e-01 2.5603e-02 + + +------------ Growing tree 470 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 217 +- max leaves: 109 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 2 17 16 14 3 + + + -- linear combo weights (showing up to 5) + + -0.2390 0.3893 0.3127 0.2354 9.4460 + + + -- cutpoint (score) + --- 0.228758 (0.551606), N = 251 moving right + --- 0.39306 (0.58574), N = 224 moving right + --- 0.648351 (0.645062), N = 179 moving right + --- 0.711083 (0.649263), N = 169 moving right + --- 0.748592 (0.641992), N = 162 moving right + + -- best stat: 0.649263, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 3 10 4 7 + + + -- linear combo weights (showing up to 5) + + 0.3025 8.4149 -0.2439 0.5232 3.3055 + + + -- cutpoint (score) + --- 0.375223 (0.523975), N = 255 moving right + --- 0.851319 (0.631913), N = 175 moving right + --- 1.52515 (0.661099), N = 81 moving right + --- 1.72519 (0.652636), N = 63 moving right + --- 1.76135 (0.641891), N = 53 moving right + + -- best stat: 0.661099, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 16 13 10 2 + + + -- linear combo weights (showing up to 5) + + 0.4648 0.4338 0.4527 -0.6548 -0.4346 + + + -- cutpoint (score) + --- -0.295414 (0.561159), N = 241 moving right + --- 0.453195 (0.653262), N = 169 moving right + --- 1.96144 (0.675439), N = 52 moving right + --- 2.12849 (0.65514), N = 40 moving right + --- 2.20984 (0.646738), N = 38 moving right + + -- best stat: 0.675439, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.7826e-01 2.1898e-02 + 1.8600e+02 9.7464e-01 2.5602e-02 + + +------------ Growing tree 471 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 15 12 9 4 + + + -- linear combo weights (showing up to 5) + + 1.6289 0.0051 0.0697 0.2451 1.1454 + + + -- cutpoint (score) + --- -0.0823693 (0.568918), N = 212 moving right + --- -0.0634397 (0.574492), N = 205 moving right + --- 0.203746 (0.656639), N = 155 moving right + --- 0.972086 (0.611559), N = 127 moving right + --- 2.60663 (0.566546), N = 18 moving right + + -- best stat: 0.656639, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 2 9 15 6 + + + -- linear combo weights (showing up to 5) + + 1.3058 -0.4044 0.3094 -0.0433 1.8657 + + + -- cutpoint (score) + --- -0.602864 (0.549311), N = 255 moving right + --- -0.527552 (0.593652), N = 217 moving right + --- -0.442488 (0.638553), N = 176 moving right + --- -0.265754 (0.66886), N = 133 moving right + --- 0.790406 (0.58772), N = 70 moving right + + -- best stat: 0.66886, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 7 4 2 0 + + + -- linear combo weights (showing up to 5) + + 0.5917 2.2887 1.0702 -0.0069 -0.7578 + + + -- cutpoint (score) + --- -1.13767 (0.546938), N = 254 moving right + --- -0.844256 (0.568538), N = 241 moving right + --- -0.492164 (0.60171), N = 210 moving right + --- 0.514291 (0.71826), N = 101 moving right + --- 0.983746 (0.705099), N = 66 moving right + + -- best stat: 0.71826, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 472 -------------- + +- N obs inbag: 276 +- N row inbag: 170 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 17 9 8 2 + + + -- linear combo weights (showing up to 5) + + 0.0982 0.3045 -0.5046 1.9729 -1.0348 + + + -- cutpoint (score) + --- -1.55776 (0.527539), N = 259 moving right + --- -0.900969 (0.663498), N = 175 moving right + --- -0.306467 (0.745905), N = 124 moving right + --- 0.0381364 (0.769076), N = 108 moving right + --- 0.19522 (0.767196), N = 96 moving right + + -- best stat: 0.769076, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 17 13 12 10 + + + -- linear combo weights (showing up to 5) + + -0.3285 0.3950 0.6549 -0.1107 -0.6546 + + + -- cutpoint (score) + --- 0.148859 (0.573046), N = 231 moving right + --- 1.13922 (0.668387), N = 136 moving right + --- 1.72758 (0.685186), N = 83 moving right + --- 2.00969 (0.64018), N = 63 moving right + --- 3.44942 (0.530568), N = 6 moving right + + -- best stat: 0.685186, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 8 6 17 7 + + + -- linear combo weights (showing up to 5) + + 0.3440 1.5559 0.8180 0.2988 3.3462 + + + -- cutpoint (score) + --- -0.665833 (0.525198), N = 261 moving right + --- -0.537022 (0.539031), N = 256 moving right + --- -0.249408 (0.560656), N = 240 moving right + --- -0.239173 (0.562599), N = 238 moving right + --- 9.07165 (0.530735), N = 5 moving right + + -- best stat: 0.562599, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.7000e+01 9.8551e-01 1.4533e-02 + 1.3100e+02 9.8188e-01 1.8209e-02 + 1.4000e+02 9.7464e-01 2.5589e-02 + 1.8600e+02 9.7101e-01 2.9307e-02 + + +------------ Growing tree 473 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 11 3 12 7 + + + -- linear combo weights (showing up to 5) + + 0.4756 0.8676 6.3421 0.2308 2.9021 + + + -- cutpoint (score) + --- -0.529029 (0.684528), N = 184 moving right + --- -0.464393 (0.70609), N = 171 moving right + --- 0.537338 (0.725239), N = 86 moving right + --- 1.4539 (0.657412), N = 44 moving right + --- 10.0864 (0.550228), N = 10 moving right + + -- best stat: 0.725239, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 10 8 17 6 + + + -- linear combo weights (showing up to 5) + + -0.1333 -0.4635 1.8540 0.2422 1.8272 + + + -- cutpoint (score) + --- -0.598663 (0.623136), N = 205 moving right + --- -0.541415 (0.639048), N = 198 moving right + --- -0.0310273 (0.708072), N = 158 moving right + --- 0.676992 (0.762832), N = 106 moving right + --- 2.76981 (0.678053), N = 39 moving right + + -- best stat: 0.762832, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 4 7 13 14 + + + -- linear combo weights (showing up to 5) + + 0.1449 0.5946 4.2241 0.4490 0.4391 + + + -- cutpoint (score) + --- -0.803788 (0.53304), N = 253 moving right + --- -0.661187 (0.556506), N = 236 moving right + --- -0.449447 (0.599003), N = 212 moving right + --- 0.412306 (0.686038), N = 118 moving right + --- 1.56487 (0.61982), N = 35 moving right + + -- best stat: 0.686038, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.1000e+01 9.7464e-01 2.5575e-02 + 7.7000e+01 9.7101e-01 2.9293e-02 + 1.4000e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 474 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 237 +- max leaves: 119 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 2 3 13 5 + + + -- linear combo weights (showing up to 5) + + 1.1139 -0.9142 9.4864 0.1817 0.4654 + + + -- cutpoint (score) + --- -1.68311 (0.571287), N = 241 moving right + --- -1.25675 (0.709504), N = 173 moving right + --- -1.17477 (0.715039), N = 166 moving right + --- -0.550573 (0.74468), N = 104 moving right + --- -0.393462 (0.719359), N = 84 moving right + + -- best stat: 0.74468, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 12 10 7 15 14 + + + -- linear combo weights (showing up to 5) + + 0.1170 -0.3890 5.0249 -0.1563 0.4175 + + + -- cutpoint (score) + --- -1.34206 (0.499158), N = 269 moving right + --- -0.87554 (0.531791), N = 256 moving right + --- -0.308147 (0.602199), N = 191 moving right + --- 0.305061 (0.648222), N = 81 moving right + --- 0.523242 (0.638535), N = 56 moving right + + -- best stat: 0.648222, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 3 12 15 4 + + + -- linear combo weights (showing up to 5) + + 0.3043 10.2174 0.0854 0.0187 0.8942 + + + -- cutpoint (score) + --- -0.255806 (0.549314), N = 249 moving right + --- -0.0619037 (0.636908), N = 196 moving right + --- -0.00421503 (0.632139), N = 192 moving right + --- 0.407601 (0.657965), N = 153 moving right + --- 1.00279 (0.655216), N = 67 moving right + + -- best stat: 0.657965, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 475 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 227 +- max leaves: 114 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 2 12 1 17 + + + -- linear combo weights (showing up to 5) + + 2.4587 -0.5955 0.2010 0.0382 0.6575 + + + -- cutpoint (score) + --- 1.29325 (0.668261), N = 156 moving right + --- 1.2964 (0.670865), N = 155 moving right + --- 1.37919 (0.674274), N = 127 moving right + --- 1.98535 (0.641164), N = 65 moving right + --- 2.04493 (0.620247), N = 46 moving right + + -- best stat: 0.674274, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 16 1 17 8 + + + -- linear combo weights (showing up to 5) + + -0.3533 0.3047 0.1484 0.4257 1.5737 + + + -- cutpoint (score) + --- -0.377223 (0.595669), N = 228 moving right + --- 0.212537 (0.707215), N = 146 moving right + --- 0.709356 (0.744919), N = 106 moving right + --- 1.09518 (0.747057), N = 83 moving right + --- 1.55227 (0.73444), N = 59 moving right + + -- best stat: 0.747057, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 0 17 12 6 2 + + + -- linear combo weights (showing up to 5) + + 0.1274 0.6693 0.1566 1.5068 -0.7191 + + + -- cutpoint (score) + --- 0.627836 (0.577039), N = 230 moving right + --- 0.643469 (0.584237), N = 227 moving right + --- 1.34486 (0.677725), N = 156 moving right + --- 2.07037 (0.624248), N = 52 moving right + --- 3.54871 (0.532264), N = 9 moving right + + -- best stat: 0.677725, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 5.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8551e-01 1.4532e-02 + 7.7000e+01 9.8188e-01 1.8209e-02 + 1.8600e+02 9.6377e-01 3.6659e-02 + 1.9800e+02 9.5652e-01 4.4178e-02 + + +------------ Growing tree 476 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 6 13 0 5 + + + -- linear combo weights (showing up to 5) + + 0.7336 1.2303 0.4638 -0.2590 1.3278 + + + -- cutpoint (score) + --- -0.514933 (0.652339), N = 201 moving right + --- -0.174478 (0.674824), N = 166 moving right + --- 1.77185 (0.648143), N = 35 moving right + --- 3.43962 (0.546055), N = 10 moving right + --- 3.74931 (0.519454), N = 5 moving right + + -- best stat: 0.674824, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 7 5 17 9 + + + -- linear combo weights (showing up to 5) + + -0.1241 8.0343 0.7337 0.5136 0.1973 + + + -- cutpoint (score) + --- 0.996869 (0.593395), N = 231 moving right + --- 1.89165 (0.690564), N = 142 moving right + --- 2.18183 (0.700723), N = 90 moving right + --- 2.36463 (0.696627), N = 70 moving right + --- 10.343 (0.560911), N = 12 moving right + + -- best stat: 0.700723, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 8 14 9 3 + + + -- linear combo weights (showing up to 5) + + 0.9564 1.6689 -0.2220 -0.3488 3.4413 + + + -- cutpoint (score) + --- -1.76373 (0.524915), N = 264 moving right + --- -1.58961 (0.554527), N = 248 moving right + --- -1.57536 (0.559205), N = 243 moving right + --- -1.27013 (0.642361), N = 204 moving right + --- -0.626664 (0.751998), N = 121 moving right + + -- best stat: 0.751998, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 3.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8551e-01 1.4559e-02 + 7.7000e+01 9.7464e-01 2.5588e-02 + 1.1000e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 477 -------------- + +- N obs inbag: 276 +- N row inbag: 182 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 3 6 1 8 + + + -- linear combo weights (showing up to 5) + + 0.0223 5.2863 0.1960 0.3357 1.3943 + + + -- cutpoint (score) + --- -0.711666 (0.645305), N = 187 moving right + --- -0.438493 (0.725874), N = 135 moving right + --- -0.0676393 (0.777712), N = 87 moving right + --- 0.474331 (0.736062), N = 64 moving right + --- 8.74525 (0.563086), N = 10 moving right + + -- best stat: 0.777712, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 7 4 5 9 + + + -- linear combo weights (showing up to 5) + + 0.4858 9.4309 0.6285 0.5026 0.6099 + + + -- cutpoint (score) + --- -0.210567 (0.604899), N = 217 moving right + --- -0.141851 (0.626212), N = 207 moving right + --- -0.0695428 (0.644062), N = 200 moving right + --- 0.52902 (0.720311), N = 133 moving right + --- 1.90638 (0.623625), N = 29 moving right + + -- best stat: 0.720311, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 6 2 9 8 + + + -- linear combo weights (showing up to 5) + + 0.8741 0.3400 0.7193 -0.3836 1.4447 + + + -- cutpoint (score) + --- -0.660942 (0.57957), N = 236 moving right + --- -0.302915 (0.676441), N = 179 moving right + --- -0.0531421 (0.703929), N = 137 moving right + --- 2.45025 (0.661056), N = 35 moving right + --- 3.19657 (0.644083), N = 30 moving right + + -- best stat: 0.703929, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 7.1000e+01 9.8913e-01 1.0909e-02 + 7.7000e+01 9.8551e-01 1.4572e-02 + 1.3100e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 478 -------------- + +- N obs inbag: 276 +- N row inbag: 166 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 1 0 16 6 + + + -- linear combo weights (showing up to 5) + + 1.0136 0.2375 -0.1713 0.2853 0.3024 + + + -- cutpoint (score) + --- -0.437182 (0.545783), N = 248 moving right + --- -0.285949 (0.577668), N = 225 moving right + --- -0.0990832 (0.601214), N = 209 moving right + --- 0.498241 (0.667784), N = 139 moving right + --- 1.39049 (0.582982), N = 23 moving right + + -- best stat: 0.667784, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 14 17 0 8 + + + -- linear combo weights (showing up to 5) + + 4.7443 0.2797 0.4874 -0.2628 1.4877 + + + -- cutpoint (score) + --- 0.289886 (0.651739), N = 210 moving right + --- 1.03812 (0.73603), N = 117 moving right + --- 1.14065 (0.752545), N = 98 moving right + --- 4.26491 (0.660242), N = 32 moving right + --- 7.88171 (0.562503), N = 10 moving right + + -- best stat: 0.752545, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 0 8 14 13 + + + -- linear combo weights (showing up to 5) + + 0.4305 -0.1649 1.8351 0.3116 -0.0492 + + + -- cutpoint (score) + --- -1.52914 (0.559641), N = 245 moving right + --- -1.21478 (0.611066), N = 203 moving right + --- -1.07996 (0.640968), N = 184 moving right + --- 0.0851984 (0.739668), N = 63 moving right + --- 6.8308 (0.528512), N = 5 moving right + + -- best stat: 0.739668, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 3.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7464e-01 2.5588e-02 + 1.3100e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 479 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 4 16 9 6 0 + + + -- linear combo weights (showing up to 5) + + 0.5780 0.5747 0.4480 0.1069 -0.1070 + + + -- cutpoint (score) + --- -0.702123 (0.544752), N = 253 moving right + --- -0.535563 (0.572622), N = 231 moving right + --- 0.152951 (0.715425), N = 138 moving right + --- 0.62506 (0.678169), N = 69 moving right + --- 0.70671 (0.672275), N = 66 moving right + + -- best stat: 0.715425, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 3 12 14 13 + + + -- linear combo weights (showing up to 5) + + -0.0689 9.1981 0.0572 0.0606 0.5679 + + + -- cutpoint (score) + --- -0.657219 (0.548682), N = 250 moving right + --- -0.595194 (0.571649), N = 240 moving right + --- -0.215568 (0.665141), N = 174 moving right + --- -0.137109 (0.681565), N = 157 moving right + --- 0.372662 (0.67155), N = 68 moving right + + -- best stat: 0.681565, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 14 10 7 11 + + + -- linear combo weights (showing up to 5) + + -0.0954 0.3184 -0.6607 4.2054 0.6271 + + + -- cutpoint (score) + --- -0.276722 (0.687154), N = 172 moving right + --- 0.0314515 (0.721186), N = 136 moving right + --- 0.340114 (0.74877), N = 102 moving right + --- 1.01521 (0.696692), N = 64 moving right + --- 2.74866 (0.610221), N = 22 moving right + + -- best stat: 0.74877, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.7826e-01 2.1912e-02 + 1.3100e+02 9.7101e-01 2.9319e-02 + + +------------ Growing tree 480 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 229 +- max leaves: 115 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 0 7 12 8 + + + -- linear combo weights (showing up to 5) + + 0.4908 -0.3239 4.8329 -0.0382 1.5165 + + + -- cutpoint (score) + --- -1.64285 (0.515846), N = 269 moving right + --- -1.41724 (0.592381), N = 228 moving right + --- -1.1224 (0.680224), N = 175 moving right + --- -1.10392 (0.686237), N = 172 moving right + --- -0.344616 (0.762093), N = 104 moving right + + -- best stat: 0.762093, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 12 14 11 7 + + + -- linear combo weights (showing up to 5) + + -0.6647 -0.0630 0.3581 0.7189 5.7820 + + + -- cutpoint (score) + --- -1.34557 (0.545638), N = 247 moving right + --- -0.908346 (0.60365), N = 218 moving right + --- -0.114034 (0.704217), N = 137 moving right + --- -0.0112978 (0.72431), N = 124 moving right + --- 0.306134 (0.741728), N = 94 moving right + + -- best stat: 0.741728, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 13 7 3 17 + + + -- linear combo weights (showing up to 5) + + 0.1215 0.2824 3.8427 12.5458 0.4604 + + + -- cutpoint (score) + --- 1.04738 (0.635556), N = 194 moving right + --- 1.04929 (0.632298), N = 193 moving right + --- 1.21625 (0.678944), N = 160 moving right + --- 1.65957 (0.696575), N = 96 moving right + --- 14.3744 (0.581268), N = 13 moving right + + -- best stat: 0.696575, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 5.1000e+01 9.8551e-01 1.4533e-02 + 7.1000e+01 9.7826e-01 2.1886e-02 + 7.7000e+01 9.6739e-01 3.2997e-02 + 1.1000e+02 9.6377e-01 3.6742e-02 + + +------------ Growing tree 481 -------------- + +- N obs inbag: 276 +- N row inbag: 174 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 15 14 17 11 10 + + + -- linear combo weights (showing up to 5) + + 0.0404 0.1195 0.7251 1.0084 -0.5817 + + + -- cutpoint (score) + --- 1.75648 (0.710413), N = 157 moving right + --- 2.44764 (0.767772), N = 94 moving right + --- 2.45436 (0.771621), N = 92 moving right + --- 2.84845 (0.736682), N = 73 moving right + --- 3.42747 (0.695689), N = 51 moving right + + -- best stat: 0.771621, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 7 3 16 8 + + + -- linear combo weights (showing up to 5) + + 0.5725 0.9853 0.5332 0.5924 1.7980 + + + -- cutpoint (score) + --- -1.40229 (0.561381), N = 240 moving right + --- -0.367158 (0.765005), N = 107 moving right + --- 0.324748 (0.737914), N = 76 moving right + --- 1.78376 (0.660036), N = 35 moving right + --- 6.1612 (0.551673), N = 8 moving right + + -- best stat: 0.765005, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 9 17 4 2 + + + -- linear combo weights (showing up to 5) + + 0.8173 0.2320 0.7124 0.3865 -1.0340 + + + -- cutpoint (score) + --- 0.286805 (0.537144), N = 259 moving right + --- 1.443 (0.697808), N = 153 moving right + --- 2.16333 (0.688684), N = 80 moving right + --- 2.8759 (0.611282), N = 40 moving right + --- 3.07948 (0.535523), N = 12 moving right + + -- best stat: 0.697808, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + 4.0000e+02 1.0000e+00 1.0000e+00 + 4.6000e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 2.1600e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 482 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 215 +- max leaves: 108 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 12 2 14 10 1 + + + -- linear combo weights (showing up to 5) + + -0.0074 -0.6809 0.4612 -0.7609 0.3982 + + + -- cutpoint (score) + --- -1.82789 (0.553537), N = 241 moving right + --- -0.631473 (0.681578), N = 137 moving right + --- -0.583545 (0.687162), N = 131 moving right + --- 0.313363 (0.648649), N = 51 moving right + --- 1.07461 (0.564289), N = 19 moving right + + -- best stat: 0.687162, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 15 6 0 2 4 + + + -- linear combo weights (showing up to 5) + + -0.2149 0.8210 0.0096 -0.4940 0.7567 + + + -- cutpoint (score) + --- -0.482649 (0.59839), N = 206 moving right + --- 0.331685 (0.636129), N = 79 moving right + --- 0.405517 (0.616514), N = 67 moving right + --- 0.596683 (0.58587), N = 42 moving right + --- 1.00962 (0.555882), N = 21 moving right + + -- best stat: 0.636129, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 12 11 2 7 10 + + + -- linear combo weights (showing up to 5) + + -0.2204 1.0742 -0.3244 10.3892 -0.6069 + + + -- cutpoint (score) + --- -1.49445 (0.561208), N = 237 moving right + --- -1.22832 (0.602762), N = 213 moving right + --- 0.00578611 (0.725238), N = 95 moving right + --- 0.100054 (0.728478), N = 92 moving right + --- 1.68484 (0.632631), N = 28 moving right + + -- best stat: 0.728478, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.8913e-01 1.0870e-02 + 7.1000e+01 9.8551e-01 1.4533e-02 + 7.7000e+01 9.7826e-01 2.1886e-02 + 1.1000e+02 9.7464e-01 2.5589e-02 + 1.3100e+02 9.7101e-01 2.9307e-02 + + +------------ Growing tree 483 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 10 15 0 9 7 + + + -- linear combo weights (showing up to 5) + + -0.7672 -0.0879 -0.3006 0.3436 10.7156 + + + -- cutpoint (score) + --- -0.995925 (0.576396), N = 236 moving right + --- -0.576302 (0.626423), N = 189 moving right + --- -0.356012 (0.664621), N = 161 moving right + --- 0.261278 (0.700004), N = 82 moving right + --- 1.20289 (0.630402), N = 37 moving right + + -- best stat: 0.700004, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 17 14 13 7 + + + -- linear combo weights (showing up to 5) + + 0.9262 0.5106 0.2205 0.3277 10.7650 + + + -- cutpoint (score) + --- 0.351845 (0.576904), N = 234 moving right + --- 0.407023 (0.588458), N = 230 moving right + --- 0.7407 (0.624921), N = 203 moving right + --- 1.78325 (0.739112), N = 99 moving right + --- 4.01895 (0.608372), N = 22 moving right + + -- best stat: 0.739112, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 11 7 16 17 13 + + + -- linear combo weights (showing up to 5) + + 0.9270 10.2487 0.4089 0.4171 0.3688 + + + -- cutpoint (score) + --- 0.0993887 (0.591463), N = 231 moving right + --- 0.458798 (0.642993), N = 204 moving right + --- 0.785291 (0.715791), N = 154 moving right + --- 1.25461 (0.712236), N = 115 moving right + --- 1.73893 (0.72815), N = 84 moving right + + -- best stat: 0.72815, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 6.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 3.0000e+00 + 3.4800e+02 1.0000e+00 1.0000e+00 + 3.8800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.7826e-01 2.1739e-02 + 7.7000e+01 9.7464e-01 2.5443e-02 + 1.1000e+02 9.7101e-01 2.9160e-02 + 1.4000e+02 9.6739e-01 3.2892e-02 + 1.7900e+02 9.6377e-01 3.6637e-02 + + +------------ Growing tree 484 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 243 +- max leaves: 122 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 17 8 1 13 + + + -- linear combo weights (showing up to 5) + + -0.0423 0.4624 1.4925 0.3555 0.1115 + + + -- cutpoint (score) + --- 0.280491 (0.637386), N = 205 moving right + --- 1.26618 (0.759139), N = 115 moving right + --- 1.33317 (0.766266), N = 111 moving right + --- 2.47948 (0.659418), N = 47 moving right + --- 3.85193 (0.622998), N = 30 moving right + + -- best stat: 0.766266, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 5 1 10 4 7 + + + -- linear combo weights (showing up to 5) + + 0.6527 0.4092 -0.4957 0.2604 6.4187 + + + -- cutpoint (score) + --- -0.33079 (0.625239), N = 203 moving right + --- -0.02199 (0.66028), N = 166 moving right + --- 0.275181 (0.721454), N = 123 moving right + --- 0.290443 (0.715151), N = 120 moving right + --- 0.476762 (0.734884), N = 105 moving right + + -- best stat: 0.734884, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 11 4 17 16 + + + -- linear combo weights (showing up to 5) + + 0.3976 0.7417 -0.0233 0.6381 0.4542 + + + -- cutpoint (score) + --- 2.09656 (0.72519), N = 110 moving right + --- 2.20908 (0.730037), N = 98 moving right + --- 2.39219 (0.719921), N = 85 moving right + --- 2.41965 (0.714059), N = 83 moving right + --- 3.76252 (0.570025), N = 21 moving right + + -- best stat: 0.730037, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 4.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8188e-01 1.8169e-02 + 7.1000e+01 9.7826e-01 2.1859e-02 + 1.1000e+02 9.7464e-01 2.5562e-02 + 1.3100e+02 9.6739e-01 3.2997e-02 + + +------------ Growing tree 485 -------------- + +- N obs inbag: 276 +- N row inbag: 172 +- max nodes: 223 +- max leaves: 112 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 2 8 12 15 + + + -- linear combo weights (showing up to 5) + + -0.2772 0.2333 2.4010 0.1792 -0.2588 + + + -- cutpoint (score) + --- -1.12831 (0.639991), N = 196 moving right + --- -1.05491 (0.659032), N = 186 moving right + --- -0.47392 (0.747876), N = 120 moving right + --- -0.195217 (0.761623), N = 96 moving right + --- 8.05094 (0.541199), N = 7 moving right + + -- best stat: 0.761623, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 3 4 12 7 + + + -- linear combo weights (showing up to 5) + + -0.3735 1.7359 0.5377 0.2073 17.3823 + + + -- cutpoint (score) + --- 0.0767333 (0.646928), N = 170 moving right + --- 0.198321 (0.659352), N = 152 moving right + --- 0.259646 (0.65235), N = 138 moving right + --- 0.703424 (0.654592), N = 54 moving right + --- 2.09869 (0.611685), N = 18 moving right + + -- best stat: 0.659352, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 16 5 6 0 8 + + + -- linear combo weights (showing up to 5) + + 0.3360 0.7881 -0.3886 -0.1870 2.2691 + + + -- cutpoint (score) + --- -1.59932 (0.567519), N = 240 moving right + --- -1.5586 (0.575759), N = 235 moving right + --- -1.43372 (0.647462), N = 198 moving right + --- -0.723862 (0.727682), N = 135 moving right + --- -0.558589 (0.738185), N = 125 moving right + + -- best stat: 0.738185, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 3.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 2.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8188e-01 1.8195e-02 + 1.3100e+02 9.7464e-01 2.5575e-02 + 1.7900e+02 9.6377e-01 3.6728e-02 + 2.1600e+02 9.5652e-01 4.4247e-02 + + +------------ Growing tree 486 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 3 8 14 11 10 + + + -- linear combo weights (showing up to 5) + + 1.8833 1.4149 -0.1235 0.3821 -0.2454 + + + -- cutpoint (score) + --- -1.39999 (0.530334), N = 259 moving right + --- 0.192617 (0.722899), N = 89 moving right + --- 0.199442 (0.722559), N = 88 moving right + --- 0.249979 (0.720144), N = 83 moving right + --- 4.88231 (0.575357), N = 13 moving right + + -- best stat: 0.722899, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 10 7 8 13 11 + + + -- linear combo weights (showing up to 5) + + -0.3263 3.2259 1.4369 -0.1290 0.3328 + + + -- cutpoint (score) + --- -1.11818 (0.59709), N = 231 moving right + --- -0.917055 (0.637623), N = 201 moving right + --- -0.908613 (0.650794), N = 193 moving right + --- 0.117319 (0.765726), N = 94 moving right + --- 0.392935 (0.719646), N = 70 moving right + + -- best stat: 0.765726, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 1 17 2 13 + + + -- linear combo weights (showing up to 5) + + 0.7507 0.2818 0.5214 -0.6249 0.2429 + + + -- cutpoint (score) + --- 1.15409 (0.673844), N = 161 moving right + --- 1.44802 (0.702263), N = 117 moving right + --- 1.61859 (0.706514), N = 105 moving right + --- 1.89421 (0.672368), N = 75 moving right + --- 2.18574 (0.632614), N = 40 moving right + + -- best stat: 0.706514, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.1000e+02 9.6739e-01 3.2982e-02 + 1.3100e+02 9.6377e-01 3.6728e-02 + + +------------ Growing tree 487 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 245 +- max leaves: 123 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 10 7 2 12 + + + -- linear combo weights (showing up to 5) + + 0.2590 -0.6022 4.1755 -1.0851 0.0902 + + + -- cutpoint (score) + --- -1.91097 (0.528648), N = 251 moving right + --- -1.59412 (0.562749), N = 231 moving right + --- -1.01984 (0.671592), N = 133 moving right + --- -0.43566 (0.650276), N = 79 moving right + --- -0.266835 (0.636127), N = 64 moving right + + -- best stat: 0.671592, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 6 2 5 14 16 + + + -- linear combo weights (showing up to 5) + + 0.0921 -1.0232 1.0098 0.4223 0.9606 + + + -- cutpoint (score) + --- -1.97843 (0.534948), N = 257 moving right + --- -1.74732 (0.563246), N = 243 moving right + --- -1.0869 (0.68399), N = 149 moving right + --- -0.564638 (0.717078), N = 117 moving right + --- 0.230292 (0.674797), N = 74 moving right + + -- best stat: 0.717078, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 7 2 15 9 12 + + + -- linear combo weights (showing up to 5) + + 4.3897 -0.9241 -0.1691 0.3150 0.1726 + + + -- cutpoint (score) + --- -1.39821 (0.527266), N = 264 moving right + --- -0.97582 (0.649926), N = 155 moving right + --- -0.68915 (0.637859), N = 87 moving right + --- -0.654248 (0.630195), N = 82 moving right + --- -0.57622 (0.632277), N = 73 moving right + + -- best stat: 0.649926, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 2.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 488 -------------- + +- N obs inbag: 276 +- N row inbag: 167 +- max nodes: 211 +- max leaves: 106 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 9 17 12 10 8 + + + -- linear combo weights (showing up to 5) + + -0.4794 0.3813 0.0897 -0.7397 2.1458 + + + -- cutpoint (score) + --- -0.51615 (0.609094), N = 216 moving right + --- 0.0697811 (0.700927), N = 157 moving right + --- 0.460887 (0.746354), N = 129 moving right + --- 0.887773 (0.763985), N = 107 moving right + --- 3.69177 (0.677158), N = 35 moving right + + -- best stat: 0.763985, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 16 4 5 6 + + + -- linear combo weights (showing up to 5) + + 0.2923 0.6936 0.9007 0.0002 1.5642 + + + -- cutpoint (score) + --- -0.284955 (0.608681), N = 206 moving right + --- -0.0803729 (0.639437), N = 172 moving right + --- 0.20702 (0.672391), N = 145 moving right + --- 1.05935 (0.683057), N = 79 moving right + --- 1.94749 (0.585325), N = 18 moving right + + -- best stat: 0.683057, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 7 10 8 14 + + + -- linear combo weights (showing up to 5) + + -0.3888 5.6987 -0.7039 1.8481 0.1284 + + + -- cutpoint (score) + --- -1.45286 (0.59081), N = 225 moving right + --- -0.645394 (0.734078), N = 134 moving right + --- -0.598599 (0.747355), N = 128 moving right + --- -0.302594 (0.763746), N = 105 moving right + --- 1.22845 (0.697118), N = 46 moving right + + -- best stat: 0.763746, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 4.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + 3.3400e+02 1.0000e+00 2.0000e+00 + 4.6000e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7826e-01 2.1912e-02 + 1.7900e+02 9.7464e-01 2.5616e-02 + + +------------ Growing tree 489 -------------- + +- N obs inbag: 276 +- N row inbag: 181 +- max nodes: 225 +- max leaves: 113 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 14 11 2 16 + + + -- linear combo weights (showing up to 5) + + 0.2832 0.3238 1.0769 0.6488 0.6237 + + + -- cutpoint (score) + --- -0.856036 (0.561023), N = 244 moving right + --- -0.769003 (0.575724), N = 237 moving right + --- -0.558583 (0.612762), N = 221 moving right + --- -0.246649 (0.688251), N = 179 moving right + --- 0.475702 (0.733002), N = 111 moving right + + -- best stat: 0.733002, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 12 13 15 1 + + + -- linear combo weights (showing up to 5) + + 0.1220 0.1361 0.4848 -0.2520 0.5544 + + + -- cutpoint (score) + --- -0.795599 (0.565989), N = 240 moving right + --- -0.417023 (0.597079), N = 216 moving right + --- -0.0868288 (0.67667), N = 143 moving right + --- 0.614671 (0.650389), N = 61 moving right + --- 1.12152 (0.535821), N = 23 moving right + + -- best stat: 0.67667, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 14 12 0 11 + + + -- linear combo weights (showing up to 5) + + 1.0022 0.2218 -0.2322 -0.0768 1.2600 + + + -- cutpoint (score) + --- -1.08802 (0.559021), N = 248 moving right + --- -0.739429 (0.650624), N = 203 moving right + --- 0.115549 (0.702187), N = 101 moving right + --- 0.316163 (0.722776), N = 84 moving right + --- 2.48617 (0.573879), N = 16 moving right + + -- best stat: 0.722776, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.8913e-01 1.0896e-02 + 7.1000e+01 9.8188e-01 1.8222e-02 + 7.7000e+01 9.7101e-01 2.9292e-02 + 1.1000e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 490 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 219 +- max leaves: 110 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 16 8 4 9 6 + + + -- linear combo weights (showing up to 5) + + 0.2310 1.8052 0.0660 -0.1805 1.2319 + + + -- cutpoint (score) + --- -1.1174 (0.556507), N = 241 moving right + --- -0.890234 (0.657223), N = 177 moving right + --- -0.415571 (0.726683), N = 121 moving right + --- 0.329321 (0.676401), N = 78 moving right + --- 0.694243 (0.686471), N = 64 moving right + + -- best stat: 0.726683, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 2 0 17 8 9 + + + -- linear combo weights (showing up to 5) + + -0.0539 -0.3207 0.1883 1.8554 -0.2741 + + + -- cutpoint (score) + --- -0.762314 (0.571709), N = 233 moving right + --- -0.592586 (0.640863), N = 197 moving right + --- 0.863737 (0.65102), N = 60 moving right + --- 0.899225 (0.647329), N = 53 moving right + --- 5.07236 (0.568433), N = 11 moving right + + -- best stat: 0.65102, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 9 10 2 13 3 + + + -- linear combo weights (showing up to 5) + + 0.4043 -0.2144 0.1523 0.3228 5.6365 + + + -- cutpoint (score) + --- -0.389236 (0.532655), N = 227 moving right + --- 0.10418 (0.634507), N = 126 moving right + --- 0.176651 (0.628369), N = 113 moving right + --- 0.386395 (0.645669), N = 72 moving right + --- 0.826181 (0.665786), N = 40 moving right + + -- best stat: 0.665786, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 7.1000e+01 9.7826e-01 2.1885e-02 + 1.3100e+02 9.7464e-01 2.5589e-02 + 1.7900e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 491 -------------- + +- N obs inbag: 276 +- N row inbag: 177 +- max nodes: 245 +- max leaves: 123 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 11 6 13 5 0 + + + -- linear combo weights (showing up to 5) + + 1.0004 0.8033 0.2528 1.2053 0.2162 + + + -- cutpoint (score) + --- -0.731233 (0.571107), N = 234 moving right + --- -0.698561 (0.586583), N = 227 moving right + --- 0.0335778 (0.67416), N = 150 moving right + --- 0.653354 (0.698013), N = 119 moving right + --- 2.80717 (0.564289), N = 19 moving right + + -- best stat: 0.698013, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 14 13 11 5 6 + + + -- linear combo weights (showing up to 5) + + 0.2576 0.2409 0.9487 1.1832 0.6693 + + + -- cutpoint (score) + --- -0.482602 (0.626155), N = 198 moving right + --- -0.0629538 (0.657126), N = 147 moving right + --- 0.654041 (0.700924), N = 111 moving right + --- 1.3309 (0.698351), N = 55 moving right + --- 3.91405 (0.520829), N = 9 moving right + + -- best stat: 0.700924, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 13 12 5 9 10 + + + -- linear combo weights (showing up to 5) + + 0.3016 0.0933 1.3781 0.1008 -0.5608 + + + -- cutpoint (score) + --- -1.04372 (0.546897), N = 252 moving right + --- -0.622704 (0.575746), N = 229 moving right + --- 0.0510224 (0.656262), N = 155 moving right + --- 0.0881979 (0.651491), N = 147 moving right + --- 2.13649 (0.592311), N = 25 moving right + + -- best stat: 0.656262, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 4.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 2.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.8551e-01 1.4559e-02 + 1.1000e+02 9.8188e-01 1.8235e-02 + 1.3100e+02 9.6739e-01 3.2996e-02 + + +------------ Growing tree 492 -------------- + +- N obs inbag: 276 +- N row inbag: 187 +- max nodes: 249 +- max leaves: 125 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 8 13 5 9 16 + + + -- linear combo weights (showing up to 5) + + 1.6467 -0.0207 0.3471 -0.1753 0.5932 + + + -- cutpoint (score) + --- -1.35613 (0.52762), N = 256 moving right + --- -0.341732 (0.740268), N = 137 moving right + --- -0.259202 (0.728198), N = 124 moving right + --- 0.325501 (0.714674), N = 90 moving right + --- 0.540526 (0.709652), N = 82 moving right + + -- best stat: 0.740268, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 6 14 5 1 + + + -- linear combo weights (showing up to 5) + + 6.4992 -0.3150 0.3913 1.2727 0.5669 + + + -- cutpoint (score) + --- -0.556665 (0.556989), N = 235 moving right + --- 0.0598719 (0.664923), N = 150 moving right + --- 0.28695 (0.668248), N = 133 moving right + --- 0.351789 (0.679262), N = 126 moving right + --- 7.00892 (0.587172), N = 16 moving right + + -- best stat: 0.679262, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 6 15 3 9 7 + + + -- linear combo weights (showing up to 5) + + 0.6778 -0.1223 4.0733 0.3090 8.2857 + + + -- cutpoint (score) + --- -0.292543 (0.521299), N = 263 moving right + --- -0.190685 (0.56208), N = 243 moving right + --- -0.165337 (0.574565), N = 232 moving right + --- 0.023053 (0.67095), N = 135 moving right + --- 0.224491 (0.665807), N = 79 moving right + + -- best stat: 0.67095, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 3.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.7000e+01 9.9638e-01 3.6232e-03 + 1.1000e+02 9.9275e-01 7.2596e-03 + 1.3100e+02 9.8551e-01 1.4559e-02 + 1.7900e+02 9.7826e-01 2.1912e-02 + 1.8600e+02 9.6739e-01 3.3023e-02 + + +------------ Growing tree 493 -------------- + +- N obs inbag: 276 +- N row inbag: 175 +- max nodes: 213 +- max leaves: 107 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 1 3 17 9 11 + + + -- linear combo weights (showing up to 5) + + 0.2531 6.6182 0.4603 0.4158 0.9092 + + + -- cutpoint (score) + --- -0.20052 (0.522595), N = 266 moving right + --- 0.322788 (0.604528), N = 223 moving right + --- 0.596601 (0.657573), N = 198 moving right + --- 1.39355 (0.767421), N = 113 moving right + --- 2.10126 (0.727915), N = 80 moving right + + -- best stat: 0.767421, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 8 2 7 15 0 + + + -- linear combo weights (showing up to 5) + + 2.1955 -0.1804 4.2430 -0.1031 -0.1209 + + + -- cutpoint (score) + --- -1.78321 (0.512112), N = 271 moving right + --- -1.75787 (0.516233), N = 269 moving right + --- 1.42121 (0.651143), N = 33 moving right + --- 4.7814 (0.609237), N = 18 moving right + --- 6.03677 (0.59957), N = 17 moving right + + -- best stat: 0.651143, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 15 3 0 13 16 + + + -- linear combo weights (showing up to 5) + + -0.0974 7.8444 -0.1383 0.3796 0.3170 + + + -- cutpoint (score) + --- -0.206532 (0.654268), N = 141 moving right + --- -0.108004 (0.659067), N = 127 moving right + --- 0.0510058 (0.675843), N = 100 moving right + --- 0.179355 (0.651845), N = 75 moving right + --- 0.190308 (0.662259), N = 71 moving right + + -- best stat: 0.675843, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 3.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 3.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + 3.3400e+02 1.0000e+00 4.0000e+00 + 5.1500e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9275e-01 7.2464e-03 + 7.1000e+01 9.8913e-01 1.0896e-02 + 7.7000e+01 9.7826e-01 2.1885e-02 + 2.1600e+02 9.7464e-01 2.5589e-02 + 2.2300e+02 9.7101e-01 2.9306e-02 + + +------------ Growing tree 494 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 221 +- max leaves: 111 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 8 2 3 7 + + + -- linear combo weights (showing up to 5) + + -0.2512 1.1418 -0.3940 5.8533 6.2241 + + + -- cutpoint (score) + --- -0.948256 (0.703372), N = 149 moving right + --- -0.72492 (0.722521), N = 126 moving right + --- -0.278249 (0.728715), N = 73 moving right + --- 0.984241 (0.67558), N = 40 moving right + --- 10.4606 (0.587891), N = 14 moving right + + -- best stat: 0.728715, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 17 9 5 11 15 + + + -- linear combo weights (showing up to 5) + + 0.7027 0.2779 0.2901 0.4904 -0.1321 + + + -- cutpoint (score) + --- 1.69594 (0.667483), N = 191 moving right + --- 1.87169 (0.694891), N = 167 moving right + --- 2.12825 (0.726428), N = 134 moving right + --- 2.17738 (0.729363), N = 133 moving right + --- 3.16116 (0.646269), N = 41 moving right + + -- best stat: 0.729363, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 8 1 12 9 + + + -- linear combo weights (showing up to 5) + + 7.5592 1.2977 0.2050 0.0429 0.0326 + + + -- cutpoint (score) + --- -0.700871 (0.638233), N = 197 moving right + --- -0.390994 (0.742844), N = 133 moving right + --- -0.378602 (0.745051), N = 132 moving right + --- -0.155224 (0.750698), N = 102 moving right + --- 0.957102 (0.673029), N = 46 moving right + + -- best stat: 0.750698, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 1.0000e+00 + 5.1000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 2.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + 3.2600e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9638e-01 3.6232e-03 + 5.1000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8551e-01 1.4572e-02 + 1.7900e+02 9.8188e-01 1.8249e-02 + + +------------ Growing tree 495 -------------- + +- N obs inbag: 276 +- N row inbag: 178 +- max nodes: 203 +- max leaves: 102 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 14 3 5 10 0 + + + -- linear combo weights (showing up to 5) + + 0.1147 6.0144 0.9287 -0.7126 -0.4381 + + + -- cutpoint (score) + --- -0.764187 (0.571144), N = 230 moving right + --- -0.2923 (0.674487), N = 155 moving right + --- 1.02372 (0.677265), N = 51 moving right + --- 1.18116 (0.687662), N = 42 moving right + --- 7.85112 (0.538541), N = 5 moving right + + -- best stat: 0.687662, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 11 14 16 3 13 + + + -- linear combo weights (showing up to 5) + + 0.6022 0.0335 0.7949 5.6579 0.2404 + + + -- cutpoint (score) + --- -0.891351 (0.621807), N = 208 moving right + --- -0.714238 (0.663664), N = 183 moving right + --- -0.642957 (0.68094), N = 168 moving right + --- 0.125893 (0.762436), N = 97 moving right + --- 0.314778 (0.74153), N = 82 moving right + + -- best stat: 0.762436, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 1 13 3 11 10 + + + -- linear combo weights (showing up to 5) + + 0.4540 0.3046 5.4597 0.5899 -0.6525 + + + -- cutpoint (score) + --- -1.52664 (0.552433), N = 244 moving right + --- -1.3435 (0.566304), N = 238 moving right + --- -0.558027 (0.697835), N = 172 moving right + --- -0.258656 (0.727705), N = 127 moving right + --- 7.42351 (0.553935), N = 8 moving right + + -- best stat: 0.727705, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 5.1000e+01 1.0000e+00 1.0000e+00 + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 2.1600e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 3.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 5.1000e+01 9.9638e-01 3.6232e-03 + 7.1000e+01 9.9275e-01 7.2596e-03 + 7.7000e+01 9.8913e-01 1.0909e-02 + 1.4000e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7464e-01 2.5615e-02 + + +------------ Growing tree 496 -------------- + +- N obs inbag: 276 +- N row inbag: 176 +- max nodes: 239 +- max leaves: 120 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 7 0 16 3 17 + + + -- linear combo weights (showing up to 5) + + 4.9675 -0.2895 0.4475 4.5969 0.2456 + + + -- cutpoint (score) + --- 0.165186 (0.594094), N = 212 moving right + --- 0.253945 (0.608303), N = 202 moving right + --- 1.07646 (0.704736), N = 63 moving right + --- 1.47543 (0.650738), N = 37 moving right + --- 10.6641 (0.575091), N = 13 moving right + + -- best stat: 0.704736, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 3 6 2 7 17 + + + -- linear combo weights (showing up to 5) + + 4.8634 1.0082 -0.8825 5.5489 0.2668 + + + -- cutpoint (score) + --- -0.348826 (0.599118), N = 213 moving right + --- 0.800463 (0.683739), N = 56 moving right + --- 5.04825 (0.64349), N = 30 moving right + --- 5.46692 (0.635513), N = 28 moving right + --- 6.05641 (0.616606), N = 20 moving right + + -- best stat: 0.683739, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 3 14 15 2 17 + + + -- linear combo weights (showing up to 5) + + 7.2592 0.0709 -0.1099 -0.7342 0.3245 + + + -- cutpoint (score) + --- 0.471821 (0.651601), N = 114 moving right + --- 0.546372 (0.652119), N = 100 moving right + --- 0.620399 (0.644545), N = 77 moving right + --- 0.666397 (0.642915), N = 71 moving right + --- 0.762455 (0.662109), N = 54 moving right + + -- best stat: 0.662109, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 3.0000e+00 + 7.1000e+01 1.0000e+00 2.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 1.0000e+00 + 1.4000e+02 1.0000e+00 1.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8188e-01 1.8195e-02 + 7.1000e+01 9.7464e-01 2.5575e-02 + 1.1000e+02 9.7101e-01 2.9293e-02 + 1.3100e+02 9.6739e-01 3.3024e-02 + + +------------ Growing tree 497 -------------- + +- N obs inbag: 276 +- N row inbag: 184 +- max nodes: 231 +- max leaves: 116 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 0 3 10 16 13 + + + -- linear combo weights (showing up to 5) + + -0.2827 4.4196 -0.5346 0.3533 0.2127 + + + -- cutpoint (score) + --- -0.830202 (0.554122), N = 232 moving right + --- -0.733893 (0.560619), N = 217 moving right + --- -0.506662 (0.628828), N = 178 moving right + --- 0.153246 (0.71406), N = 85 moving right + --- 0.899453 (0.638902), N = 30 moving right + + -- best stat: 0.71406, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 4 11 5 16 17 + + + -- linear combo weights (showing up to 5) + + 0.6619 1.0120 0.9543 0.3589 0.3398 + + + -- cutpoint (score) + --- -0.070097 (0.565063), N = 244 moving right + --- 1.80496 (0.740801), N = 114 moving right + --- 2.05109 (0.732213), N = 95 moving right + --- 3.17825 (0.663873), N = 38 moving right + --- 4.84742 (0.540149), N = 10 moving right + + -- best stat: 0.740801, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 14 6 13 1 9 + + + -- linear combo weights (showing up to 5) + + 0.2770 1.0302 0.1415 0.4498 0.2427 + + + -- cutpoint (score) + --- -0.345333 (0.608715), N = 206 moving right + --- -0.277177 (0.612595), N = 193 moving right + --- -0.03058 (0.661839), N = 142 moving right + --- 0.0301289 (0.627208), N = 125 moving right + --- 0.185931 (0.627735), N = 99 moving right + + -- best stat: 0.661839, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.1000e+02 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.7900e+02 1.0000e+00 1.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.9275e-01 7.2596e-03 + 1.1000e+02 9.8913e-01 1.0909e-02 + 1.3100e+02 9.8188e-01 1.8235e-02 + 1.7900e+02 9.7826e-01 2.1925e-02 + + +------------ Growing tree 498 -------------- + +- N obs inbag: 276 +- N row inbag: 169 +- max nodes: 197 +- max leaves: 99 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 6 2 3 0 8 + + + -- linear combo weights (showing up to 5) + + 0.4052 -1.0451 6.5784 0.0368 1.6715 + + + -- cutpoint (score) + --- -1.09321 (0.752642), N = 105 moving right + --- -1.02102 (0.739491), N = 100 moving right + --- -0.375519 (0.75081), N = 66 moving right + --- -0.185482 (0.724954), N = 57 moving right + --- 1.94993 (0.649054), N = 26 moving right + + -- best stat: 0.752642, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 1 5 16 11 7 + + + -- linear combo weights (showing up to 5) + + 0.5000 0.6626 0.2795 0.8080 3.2644 + + + -- cutpoint (score) + --- -1.07181 (0.548025), N = 245 moving right + --- -0.541574 (0.640364), N = 193 moving right + --- -0.295755 (0.710418), N = 153 moving right + --- 1.40329 (0.656897), N = 53 moving right + --- 1.83264 (0.601099), N = 27 moving right + + -- best stat: 0.710418, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 17 7 6 0 9 + + + -- linear combo weights (showing up to 5) + + 0.4920 4.8064 1.6726 0.0785 0.5425 + + + -- cutpoint (score) + --- 0.759195 (0.561035), N = 243 moving right + --- 0.856246 (0.570805), N = 233 moving right + --- 1.16588 (0.622047), N = 194 moving right + --- 1.55839 (0.694143), N = 139 moving right + --- 1.74544 (0.670988), N = 116 moving right + + -- best stat: 0.694143, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 7.1000e+01 1.0000e+00 1.0000e+00 + 7.7000e+01 1.0000e+00 4.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 2.0000e+00 + 1.9800e+02 1.0000e+00 1.0000e+00 + 2.2300e+02 1.0000e+00 1.0000e+00 + 2.6400e+02 1.0000e+00 1.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 1.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 7.1000e+01 9.9638e-01 3.6232e-03 + 7.7000e+01 9.8188e-01 1.8169e-02 + 1.3100e+02 9.7464e-01 2.5549e-02 + 1.8600e+02 9.7101e-01 2.9266e-02 + 1.9100e+02 9.6377e-01 3.6729e-02 + + +------------ Growing tree 499 -------------- + +- N obs inbag: 276 +- N row inbag: 179 +- max nodes: 233 +- max leaves: 117 + +-- attempting to split node 0 (N = 276, try number 1) + + -- columns sampled (showing up to 5) + + 13 6 4 2 1 + + + -- linear combo weights (showing up to 5) + + 0.3676 -0.4604 0.6502 0.4927 0.6738 + + + -- cutpoint (score) + --- 0.0454134 (0.579022), N = 227 moving right + --- 0.465527 (0.630631), N = 177 moving right + --- 0.558754 (0.666619), N = 160 moving right + --- 0.96496 (0.674033), N = 106 moving right + --- 1.38862 (0.61831), N = 46 moving right + + -- best stat: 0.674033, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 2) + + -- columns sampled (showing up to 5) + + 9 6 5 17 12 + + + -- linear combo weights (showing up to 5) + + 0.3864 -0.2246 0.9741 0.4153 0.1352 + + + -- cutpoint (score) + --- 0.611025 (0.566741), N = 241 moving right + --- 0.838925 (0.577515), N = 223 moving right + --- 1.02613 (0.604786), N = 206 moving right + --- 2.13851 (0.622322), N = 70 moving right + --- 2.7697 (0.551568), N = 19 moving right + + -- best stat: 0.622322, min to split: 0.999 + +-- attempting to split node 0 (N = 276, try number 3) + + -- columns sampled (showing up to 5) + + 5 17 0 16 8 + + + -- linear combo weights (showing up to 5) + + 0.4790 0.3211 -0.1514 0.3724 1.7822 + + + -- cutpoint (score) + --- -0.441199 (0.583136), N = 233 moving right + --- 0.0386227 (0.660733), N = 177 moving right + --- 0.249344 (0.710896), N = 149 moving right + --- 0.953561 (0.737149), N = 93 moving right + --- 1.21715 (0.72776), N = 76 moving right + + -- best stat: 0.737149, min to split: 0.999 + +-- sprouting node 0 into a leaf (N = 276) + + -- time & status & weights in this node + + 4.1000e+01 1.0000e+00 2.0000e+00 + 5.1000e+01 1.0000e+00 2.0000e+00 + 7.7000e+01 1.0000e+00 1.0000e+00 + 1.3100e+02 1.0000e+00 2.0000e+00 + 1.4000e+02 1.0000e+00 2.0000e+00 + 1.8600e+02 1.0000e+00 1.0000e+00 + 1.9100e+02 1.0000e+00 1.0000e+00 + 2.1600e+02 1.0000e+00 3.0000e+00 + 3.0400e+02 1.0000e+00 1.0000e+00 + 3.2100e+02 1.0000e+00 2.0000e+00 + + + -- leaf_data (showing up to 5 rows) + + 4.1000e+01 9.9275e-01 7.2464e-03 + 5.1000e+01 9.8551e-01 1.4546e-02 + 7.7000e+01 9.8188e-01 1.8222e-02 + 1.3100e+02 9.7464e-01 2.5602e-02 + 1.4000e+02 9.6739e-01 3.3037e-02 + + +--- Computing oobag predictions: tree 0 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 1 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 2 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 3 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 4 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 5 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 6 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 7 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 8 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 9 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 10 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 11 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 12 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 13 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 14 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 15 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 16 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 17 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 18 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 19 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 20 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 21 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 22 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 23 --- + + -- N preds expected: 92 + -- N preds made: 92 + +--- Computing oobag predictions: tree 24 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 25 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 26 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 27 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 28 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 29 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 30 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 31 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 32 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 33 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 34 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 35 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 36 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 37 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 38 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 39 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 40 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 41 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 42 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 43 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 44 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 45 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 46 --- + + -- N preds expected: 92 + -- N preds made: 92 + +--- Computing oobag predictions: tree 47 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 48 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 49 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 50 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 51 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 52 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 53 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 54 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 55 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 56 --- + + -- N preds expected: 114 + -- N preds made: 114 + +--- Computing oobag predictions: tree 57 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 58 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 59 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 60 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 61 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 62 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 63 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 64 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 65 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 66 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 67 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 68 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 69 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 70 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 71 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 72 --- + + -- N preds expected: 116 + -- N preds made: 116 + +--- Computing oobag predictions: tree 73 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 74 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 75 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 76 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 77 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 78 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 79 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 80 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 81 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 82 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 83 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 84 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 85 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 86 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 87 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 88 --- + + -- N preds expected: 89 + -- N preds made: 89 + +--- Computing oobag predictions: tree 89 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 90 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 91 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 92 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 93 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 94 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 95 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 96 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 97 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 98 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 99 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 100 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 101 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 102 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 103 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 104 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 105 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 106 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 107 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 108 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 109 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 110 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 111 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 112 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 113 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 114 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 115 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 116 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 117 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 118 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 119 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 120 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 121 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 122 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 123 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 124 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 125 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 126 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 127 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 128 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 129 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 130 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 131 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 132 --- + + -- N preds expected: 112 + -- N preds made: 112 + +--- Computing oobag predictions: tree 133 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 134 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 135 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 136 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 137 --- + + -- N preds expected: 113 + -- N preds made: 113 + +--- Computing oobag predictions: tree 138 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 139 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 140 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 141 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 142 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 143 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 144 --- + + -- N preds expected: 89 + -- N preds made: 89 + +--- Computing oobag predictions: tree 145 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 146 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 147 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 148 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 149 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 150 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 151 --- + + -- N preds expected: 112 + -- N preds made: 112 + +--- Computing oobag predictions: tree 152 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 153 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 154 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 155 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 156 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 157 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 158 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 159 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 160 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 161 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 162 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 163 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 164 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 165 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 166 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 167 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 168 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 169 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 170 --- + + -- N preds expected: 92 + -- N preds made: 92 + +--- Computing oobag predictions: tree 171 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 172 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 173 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 174 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 175 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 176 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 177 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 178 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 179 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 180 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 181 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 182 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 183 --- + + -- N preds expected: 114 + -- N preds made: 114 + +--- Computing oobag predictions: tree 184 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 185 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 186 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 187 --- + + -- N preds expected: 88 + -- N preds made: 88 + +--- Computing oobag predictions: tree 188 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 189 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 190 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 191 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 192 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 193 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 194 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 195 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 196 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 197 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 198 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 199 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 200 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 201 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 202 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 203 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 204 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 205 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 206 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 207 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 208 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 209 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 210 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 211 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 212 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 213 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 214 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 215 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 216 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 217 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 218 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 219 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 220 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 221 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 222 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 223 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 224 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 225 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 226 --- + + -- N preds expected: 115 + -- N preds made: 115 + +--- Computing oobag predictions: tree 227 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 228 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 229 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 230 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 231 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 232 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 233 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 234 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 235 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 236 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 237 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 238 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 239 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 240 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 241 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 242 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 243 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 244 --- + + -- N preds expected: 115 + -- N preds made: 115 + +--- Computing oobag predictions: tree 245 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 246 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 247 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 248 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 249 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 250 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 251 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 252 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 253 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 254 --- + + -- N preds expected: 114 + -- N preds made: 114 + +--- Computing oobag predictions: tree 255 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 256 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 257 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 258 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 259 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 260 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 261 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 262 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 263 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 264 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 265 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 266 --- + + -- N preds expected: 112 + -- N preds made: 112 + +--- Computing oobag predictions: tree 267 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 268 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 269 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 270 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 271 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 272 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 273 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 274 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 275 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 276 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 277 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 278 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 279 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 280 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 281 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 282 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 283 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 284 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 285 --- + + -- N preds expected: 114 + -- N preds made: 114 + +--- Computing oobag predictions: tree 286 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 287 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 288 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 289 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 290 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 291 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 292 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 293 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 294 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 295 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 296 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 297 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 298 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 299 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 300 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 301 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 302 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 303 --- + + -- N preds expected: 90 + -- N preds made: 90 + +--- Computing oobag predictions: tree 304 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 305 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 306 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 307 --- + + -- N preds expected: 111 + -- N preds made: 111 + +--- Computing oobag predictions: tree 308 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 309 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 310 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 311 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 312 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 313 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 314 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 315 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 316 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 317 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 318 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 319 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 320 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 321 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 322 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 323 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 324 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 325 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 326 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 327 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 328 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 329 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 330 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 331 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 332 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 333 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 334 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 335 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 336 --- + + -- N preds expected: 88 + -- N preds made: 88 + +--- Computing oobag predictions: tree 337 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 338 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 339 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 340 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 341 --- + + -- N preds expected: 120 + -- N preds made: 120 + +--- Computing oobag predictions: tree 342 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 343 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 344 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 345 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 346 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 347 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 348 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 349 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 350 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 351 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 352 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 353 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 354 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 355 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 356 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 357 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 358 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 359 --- + + -- N preds expected: 113 + -- N preds made: 113 + +--- Computing oobag predictions: tree 360 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 361 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 362 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 363 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 364 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 365 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 366 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 367 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 368 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 369 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 370 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 371 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 372 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 373 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 374 --- + + -- N preds expected: 113 + -- N preds made: 113 + +--- Computing oobag predictions: tree 375 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 376 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 377 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 378 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 379 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 380 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 381 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 382 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 383 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 384 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 385 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 386 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 387 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 388 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 389 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 390 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 391 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 392 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 393 --- + + -- N preds expected: 112 + -- N preds made: 112 + +--- Computing oobag predictions: tree 394 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 395 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 396 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 397 --- + + -- N preds expected: 93 + -- N preds made: 93 + +--- Computing oobag predictions: tree 398 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 399 --- + + -- N preds expected: 91 + -- N preds made: 91 + +--- Computing oobag predictions: tree 400 --- + + -- N preds expected: 113 + -- N preds made: 113 + +--- Computing oobag predictions: tree 401 --- + + -- N preds expected: 112 + -- N preds made: 112 + +--- Computing oobag predictions: tree 402 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 403 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 404 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 405 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 406 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 407 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 408 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 409 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 410 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 411 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 412 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 413 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 414 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 415 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 416 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 417 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 418 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 419 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 420 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 421 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 422 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 423 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 424 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 425 --- + + -- N preds expected: 82 + -- N preds made: 82 + +--- Computing oobag predictions: tree 426 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 427 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 428 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 429 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 430 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 431 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 432 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 433 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 434 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 435 --- + + -- N preds expected: 90 + -- N preds made: 90 + +--- Computing oobag predictions: tree 436 --- + + -- N preds expected: 96 + -- N preds made: 96 + +--- Computing oobag predictions: tree 437 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 438 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 439 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 440 --- + + -- N preds expected: 105 + -- N preds made: 105 + +--- Computing oobag predictions: tree 441 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 442 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 443 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 444 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 445 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 446 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 447 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 448 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 449 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 450 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 451 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 452 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 453 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 454 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 455 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 456 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 457 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 458 --- + + -- N preds expected: 92 + -- N preds made: 92 + +--- Computing oobag predictions: tree 459 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 460 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 461 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 462 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 463 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 464 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 465 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 466 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 467 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 468 --- + + -- N preds expected: 103 + -- N preds made: 103 + +--- Computing oobag predictions: tree 469 --- + + -- N preds expected: 108 + -- N preds made: 108 + +--- Computing oobag predictions: tree 470 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 471 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 472 --- + + -- N preds expected: 106 + -- N preds made: 106 + +--- Computing oobag predictions: tree 473 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 474 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 475 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 476 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 477 --- + + -- N preds expected: 94 + -- N preds made: 94 + +--- Computing oobag predictions: tree 478 --- + + -- N preds expected: 110 + -- N preds made: 110 + +--- Computing oobag predictions: tree 479 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 480 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 481 --- + + -- N preds expected: 102 + -- N preds made: 102 + +--- Computing oobag predictions: tree 482 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 483 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 484 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 485 --- + + -- N preds expected: 104 + -- N preds made: 104 + +--- Computing oobag predictions: tree 486 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 487 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 488 --- + + -- N preds expected: 109 + -- N preds made: 109 + +--- Computing oobag predictions: tree 489 --- + + -- N preds expected: 95 + -- N preds made: 95 + +--- Computing oobag predictions: tree 490 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 491 --- + + -- N preds expected: 99 + -- N preds made: 99 + +--- Computing oobag predictions: tree 492 --- + + -- N preds expected: 89 + -- N preds made: 89 + +--- Computing oobag predictions: tree 493 --- + + -- N preds expected: 101 + -- N preds made: 101 + +--- Computing oobag predictions: tree 494 --- + + -- N preds expected: 97 + -- N preds made: 97 + +--- Computing oobag predictions: tree 495 --- + + -- N preds expected: 98 + -- N preds made: 98 + +--- Computing oobag predictions: tree 496 --- + + -- N preds expected: 100 + -- N preds made: 100 + +--- Computing oobag predictions: tree 497 --- + + -- N preds expected: 92 + -- N preds made: 92 + +--- Computing oobag predictions: tree 498 --- + + -- N preds expected: 107 + -- N preds made: 107 + +--- Computing oobag predictions: tree 499 --- + + -- N preds expected: 97 + -- N preds made: 97 + diff --git a/scratch.R b/scratch.R index 455079bd..1947d076 100644 --- a/scratch.R +++ b/scratch.R @@ -3,22 +3,26 @@ library(riskRegression) library(survival) tictoc::tic() +sink("orsf-output.txt") fit <- orsf(pbc_orsf, formula = Surv(time, status) ~ . - id, - oobag_pred_type = 'leaf', + oobag_pred_type = 'risk', oobag_pred_horizon = 1000, split_rule = 'logrank', + split_min_stat = 0.1, tree_seeds = 1:500, - importance = 'negate', - n_thread = 10) + n_tree = 500, + importance = 'none', + n_thread = 1, + verbose_progress = 0) +sink() tictoc::toc() fit$importance->tmp -# sink("orsf-output.txt") tictoc::tic() orsf_vi_negate(fit)->tmp2 +orsf_pd_oob(fit, pred_spec = list(bili = c(1:5))) tictoc::toc() -# sink() prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'mort', pred_aggregate = F, pred_horizon = c(500, 1000)) diff --git a/src/Data.h b/src/Data.h index 1f0406b9..e2370355 100644 --- a/src/Data.h +++ b/src/Data.h @@ -106,14 +106,40 @@ } + void fill_col(double value, uword j){ + + x.col(j).fill(value); + + } + + void restore_cols(arma::uvec cols){ + + if(cols.size() != mat_restore_values.n_cols){ + stop("restore_cols is not the right size"); + } + + uword i = 0; + for(const auto& j : cols){ + x.col(j) = mat_restore_values.col(i); + ++i; + } + + } + // member variables arma::uword n_cols; arma::uword n_rows; arma::vec w; + // for single column ops (e.g., permutation importance) arma::vec col_restore_values; + // for multi-column ops (e.g., partial dependence) + arma::mat mat_restore_values; + + + bool has_weights; private: diff --git a/src/Forest.cpp b/src/Forest.cpp index 64b633f2..4d043479 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -43,6 +43,10 @@ void Forest::init(std::unique_ptr input_data, EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, + PartialDepType pd_type, + arma::mat& pd_x_vals, + arma::uvec& pd_x_cols, + arma::vec& pd_probs, uint n_thread, int verbosity){ @@ -73,6 +77,10 @@ void Forest::init(std::unique_ptr input_data, this->oobag_eval_type = oobag_eval_type; this->oobag_eval_every = oobag_eval_every; this->oobag_R_function = oobag_R_function; + this->pd_type = pd_type; + this->pd_x_vals = pd_x_vals; + this->pd_x_cols = pd_x_cols; + this->pd_probs = pd_probs; this->n_thread = n_thread; this->verbosity = verbosity; @@ -101,7 +109,7 @@ void Forest::init(std::unique_ptr input_data, void Forest::run(bool oobag){ - if (grow_mode) { // case 1: grow a new forest + if (grow_mode) { // if the forest hasn't been grown // plant first plant(); @@ -115,23 +123,26 @@ void Forest::run(bool oobag){ this->pred_values = predict(oobag); } - } else { - - // just initialize trees if the forest was already grown + } else { // if the forest was already grown + // initialize trees init_trees(); - } - // case 2: a grown forest used for prediction + // if using a grown forest for prediction if(pred_mode){ this->pred_values = predict(oobag); } - // case 3: a grown forest used for variable importance + // if using a grown forest for variable importance if(vi_type == VI_PERMUTE || vi_type == VI_NEGATE){ compute_oobag_vi(); } + // if using a grown forest for partial dependence + if(pd_type == PD_SUMMARY || pd_type == PD_ICE){ + this->pd_values = compute_dependence(oobag); + } + } void Forest::init_trees(){ @@ -557,28 +568,40 @@ mat Forest::predict(bool oobag) { } -// std::vector Forest::compute_dependence(bool oobag, -// mat x_vals, -// umat x_cols, -// bool summarize){ -// -// mat preds_summary; -// -// for(uword i = 0; i < x_vals.n_rows){ -// -// data->fill_x(x_vals[i], x_cols[i]); -// -// mat preds = predict(oobag); -// -// data->restore_col(x_vals[i], x_cols[i]); -// -// if(summarize) preds_summary = mean(preds,0); -// -// } -// -// -// -// } +std::vector Forest::compute_dependence(bool oobag){ + + uword n = pd_x_vals.n_rows; + + std::vector result; + result.reserve(n); + + for(uword i = 0; i < n; ++i){ + + uword j = 0; + for(const auto& x_col : pd_x_cols){ + data->fill_col(pd_x_vals.at(i, j), x_col); + ++j; + } + + mat preds = predict(oobag); + + if(pd_type == PD_SUMMARY){ + + mat preds_quant = quantile(preds, pd_probs, 0); + mat preds_summary = mean(preds, 0); + result.push_back(join_vert(preds_summary, preds_quant)); + + } else if(pd_type == PD_ICE) { + + result.push_back(preds); + + } + + } + + return(result); + +} void Forest::predict_single_thread(Data* prediction_data, bool oobag, diff --git a/src/Forest.h b/src/Forest.h index b093a68c..f2d284e8 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -65,6 +65,10 @@ class Forest { EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, + PartialDepType pd_type, + arma::mat& pd_x_vals, + arma::uvec& pd_x_cols, + arma::vec& pd_probs, uint n_thread, int verbosity); @@ -190,6 +194,10 @@ class Forest { return(pred_values); } + std::vector& get_pd_values(){ + return(pd_values); + } + void run(bool oobag); virtual void plant() = 0; @@ -198,6 +206,8 @@ class Forest { arma::mat predict(bool oobag); + std::vector compute_dependence(bool oobag); + protected: void init_trees(); @@ -276,16 +286,21 @@ class Forest { arma::uword lincomb_ties_method; RObject lincomb_R_function; + bool grow_mode; + // predictions + PredType pred_type; bool pred_mode; bool pred_aggregate; - PredType pred_type; - - // is forest already grown? - bool grow_mode; - arma::mat pred_values; + // partial dependence + PartialDepType pd_type; + std::vector pd_values; + arma::mat pd_x_vals; + arma::uvec pd_x_cols; + arma::vec pd_probs; + // out-of-bag bool oobag_pred; arma::vec oobag_denom; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index 62168773..a143d34f 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -56,8 +56,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, int pd_type_R, arma::mat& pd_vals, arma::uvec& pd_cols, arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP pd_type_RSEXP, SEXP pd_valsSEXP, SEXP pd_colsSEXP, SEXP pd_probsSEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -95,11 +95,15 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type oobag(oobagSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_type_R(oobag_eval_type_RSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); + Rcpp::traits::input_parameter< int >::type pd_type_R(pd_type_RSEXP); + Rcpp::traits::input_parameter< arma::mat& >::type pd_vals(pd_valsSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type pd_cols(pd_colsSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type pd_probs(pd_probsSEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); Rcpp::traits::input_parameter< int >::type verbosity(verbositySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, n_thread, write_forest, run_forest, verbosity)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity)); return rcpp_result_gen; END_RCPP } @@ -108,7 +112,7 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 38}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 42}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index a37a7778..93729a90 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -901,6 +901,9 @@ pred_leaf.zeros(prediction_data->n_rows); + // if tree is root node, 0 is the correct leaf prediction + if(coef_values.size() == 0) return; + if(VERBOSITY > 0){ Rcout << "---- computing leaf predictions ----" << std::endl; } @@ -961,7 +964,16 @@ } - if(oobag) pred_leaf.elem(rows_inbag).fill(max_nodes); + if(oobag){ + // If the forest is loaded, only rows_oobag is saved. + if(rows_inbag.size() == 0){ + pred_leaf.elem(find(pred_leaf == 0)).fill(max_nodes); + } else { + pred_leaf.elem(rows_inbag).fill(max_nodes); + } + + + } } diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 62d3847d..399903cc 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -564,7 +564,6 @@ for(; ;) { - // Rcout << "leaf_id: " << leaf_id << std::endl; // copies of leaf data using same aux memory leaf_times = vec(leaf_pred_indx[leaf_id].begin(), diff --git a/src/globals.h b/src/globals.h index 2174e531..bdb99d88 100644 --- a/src/globals.h +++ b/src/globals.h @@ -41,6 +41,12 @@ EVAL_R_FUNCTION = 2 }; + enum PartialDepType { + PD_NONE = 0, + PD_SUMMARY = 1, + PD_ICE = 2 + }; + // Linear combination method enum LinearCombo { LC_NEWTON_RAPHSON = 1, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 80ea511e..6d5f7616 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -105,6 +105,10 @@ bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, + int pd_type_R, + arma::mat& pd_vals, + arma::uvec& pd_cols, + arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, @@ -125,6 +129,7 @@ LinearCombo lincomb_type = (LinearCombo) lincomb_type_R; PredType pred_type = (PredType) pred_type_R; EvalType oobag_eval_type = (EvalType) oobag_eval_type_R; + PartialDepType pd_type = (PartialDepType) pd_type_R; // R functions cannot be called from multiple threads if(lincomb_type == LC_R_FUNCTION || @@ -184,6 +189,10 @@ oobag_eval_type, oobag_eval_every, oobag_R_function, + pd_type, + pd_vals, + pd_cols, + pd_probs, n_thread, verbosity); @@ -253,25 +262,21 @@ if(vi_type != VI_NONE){ vec vi_output; - if(run_forest){ - if(vi_type == VI_ANOVA){ - vi_output = forest->get_vi_numer() / forest->get_vi_denom(); - } else { - vi_output = forest->get_vi_numer() / n_tree; - } - } - result.push_back(vi_output, "importance"); } + if(pd_type != PD_NONE){ + result.push_back(forest->get_pd_values(), "pd_values"); + } + return(result); } From ea632ace84bcb4597ca1a3a8a2cd5c5e5b8b9489 Mon Sep 17 00:00:00 2001 From: bjaeger Date: Sat, 30 Sep 2023 21:36:49 -0400 Subject: [PATCH 089/103] solid progress but need to fix the data restore mechanics --- R/RcppExports.R | 4 +- R/orsf.R | 8 +- R/orsf_pd.R | 212 +- R/orsf_predict.R | 4 +- R/orsf_vi.R | 4 +- orsf-output.txt | 51403 ++++++--------------------------------- scratch.R | 20 +- src/Data.h | 16 +- src/Forest.cpp | 63 +- src/Forest.h | 14 +- src/ForestSurvival.cpp | 12 +- src/ForestSurvival.h | 6 +- src/RcppExports.cpp | 12 +- src/TreeSurvival.cpp | 2 +- src/orsf_oop.cpp | 92 +- vignettes/pd.Rmd | 4 +- 16 files changed, 7286 insertions(+), 44590 deletions(-) diff --git a/R/RcppExports.R b/R/RcppExports.R index d2d5b145..86505cb7 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,7 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) } diff --git a/R/orsf.R b/R/orsf.R index 6e3c9089..f9766b88 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -759,8 +759,8 @@ orsf <- function(data, 'user' = 2), oobag_eval_every = oobag_eval_every, pd_type_R = 0, - pd_vals = matrix(0, ncol=1, nrow=1), - pd_cols = matrix(1L, ncol=1, nrow=1), + pd_x_vals = list(matrix(0, ncol=1, nrow=1)), + pd_x_cols = list(matrix(1L, ncol=1, nrow=1)), pd_probs = c(0), n_thread = n_thread, write_forest = TRUE, @@ -1134,8 +1134,8 @@ orsf_train_ <- function(object, 'user' = 2), oobag_eval_every = oobag_eval_every, pd_type_R = 0, - pd_vals = matrix(0, ncol=1, nrow=1), - pd_cols = matrix(1L, ncol=1, nrow=1), + pd_x_vals = list(matrix(0, ncol=1, nrow=1)), + pd_x_cols = list(matrix(1L, ncol=1, nrow=1)), pd_probs = c(0), n_thread = get_n_thread(object), write_forest = TRUE, diff --git a/R/orsf_pd.R b/R/orsf_pd.R index c7614e12..01edfb6c 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -342,8 +342,6 @@ orsf_pred_dependence <- function(object, pred_type, " predictions.", call. = FALSE) } - type_input <- if(expand_grid) 'grid' else 'loop' - names_x_data <- intersect(get_names_x(object), names(pd_data)) cc <- which(stats::complete.cases(select_cols(pd_data, names_x_data))) @@ -367,19 +365,184 @@ orsf_pred_dependence <- function(object, pred_spec[[i]] <- (pred_spec[[i]] - means[i]) / standard_deviations[i] } - if(is.data.frame(pred_spec)) type_input <- 'grid' - - pd_fun <- switch(type_input, 'grid' = pd_grid, 'loop' = pd_loop) - pred_type_R <- switch(pred_type, "risk" = 1, "surv" = 2, "chf" = 3, "mort" = 4) - browser() + fi <- get_fctr_info(object) + + if(expand_grid){ + + if(!is.data.frame(pred_spec)) + pred_spec <- expand.grid(pred_spec, stringsAsFactors = TRUE) + + for(i in seq_along(fi$cols)){ + + ii <- fi$cols[i] + + if(is.character(pred_spec[[ii]]) && !fi$ordr[i]){ + + pred_spec[[ii]] <- factor(pred_spec[[ii]], levels = fi$lvls[[ii]]) + + } + + } + + check_new_data_fctrs(new_data = pred_spec, + names_x = get_names_x(object), + fi_ref = fi, + label_new = "pred_spec") + + pred_spec_new <- ref_code(x_data = pred_spec, + fi = get_fctr_info(object), + names_x_data = names(pred_spec)) + + x_cols <- list(match(names(pred_spec_new), colnames(x_new)) - 1) + + pred_spec_new <- list(as.matrix(pred_spec_new)) + + pd_bind <- list(pred_spec) + + } else { + + pred_spec_new <- pd_bind <- x_cols <- list() + + for(i in seq_along(pred_spec)){ + + pred_spec_new[[i]] <- as.data.frame(pred_spec[i]) + pd_name <- names(pred_spec)[i] + + pd_bind[[i]] <- data.frame( + variable = pd_name, + value = rep(NA_real_, length(pred_spec[[i]])), + level = rep(NA_character_, length(pred_spec[[i]])) + ) + + if(pd_name %in% fi$cols) { + + pd_bind[[i]]$level <- as.character(pred_spec[[i]]) + + pred_spec_new[[i]] <- ref_code(pred_spec_new[[i]], + fi = fi, + names_x_data = pd_name) + + } else { + + pd_bind[[i]]$value <- pred_spec[[i]] + + } - out <- pd_fun(object, x_new, pred_spec, pred_horizon, - type_output, prob_values, prob_labels, - n_thread, oobag, pred_type_R) + x_cols[[i]] <- match(names(pred_spec_new[[i]]), colnames(x_new)) + pred_spec_new[[i]] <- as.matrix(pred_spec_new[[i]]) + + } + + } + + orsf_out <- orsf_cpp(x = x_new, + y = matrix(1, ncol=2), + w = rep(1, nrow(x_new)), + tree_type_R = get_tree_type(object), + tree_seeds = get_tree_seeds(object), + loaded_forest = object$forest, + n_tree = get_n_tree(object), + mtry = get_mtry(object), + vi_type_R = 0, + vi_max_pvalue = get_vi_max_pvalue(object), + lincomb_R_function = get_f_beta(object), + oobag_R_function = get_f_oobag_eval(object), + leaf_min_events = get_leaf_min_events(object), + leaf_min_obs = get_leaf_min_obs(object), + split_rule_R = switch(get_split_rule(object), + "logrank" = 1, + "cstat" = 2), + split_min_events = get_split_min_events(object), + split_min_obs = get_split_min_obs(object), + split_min_stat = get_split_min_stat(object), + split_max_cuts = get_n_split(object), + split_max_retry = get_n_retry(object), + lincomb_type_R = switch(get_orsf_type(object), + 'fast' = 1, + 'cph' = 1, + 'random' = 2, + 'net' = 3, + 'custom' = 4), + lincomb_eps = get_cph_eps(object), + lincomb_iter_max = get_cph_iter_max(object), + lincomb_scale = get_cph_do_scale(object), + lincomb_alpha = get_net_alpha(object), + lincomb_df_target = get_net_df_target(object), + lincomb_ties_method = switch( + tolower(get_cph_method(object)), + 'breslow' = 0, + 'efron' = 1 + ), + pred_type_R = pred_type_R, + pred_mode = FALSE, + pred_aggregate = TRUE, + pred_horizon = pred_horizon, + oobag = oobag, + oobag_eval_type_R = 0, + oobag_eval_every = get_n_tree(object), + pd_type_R = switch(type_output, + "smry" = 1L, + "ice" = 2L), + pd_x_vals = pred_spec_new, + pd_x_cols = x_cols, + pd_probs = prob_values, + n_thread = n_thread, + write_forest = FALSE, + run_forest = TRUE, + verbosity = 0) + + pd_vals <- orsf_out$pd_values + + for(i in seq_along(pd_vals)){ + + pd_bind[[i]]$id_variable <- seq(nrow(pd_bind[[i]])) + + for(j in seq_along(pd_vals[[i]])){ + + pd_vals[[i]][[j]] <- matrix(pd_vals[[i]][[j]], + nrow=length(pred_horizon), + byrow = T) + + rownames(pd_vals[[i]][[j]]) <- pred_horizon + + if(type_output=='smry') + colnames(pd_vals[[i]][[j]]) <- c('mean', prob_labels) + else + colnames(pd_vals[[i]][[j]]) <- c(paste(1:nrow(x_new))) + + pd_vals[[i]][[j]] <- as.data.table(pd_vals[[i]][[j]], + keep.rownames = 'pred_horizon') + + if(type_output == 'ice') + pd_vals[[i]][[j]] <- melt(data = pd_vals[[i]][[j]], + id.vars = 'pred_horizon', + variable.name = 'id_row', + value.name = 'pred_value') + + } + + pd_vals[[i]] <- rbindlist(pd_vals[[i]], idcol = 'id_variable') + + pd_vals[[i]] <- merge(pd_vals[[i]], + as.data.table(pd_bind[[i]]), + by = 'id_variable') + + } + + + out <- rbindlist(pd_vals) + + ids <- c('id_variable', if(type_output == 'ice') 'id_row') + + mid <- setdiff(names(out), c(ids, 'mean', prob_labels, 'pred_value')) + + end <- setdiff(names(out), c(ids, mid)) + + setcolorder(out, neworder = c(ids, mid, end)) out[, pred_horizon := as.numeric(pred_horizon)] @@ -515,25 +678,30 @@ pd_grid <- function(object, pd_type_R = switch(type_output, "smry" = 1L, "ice" = 2L), - pd_vals = as.matrix(pred_spec_new), - pd_cols = x_cols-1L, + pd_x_vals = list(as.matrix(pred_spec_new)), + pd_x_cols = list(x_cols-1L), pd_probs = prob_values, n_thread = n_thread, write_forest = FALSE, run_forest = TRUE, - verbosity = 0) + verbosity = 4) pd_vals <- orsf_out$pd_values if(type_output == 'smry'){ - pd_vals <- lapply(pd_vals, function(x){ - m <- matrix(x, nrow=length(pred_horizon), byrow = T) - rownames(m) <- pred_horizon - colnames(m) <- c('mean', prob_labels) - data.table(m, keep.rownames = 'pred_horizon') - }) - + for(i in seq_along(pd_vals)){ + for(j in seq_along(pd_vals[[i]])){ + pd_vals[[i]][[j]] <- matrix(pd_vals[[i]][[j]], + nrow=length(pred_horizon), + byrow = T) + rownames(pd_vals[[i]][[j]]) <- pred_horizon + colnames(pd_vals[[i]][[j]]) <- c('mean', prob_labels) + } + pd_vals[[i]] <- as.data.table( + do.call(rbind, pd_vals[[i]]), keep.rownames = 'pred_horizon' + ) + } } else if(type_output == 'ice'){ @@ -673,8 +841,8 @@ pd_loop <- function(object, oobag_eval_type_R = 0, oobag_eval_every = get_n_tree(object), pd_type_R = 1, - pd_vals = as.matrix(pd_new), - pd_cols = x_cols-1L, + pd_x_vals = as.matrix(pd_new), + pd_x_cols = x_cols-1L, pd_probs = prob_values, n_thread = n_thread, write_forest = FALSE, diff --git a/R/orsf_predict.R b/R/orsf_predict.R index 5ecfa2e6..f7c9aad1 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -213,8 +213,8 @@ predict.orsf_fit <- function(object, oobag_eval_type_R = 0, oobag_eval_every = get_n_tree(object), pd_type_R = 0, - pd_vals = matrix(0, ncol=1, nrow=1), - pd_cols = matrix(1L, ncol=1, nrow=1), + pd_x_vals = list(matrix(0, ncol=1, nrow=1)), + pd_x_cols = list(matrix(1L, ncol=1, nrow=1)), pd_probs = c(0), n_thread = n_thread, write_forest = FALSE, diff --git a/R/orsf_vi.R b/R/orsf_vi.R index 588a18b0..e0b21f74 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -348,8 +348,8 @@ orsf_vi_oobag_ <- function(object, 'user' = 2), oobag_eval_every = get_n_tree(object), pd_type_R = 0, - pd_vals = matrix(0, ncol=1, nrow=1), - pd_cols = matrix(1L, ncol=1, nrow=1), + pd_x_vals = list(matrix(0, ncol=1, nrow=1)), + pd_x_cols = list(matrix(1L, ncol=1, nrow=1)), pd_probs = c(0), n_thread = n_thread, write_forest = FALSE, diff --git a/orsf-output.txt b/orsf-output.txt index cf674887..fdafb1a2 100644 --- a/orsf-output.txt +++ b/orsf-output.txt @@ -3,47530 +3,10043 @@ N observations total: 276 N columns total: 18 ----------------------------------------------- ------------- Growing tree 0 -------------- +1 +made it here +pd_x_vals: + -0.5072 + -0.2899 + -0.0725 + 0.1448 + 0.3622 +pd_x_cols: + 8 +made it here 2 +8 +made it to k = 0 +--- Computing oobag predictions: tree 0 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 221 -- max leaves: 111 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 1 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 5 11 12 17 8 +--- Computing oobag predictions: tree 2 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 3 --- - -0.1728 0.6490 0.0973 0.5518 1.8993 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 4 --- - -- cutpoint (score) - --- 0.0633776 (0.626764), N = 210 moving right - --- 0.542377 (0.692298), N = 157 moving right - --- 0.793609 (0.728298), N = 132 moving right - --- 4.19107 (0.645468), N = 29 moving right - --- 8.89887 (0.559762), N = 10 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.728298, min to split: 0.999 +--- Computing oobag predictions: tree 5 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 6 --- - 14 15 2 1 12 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 7 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 0.4715 -0.2312 -0.2531 0.3180 0.2413 +--- Computing oobag predictions: tree 8 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -1.35425 (0.506099), N = 268 moving right - --- -1.00364 (0.549951), N = 239 moving right - --- -0.696911 (0.587501), N = 206 moving right - --- -0.0084199 (0.630701), N = 89 moving right - --- 0.0164788 (0.647263), N = 83 moving right +--- Computing oobag predictions: tree 9 --- - -- best stat: 0.647263, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 10 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 1 16 8 3 6 +--- Computing oobag predictions: tree 11 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 12 --- - 0.2925 0.5530 1.9470 6.4495 0.1508 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 13 --- - -- cutpoint (score) - --- -1.55241 (0.553582), N = 240 moving right - --- -1.24429 (0.63784), N = 189 moving right - --- 0.125477 (0.766215), N = 66 moving right - --- 0.650189 (0.729053), N = 53 moving right - --- 4.44114 (0.620645), N = 21 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.766215, min to split: 0.999 +--- Computing oobag predictions: tree 14 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 93 + -- N preds made: 93 - -- time & status & weights in this node +--- Computing oobag predictions: tree 15 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 16 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.3100e+02 9.7101e-01 2.9279e-02 - 1.4000e+02 9.6014e-01 4.0473e-02 +--- Computing oobag predictions: tree 17 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 1 -------------- +--- Computing oobag predictions: tree 18 --- -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 191 -- max leaves: 96 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 19 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 16 8 11 15 1 +--- Computing oobag predictions: tree 20 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 21 --- - 0.3634 1.6006 0.6899 -0.1448 0.5812 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 22 --- - -- cutpoint (score) - --- -0.809193 (0.743664), N = 128 moving right - --- -0.51338 (0.766672), N = 113 moving right - --- 0.139177 (0.786433), N = 78 moving right - --- 1.53763 (0.70115), N = 40 moving right - --- 1.75609 (0.698625), N = 37 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.786433, min to split: 0.999 +--- Computing oobag predictions: tree 23 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 24 --- - 10 15 6 14 4 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 25 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - -0.6544 -0.3663 0.7392 0.3114 0.6561 +--- Computing oobag predictions: tree 26 --- + -- N preds expected: 106 + -- N preds made: 106 - -- cutpoint (score) - --- -1.04805 (0.534639), N = 248 moving right - --- -0.116617 (0.631766), N = 173 moving right - --- 0.259743 (0.693424), N = 126 moving right - --- 0.736355 (0.69924), N = 91 moving right - --- 1.16021 (0.705204), N = 56 moving right +--- Computing oobag predictions: tree 27 --- - -- best stat: 0.705204, min to split: 0.999 + -- N preds expected: 110 + -- N preds made: 110 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 28 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 11 7 4 6 8 +--- Computing oobag predictions: tree 29 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 30 --- - 0.5597 8.7210 0.3050 0.9665 1.1989 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 31 --- - -- cutpoint (score) - --- -1.12522 (0.547926), N = 253 moving right - --- -0.969457 (0.588997), N = 235 moving right - --- -0.746868 (0.667976), N = 193 moving right - --- 0.914555 (0.740969), N = 58 moving right - --- 2.38452 (0.66407), N = 31 moving right + -- N preds expected: 92 + -- N preds made: 92 - -- best stat: 0.740969, min to split: 0.999 +--- Computing oobag predictions: tree 32 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 89 + -- N preds made: 89 - -- time & status & weights in this node +--- Computing oobag predictions: tree 33 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 34 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 35 --- + -- N preds expected: 88 + -- N preds made: 88 ------------- Growing tree 2 -------------- +--- Computing oobag predictions: tree 36 --- -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 37 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 4 7 12 11 5 +--- Computing oobag predictions: tree 38 --- + -- N preds expected: 92 + -- N preds made: 92 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 39 --- - 0.6999 5.2771 -0.0027 0.7344 0.2407 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 40 --- - -- cutpoint (score) - --- -0.571545 (0.561338), N = 244 moving right - --- -0.404844 (0.603741), N = 224 moving right - --- -0.403979 (0.607831), N = 221 moving right - --- 0.220441 (0.702489), N = 162 moving right - --- 1.42339 (0.681806), N = 54 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.702489, min to split: 0.999 +--- Computing oobag predictions: tree 41 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 94 + -- N preds made: 94 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 42 --- - 10 13 1 0 17 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 43 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - -0.5573 0.6082 0.4316 -0.1411 0.6657 +--- Computing oobag predictions: tree 44 --- + -- N preds expected: 109 + -- N preds made: 109 - -- cutpoint (score) - --- 1.09637 (0.619488), N = 205 moving right - --- 1.35616 (0.65805), N = 182 moving right - --- 1.80093 (0.694308), N = 141 moving right - --- 2.73813 (0.674816), N = 75 moving right - --- 4.37012 (0.587802), N = 18 moving right +--- Computing oobag predictions: tree 45 --- - -- best stat: 0.694308, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 46 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 3 15 10 9 7 +--- Computing oobag predictions: tree 47 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 48 --- - 8.6528 -0.1085 -0.5179 0.3727 1.9583 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 49 --- - -- cutpoint (score) - --- -0.727443 (0.56587), N = 245 moving right - --- -0.320913 (0.64455), N = 186 moving right - --- -0.286118 (0.648564), N = 180 moving right - --- -0.0839571 (0.671685), N = 148 moving right - --- 0.154953 (0.699839), N = 107 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.699839, min to split: 0.999 +--- Computing oobag predictions: tree 50 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 110 + -- N preds made: 110 - -- time & status & weights in this node +--- Computing oobag predictions: tree 51 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 52 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.1000e+01 9.7826e-01 2.1886e-02 - 1.1000e+02 9.6739e-01 3.2997e-02 - 1.3100e+02 9.6014e-01 4.0487e-02 +--- Computing oobag predictions: tree 53 --- + -- N preds expected: 99 + -- N preds made: 99 ------------- Growing tree 3 -------------- +--- Computing oobag predictions: tree 54 --- -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 55 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 5 15 14 3 16 +--- Computing oobag predictions: tree 56 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 57 --- - 1.5696 -0.1365 0.5067 10.9953 0.2896 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 58 --- - -- cutpoint (score) - --- -0.334336 (0.619977), N = 208 moving right - --- -0.269932 (0.634439), N = 196 moving right - --- -0.242301 (0.635194), N = 194 moving right - --- 1.12211 (0.674581), N = 76 moving right - --- 11.5385 (0.572941), N = 11 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.674581, min to split: 0.999 +--- Computing oobag predictions: tree 59 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 60 --- - 16 0 10 1 5 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 61 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 0.5984 -0.3501 -0.7175 0.3394 1.4672 +--- Computing oobag predictions: tree 62 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -0.648535 (0.621058), N = 195 moving right - --- -0.313275 (0.692184), N = 156 moving right - --- 0.403859 (0.72072), N = 103 moving right - --- 1.03673 (0.700241), N = 66 moving right - --- 1.15915 (0.6961), N = 64 moving right +--- Computing oobag predictions: tree 63 --- - -- best stat: 0.72072, min to split: 0.999 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 64 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 5 11 2 7 10 +--- Computing oobag predictions: tree 65 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 66 --- - 1.0566 1.0459 -1.0342 6.7354 -0.5043 + -- N preds expected: 115 + -- N preds made: 115 +--- Computing oobag predictions: tree 67 --- - -- cutpoint (score) - --- -1.69204 (0.618794), N = 203 moving right - --- -1.65011 (0.63554), N = 194 moving right - --- -0.318106 (0.765349), N = 94 moving right - --- 0.440427 (0.720618), N = 56 moving right - --- 1.16793 (0.691347), N = 39 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.765349, min to split: 0.999 +--- Computing oobag predictions: tree 68 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 69 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 70 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 100 + -- N preds made: 100 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 71 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 4 -------------- +--- Computing oobag predictions: tree 72 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 237 -- max leaves: 119 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 73 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 11 8 16 15 12 +--- Computing oobag predictions: tree 74 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 75 --- - 0.9424 1.2595 0.4228 -0.1425 -0.0317 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 76 --- - -- cutpoint (score) - --- -1.56121 (0.578621), N = 241 moving right - --- -1.48773 (0.601466), N = 231 moving right - --- -1.17138 (0.684644), N = 185 moving right - --- 0.888778 (0.703417), N = 65 moving right - --- 1.65486 (0.645412), N = 37 moving right + -- N preds expected: 110 + -- N preds made: 110 - -- best stat: 0.703417, min to split: 0.999 +--- Computing oobag predictions: tree 77 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 78 --- - 10 5 7 3 15 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 79 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - -0.2052 0.8500 8.0901 4.0107 -0.0557 +--- Computing oobag predictions: tree 80 --- + -- N preds expected: 108 + -- N preds made: 108 - -- cutpoint (score) - --- -0.401471 (0.500659), N = 271 moving right - --- -0.0855714 (0.619754), N = 195 moving right - --- -0.0527609 (0.644093), N = 184 moving right - --- 0.142662 (0.660635), N = 117 moving right - --- 9.29084 (0.570825), N = 14 moving right +--- Computing oobag predictions: tree 81 --- - -- best stat: 0.660635, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 82 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 13 10 5 2 6 +--- Computing oobag predictions: tree 83 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 84 --- - 0.5681 -0.5513 1.0503 -0.8453 0.6270 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 85 --- - -- cutpoint (score) - --- -2.15764 (0.520848), N = 265 moving right - --- -1.74204 (0.553914), N = 251 moving right - --- -0.927467 (0.67615), N = 191 moving right - --- -0.893648 (0.687747), N = 185 moving right - --- -0.797912 (0.687127), N = 179 moving right - - -- best stat: 0.687747, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.9800e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 5 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 15 4 6 12 - - - -- linear combo weights (showing up to 5) - - 0.5493 -0.1577 1.2256 1.4185 0.0383 - - - -- cutpoint (score) - --- -0.295861 (0.602675), N = 217 moving right - --- -0.26266 (0.605977), N = 216 moving right - --- 0.470285 (0.674014), N = 146 moving right - --- 0.946335 (0.711744), N = 112 moving right - --- 1.1288 (0.729726), N = 85 moving right - - -- best stat: 0.729726, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 12 4 3 1 - - - -- linear combo weights (showing up to 5) - - 2.3378 0.0312 0.3236 3.4180 0.3213 - - - -- cutpoint (score) - --- -0.836964 (0.710103), N = 154 moving right - --- -0.643029 (0.744637), N = 134 moving right - --- -0.0193194 (0.772272), N = 90 moving right - --- 1.18956 (0.721418), N = 60 moving right - --- 4.53294 (0.621751), N = 24 moving right - - -- best stat: 0.772272, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 6 5 16 7 - - - -- linear combo weights (showing up to 5) - - 0.1883 0.9643 0.2945 0.3738 16.4346 - - - -- cutpoint (score) - --- -0.377641 (0.552494), N = 246 moving right - --- -0.321667 (0.591655), N = 227 moving right - --- 0.152074 (0.704425), N = 105 moving right - --- 0.318113 (0.68312), N = 75 moving right - --- 1.19052 (0.622255), N = 33 moving right - - -- best stat: 0.704425, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7101e-01 2.9265e-02 - 1.7900e+02 9.6377e-01 3.6728e-02 - - ------------- Growing tree 6 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 17 12 6 16 - - - -- linear combo weights (showing up to 5) - - 7.0646 0.4500 0.0648 1.0795 0.4063 - - - -- cutpoint (score) - --- 0.615486 (0.570094), N = 242 moving right - --- 1.41932 (0.701384), N = 133 moving right - --- 1.48675 (0.707543), N = 117 moving right - --- 1.57088 (0.713323), N = 109 moving right - --- 2.0304 (0.662147), N = 67 moving right - - -- best stat: 0.713323, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 3 8 0 5 - - - -- linear combo weights (showing up to 5) - - 0.1273 4.6380 1.4565 -0.2109 0.6830 - - - -- cutpoint (score) - --- -0.675415 (0.683205), N = 182 moving right - --- 0.0526431 (0.725062), N = 107 moving right - --- 0.306533 (0.729862), N = 92 moving right - --- 1.38279 (0.659547), N = 46 moving right - --- 8.04336 (0.533637), N = 6 moving right - - -- best stat: 0.729862, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 3 13 8 15 - - - -- linear combo weights (showing up to 5) - - 1.4594 4.4279 0.0234 1.5610 -0.0653 - - - -- cutpoint (score) - --- -0.89583 (0.584933), N = 222 moving right - --- -0.740127 (0.668607), N = 172 moving right - --- -0.0503273 (0.722182), N = 110 moving right - --- 0.538709 (0.702924), N = 79 moving right - --- 0.604699 (0.696564), N = 73 moving right - - -- best stat: 0.722182, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8188e-01 1.8208e-02 - 1.1000e+02 9.7826e-01 2.1898e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 7 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 2 17 7 12 - - - -- linear combo weights (showing up to 5) - - 1.8706 -1.0753 0.2433 7.6455 0.1741 - - - -- cutpoint (score) - --- -1.8191 (0.534697), N = 255 moving right - --- -1.48063 (0.631591), N = 204 moving right - --- -1.24738 (0.711989), N = 163 moving right - --- -0.619971 (0.799899), N = 111 moving right - --- 0.56899 (0.749379), N = 66 moving right - - -- best stat: 0.799899, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 4 5 2 11 - - - -- linear combo weights (showing up to 5) - - 0.1431 0.5162 0.6976 -0.3648 1.0675 - - - -- cutpoint (score) - --- -0.910018 (0.601145), N = 213 moving right - --- 0.212722 (0.729348), N = 110 moving right - --- 0.265038 (0.70877), N = 100 moving right - --- 0.537402 (0.691537), N = 74 moving right - --- 0.549496 (0.696777), N = 71 moving right - - -- best stat: 0.729348, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 16 17 4 9 - - - -- linear combo weights (showing up to 5) - - 0.6296 0.4457 0.5482 0.2123 0.7121 - - - -- cutpoint (score) - --- 0.694248 (0.56224), N = 246 moving right - --- 1.2021 (0.649455), N = 189 moving right - --- 2.123 (0.728191), N = 115 moving right - --- 2.16793 (0.733199), N = 102 moving right - --- 2.29842 (0.721731), N = 95 moving right - - -- best stat: 0.733199, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.7826e-01 2.1885e-02 - 1.8600e+02 9.7464e-01 2.5589e-02 - 1.9100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 8 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 8 10 4 14 - - - -- linear combo weights (showing up to 5) - - 0.3840 1.4714 -0.6031 0.1492 0.0631 - - - -- cutpoint (score) - --- -1.57313 (0.514768), N = 258 moving right - --- -1.57019 (0.520264), N = 255 moving right - --- -0.338871 (0.716823), N = 127 moving right - --- 0.531566 (0.680518), N = 60 moving right - --- 0.54257 (0.676452), N = 59 moving right - - -- best stat: 0.716823, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 16 3 11 9 - - - -- linear combo weights (showing up to 5) - - -0.1411 0.6264 8.6308 0.8146 0.2100 - - - -- cutpoint (score) - --- -1.15383 (0.559584), N = 238 moving right - --- -0.78745 (0.637891), N = 194 moving right - --- -0.599703 (0.702324), N = 162 moving right - --- -0.536374 (0.720554), N = 154 moving right - --- 0.782636 (0.732194), N = 65 moving right - - -- best stat: 0.732194, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 17 2 12 7 - - - -- linear combo weights (showing up to 5) - - 9.4131 0.4623 -1.2912 0.1780 4.3712 - - - -- cutpoint (score) - --- -0.369568 (0.603083), N = 223 moving right - --- -0.326835 (0.593253), N = 221 moving right - --- -0.0178523 (0.621113), N = 202 moving right - --- -0.00287891 (0.643387), N = 190 moving right - --- 1.72479 (0.624196), N = 33 moving right - - -- best stat: 0.643387, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 9 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 11 16 9 15 - - - -- linear combo weights (showing up to 5) - - 0.2575 1.0257 1.0247 0.1915 0.0453 - - - -- cutpoint (score) - --- -1.55313 (0.55522), N = 242 moving right - --- 0.121693 (0.764362), N = 97 moving right - --- 0.19601 (0.739544), N = 91 moving right - --- 0.647938 (0.728496), N = 74 moving right - --- 1.67872 (0.632832), N = 39 moving right - - -- best stat: 0.764362, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 5 7 15 0 - - - -- linear combo weights (showing up to 5) - - 0.2702 0.8126 12.3577 0.0638 -0.0707 - - - -- cutpoint (score) - --- -0.236559 (0.56031), N = 223 moving right - --- 0.186016 (0.63666), N = 110 moving right - --- 0.333412 (0.629123), N = 93 moving right - --- 0.469259 (0.658302), N = 77 moving right - --- 12.924 (0.557311), N = 9 moving right - - -- best stat: 0.658302, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 8 15 3 4 - - - -- linear combo weights (showing up to 5) - - 0.1567 1.7551 0.0109 5.6711 0.1573 - - - -- cutpoint (score) - --- -1.03873 (0.588147), N = 230 moving right - --- -1.02991 (0.603358), N = 223 moving right - --- -1.0098 (0.615511), N = 215 moving right - --- 0.483785 (0.688999), N = 61 moving right - --- 4.89236 (0.59809), N = 19 moving right - - -- best stat: 0.688999, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 10 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 1 12 9 2 - - - -- linear combo weights (showing up to 5) - - 0.7386 0.5279 0.0515 0.1480 -0.0678 - - - -- cutpoint (score) - --- -0.822258 (0.576182), N = 234 moving right - --- -0.536695 (0.664455), N = 178 moving right - --- 0.147411 (0.683161), N = 104 moving right - --- 0.413265 (0.663563), N = 73 moving right - --- 0.79116 (0.600081), N = 45 moving right - - -- best stat: 0.683161, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 9 13 14 10 - - - -- linear combo weights (showing up to 5) - - 0.4692 0.0180 0.6402 0.3782 -0.7598 - - - -- cutpoint (score) - --- 1.16616 (0.716738), N = 131 moving right - --- 1.50975 (0.704971), N = 111 moving right - --- 1.92804 (0.660296), N = 71 moving right - --- 2.03224 (0.658146), N = 60 moving right - --- 3.33269 (0.612741), N = 23 moving right - - -- best stat: 0.716738, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 6 4 15 8 - - - -- linear combo weights (showing up to 5) - - -0.3272 1.1970 0.4627 -0.0633 1.8368 - - - -- cutpoint (score) - --- -1.34629 (0.587929), N = 227 moving right - --- -0.950182 (0.655102), N = 178 moving right - --- -0.909367 (0.658957), N = 176 moving right - --- 0.547474 (0.692717), N = 61 moving right - --- 1.92079 (0.600325), N = 30 moving right - - -- best stat: 0.692717, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 1.4000e+02 9.8188e-01 1.8209e-02 - 1.8600e+02 9.7826e-01 2.1899e-02 - 1.9800e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 11 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 3 6 8 9 - - - -- linear combo weights (showing up to 5) - - -0.2602 4.4554 -0.0835 1.8522 0.0888 - - - -- cutpoint (score) - --- -0.929322 (0.613807), N = 195 moving right - --- -0.843609 (0.669756), N = 168 moving right - --- -0.819948 (0.686745), N = 160 moving right - --- -0.759643 (0.717248), N = 140 moving right - --- 2.9977 (0.641994), N = 30 moving right - - -- best stat: 0.717248, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 16 17 1 2 - - - -- linear combo weights (showing up to 5) - - -0.6945 0.2949 0.6471 0.3546 -0.1916 - - - -- cutpoint (score) - --- 0.107888 (0.541025), N = 255 moving right - --- 0.877192 (0.641724), N = 199 moving right - --- 2.15002 (0.72163), N = 91 moving right - --- 2.73015 (0.701765), N = 61 moving right - --- 3.04286 (0.692807), N = 48 moving right - - -- best stat: 0.72163, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 5 3 2 16 - - - -- linear combo weights (showing up to 5) - - 0.5650 0.7837 5.5795 -0.2430 0.2664 - - - -- cutpoint (score) - --- -0.782752 (0.601104), N = 220 moving right - --- -0.356838 (0.655122), N = 179 moving right - --- -0.101535 (0.683019), N = 142 moving right - --- 0.527807 (0.651859), N = 62 moving right - --- 1.17591 (0.618286), N = 29 moving right - - -- best stat: 0.683019, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 12 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 3 6 8 9 - - - -- linear combo weights (showing up to 5) - - -0.1870 17.2654 -0.0744 1.5829 -0.0362 - - - -- cutpoint (score) - --- -0.793595 (0.658176), N = 179 moving right - --- -0.771735 (0.656928), N = 177 moving right - --- -0.666194 (0.715247), N = 146 moving right - --- -0.127167 (0.771555), N = 88 moving right - --- 0.20565 (0.723244), N = 60 moving right - - -- best stat: 0.771555, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 10 8 4 14 - - - -- linear combo weights (showing up to 5) - - 17.1026 -0.4462 1.3392 0.5202 0.0798 - - - -- cutpoint (score) - --- -1.0353 (0.549466), N = 246 moving right - --- -0.812965 (0.608987), N = 221 moving right - --- -0.677157 (0.653738), N = 192 moving right - --- -0.532128 (0.684897), N = 176 moving right - --- 0.76854 (0.748139), N = 56 moving right - - -- best stat: 0.748139, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 4 15 13 16 - - - -- linear combo weights (showing up to 5) - - 0.5042 0.6065 -0.1345 0.5205 0.8378 - - - -- cutpoint (score) - --- -1.1197 (0.568027), N = 237 moving right - --- -0.790468 (0.628149), N = 211 moving right - --- 0.364668 (0.749896), N = 119 moving right - --- 0.382215 (0.737645), N = 117 moving right - --- 0.926787 (0.734478), N = 76 moving right - - -- best stat: 0.749896, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 13 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 15 6 9 7 - - - -- linear combo weights (showing up to 5) - - 0.0219 -0.1606 2.0807 0.4418 16.0532 - - - -- cutpoint (score) - --- 0.0598248 (0.68723), N = 119 moving right - --- 0.255481 (0.68498), N = 75 moving right - --- 1.11562 (0.655572), N = 45 moving right - --- 1.72544 (0.626543), N = 38 moving right - --- 1.73307 (0.629706), N = 37 moving right - - -- best stat: 0.68723, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 13 10 2 15 - - - -- linear combo weights (showing up to 5) - - -0.1041 0.3582 -0.6897 -0.4612 -0.0843 - - - -- cutpoint (score) - --- -0.665722 (0.651272), N = 169 moving right - --- -0.0391143 (0.616562), N = 79 moving right - --- 0.299017 (0.593971), N = 35 moving right - --- 0.523078 (0.591164), N = 31 moving right - --- 1.11075 (0.55358), N = 13 moving right - - -- best stat: 0.651272, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 14 13 10 17 - - - -- linear combo weights (showing up to 5) - - 0.0234 0.4126 0.2296 -0.6279 0.5880 - - - -- cutpoint (score) - --- 1.12086 (0.606737), N = 203 moving right - --- 1.44229 (0.672348), N = 177 moving right - --- 1.59596 (0.696453), N = 162 moving right - --- 1.94182 (0.668137), N = 121 moving right - --- 3.0725 (0.611772), N = 34 moving right - - -- best stat: 0.696453, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8188e-01 1.8208e-02 - 1.7900e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 14 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 9 16 0 11 - - - -- linear combo weights (showing up to 5) - - 1.7906 0.1268 0.9435 0.3026 1.1052 - - - -- cutpoint (score) - --- -1.18452 (0.592207), N = 214 moving right - --- -0.63848 (0.678821), N = 168 moving right - --- -0.00329135 (0.745526), N = 121 moving right - --- 0.107908 (0.742573), N = 113 moving right - --- 4.23605 (0.556416), N = 7 moving right - - -- best stat: 0.745526, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 17 4 14 12 - - - -- linear combo weights (showing up to 5) - - 1.5818 0.5831 -0.0077 -0.1987 0.3899 - - - -- cutpoint (score) - --- 0.309107 (0.567936), N = 239 moving right - --- 0.364191 (0.575966), N = 236 moving right - --- 0.868382 (0.688484), N = 180 moving right - --- 0.932338 (0.719376), N = 166 moving right - --- 1.60594 (0.759328), N = 111 moving right - - -- best stat: 0.759328, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 12 2 11 1 - - - -- linear combo weights (showing up to 5) - - 0.3657 0.3100 0.0608 1.1982 0.4339 - - - -- cutpoint (score) - --- -0.746351 (0.617327), N = 224 moving right - --- -0.418502 (0.679111), N = 183 moving right - --- -0.127306 (0.730248), N = 133 moving right - --- 1.4096 (0.707185), N = 50 moving right - --- 2.04015 (0.605695), N = 30 moving right - - -- best stat: 0.730248, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 15 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 5 1 12 2 - - - -- linear combo weights (showing up to 5) - - 0.4110 1.2865 0.4575 0.3270 -2.0506 - - - -- cutpoint (score) - --- -2.28365 (0.62663), N = 195 moving right - --- -1.80056 (0.732981), N = 142 moving right - --- -1.23659 (0.73188), N = 107 moving right - --- -0.444395 (0.672354), N = 68 moving right - --- 0.175458 (0.558975), N = 24 moving right - - -- best stat: 0.732981, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 4 0 1 5 - - - -- linear combo weights (showing up to 5) - - 0.2116 1.1143 0.0154 0.6234 0.8043 - - - -- cutpoint (score) - --- 0.00630003 (0.626799), N = 204 moving right - --- 0.0997701 (0.646931), N = 196 moving right - --- 0.624655 (0.698201), N = 151 moving right - --- 0.839515 (0.706964), N = 135 moving right - --- 1.28077 (0.720745), N = 91 moving right - - -- best stat: 0.720745, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 7 14 4 17 - - - -- linear combo weights (showing up to 5) - - -0.0724 9.8963 0.5469 0.9964 0.1208 - - - -- cutpoint (score) - --- -0.277538 (0.522989), N = 260 moving right - --- 0.677438 (0.666765), N = 161 moving right - --- 1.24178 (0.719285), N = 103 moving right - --- 1.25062 (0.716025), N = 101 moving right - --- 1.36744 (0.712616), N = 80 moving right - - -- best stat: 0.719285, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8188e-01 1.8195e-02 - 1.7900e+02 9.7826e-01 2.1885e-02 - 1.8600e+02 9.7101e-01 2.9293e-02 - 1.9100e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 16 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 4 3 11 15 - - - -- linear combo weights (showing up to 5) - - 0.2974 1.5373 8.6419 0.8081 0.0894 - - - -- cutpoint (score) - --- -0.368845 (0.544374), N = 254 moving right - --- 0.076787 (0.698195), N = 170 moving right - --- 1.21853 (0.750966), N = 120 moving right - --- 3.15298 (0.653973), N = 31 moving right - --- 10.7534 (0.543202), N = 8 moving right - - -- best stat: 0.750966, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 8 7 3 2 - - - -- linear combo weights (showing up to 5) - - 0.4811 1.6791 18.6178 1.8044 -0.1808 - - - -- cutpoint (score) - --- -1.00209 (0.684503), N = 160 moving right - --- -0.546644 (0.80135), N = 98 moving right - --- -0.498375 (0.798203), N = 90 moving right - --- -0.201349 (0.791629), N = 81 moving right - --- 0.562552 (0.701124), N = 48 moving right - - -- best stat: 0.80135, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 5 1 6 0 - - - -- linear combo weights (showing up to 5) - - 0.6818 2.0128 0.8714 2.2981 -0.1680 - - - -- cutpoint (score) - --- -0.520682 (0.661481), N = 180 moving right - --- 0.100741 (0.716183), N = 124 moving right - --- 0.42974 (0.726121), N = 99 moving right - --- 2.47556 (0.676106), N = 44 moving right - --- 3.38838 (0.636831), N = 27 moving right - - -- best stat: 0.726121, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 17 -------------- - -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 7 4 5 8 - - - -- linear combo weights (showing up to 5) - - 0.0199 9.1073 0.1528 -0.1533 1.8710 - - - -- cutpoint (score) - --- -1.21408 (0.509092), N = 271 moving right - --- -1.0951 (0.586082), N = 231 moving right - --- -0.977122 (0.640833), N = 196 moving right - --- -0.953255 (0.662009), N = 187 moving right - --- -0.69583 (0.724199), N = 125 moving right - - -- best stat: 0.724199, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 3 16 2 10 - - - -- linear combo weights (showing up to 5) - - 1.5745 7.6250 0.4103 -0.7854 -0.3749 - - - -- cutpoint (score) - --- -2.23602 (0.534736), N = 250 moving right - --- -0.51574 (0.750098), N = 72 moving right - --- 0.0371589 (0.739845), N = 56 moving right - --- 0.66462 (0.662324), N = 33 moving right - --- 4.41954 (0.605625), N = 17 moving right - - -- best stat: 0.750098, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 0 17 10 7 - - - -- linear combo weights (showing up to 5) - - 0.5357 -0.3079 0.5483 -0.4198 10.0012 - - - -- cutpoint (score) - --- 0.627693 (0.554534), N = 246 moving right - --- 1.34423 (0.656282), N = 136 moving right - --- 1.92232 (0.676671), N = 69 moving right - --- 2.09518 (0.669389), N = 57 moving right - --- 2.4055 (0.657797), N = 39 moving right - - -- best stat: 0.676671, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 18 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 7 11 15 6 - - - -- linear combo weights (showing up to 5) - - 0.3195 7.7377 0.5859 -0.0065 1.7219 - - - -- cutpoint (score) - --- -0.422439 (0.650047), N = 195 moving right - --- -0.207374 (0.697278), N = 151 moving right - --- 1.68672 (0.714635), N = 44 moving right - --- 2.28271 (0.671452), N = 32 moving right - --- 8.89221 (0.557585), N = 8 moving right - - -- best stat: 0.714635, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 16 1 13 17 - - - -- linear combo weights (showing up to 5) - - 1.2001 0.5045 0.6255 0.5089 0.5031 - - - -- cutpoint (score) - --- 0.645634 (0.614286), N = 210 moving right - --- 0.951446 (0.663541), N = 180 moving right - --- 1.32752 (0.711494), N = 136 moving right - --- 3.78713 (0.61517), N = 20 moving right - --- 3.92164 (0.595998), N = 18 moving right - - -- best stat: 0.711494, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 15 14 6 8 - - - -- linear combo weights (showing up to 5) - - 0.3750 -0.2605 0.2325 1.3320 1.6583 - - - -- cutpoint (score) - --- -1.56733 (0.517846), N = 261 moving right - --- -1.13107 (0.589507), N = 215 moving right - --- -1.03935 (0.630107), N = 191 moving right - --- -0.888621 (0.672708), N = 171 moving right - --- -0.788825 (0.694207), N = 161 moving right - - -- best stat: 0.694207, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 19 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 10 7 2 3 - - - -- linear combo weights (showing up to 5) - - 1.4883 -0.4421 2.4055 -1.0580 1.7375 - - - -- cutpoint (score) - --- -1.36732 (0.545004), N = 228 moving right - --- -1.3564 (0.548446), N = 226 moving right - --- -0.832142 (0.662394), N = 109 moving right - --- -0.733844 (0.655432), N = 99 moving right - --- -0.307884 (0.654479), N = 58 moving right - - -- best stat: 0.662394, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 1 6 17 8 - - - -- linear combo weights (showing up to 5) - - 0.7881 0.3391 0.5060 0.2071 1.0954 - - - -- cutpoint (score) - --- -0.567303 (0.631471), N = 203 moving right - --- -0.387182 (0.674861), N = 177 moving right - --- -0.185086 (0.691645), N = 164 moving right - --- 0.0444879 (0.726205), N = 143 moving right - --- 2.94326 (0.632813), N = 31 moving right - - -- best stat: 0.726205, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 2 3 14 16 - - - -- linear combo weights (showing up to 5) - - -0.2703 -0.3753 2.3873 0.2096 0.2699 - - - -- cutpoint (score) - --- -0.697775 (0.588238), N = 203 moving right - --- -0.420046 (0.664592), N = 99 moving right - --- -0.40232 (0.656443), N = 97 moving right - --- -0.385182 (0.655899), N = 91 moving right - --- -0.346063 (0.635069), N = 76 moving right - - -- best stat: 0.664592, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 - 5.1500e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8913e-01 1.0909e-02 - 1.9800e+02 9.8551e-01 1.4572e-02 - 2.1600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 20 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 1 11 13 7 - - - -- linear combo weights (showing up to 5) - - -0.4100 0.7402 0.7225 0.4001 3.3953 - - - -- cutpoint (score) - --- -1.06913 (0.570119), N = 228 moving right - --- -0.683008 (0.654331), N = 182 moving right - --- -0.578501 (0.685171), N = 164 moving right - --- 1.03906 (0.640474), N = 46 moving right - --- 2.57684 (0.625974), N = 23 moving right - - -- best stat: 0.685171, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 15 8 5 3 - - - -- linear combo weights (showing up to 5) - - 0.4445 0.0749 2.2000 0.3519 4.1184 - - - -- cutpoint (score) - --- 0.0116657 (0.627581), N = 215 moving right - --- 0.584651 (0.702326), N = 158 moving right - --- 0.838823 (0.732524), N = 128 moving right - --- 0.876991 (0.743489), N = 124 moving right - --- 1.44469 (0.734665), N = 80 moving right - - -- best stat: 0.743489, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 2 3 14 6 - - - -- linear combo weights (showing up to 5) - - 0.0935 -0.1215 7.5119 0.1059 0.3082 - - - -- cutpoint (score) - --- -0.121001 (0.613617), N = 136 moving right - --- -0.0455764 (0.609376), N = 97 moving right - --- 0.0615231 (0.592564), N = 67 moving right - --- 0.374512 (0.597404), N = 26 moving right - --- 0.585667 (0.609848), N = 20 moving right - - -- best stat: 0.613617, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.8551e-01 1.4533e-02 - 1.3100e+02 9.7464e-01 2.5562e-02 - 1.4000e+02 9.6739e-01 3.2997e-02 - 1.8600e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 21 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 8 17 7 6 - - - -- linear combo weights (showing up to 5) - - -0.1374 1.2822 0.2816 6.2098 1.0973 - - - -- cutpoint (score) - --- 0.624703 (0.728475), N = 130 moving right - --- 0.801259 (0.740387), N = 114 moving right - --- 1.82713 (0.693208), N = 54 moving right - --- 1.96466 (0.684933), N = 49 moving right - --- 1.98664 (0.687303), N = 47 moving right - - -- best stat: 0.740387, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 9 2 5 17 - - - -- linear combo weights (showing up to 5) - - 0.1816 0.5004 -0.8429 0.8471 0.4999 - - - -- cutpoint (score) - --- 0.350675 (0.598096), N = 213 moving right - --- 0.620075 (0.643517), N = 180 moving right - --- 1.56522 (0.66873), N = 81 moving right - --- 1.88453 (0.58081), N = 40 moving right - --- 1.91006 (0.574435), N = 39 moving right - - -- best stat: 0.66873, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 12 15 4 13 - - - -- linear combo weights (showing up to 5) - - 0.3517 0.1931 -0.2318 0.6480 0.4481 - - - -- cutpoint (score) - --- 0.256878 (0.54916), N = 254 moving right - --- 0.420149 (0.571207), N = 243 moving right - --- 0.443463 (0.579502), N = 240 moving right - --- 0.458372 (0.585979), N = 237 moving right - --- 1.15491 (0.688774), N = 176 moving right - - -- best stat: 0.688774, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 22 -------------- - -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 1 9 0 5 - - - -- linear combo weights (showing up to 5) - - -0.0373 0.7042 0.3777 -0.5334 0.8743 - - - -- cutpoint (score) - --- -0.888279 (0.586494), N = 233 moving right - --- -0.878108 (0.591895), N = 230 moving right - --- 0.68571 (0.668095), N = 67 moving right - --- 1.66315 (0.535067), N = 16 moving right - --- 1.87408 (0.50497), N = 8 moving right - - -- best stat: 0.668095, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 6 13 2 1 - - - -- linear combo weights (showing up to 5) - - 1.7427 0.5759 0.1104 -0.7261 0.6125 - - - -- cutpoint (score) - --- -1.80595 (0.598254), N = 216 moving right - --- -1.57916 (0.651129), N = 192 moving right - --- -1.45462 (0.693202), N = 165 moving right - --- -1.08734 (0.746135), N = 122 moving right - --- 2.5555 (0.596161), N = 18 moving right - - -- best stat: 0.746135, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 8 16 7 6 - - - -- linear combo weights (showing up to 5) - - 0.0294 1.5813 0.2080 8.1812 0.7375 - - - -- cutpoint (score) - --- -1.04916 (0.541075), N = 248 moving right - --- -0.951703 (0.58757), N = 217 moving right - --- -0.84183 (0.683691), N = 172 moving right - --- -0.821876 (0.686196), N = 164 moving right - --- 0.432891 (0.695844), N = 62 moving right - - -- best stat: 0.695844, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 23 -------------- - -- N obs inbag: 276 -- N row inbag: 184 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 10 14 2 4 - - - -- linear combo weights (showing up to 5) - - 6.4635 -0.4514 0.2543 -1.4639 0.7532 - - - -- cutpoint (score) - --- -1.88168 (0.546727), N = 242 moving right - --- -1.86273 (0.540255), N = 241 moving right - --- -1.10945 (0.660855), N = 164 moving right - --- 0.158827 (0.648382), N = 40 moving right - --- 0.624607 (0.6106), N = 29 moving right - - -- best stat: 0.660855, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 8 14 11 7 - - - -- linear combo weights (showing up to 5) - - 0.8730 1.4286 -0.1047 0.3852 5.7778 - - - -- cutpoint (score) - --- -1.03618 (0.586309), N = 228 moving right - --- -0.838319 (0.664745), N = 185 moving right - --- 0.490851 (0.716145), N = 78 moving right - --- 0.842218 (0.7262), N = 65 moving right - --- 0.989232 (0.690218), N = 50 moving right - - -- best stat: 0.7262, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 2 12 9 8 - - - -- linear combo weights (showing up to 5) - - 0.5545 -1.0857 0.0078 -0.1842 1.6810 - - - -- cutpoint (score) - --- -2.07494 (0.523891), N = 264 moving right - --- -2.00489 (0.561145), N = 246 moving right - --- -1.88111 (0.624527), N = 212 moving right - --- -0.985074 (0.758164), N = 112 moving right - --- -0.973144 (0.7602), N = 111 moving right - - -- best stat: 0.7602, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 24 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 3 8 6 10 - - - -- linear combo weights (showing up to 5) - - 0.1749 9.5080 1.3799 0.2854 -0.5514 - - - -- cutpoint (score) - --- -1.33313 (0.550738), N = 240 moving right - --- -1.15358 (0.578712), N = 225 moving right - --- 0.20822 (0.760398), N = 87 moving right - --- 0.353881 (0.757855), N = 75 moving right - --- 0.946243 (0.730989), N = 55 moving right - - -- best stat: 0.760398, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 17 5 16 13 - - - -- linear combo weights (showing up to 5) - - 11.2230 0.3635 0.6144 0.2046 0.4827 - - - -- cutpoint (score) - --- 0.729318 (0.638228), N = 203 moving right - --- 1.02674 (0.678281), N = 162 moving right - --- 1.37786 (0.729573), N = 115 moving right - --- 1.38116 (0.727071), N = 114 moving right - --- 3.07211 (0.641509), N = 26 moving right - - -- best stat: 0.729573, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 4 11 17 3 - - - -- linear combo weights (showing up to 5) - - 0.1914 0.0441 0.9005 0.2786 10.1218 - - - -- cutpoint (score) - --- -0.263652 (0.533039), N = 260 moving right - --- 0.156813 (0.631399), N = 210 moving right - --- 0.765616 (0.7355), N = 109 moving right - --- 0.796944 (0.738351), N = 107 moving right - --- 0.834159 (0.738413), N = 102 moving right - - -- best stat: 0.738413, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 25 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 3 11 10 4 - - - -- linear combo weights (showing up to 5) - - 0.1149 8.3609 0.4766 -0.1950 0.7152 - - - -- cutpoint (score) - --- 0.236131 (0.699266), N = 153 moving right - --- 0.624664 (0.723852), N = 110 moving right - --- 0.664305 (0.725505), N = 99 moving right - --- 0.67924 (0.734251), N = 95 moving right - --- 1.69557 (0.677482), N = 35 moving right - - -- best stat: 0.734251, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 9 5 6 14 - - - -- linear combo weights (showing up to 5) - - 0.5693 0.3690 0.4565 0.5681 0.1996 - - - -- cutpoint (score) - --- -0.481004 (0.56874), N = 236 moving right - --- 0.198193 (0.736972), N = 111 moving right - --- 0.888134 (0.628048), N = 56 moving right - --- 0.911624 (0.6243), N = 53 moving right - --- 1.2271 (0.604611), N = 42 moving right - - -- best stat: 0.736972, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 8 15 10 16 - - - -- linear combo weights (showing up to 5) - - -0.1707 1.2925 -0.1194 -0.5615 0.4144 - - - -- cutpoint (score) - --- -1.30818 (0.574382), N = 231 moving right - --- -0.999415 (0.617549), N = 202 moving right - --- -0.992792 (0.620813), N = 201 moving right - --- -0.975081 (0.628471), N = 194 moving right - --- 0.690833 (0.704486), N = 60 moving right - - -- best stat: 0.704486, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 26 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 9 6 5 14 - - - -- linear combo weights (showing up to 5) - - 0.4355 0.4416 0.5517 0.9052 0.1086 - - - -- cutpoint (score) - --- -0.201784 (0.592306), N = 215 moving right - --- -0.0571045 (0.646461), N = 180 moving right - --- 0.208769 (0.708717), N = 134 moving right - --- 0.31887 (0.723851), N = 124 moving right - --- 1.14716 (0.58632), N = 35 moving right - - -- best stat: 0.723851, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 9 15 5 13 - - - -- linear combo weights (showing up to 5) - - -0.0574 0.2239 -0.1874 1.1739 0.3588 - - - -- cutpoint (score) - --- -0.699161 (0.514482), N = 266 moving right - --- 0.0083787 (0.641186), N = 169 moving right - --- 0.167568 (0.651085), N = 135 moving right - --- 0.619768 (0.625716), N = 89 moving right - --- 1.23335 (0.61159), N = 38 moving right - - -- best stat: 0.651085, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 0 2 15 6 - - - -- linear combo weights (showing up to 5) - - 0.4294 0.1655 -0.1127 -0.2078 0.6108 - - - -- cutpoint (score) - --- -0.769982 (0.507844), N = 258 moving right - --- -0.452568 (0.564943), N = 222 moving right - --- -0.363205 (0.554451), N = 214 moving right - --- 0.121093 (0.628739), N = 127 moving right - --- 0.558758 (0.652073), N = 49 moving right - - -- best stat: 0.652073, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 27 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 3 12 9 0 - - - -- linear combo weights (showing up to 5) - - 0.6449 11.5187 0.4685 0.1528 -0.2846 - - - -- cutpoint (score) - --- 1.02013 (0.578233), N = 236 moving right - --- 1.30718 (0.606662), N = 218 moving right - --- 1.59354 (0.654445), N = 177 moving right - --- 2.15638 (0.711389), N = 89 moving right - --- 2.39782 (0.675842), N = 57 moving right - - -- best stat: 0.711389, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 12 13 8 15 - - - -- linear combo weights (showing up to 5) - - 8.9450 0.4074 -0.0003 1.6815 -0.3240 - - - -- cutpoint (score) - --- -0.279535 (0.755752), N = 114 moving right - --- 0.012533 (0.758419), N = 95 moving right - --- 0.243154 (0.720571), N = 74 moving right - --- 0.426058 (0.713604), N = 67 moving right - --- 2.1537 (0.656337), N = 25 moving right - - -- best stat: 0.758419, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 9 12 5 4 - - - -- linear combo weights (showing up to 5) - - 1.1210 0.0098 0.3435 1.2102 0.5538 - - - -- cutpoint (score) - --- 0.363854 (0.703948), N = 134 moving right - --- 1.26867 (0.722055), N = 74 moving right - --- 1.65487 (0.665993), N = 55 moving right - --- 2.62668 (0.579287), N = 28 moving right - --- 2.73637 (0.568169), N = 25 moving right - - -- best stat: 0.722055, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 5.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.7464e-01 2.5508e-02 - 1.1000e+02 9.7101e-01 2.9225e-02 - 1.3100e+02 9.6739e-01 3.2957e-02 - - ------------- Growing tree 28 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 6 10 17 9 - - - -- linear combo weights (showing up to 5) - - 2.0163 0.0361 -0.6916 0.5217 -0.6546 - - - -- cutpoint (score) - --- 1.46659 (0.741081), N = 111 moving right - --- 3.05573 (0.693498), N = 50 moving right - --- 3.44978 (0.669335), N = 43 moving right - --- 4.7072 (0.625474), N = 30 moving right - --- 5.31512 (0.602071), N = 24 moving right - - -- best stat: 0.741081, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 11 14 5 7 - - - -- linear combo weights (showing up to 5) - - 0.4872 0.8276 0.0449 -0.0061 6.5695 - - - -- cutpoint (score) - --- 0.355626 (0.554144), N = 252 moving right - --- 0.674799 (0.608975), N = 225 moving right - --- 0.788778 (0.630372), N = 214 moving right - --- 2.31671 (0.724021), N = 69 moving right - --- 2.66122 (0.688365), N = 53 moving right - - -- best stat: 0.724021, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 0 3 12 1 - - - -- linear combo weights (showing up to 5) - - -0.4898 -0.0892 5.2967 0.2206 0.3924 - - - -- cutpoint (score) - --- -0.206027 (0.669588), N = 158 moving right - --- -0.0732357 (0.687209), N = 134 moving right - --- 0.564618 (0.666046), N = 72 moving right - --- 0.913446 (0.656396), N = 50 moving right - --- 6.49276 (0.589222), N = 19 moving right - - -- best stat: 0.687209, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 29 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 6 2 15 13 - - - -- linear combo weights (showing up to 5) - - 11.4175 1.9883 -1.0372 -0.0007 0.3149 - - - -- cutpoint (score) - --- -1.1845 (0.640895), N = 186 moving right - --- -1.02183 (0.685769), N = 149 moving right - --- -0.874406 (0.696237), N = 115 moving right - --- 0.0258397 (0.695177), N = 64 moving right - --- 1.62913 (0.644009), N = 23 moving right - - -- best stat: 0.696237, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 16 3 9 4 - - - -- linear combo weights (showing up to 5) - - 0.0421 0.5800 9.3068 0.3787 0.5853 - - - -- cutpoint (score) - --- -0.0977583 (0.686829), N = 155 moving right - --- -0.0923002 (0.687933), N = 154 moving right - --- 0.206282 (0.739102), N = 110 moving right - --- 0.496979 (0.750342), N = 78 moving right - --- 1.02695 (0.690539), N = 48 moving right - - -- best stat: 0.750342, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 3 10 1 4 - - - -- linear combo weights (showing up to 5) - - 0.4377 8.1864 -0.5339 0.4839 0.4318 - - - -- cutpoint (score) - --- -0.889017 (0.593061), N = 222 moving right - --- -0.560742 (0.634601), N = 192 moving right - --- -0.269515 (0.687845), N = 151 moving right - --- 9.65336 (0.609889), N = 18 moving right - --- 10.0814 (0.590698), N = 15 moving right - - -- best stat: 0.687845, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 30 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 16 8 1 14 - - - -- linear combo weights (showing up to 5) - - 0.8055 0.2930 1.3955 0.3867 -0.1383 - - - -- cutpoint (score) - --- -1.42184 (0.592467), N = 224 moving right - --- -0.563741 (0.721946), N = 142 moving right - --- -0.562637 (0.728459), N = 138 moving right - --- -0.320676 (0.749916), N = 113 moving right - --- 0.618636 (0.731115), N = 72 moving right - - -- best stat: 0.749916, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 8 13 14 7 - - - -- linear combo weights (showing up to 5) - - 0.1187 1.4712 0.0592 -0.0574 1.8864 - - - -- cutpoint (score) - --- -1.05165 (0.517937), N = 266 moving right - --- -1.00189 (0.533998), N = 259 moving right - --- -0.645378 (0.693238), N = 150 moving right - --- -0.000411439 (0.70736), N = 87 moving right - --- 3.27707 (0.59487), N = 20 moving right - - -- best stat: 0.70736, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 7 8 13 14 - - - -- linear combo weights (showing up to 5) - - 0.4930 1.8407 1.3660 0.0880 -0.0100 - - - -- cutpoint (score) - --- -0.890586 (0.553811), N = 249 moving right - --- 0.157802 (0.711049), N = 108 moving right - --- 0.503835 (0.714), N = 87 moving right - --- 0.640558 (0.686641), N = 74 moving right - --- 2.91787 (0.60094), N = 25 moving right - - -- best stat: 0.714, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.3100e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 31 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 8 0 7 13 - - - -- linear combo weights (showing up to 5) - - 0.2491 1.5671 -0.2524 4.2675 -0.1019 - - - -- cutpoint (score) - --- -1.05514 (0.578819), N = 230 moving right - --- -0.964414 (0.598558), N = 219 moving right - --- -0.640368 (0.726686), N = 135 moving right - --- 0.0390418 (0.740448), N = 78 moving right - --- 2.44502 (0.633748), N = 29 moving right - - -- best stat: 0.740448, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 10 12 16 15 - - - -- linear combo weights (showing up to 5) - - 0.3196 -0.6376 0.1247 0.5478 -0.1605 - - - -- cutpoint (score) - --- -1.37342 (0.529113), N = 249 moving right - --- -0.976697 (0.563309), N = 219 moving right - --- 0.656275 (0.666792), N = 56 moving right - --- 1.50504 (0.62775), N = 30 moving right - --- 2.61916 (0.529589), N = 6 moving right - - -- best stat: 0.666792, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 6 1 0 4 - - - -- linear combo weights (showing up to 5) - - -0.5533 0.5708 0.3683 0.0154 0.7185 - - - -- cutpoint (score) - --- -1.4176 (0.494678), N = 269 moving right - --- 0.148341 (0.683216), N = 145 moving right - --- 1.50357 (0.594011), N = 31 moving right - --- 1.52978 (0.597585), N = 30 moving right - --- 1.83726 (0.559854), N = 14 moving right - - -- best stat: 0.683216, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8551e-01 1.4546e-02 - 1.4000e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.9800e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 32 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 7 1 8 15 - - - -- linear combo weights (showing up to 5) - - 0.2542 3.2532 0.5806 1.3815 -0.0469 - - - -- cutpoint (score) - --- -1.1689 (0.591713), N = 223 moving right - --- 0.158798 (0.782389), N = 87 moving right - --- 0.568246 (0.727115), N = 59 moving right - --- 1.37252 (0.654629), N = 39 moving right - --- 1.77115 (0.639869), N = 31 moving right - - -- best stat: 0.782389, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 0 16 8 4 - - - -- linear combo weights (showing up to 5) - - 0.5113 0.0307 0.3722 1.2368 0.4367 - - - -- cutpoint (score) - --- -1.20521 (0.557354), N = 244 moving right - --- -0.977642 (0.636431), N = 206 moving right - --- -0.920355 (0.656403), N = 190 moving right - --- -0.209047 (0.739707), N = 113 moving right - --- 0.45228 (0.725714), N = 84 moving right - - -- best stat: 0.739707, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 14 12 17 10 - - - -- linear combo weights (showing up to 5) - - 0.2079 0.3646 0.0800 0.5706 -0.5830 - - - -- cutpoint (score) - --- 1.71652 (0.715816), N = 116 moving right - --- 2.04857 (0.681872), N = 86 moving right - --- 2.38742 (0.677864), N = 65 moving right - --- 3.40519 (0.571391), N = 12 moving right - --- 4.36046 (0.520848), N = 6 moving right - - -- best stat: 0.715816, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 4.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 33 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 2 10 16 0 - - - -- linear combo weights (showing up to 5) - - 0.6277 -1.5981 -0.8348 0.4603 -0.4465 - - - -- cutpoint (score) - --- -0.611394 (0.651606), N = 199 moving right - --- 0.207512 (0.716528), N = 128 moving right - --- 0.285594 (0.725689), N = 122 moving right - --- 1.36556 (0.650402), N = 38 moving right - --- 2.84812 (0.558105), N = 14 moving right - - -- best stat: 0.725689, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 14 11 8 0 - - - -- linear combo weights (showing up to 5) - - 0.3193 -0.2614 1.1031 1.8675 0.0975 - - - -- cutpoint (score) - --- -1.80869 (0.599308), N = 226 moving right - --- -1.48634 (0.67681), N = 186 moving right - --- -1.30781 (0.722614), N = 160 moving right - --- 0.507969 (0.767816), N = 79 moving right - --- 2.29866 (0.66223), N = 34 moving right - - -- best stat: 0.767816, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 7 12 0 1 - - - -- linear combo weights (showing up to 5) - - 2.9061 12.4215 0.0681 -0.0803 0.3952 - - - -- cutpoint (score) - --- -0.603915 (0.545847), N = 243 moving right - --- -0.518761 (0.53673), N = 233 moving right - --- -0.0253463 (0.637134), N = 129 moving right - --- 0.129364 (0.612339), N = 86 moving right - --- 0.440183 (0.627242), N = 42 moving right - - -- best stat: 0.637134, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 - 5.4900e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 2.1600e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 34 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 1 8 11 13 - - - -- linear combo weights (showing up to 5) - - 0.2397 0.4351 1.3442 0.7823 0.0682 - - - -- cutpoint (score) - --- -0.201487 (0.720659), N = 148 moving right - --- 1.03718 (0.775415), N = 85 moving right - --- 2.74724 (0.641527), N = 32 moving right - --- 2.76204 (0.634316), N = 31 moving right - --- 4.78637 (0.572853), N = 15 moving right - - -- best stat: 0.775415, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 12 11 13 5 - - - -- linear combo weights (showing up to 5) - - 7.4054 -0.2370 1.2225 0.2374 0.1255 - - - -- cutpoint (score) - --- -0.355943 (0.703864), N = 152 moving right - --- -0.294288 (0.71924), N = 137 moving right - --- 0.149592 (0.728997), N = 92 moving right - --- 0.979258 (0.695448), N = 52 moving right - --- 4.91689 (0.612448), N = 22 moving right - - -- best stat: 0.728997, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 8 5 7 3 - - - -- linear combo weights (showing up to 5) - - 0.3962 1.2583 0.1407 5.6721 3.7000 - - - -- cutpoint (score) - --- -0.547331 (0.695059), N = 161 moving right - --- -0.535794 (0.69743), N = 160 moving right - --- -0.257788 (0.744412), N = 119 moving right - --- 0.707836 (0.682347), N = 53 moving right - --- 7.36915 (0.599833), N = 19 moving right - - -- best stat: 0.744412, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 1.3100e+02 9.7464e-01 2.5562e-02 - 1.4000e+02 9.7101e-01 2.9279e-02 - 1.7900e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 35 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 8 3 15 14 - - - -- linear combo weights (showing up to 5) - - 0.9140 1.7827 6.1358 -0.0110 0.3031 - - - -- cutpoint (score) - --- -1.25978 (0.563597), N = 246 moving right - --- -0.984774 (0.642924), N = 197 moving right - --- 0.249726 (0.735016), N = 84 moving right - --- 0.900574 (0.676758), N = 46 moving right - --- 7.64959 (0.566133), N = 11 moving right - - -- best stat: 0.735016, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 13 12 17 4 - - - -- linear combo weights (showing up to 5) - - 1.3310 0.5030 0.2044 0.6591 -0.1411 - - - -- cutpoint (score) - --- 1.03689 (0.573886), N = 240 moving right - --- 1.30152 (0.620096), N = 216 moving right - --- 1.59714 (0.65708), N = 189 moving right - --- 1.87486 (0.685636), N = 152 moving right - --- 2.337 (0.679397), N = 99 moving right - - -- best stat: 0.685636, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 2 12 15 14 - - - -- linear combo weights (showing up to 5) - - 0.5955 -0.7351 0.1878 -0.0478 0.5878 - - - -- cutpoint (score) - --- -1.1881 (0.539132), N = 231 moving right - --- -1.0377 (0.5709), N = 215 moving right - --- -0.0932374 (0.605981), N = 75 moving right - --- 0.118121 (0.601236), N = 55 moving right - --- 0.52466 (0.563556), N = 22 moving right - - -- best stat: 0.605981, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 36 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 11 14 7 3 - - - -- linear combo weights (showing up to 5) - - 0.2731 0.7525 0.1822 6.8783 7.5422 - - - -- cutpoint (score) - --- -0.882193 (0.529685), N = 258 moving right - --- -0.540765 (0.661316), N = 189 moving right - --- -0.344888 (0.726016), N = 142 moving right - --- -0.183405 (0.73417), N = 127 moving right - --- 0.201574 (0.713552), N = 79 moving right - - -- best stat: 0.73417, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 14 6 7 9 - - - -- linear combo weights (showing up to 5) - - 9.0018 0.1792 1.4029 7.3628 0.4518 - - - -- cutpoint (score) - --- -0.430212 (0.529324), N = 261 moving right - --- -0.181354 (0.622415), N = 174 moving right - --- 0.0583142 (0.683357), N = 119 moving right - --- 0.264055 (0.689451), N = 82 moving right - --- 0.334813 (0.692402), N = 74 moving right - - -- best stat: 0.692402, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 9 10 12 6 - - - -- linear combo weights (showing up to 5) - - 0.6671 0.2226 -0.5872 0.0552 0.6866 - - - -- cutpoint (score) - --- -0.557557 (0.561303), N = 235 moving right - --- -0.238135 (0.618699), N = 202 moving right - --- 0.319442 (0.664649), N = 124 moving right - --- 0.820711 (0.701384), N = 75 moving right - --- 2.29452 (0.519153), N = 5 moving right - - -- best stat: 0.701384, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 37 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 17 4 1 15 - - - -- linear combo weights (showing up to 5) - - 0.4022 0.4390 0.5295 0.6432 0.0188 - - - -- cutpoint (score) - --- 0.90874 (0.63625), N = 201 moving right - --- 0.915738 (0.640996), N = 198 moving right - --- 1.577 (0.72673), N = 137 moving right - --- 1.98415 (0.690221), N = 107 moving right - --- 2.12611 (0.683415), N = 91 moving right - - -- best stat: 0.72673, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 14 9 8 2 - - - -- linear combo weights (showing up to 5) - - 0.4464 0.1093 -0.5817 2.4015 -1.5326 - - - -- cutpoint (score) - --- -1.86174 (0.557198), N = 243 moving right - --- -1.80502 (0.587149), N = 226 moving right - --- -1.63444 (0.616601), N = 210 moving right - --- -0.778055 (0.718591), N = 129 moving right - --- 2.74273 (0.587253), N = 17 moving right - - -- best stat: 0.718591, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 15 16 7 2 - - - -- linear combo weights (showing up to 5) - - 0.8090 0.1988 0.4861 8.0599 -1.6384 - - - -- cutpoint (score) - --- -1.83576 (0.57158), N = 232 moving right - --- -1.66089 (0.621992), N = 196 moving right - --- -0.473663 (0.680293), N = 71 moving right - --- -0.227801 (0.67228), N = 60 moving right - --- 7.24753 (0.549621), N = 13 moving right - - -- best stat: 0.680293, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 1.1000e+02 9.7826e-01 2.1886e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.7900e+02 9.5652e-01 4.4218e-02 - - ------------- Growing tree 38 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 1 17 5 14 - - - -- linear combo weights (showing up to 5) - - -0.5751 0.5727 0.3193 1.2715 0.3042 - - - -- cutpoint (score) - --- 0.0441398 (0.610134), N = 224 moving right - --- 0.639926 (0.717548), N = 142 moving right - --- 1.35403 (0.715701), N = 87 moving right - --- 2.03185 (0.638313), N = 41 moving right - --- 2.94634 (0.534248), N = 10 moving right - - -- best stat: 0.717548, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 17 13 12 1 - - - -- linear combo weights (showing up to 5) - - 0.3274 0.3962 0.4774 0.0757 0.5534 - - - -- cutpoint (score) - --- 1.09789 (0.723598), N = 135 moving right - --- 1.94977 (0.678245), N = 66 moving right - --- 2.2747 (0.616915), N = 36 moving right - --- 2.41455 (0.580515), N = 26 moving right - --- 2.77877 (0.551606), N = 11 moving right - - -- best stat: 0.723598, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 17 13 1 10 - - - -- linear combo weights (showing up to 5) - - -0.0199 0.4180 0.4333 0.5046 -0.6431 - - - -- cutpoint (score) - --- 0.684514 (0.648544), N = 184 moving right - --- 1.48531 (0.736144), N = 99 moving right - --- 2.6258 (0.666186), N = 36 moving right - --- 3.72115 (0.546368), N = 8 moving right - --- 4.1134 (0.537842), N = 5 moving right - - -- best stat: 0.736144, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 39 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 14 9 10 6 - - - -- linear combo weights (showing up to 5) - - 1.0416 0.1831 0.4418 -0.6724 0.2617 - - - -- cutpoint (score) - --- -0.379542 (0.671582), N = 149 moving right - --- -0.102399 (0.695847), N = 124 moving right - --- 0.0407556 (0.707611), N = 107 moving right - --- 0.172252 (0.714202), N = 98 moving right - --- 1.1063 (0.714146), N = 55 moving right - - -- best stat: 0.714202, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 3 6 15 17 - - - -- linear combo weights (showing up to 5) - - 0.6445 5.7911 0.5651 -0.1157 0.3579 - - - -- cutpoint (score) - --- 0.0176634 (0.522313), N = 265 moving right - --- 0.318597 (0.572536), N = 241 moving right - --- 0.895225 (0.696325), N = 152 moving right - --- 1.27708 (0.75706), N = 95 moving right - --- 1.84901 (0.710133), N = 53 moving right - - -- best stat: 0.75706, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 6 15 12 5 - - - -- linear combo weights (showing up to 5) - - 1.7394 0.2969 -0.2020 -0.0088 0.4890 - - - -- cutpoint (score) - --- -0.922948 (0.628337), N = 197 moving right - --- -0.857687 (0.638536), N = 189 moving right - --- -0.382893 (0.717515), N = 117 moving right - --- 2.56095 (0.613756), N = 25 moving right - --- 8.07837 (0.526198), N = 6 moving right - - -- best stat: 0.717515, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 40 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 1 4 11 2 - - - -- linear combo weights (showing up to 5) - - 1.4525 0.6505 0.6412 0.9108 0.0893 - - - -- cutpoint (score) - --- -1.66138 (0.560499), N = 245 moving right - --- -1.29298 (0.617412), N = 219 moving right - --- 0.376926 (0.785457), N = 99 moving right - --- 0.474462 (0.79502), N = 93 moving right - --- 0.782512 (0.80128), N = 83 moving right - - -- best stat: 0.80128, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 14 17 4 15 - - - -- linear combo weights (showing up to 5) - - 0.5761 0.4488 0.5661 0.8961 -0.0857 - - - -- cutpoint (score) - --- 0.329872 (0.537868), N = 259 moving right - --- 2.10449 (0.723519), N = 139 moving right - --- 2.1297 (0.725079), N = 137 moving right - --- 2.44451 (0.7391), N = 113 moving right - --- 3.64395 (0.626347), N = 34 moving right - - -- best stat: 0.7391, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 11 8 14 13 - - - -- linear combo weights (showing up to 5) - - -0.8313 0.9416 1.3352 -0.1886 0.0247 - - - -- cutpoint (score) - --- -1.7224 (0.593383), N = 230 moving right - --- -1.63737 (0.616906), N = 220 moving right - --- -0.37364 (0.753161), N = 122 moving right - --- -0.188618 (0.752715), N = 105 moving right - --- -0.10495 (0.757436), N = 102 moving right - - -- best stat: 0.757436, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 41 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 13 1 9 15 - - - -- linear combo weights (showing up to 5) - - 4.5218 0.4624 0.5915 0.2460 -0.1821 - - - -- cutpoint (score) - --- -0.655619 (0.599273), N = 217 moving right - --- -0.0197518 (0.738372), N = 124 moving right - --- 0.651935 (0.674133), N = 58 moving right - --- 1.3736 (0.599393), N = 24 moving right - --- 3.44144 (0.585879), N = 20 moving right - - -- best stat: 0.738372, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 2 17 1 14 - - - -- linear combo weights (showing up to 5) - - 0.1478 -0.6169 0.5688 0.5465 0.3121 - - - -- cutpoint (score) - --- 0.0166463 (0.554657), N = 247 moving right - --- 1.20072 (0.698507), N = 131 moving right - --- 1.61679 (0.66493), N = 78 moving right - --- 2.71898 (0.543059), N = 15 moving right - --- 2.77514 (0.528247), N = 11 moving right - - -- best stat: 0.698507, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 8 2 1 15 - - - -- linear combo weights (showing up to 5) - - 0.6524 1.1930 -0.0843 0.6166 -0.1238 - - - -- cutpoint (score) - --- -1.32545 (0.615463), N = 215 moving right - --- -1.3032 (0.618577), N = 214 moving right - --- -1.11542 (0.656286), N = 194 moving right - --- -0.692744 (0.753663), N = 145 moving right - --- -0.137389 (0.788138), N = 100 moving right - - -- best stat: 0.788138, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 42 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 4 10 17 6 - - - -- linear combo weights (showing up to 5) - - 0.2651 0.6156 -0.8312 0.6500 0.9347 - - - -- cutpoint (score) - --- 0.943431 (0.571899), N = 240 moving right - --- 1.21794 (0.592697), N = 231 moving right - --- 1.37023 (0.6), N = 218 moving right - --- 3.37536 (0.682635), N = 60 moving right - --- 3.61055 (0.672495), N = 51 moving right - - -- best stat: 0.682635, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 8 16 12 6 - - - -- linear combo weights (showing up to 5) - - 11.3733 1.0684 0.3331 0.1613 0.4907 - - - -- cutpoint (score) - --- -0.958418 (0.553364), N = 249 moving right - --- -0.841801 (0.585672), N = 222 moving right - --- -0.693873 (0.660865), N = 177 moving right - --- 0.0338344 (0.747172), N = 93 moving right - --- 1.18525 (0.662909), N = 42 moving right - - -- best stat: 0.747172, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 10 14 15 11 - - - -- linear combo weights (showing up to 5) - - 0.4632 -0.5966 0.1231 -0.2086 1.4132 - - - -- cutpoint (score) - --- 0.884256 (0.724727), N = 143 moving right - --- 0.884512 (0.727644), N = 142 moving right - --- 1.11379 (0.738023), N = 134 moving right - --- 1.21079 (0.756876), N = 118 moving right - --- 4.80402 (0.561957), N = 12 moving right - - -- best stat: 0.756876, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 43 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 17 10 13 0 - - - -- linear combo weights (showing up to 5) - - 0.0267 0.5819 -0.5318 0.5314 -0.2282 - - - -- cutpoint (score) - --- 0.17183 (0.531256), N = 256 moving right - --- 0.613402 (0.570705), N = 237 moving right - --- 0.982899 (0.631402), N = 196 moving right - --- 1.6623 (0.707837), N = 132 moving right - --- 2.20193 (0.638747), N = 72 moving right - - -- best stat: 0.707837, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 15 13 1 9 - - - -- linear combo weights (showing up to 5) - - 0.8132 -0.1425 0.6310 0.4406 0.1432 - - - -- cutpoint (score) - --- -0.374922 (0.6629), N = 177 moving right - --- 0.0503388 (0.687114), N = 118 moving right - --- 0.0992989 (0.685237), N = 115 moving right - --- 0.525181 (0.683946), N = 74 moving right - --- 1.34953 (0.579442), N = 25 moving right - - -- best stat: 0.687114, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 11 12 4 15 - - - -- linear combo weights (showing up to 5) - - 0.5760 1.0152 -0.0604 0.4916 0.0193 - - - -- cutpoint (score) - --- -1.02452 (0.562755), N = 242 moving right - --- -0.647998 (0.64589), N = 203 moving right - --- -0.139661 (0.702934), N = 146 moving right - --- 0.274542 (0.723819), N = 116 moving right - --- 2.2724 (0.578433), N = 22 moving right - - -- best stat: 0.723819, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 44 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 15 3 5 7 - - - -- linear combo weights (showing up to 5) - - 0.2201 -0.0789 5.9218 0.7619 5.5352 - - - -- cutpoint (score) - --- -0.263835 (0.514868), N = 253 moving right - --- -0.156213 (0.554894), N = 217 moving right - --- -0.0712623 (0.610379), N = 178 moving right - --- -0.0702956 (0.612371), N = 175 moving right - --- 0.161572 (0.668754), N = 101 moving right - - -- best stat: 0.668754, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 8 2 0 14 - - - -- linear combo weights (showing up to 5) - - -0.1357 2.5951 -0.1716 -0.0440 -0.1463 - - - -- cutpoint (score) - --- -1.75501 (0.535669), N = 252 moving right - --- -1.62759 (0.599912), N = 219 moving right - --- -1.46403 (0.669608), N = 183 moving right - --- -1.44903 (0.674995), N = 179 moving right - --- -0.86337 (0.751697), N = 96 moving right - - -- best stat: 0.751697, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 4 13 7 0 - - - -- linear combo weights (showing up to 5) - - 6.7680 0.6466 0.4994 5.6973 -0.0968 - - - -- cutpoint (score) - --- -0.573338 (0.539063), N = 254 moving right - --- -0.192114 (0.619991), N = 197 moving right - --- -0.036269 (0.652069), N = 178 moving right - --- 0.222474 (0.695927), N = 136 moving right - --- 0.319788 (0.704423), N = 119 moving right - - -- best stat: 0.704423, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 45 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 13 12 5 11 - - - -- linear combo weights (showing up to 5) - - 0.7466 0.3827 -0.0499 1.0753 0.6659 - - - -- cutpoint (score) - --- -0.844067 (0.612517), N = 211 moving right - --- -0.700472 (0.632486), N = 195 moving right - --- 0.108171 (0.711373), N = 134 moving right - --- 0.164431 (0.731905), N = 123 moving right - --- 0.311435 (0.712078), N = 114 moving right - - -- best stat: 0.731905, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 5 0 2 11 - - - -- linear combo weights (showing up to 5) - - 0.0406 1.2167 0.1031 0.1740 0.8155 - - - -- cutpoint (score) - --- -0.341832 (0.570142), N = 223 moving right - --- -0.195951 (0.610079), N = 188 moving right - --- 1.3605 (0.697328), N = 67 moving right - --- 2.49338 (0.537257), N = 13 moving right - --- 2.749 (0.515253), N = 10 moving right - - -- best stat: 0.697328, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 10 14 15 - - - -- linear combo weights (showing up to 5) - - 0.5363 0.7763 -0.4395 0.2726 -0.1465 - - - -- cutpoint (score) - --- 0.586052 (0.572016), N = 221 moving right - --- 1.05027 (0.644515), N = 177 moving right - --- 1.48655 (0.66938), N = 134 moving right - --- 1.51378 (0.667567), N = 133 moving right - --- 4.52206 (0.542557), N = 9 moving right - - -- best stat: 0.66938, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.9800e+02 9.7826e-01 2.1912e-02 - 2.1600e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 46 -------------- - -- N obs inbag: 276 -- N row inbag: 184 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 13 12 5 15 - - - -- linear combo weights (showing up to 5) - - 0.0306 0.3131 0.1726 1.2693 -0.0786 - - - -- cutpoint (score) - --- -0.0801014 (0.622082), N = 176 moving right - --- 0.133452 (0.646613), N = 127 moving right - --- 0.348012 (0.620483), N = 108 moving right - --- 0.417846 (0.615778), N = 105 moving right - --- 1.23114 (0.612995), N = 43 moving right - - -- best stat: 0.646613, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 2 6 12 13 - - - -- linear combo weights (showing up to 5) - - 1.5003 -0.6011 1.2968 0.0774 -0.0866 - - - -- cutpoint (score) - --- -1.33016 (0.645176), N = 191 moving right - --- -1.24972 (0.684092), N = 172 moving right - --- -0.608962 (0.727516), N = 99 moving right - --- -0.16454 (0.688851), N = 74 moving right - --- 6.32932 (0.522969), N = 5 moving right - - -- best stat: 0.727516, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 16 15 10 5 - - - -- linear combo weights (showing up to 5) - - 0.3779 0.6338 -0.0183 -0.8418 0.9784 - - - -- cutpoint (score) - --- -1.32502 (0.539527), N = 254 moving right - --- -0.736144 (0.601088), N = 208 moving right - --- 1.07903 (0.686589), N = 65 moving right - --- 1.88676 (0.662039), N = 41 moving right - --- 2.0946 (0.645176), N = 37 moving right - - -- best stat: 0.686589, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 47 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 8 9 14 6 - - - -- linear combo weights (showing up to 5) - - 0.3256 1.8631 -0.7533 0.0064 0.9692 - - - -- cutpoint (score) - --- -1.0649 (0.570692), N = 229 moving right - --- -1.04482 (0.577576), N = 225 moving right - --- -0.338307 (0.740516), N = 130 moving right - --- 0.229057 (0.742624), N = 84 moving right - --- 1.21499 (0.65724), N = 35 moving right - - -- best stat: 0.742624, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 15 9 11 7 - - - -- linear combo weights (showing up to 5) - - 8.2149 -0.0199 0.0366 0.8779 5.1340 - - - -- cutpoint (score) - --- -0.681309 (0.571254), N = 243 moving right - --- -0.523028 (0.639075), N = 203 moving right - --- -0.516285 (0.643531), N = 201 moving right - --- -0.368748 (0.668901), N = 169 moving right - --- 1.15927 (0.664465), N = 39 moving right - - -- best stat: 0.668901, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 14 7 16 0 - - - -- linear combo weights (showing up to 5) - - 1.1320 0.4591 10.1724 0.2818 -0.3702 - - - -- cutpoint (score) - --- -0.431033 (0.63769), N = 194 moving right - --- 0.0766553 (0.704287), N = 80 moving right - --- 0.406285 (0.666533), N = 53 moving right - --- 1.13589 (0.628196), N = 29 moving right - --- 2.20368 (0.602906), N = 19 moving right - - -- best stat: 0.704287, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 48 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 3 0 15 5 - - - -- linear combo weights (showing up to 5) - - 0.7183 5.4370 0.0721 -0.1076 0.8120 - - - -- cutpoint (score) - --- -0.546368 (0.571002), N = 240 moving right - --- -0.227991 (0.683089), N = 160 moving right - --- -0.0308541 (0.70199), N = 135 moving right - --- 0.560203 (0.743288), N = 97 moving right - --- 1.28747 (0.668918), N = 47 moving right - - -- best stat: 0.743288, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 4 8 6 1 - - - -- linear combo weights (showing up to 5) - - 0.3504 0.2931 1.4797 -0.1036 0.5513 - - - -- cutpoint (score) - --- -1.0629 (0.618756), N = 200 moving right - --- -1.01043 (0.643454), N = 188 moving right - --- -0.3506 (0.753431), N = 129 moving right - --- -0.164841 (0.753431), N = 115 moving right - --- 2.66362 (0.632693), N = 31 moving right - - -- best stat: 0.753431, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 17 12 3 7 - - - -- linear combo weights (showing up to 5) - - -0.0291 0.4765 0.1123 1.6455 11.4946 - - - -- cutpoint (score) - --- 1.30989 (0.61784), N = 203 moving right - --- 1.38351 (0.697899), N = 151 moving right - --- 1.40374 (0.723683), N = 136 moving right - --- 1.42238 (0.710961), N = 128 moving right - --- 1.92475 (0.614686), N = 33 moving right - - -- best stat: 0.723683, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.7826e-01 2.1859e-02 - 7.1000e+01 9.7464e-01 2.5562e-02 - 1.1000e+02 9.6739e-01 3.2997e-02 - 1.3100e+02 9.6377e-01 3.6743e-02 - - ------------- Growing tree 49 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 17 6 3 11 - - - -- linear combo weights (showing up to 5) - - 0.0883 0.4069 0.5822 6.5191 0.7754 - - - -- cutpoint (score) - --- 0.250323 (0.572309), N = 243 moving right - --- 0.472961 (0.606456), N = 220 moving right - --- 0.797173 (0.674279), N = 177 moving right - --- 1.02228 (0.698854), N = 146 moving right - --- 1.47219 (0.754357), N = 101 moving right - - -- best stat: 0.754357, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 4 1 6 7 - - - -- linear combo weights (showing up to 5) - - 0.0156 0.6561 0.5518 0.4138 6.8207 - - - -- cutpoint (score) - --- -0.375808 (0.568746), N = 229 moving right - --- 0.302954 (0.662088), N = 144 moving right - --- 0.339614 (0.656271), N = 139 moving right - --- 0.505215 (0.648738), N = 114 moving right - --- 1.32904 (0.619978), N = 34 moving right - - -- best stat: 0.662088, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 14 17 6 12 - - - -- linear combo weights (showing up to 5) - - 6.9895 0.2945 0.5696 0.6450 0.1853 - - - -- cutpoint (score) - --- 0.980124 (0.559002), N = 240 moving right - --- 1.06181 (0.576), N = 230 moving right - --- 1.44075 (0.632898), N = 195 moving right - --- 1.62957 (0.663741), N = 168 moving right - --- 1.77838 (0.681834), N = 151 moving right - - -- best stat: 0.681834, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8188e-01 1.8169e-02 - 1.3100e+02 9.7464e-01 2.5549e-02 - 1.4000e+02 9.7101e-01 2.9266e-02 - 2.2300e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 50 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 9 16 11 7 - - - -- linear combo weights (showing up to 5) - - 0.1817 0.3673 0.7147 0.7193 5.2958 - - - -- cutpoint (score) - --- -1.52759 (0.528653), N = 261 moving right - --- -1.28268 (0.568703), N = 238 moving right - --- -0.872669 (0.637364), N = 201 moving right - --- -0.49394 (0.714245), N = 145 moving right - --- -0.202434 (0.756425), N = 120 moving right - - -- best stat: 0.756425, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 10 1 0 8 - - - -- linear combo weights (showing up to 5) - - -0.0500 -0.6235 0.2349 -0.0325 1.9208 - - - -- cutpoint (score) - --- -1.46016 (0.618487), N = 216 moving right - --- -1.27764 (0.662923), N = 192 moving right - --- -1.01889 (0.728858), N = 152 moving right - --- 0.193089 (0.771224), N = 85 moving right - --- 3.33368 (0.639762), N = 24 moving right - - -- best stat: 0.771224, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 11 2 5 7 - - - -- linear combo weights (showing up to 5) - - 0.4147 0.9210 0.6221 0.0748 5.8369 - - - -- cutpoint (score) - --- 0.157975 (0.69957), N = 157 moving right - --- 0.437475 (0.728674), N = 126 moving right - --- 1.02592 (0.745214), N = 77 moving right - --- 4.19645 (0.614306), N = 22 moving right - --- 7.35641 (0.533593), N = 6 moving right - - -- best stat: 0.745214, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.3100e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.6739e-01 3.3010e-02 - - ------------- Growing tree 51 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 14 2 9 13 - - - -- linear combo weights (showing up to 5) - - 1.6086 0.1719 0.3637 0.7404 0.4507 - - - -- cutpoint (score) - --- -0.27924 (0.564497), N = 210 moving right - --- -0.224141 (0.571238), N = 207 moving right - --- -0.0580393 (0.626116), N = 171 moving right - --- 0.548736 (0.629681), N = 105 moving right - --- 1.55491 (0.615639), N = 31 moving right - - -- best stat: 0.629681, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 11 6 14 3 - - - -- linear combo weights (showing up to 5) - - 5.3124 0.4655 1.2615 0.2820 4.3025 - - - -- cutpoint (score) - --- -0.714234 (0.514385), N = 271 moving right - --- -0.172815 (0.664355), N = 159 moving right - --- 0.447975 (0.691171), N = 68 moving right - --- 0.57456 (0.674468), N = 63 moving right - --- 0.576156 (0.679062), N = 61 moving right - - -- best stat: 0.691171, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 16 12 0 1 - - - -- linear combo weights (showing up to 5) - - 0.7240 0.5318 0.1332 0.0888 0.2085 - - - -- cutpoint (score) - --- -0.491353 (0.669443), N = 164 moving right - --- -0.222734 (0.678332), N = 136 moving right - --- 1.15523 (0.648574), N = 46 moving right - --- 1.64056 (0.560289), N = 24 moving right - --- 1.76715 (0.562994), N = 22 moving right - - -- best stat: 0.678332, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 52 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 189 -- max leaves: 95 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 15 12 11 13 - - - -- linear combo weights (showing up to 5) - - 5.2007 0.0683 0.0908 0.5045 0.3190 - - - -- cutpoint (score) - --- -0.102083 (0.729811), N = 133 moving right - --- -0.0304747 (0.716336), N = 121 moving right - --- 0.166755 (0.718905), N = 97 moving right - --- 0.701717 (0.664353), N = 53 moving right - --- 0.845823 (0.632312), N = 40 moving right - - -- best stat: 0.729811, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 12 14 11 5 - - - -- linear combo weights (showing up to 5) - - 0.7840 -0.0279 0.4632 0.5622 1.1015 - - - -- cutpoint (score) - --- -0.210899 (0.65027), N = 191 moving right - --- 0.225847 (0.681546), N = 159 moving right - --- 0.457553 (0.720054), N = 142 moving right - --- 0.687814 (0.713452), N = 130 moving right - --- 0.976671 (0.7121), N = 111 moving right - - -- best stat: 0.720054, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 16 8 3 1 - - - -- linear combo weights (showing up to 5) - - -0.4651 0.1310 1.7158 5.7731 0.0479 - - - -- cutpoint (score) - --- -0.858036 (0.681501), N = 160 moving right - --- 0.380211 (0.763542), N = 64 moving right - --- 0.769571 (0.723907), N = 50 moving right - --- 1.68184 (0.675034), N = 37 moving right - --- 1.8476 (0.666471), N = 33 moving right - - -- best stat: 0.763542, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7101e-01 2.9292e-02 - 1.8600e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 53 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 14 10 8 17 - - - -- linear combo weights (showing up to 5) - - 1.0095 -0.0819 -0.2910 1.8069 0.3636 - - - -- cutpoint (score) - --- 0.160812 (0.660514), N = 180 moving right - --- 0.259537 (0.67946), N = 168 moving right - --- 0.404237 (0.707245), N = 154 moving right - --- 0.645568 (0.724303), N = 132 moving right - --- 3.0028 (0.644945), N = 29 moving right - - -- best stat: 0.724303, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 12 7 2 11 - - - -- linear combo weights (showing up to 5) - - 0.0569 -0.0661 5.0609 0.3967 1.0562 - - - -- cutpoint (score) - --- -0.484471 (0.546908), N = 242 moving right - --- -0.455458 (0.560701), N = 234 moving right - --- -0.0682722 (0.642369), N = 163 moving right - --- 0.121074 (0.683547), N = 115 moving right - --- 0.506621 (0.705424), N = 72 moving right - - -- best stat: 0.705424, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 17 10 2 0 - - - -- linear combo weights (showing up to 5) - - -0.0521 0.6841 -0.4597 -1.0261 -0.2557 - - - -- cutpoint (score) - --- -0.189374 (0.542777), N = 251 moving right - --- 0.210905 (0.592506), N = 211 moving right - --- 0.76783 (0.666156), N = 145 moving right - --- 0.903603 (0.675173), N = 132 moving right - --- 2.64414 (0.536225), N = 9 moving right - - -- best stat: 0.675173, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.3100e+02 9.7826e-01 2.1899e-02 - 1.7900e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 54 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 193 -- max leaves: 97 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 3 2 10 16 - - - -- linear combo weights (showing up to 5) - - -0.5157 10.9687 -0.7407 -0.7633 0.3513 - - - -- cutpoint (score) - --- -2.28807 (0.5037), N = 270 moving right - --- -1.78758 (0.546337), N = 249 moving right - --- -0.988258 (0.686319), N = 148 moving right - --- -0.582385 (0.701559), N = 104 moving right - --- 10.0661 (0.600846), N = 16 moving right - - -- best stat: 0.701559, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 4 10 0 17 - - - -- linear combo weights (showing up to 5) - - 0.4389 0.2892 -0.9065 -0.0210 0.4085 - - - -- cutpoint (score) - --- -0.227314 (0.546183), N = 248 moving right - --- 0.677833 (0.643307), N = 191 moving right - --- 0.869574 (0.672422), N = 169 moving right - --- 1.97639 (0.690636), N = 79 moving right - --- 2.12178 (0.69112), N = 68 moving right - - -- best stat: 0.69112, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 3 2 0 17 - - - -- linear combo weights (showing up to 5) - - 0.5321 12.1223 -0.4592 0.1372 0.2969 - - - -- cutpoint (score) - --- 0.728302 (0.655244), N = 166 moving right - --- 1.26042 (0.650112), N = 62 moving right - --- 1.26304 (0.652865), N = 61 moving right - --- 1.39757 (0.632163), N = 32 moving right - --- 1.42278 (0.626371), N = 31 moving right - - -- best stat: 0.655244, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7826e-01 2.1899e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 55 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 0 14 6 12 - - - -- linear combo weights (showing up to 5) - - 9.4145 0.2435 0.0716 0.5962 0.1775 - - - -- cutpoint (score) - --- -0.159131 (0.526044), N = 259 moving right - --- 0.104451 (0.600282), N = 152 moving right - --- 0.16357 (0.618453), N = 113 moving right - --- 0.167547 (0.621623), N = 112 moving right - --- 0.470946 (0.624772), N = 52 moving right - - -- best stat: 0.624772, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 2 0 9 6 - - - -- linear combo weights (showing up to 5) - - 1.1142 -0.0397 0.3828 0.3663 0.7085 - - - -- cutpoint (score) - --- -1.05989 (0.536508), N = 255 moving right - --- -0.958766 (0.556274), N = 247 moving right - --- -0.622907 (0.621395), N = 203 moving right - --- -0.487055 (0.650298), N = 180 moving right - --- 0.425464 (0.678187), N = 89 moving right - - -- best stat: 0.678187, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 12 17 1 6 - - - -- linear combo weights (showing up to 5) - - 0.5528 0.1315 0.5141 0.3995 0.4549 - - - -- cutpoint (score) - --- 0.913447 (0.611367), N = 220 moving right - --- 1.44115 (0.689272), N = 155 moving right - --- 2.44285 (0.662461), N = 58 moving right - --- 2.49383 (0.653717), N = 55 moving right - --- 2.51426 (0.618494), N = 50 moving right - - -- best stat: 0.689272, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 56 -------------- - -- N obs inbag: 276 -- N row inbag: 162 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 6 1 11 2 - - - -- linear combo weights (showing up to 5) - - 2.1489 0.2205 0.4919 0.3366 0.0209 - - - -- cutpoint (score) - --- -0.90621 (0.713913), N = 152 moving right - --- -0.403286 (0.742329), N = 106 moving right - --- -0.384065 (0.747361), N = 98 moving right - --- 0.161231 (0.743317), N = 73 moving right - --- 2.53508 (0.627881), N = 28 moving right - - -- best stat: 0.747361, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 14 5 6 12 - - - -- linear combo weights (showing up to 5) - - 2.4862 -0.3434 0.8844 0.4269 0.1665 - - - -- cutpoint (score) - --- -1.19966 (0.632059), N = 197 moving right - --- -0.222939 (0.727751), N = 107 moving right - --- 0.142287 (0.729682), N = 89 moving right - --- 2.75473 (0.624354), N = 22 moving right - --- 3.24105 (0.612808), N = 20 moving right - - -- best stat: 0.729682, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 13 3 5 1 - - - -- linear combo weights (showing up to 5) - - 0.1640 0.3035 5.4090 1.1977 0.4345 - - - -- cutpoint (score) - --- -0.260956 (0.591895), N = 220 moving right - --- -0.081783 (0.626556), N = 195 moving right - --- 0.91295 (0.745137), N = 67 moving right - --- 1.21245 (0.71598), N = 59 moving right - --- 6.48891 (0.567546), N = 13 moving right - - -- best stat: 0.745137, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7464e-01 2.5602e-02 - 1.1000e+02 9.6377e-01 3.6754e-02 - - ------------- Growing tree 57 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 8 10 17 9 - - - -- linear combo weights (showing up to 5) - - -0.0011 1.7251 -0.2610 0.5706 -0.4236 - - - -- cutpoint (score) - --- 1.35972 (0.70886), N = 120 moving right - --- 1.74351 (0.745059), N = 94 moving right - --- 2.13724 (0.743052), N = 73 moving right - --- 4.97862 (0.592427), N = 18 moving right - --- 5.01315 (0.586293), N = 17 moving right - - -- best stat: 0.745059, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 15 13 7 4 - - - -- linear combo weights (showing up to 5) - - -0.0414 0.1353 0.4463 14.2747 0.6291 - - - -- cutpoint (score) - --- -0.623098 (0.508349), N = 267 moving right - --- -0.46472 (0.541708), N = 253 moving right - --- -0.0155103 (0.63953), N = 192 moving right - --- 0.339671 (0.688073), N = 127 moving right - --- 1.89659 (0.57677), N = 15 moving right - - -- best stat: 0.688073, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 15 8 5 9 - - - -- linear combo weights (showing up to 5) - - -0.5272 -0.0380 1.8255 0.8685 -0.4200 - - - -- cutpoint (score) - --- -1.27633 (0.644226), N = 193 moving right - --- -1.21782 (0.651931), N = 190 moving right - --- -0.0181116 (0.74805), N = 87 moving right - --- 0.134361 (0.743923), N = 79 moving right - --- 0.583127 (0.708747), N = 54 moving right - - -- best stat: 0.74805, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 58 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 1 2 12 8 - - - -- linear combo weights (showing up to 5) - - 7.9753 0.3504 -0.7903 0.2103 1.1651 - - - -- cutpoint (score) - --- -1.47548 (0.623275), N = 191 moving right - --- -1.16374 (0.73486), N = 134 moving right - --- -1.06319 (0.733388), N = 127 moving right - --- -0.841144 (0.746506), N = 110 moving right - --- 0.0200263 (0.703305), N = 54 moving right - - -- best stat: 0.746506, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 6 1 16 0 - - - -- linear combo weights (showing up to 5) - - -0.7439 -0.0811 0.3099 0.4737 0.1112 - - - -- cutpoint (score) - --- -1.10253 (0.57781), N = 217 moving right - --- -0.865345 (0.63769), N = 156 moving right - --- -0.679453 (0.660785), N = 120 moving right - --- -0.356487 (0.63279), N = 61 moving right - --- 0.374905 (0.575723), N = 16 moving right - - -- best stat: 0.660785, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 9 0 5 17 - - - -- linear combo weights (showing up to 5) - - -0.0226 0.6451 -0.0990 0.5317 0.5721 - - - -- cutpoint (score) - --- 0.966923 (0.607893), N = 220 moving right - --- 1.24396 (0.643579), N = 194 moving right - --- 1.7134 (0.681529), N = 144 moving right - --- 2.26781 (0.644019), N = 63 moving right - --- 2.55306 (0.573086), N = 34 moving right - - -- best stat: 0.681529, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8551e-01 1.4559e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 59 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 12 7 5 14 - - - -- linear combo weights (showing up to 5) - - -1.0398 0.0010 25.0359 0.7584 0.3414 - - - -- cutpoint (score) - --- -1.3169 (0.532679), N = 255 moving right - --- -0.45912 (0.65516), N = 88 moving right - --- -0.328451 (0.642699), N = 66 moving right - --- -0.0161812 (0.618038), N = 43 moving right - --- 0.151293 (0.599597), N = 34 moving right - - -- best stat: 0.65516, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 6 0 14 17 - - - -- linear combo weights (showing up to 5) - - 0.2671 0.6886 -0.2225 0.3793 0.5673 - - - -- cutpoint (score) - --- 1.41599 (0.637152), N = 164 moving right - --- 1.46457 (0.610866), N = 159 moving right - --- 1.62097 (0.630824), N = 135 moving right - --- 2.19175 (0.646773), N = 67 moving right - --- 2.64487 (0.596541), N = 31 moving right - - -- best stat: 0.646773, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 6 7 14 8 - - - -- linear combo weights (showing up to 5) - - 0.6042 1.6070 21.8213 -0.1715 1.3036 - - - -- cutpoint (score) - --- -1.11774 (0.585576), N = 231 moving right - --- -0.86472 (0.659906), N = 190 moving right - --- -0.631789 (0.720257), N = 154 moving right - --- -0.520524 (0.731028), N = 139 moving right - --- 0.520002 (0.707342), N = 86 moving right - - -- best stat: 0.731028, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - 1.7900e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 60 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 13 9 12 7 - - - -- linear combo weights (showing up to 5) - - 1.0580 0.0806 0.1565 0.0251 5.6605 - - - -- cutpoint (score) - --- -0.777565 (0.55163), N = 249 moving right - --- -0.560784 (0.672183), N = 179 moving right - --- -0.478371 (0.71951), N = 145 moving right - --- -0.136938 (0.736451), N = 104 moving right - --- 4.16466 (0.594841), N = 18 moving right - - -- best stat: 0.736451, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 5 3 9 13 - - - -- linear combo weights (showing up to 5) - - 0.4640 1.1916 4.8646 0.3251 0.4300 - - - -- cutpoint (score) - --- -0.300324 (0.622994), N = 205 moving right - --- 0.685805 (0.713946), N = 96 moving right - --- 1.11408 (0.684097), N = 67 moving right - --- 1.87008 (0.616002), N = 29 moving right - --- 4.63773 (0.580775), N = 12 moving right - - -- best stat: 0.713946, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 14 0 3 5 - - - -- linear combo weights (showing up to 5) - - 1.4212 0.1998 -0.0739 5.0682 1.1226 - - - -- cutpoint (score) - --- -0.103982 (0.621587), N = 188 moving right - --- -0.0703196 (0.647319), N = 173 moving right - --- 1.09814 (0.648581), N = 49 moving right - --- 1.27257 (0.612051), N = 37 moving right - --- 6.17201 (0.538867), N = 6 moving right - - -- best stat: 0.648581, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 61 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 16 3 1 15 - - - -- linear combo weights (showing up to 5) - - 3.7612 0.2938 1.1887 0.2188 -0.0165 - - - -- cutpoint (score) - --- -0.386436 (0.546644), N = 231 moving right - --- -0.309634 (0.561903), N = 223 moving right - --- -0.174686 (0.611133), N = 168 moving right - --- 0.0255656 (0.63557), N = 119 moving right - --- 0.450073 (0.591788), N = 48 moving right - - -- best stat: 0.63557, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 14 10 15 2 - - - -- linear combo weights (showing up to 5) - - 1.1623 0.3050 -0.5419 -0.2213 -0.0911 - - - -- cutpoint (score) - --- -1.68608 (0.484623), N = 271 moving right - --- -0.740322 (0.557738), N = 224 moving right - --- -0.660631 (0.559791), N = 207 moving right - --- -0.151333 (0.625247), N = 120 moving right - --- 0.539567 (0.620411), N = 44 moving right - - -- best stat: 0.625247, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 4 14 5 15 - - - -- linear combo weights (showing up to 5) - - 1.9875 0.5604 0.2699 1.0017 -0.2168 - - - -- cutpoint (score) - --- -0.564015 (0.484603), N = 268 moving right - --- -0.464169 (0.497651), N = 262 moving right - --- 0.182403 (0.639755), N = 173 moving right - --- 0.735161 (0.658745), N = 114 moving right - --- 1.3982 (0.63257), N = 53 moving right - - -- best stat: 0.658745, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 6.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.7464e-01 2.5441e-02 - 1.1000e+02 9.7101e-01 2.9159e-02 - 1.7900e+02 9.6739e-01 3.2890e-02 - 1.9800e+02 9.5290e-01 4.7871e-02 - - ------------- Growing tree 62 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 197 -- max leaves: 99 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 9 10 4 16 - - - -- linear combo weights (showing up to 5) - - 0.1746 0.8136 -0.4285 0.7442 0.3888 - - - -- cutpoint (score) - --- -0.647358 (0.538123), N = 254 moving right - --- -0.193914 (0.608836), N = 217 moving right - --- 1.81429 (0.641491), N = 44 moving right - --- 1.82697 (0.643299), N = 43 moving right - --- 2.2204 (0.58936), N = 20 moving right - - -- best stat: 0.643299, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 5 16 13 1 - - - -- linear combo weights (showing up to 5) - - 0.9278 0.3382 0.2422 0.4903 0.6417 - - - -- cutpoint (score) - --- -1.50099 (0.558187), N = 245 moving right - --- -1.32102 (0.578512), N = 231 moving right - --- -1.3019 (0.581344), N = 230 moving right - --- -0.100163 (0.742855), N = 120 moving right - --- 1.42184 (0.663798), N = 38 moving right - - -- best stat: 0.742855, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 9 11 14 13 - - - -- linear combo weights (showing up to 5) - - 0.4969 0.3793 0.9012 0.1671 0.2661 - - - -- cutpoint (score) - --- -1.55458 (0.510958), N = 271 moving right - --- -0.594036 (0.643212), N = 178 moving right - --- 0.422781 (0.694166), N = 77 moving right - --- 2.14729 (0.531283), N = 11 moving right - --- 3.27818 (0.506928), N = 6 moving right - - -- best stat: 0.694166, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.8600e+02 9.7826e-01 2.1898e-02 - 1.9100e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 63 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 5 4 16 15 - - - -- linear combo weights (showing up to 5) - - 0.4777 1.2882 0.3304 0.4117 -0.2099 - - - -- cutpoint (score) - --- -0.134193 (0.638692), N = 180 moving right - --- 0.411706 (0.672938), N = 133 moving right - --- 1.0893 (0.66531), N = 79 moving right - --- 2.17366 (0.593949), N = 19 moving right - --- 2.87648 (0.545294), N = 9 moving right - - -- best stat: 0.672938, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 17 9 7 12 - - - -- linear combo weights (showing up to 5) - - -0.2716 0.4399 0.5939 6.6139 0.0737 - - - -- cutpoint (score) - --- 1.1127 (0.640088), N = 165 moving right - --- 1.20847 (0.670028), N = 143 moving right - --- 1.37096 (0.683396), N = 106 moving right - --- 1.39739 (0.675611), N = 97 moving right - --- 1.52477 (0.674884), N = 69 moving right - - -- best stat: 0.683396, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 8 9 6 10 - - - -- linear combo weights (showing up to 5) - - 5.9686 1.3523 -0.0418 0.1775 -0.2662 - - - -- cutpoint (score) - --- -0.636567 (0.685736), N = 150 moving right - --- -0.486117 (0.735079), N = 118 moving right - --- -0.408593 (0.748172), N = 109 moving right - --- -0.0520709 (0.744437), N = 84 moving right - --- 7.73565 (0.537057), N = 7 moving right - - -- best stat: 0.748172, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 64 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 16 3 2 6 - - - -- linear combo weights (showing up to 5) - - 0.5471 0.4379 11.6841 -0.3262 0.3842 - - - -- cutpoint (score) - --- -1.09535 (0.543409), N = 250 moving right - --- -0.902519 (0.589996), N = 227 moving right - --- -0.38323 (0.690511), N = 150 moving right - --- -0.371809 (0.692293), N = 149 moving right - --- -0.183644 (0.712194), N = 117 moving right - - -- best stat: 0.712194, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 8 12 9 11 - - - -- linear combo weights (showing up to 5) - - 0.7390 2.2201 -0.0873 -0.3656 0.2983 - - - -- cutpoint (score) - --- -1.85919 (0.569064), N = 229 moving right - --- -1.60375 (0.608566), N = 212 moving right - --- 0.920438 (0.706505), N = 52 moving right - --- 2.67573 (0.637312), N = 28 moving right - --- 3.22361 (0.629261), N = 23 moving right - - -- best stat: 0.706505, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 6 2 1 3 - - - -- linear combo weights (showing up to 5) - - 0.8156 0.5113 -0.5062 0.6405 11.4749 - - - -- cutpoint (score) - --- -0.87902 (0.56827), N = 210 moving right - --- -0.728061 (0.595771), N = 197 moving right - --- 0.101599 (0.738471), N = 97 moving right - --- 0.559601 (0.715393), N = 55 moving right - --- 0.653526 (0.683813), N = 49 moving right - - -- best stat: 0.738471, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 4.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8551e-01 1.4493e-02 - 5.1000e+01 9.8188e-01 1.8169e-02 - 7.7000e+01 9.7826e-01 2.1859e-02 - 1.1000e+02 9.7101e-01 2.9267e-02 - 1.7900e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 65 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 4 14 12 7 - - - -- linear combo weights (showing up to 5) - - 0.6600 -0.1431 0.4196 0.1312 9.4222 - - - -- cutpoint (score) - --- 1.06547 (0.568418), N = 241 moving right - --- 1.09963 (0.573931), N = 237 moving right - --- 1.20608 (0.585497), N = 232 moving right - --- 1.61869 (0.648402), N = 183 moving right - --- 2.46525 (0.687718), N = 71 moving right - - -- best stat: 0.687718, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 12 3 1 11 - - - -- linear combo weights (showing up to 5) - - 0.6249 0.0509 4.8408 0.3901 0.6414 - - - -- cutpoint (score) - --- -0.835641 (0.574617), N = 234 moving right - --- -0.501157 (0.638126), N = 196 moving right - --- -0.139196 (0.740868), N = 136 moving right - --- 0.118394 (0.763147), N = 101 moving right - --- 0.838312 (0.702821), N = 63 moving right - - -- best stat: 0.763147, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 2 7 14 0 - - - -- linear combo weights (showing up to 5) - - 1.0189 0.1448 9.9386 0.4199 -0.0801 - - - -- cutpoint (score) - --- 0.0515974 (0.671472), N = 149 moving right - --- 0.100105 (0.676943), N = 131 moving right - --- 0.142038 (0.671555), N = 124 moving right - --- 0.470079 (0.690027), N = 77 moving right - --- 1.92285 (0.61799), N = 23 moving right - - -- best stat: 0.690027, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8551e-01 1.4493e-02 - 7.1000e+01 9.8188e-01 1.8169e-02 - 1.1000e+02 9.7826e-01 2.1859e-02 - 1.3100e+02 9.7464e-01 2.5563e-02 - 1.4000e+02 9.7101e-01 2.9280e-02 - - ------------- Growing tree 66 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 11 6 17 14 - - - -- linear combo weights (showing up to 5) - - -0.4349 0.9974 1.1627 0.3062 0.0919 - - - -- cutpoint (score) - --- -0.390873 (0.525417), N = 254 moving right - --- -0.109582 (0.575908), N = 217 moving right - --- 0.674871 (0.663581), N = 151 moving right - --- 1.37369 (0.722365), N = 85 moving right - --- 1.37713 (0.725687), N = 83 moving right - - -- best stat: 0.725687, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 15 3 1 5 - - - -- linear combo weights (showing up to 5) - - 1.0137 -0.0860 4.4992 0.2520 0.8932 - - - -- cutpoint (score) - --- -1.04985 (0.523874), N = 262 moving right - --- -0.289017 (0.666988), N = 163 moving right - --- 0.297674 (0.705671), N = 118 moving right - --- 0.482711 (0.737088), N = 100 moving right - --- 1.16292 (0.712164), N = 52 moving right - - -- best stat: 0.737088, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 8 1 17 7 - - - -- linear combo weights (showing up to 5) - - -0.1186 2.2435 0.3552 0.2344 5.4736 - - - -- cutpoint (score) - --- -0.992024 (0.541597), N = 255 moving right - --- -0.387989 (0.652051), N = 170 moving right - --- -0.370002 (0.669238), N = 161 moving right - --- -0.0163443 (0.742896), N = 121 moving right - --- 2.30677 (0.696477), N = 38 moving right - - -- best stat: 0.742896, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 67 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 13 10 15 5 - - - -- linear combo weights (showing up to 5) - - 0.0513 0.1573 -0.7028 -0.2531 1.5823 - - - -- cutpoint (score) - --- -0.729687 (0.553718), N = 242 moving right - --- 0.191844 (0.696312), N = 139 moving right - --- 0.506729 (0.6806), N = 116 moving right - --- 0.773265 (0.673576), N = 96 moving right - --- 1.55843 (0.651623), N = 55 moving right - - -- best stat: 0.696312, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 17 6 5 12 - - - -- linear combo weights (showing up to 5) - - -0.1782 0.4374 1.0456 1.3517 0.1991 - - - -- cutpoint (score) - --- 0.663402 (0.553638), N = 245 moving right - --- 1.57618 (0.681603), N = 140 moving right - --- 2.27328 (0.680359), N = 90 moving right - --- 2.57941 (0.666091), N = 70 moving right - --- 2.89445 (0.667356), N = 62 moving right - - -- best stat: 0.681603, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 12 2 4 17 - - - -- linear combo weights (showing up to 5) - - 4.7400 0.1953 -0.4690 0.5474 0.3450 - - - -- cutpoint (score) - --- 0.144204 (0.560742), N = 244 moving right - --- 0.481409 (0.64155), N = 191 moving right - --- 0.53635 (0.665329), N = 173 moving right - --- 1.38636 (0.630995), N = 72 moving right - --- 1.516 (0.605029), N = 49 moving right - - -- best stat: 0.665329, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.8600e+02 9.7464e-01 2.5588e-02 - 1.9100e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 68 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 15 0 1 6 - - - -- linear combo weights (showing up to 5) - - 1.1973 -0.2323 0.1661 0.4321 0.9453 - - - -- cutpoint (score) - --- -0.682173 (0.649033), N = 188 moving right - --- -0.307618 (0.723145), N = 143 moving right - --- -0.0135752 (0.735602), N = 121 moving right - --- 0.251811 (0.743529), N = 102 moving right - --- 1.28812 (0.664833), N = 49 moving right - - -- best stat: 0.743529, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 10 5 1 2 - - - -- linear combo weights (showing up to 5) - - 0.3452 -0.5889 0.6304 0.3001 -0.8756 - - - -- cutpoint (score) - --- -0.308601 (0.615365), N = 205 moving right - --- 0.717914 (0.712827), N = 109 moving right - --- 1.00319 (0.694025), N = 79 moving right - --- 1.11715 (0.670873), N = 69 moving right - --- 1.97966 (0.598253), N = 25 moving right - - -- best stat: 0.712827, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 1 15 12 3 - - - -- linear combo weights (showing up to 5) - - 0.0721 0.4026 -0.2330 0.3053 8.9942 - - - -- cutpoint (score) - --- -0.798906 (0.534908), N = 250 moving right - --- -0.313749 (0.621423), N = 184 moving right - --- 0.0383332 (0.658434), N = 132 moving right - --- 0.155418 (0.683132), N = 115 moving right - --- 9.9194 (0.528095), N = 5 moving right - - -- best stat: 0.683132, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8551e-01 1.4532e-02 - 1.3100e+02 9.8188e-01 1.8209e-02 - 1.7900e+02 9.7464e-01 2.5589e-02 - 1.9800e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 69 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 199 -- max leaves: 100 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 11 14 15 12 - - - -- linear combo weights (showing up to 5) - - 8.5757 0.8094 0.2511 0.0121 -0.1246 - - - -- cutpoint (score) - --- -0.838018 (0.539533), N = 255 moving right - --- -0.690172 (0.580259), N = 233 moving right - --- -0.648228 (0.59862), N = 224 moving right - --- -0.04699 (0.718156), N = 112 moving right - --- 0.0159781 (0.711106), N = 102 moving right - - -- best stat: 0.718156, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 5 4 6 12 - - - -- linear combo weights (showing up to 5) - - 0.5984 1.1132 0.3319 1.3669 0.0909 - - - -- cutpoint (score) - --- 0.0297985 (0.638302), N = 172 moving right - --- 0.114798 (0.655789), N = 163 moving right - --- 0.371046 (0.689465), N = 122 moving right - --- 0.882841 (0.66333), N = 91 moving right - --- 2.71402 (0.525262), N = 9 moving right - - -- best stat: 0.689465, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 17 13 14 12 - - - -- linear combo weights (showing up to 5) - - 1.1775 0.3228 0.3563 0.3731 0.0549 - - - -- cutpoint (score) - --- 0.430267 (0.588417), N = 220 moving right - --- 1.23455 (0.703374), N = 126 moving right - --- 1.41705 (0.687825), N = 106 moving right - --- 1.89279 (0.636641), N = 61 moving right - --- 2.61942 (0.583326), N = 22 moving right - - -- best stat: 0.703374, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 70 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 4 3 12 6 - - - -- linear combo weights (showing up to 5) - - 0.0787 0.4554 10.4998 0.0481 0.3679 - - - -- cutpoint (score) - --- 0.0163582 (0.554467), N = 214 moving right - --- 0.0463726 (0.568178), N = 206 moving right - --- 0.0640181 (0.587885), N = 178 moving right - --- 0.428099 (0.633898), N = 142 moving right - --- 0.434602 (0.630002), N = 129 moving right - - -- best stat: 0.633898, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 9 12 7 14 - - - -- linear combo weights (showing up to 5) - - 1.4855 0.3390 -0.0304 9.9720 0.3259 - - - -- cutpoint (score) - --- -0.460661 (0.501626), N = 260 moving right - --- -0.198338 (0.62361), N = 178 moving right - --- 0.208042 (0.6669), N = 100 moving right - --- 1.32787 (0.642503), N = 36 moving right - --- 1.73258 (0.61491), N = 29 moving right - - -- best stat: 0.6669, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 1 15 12 13 - - - -- linear combo weights (showing up to 5) - - 0.8464 0.5522 -0.2695 -0.0482 0.4183 - - - -- cutpoint (score) - --- -0.959676 (0.60935), N = 215 moving right - --- -0.213094 (0.675089), N = 150 moving right - --- 0.145638 (0.679893), N = 102 moving right - --- 0.362242 (0.681406), N = 85 moving right - --- 0.520906 (0.683732), N = 79 moving right - - -- best stat: 0.683732, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 71 -------------- - -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 247 -- max leaves: 124 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 15 2 7 14 - - - -- linear combo weights (showing up to 5) - - 0.0518 -0.0690 -0.0584 14.0441 0.2246 - - - -- cutpoint (score) - --- -0.206678 (0.568329), N = 214 moving right - --- -0.108763 (0.59861), N = 148 moving right - --- 0.0283402 (0.600557), N = 89 moving right - --- 0.092138 (0.615006), N = 67 moving right - --- 13.8846 (0.575889), N = 14 moving right - - -- best stat: 0.615006, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 12 9 17 16 - - - -- linear combo weights (showing up to 5) - - 0.0763 0.0992 0.3451 0.6150 0.4843 - - - -- cutpoint (score) - --- 1.20365 (0.598128), N = 230 moving right - --- 1.63663 (0.698538), N = 174 moving right - --- 1.83233 (0.69257), N = 146 moving right - --- 3.07582 (0.580056), N = 25 moving right - --- 3.20806 (0.568204), N = 23 moving right - - -- best stat: 0.698538, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 0 3 7 4 - - - -- linear combo weights (showing up to 5) - - 0.4037 0.0370 5.3069 10.2998 0.3431 - - - -- cutpoint (score) - --- 0.0950644 (0.630418), N = 170 moving right - --- 0.107066 (0.627822), N = 167 moving right - --- 0.406292 (0.656615), N = 66 moving right - --- 0.436429 (0.654186), N = 62 moving right - --- 0.697791 (0.640658), N = 34 moving right - - -- best stat: 0.656615, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 4.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7101e-01 2.9293e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 72 -------------- - -- N obs inbag: 276 -- N row inbag: 160 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 4 14 5 12 - - - -- linear combo weights (showing up to 5) - - 0.2272 0.5331 0.2336 1.2118 0.1508 - - - -- cutpoint (score) - --- -0.175706 (0.596254), N = 222 moving right - --- 0.33713 (0.652862), N = 167 moving right - --- 0.461404 (0.650153), N = 150 moving right - --- 1.41684 (0.618092), N = 62 moving right - --- 2.15169 (0.538587), N = 11 moving right - - -- best stat: 0.652862, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 7 13 11 14 - - - -- linear combo weights (showing up to 5) - - 1.0301 5.7541 0.1773 0.6070 0.2377 - - - -- cutpoint (score) - --- -0.795215 (0.549611), N = 251 moving right - --- -0.29107 (0.68), N = 180 moving right - --- -0.00813038 (0.701673), N = 115 moving right - --- 0.0191441 (0.71616), N = 108 moving right - --- 0.599331 (0.7147), N = 68 moving right - - -- best stat: 0.71616, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 6 7 15 8 - - - -- linear combo weights (showing up to 5) - - -0.9784 0.5609 4.3363 -0.1139 1.4278 - - - -- cutpoint (score) - --- -1.76085 (0.606031), N = 208 moving right - --- -1.72478 (0.63232), N = 195 moving right - --- -1.64864 (0.651143), N = 179 moving right - --- -1.60446 (0.665559), N = 171 moving right - --- 1.20346 (0.640165), N = 33 moving right - - -- best stat: 0.665559, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8551e-01 1.4546e-02 - 1.4000e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7101e-01 2.9292e-02 - 1.9800e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 73 -------------- - -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 11 13 3 1 - - - -- linear combo weights (showing up to 5) - - 0.0166 0.6454 0.5425 5.5832 0.4922 - - - -- cutpoint (score) - --- -0.927846 (0.589381), N = 224 moving right - --- -0.896805 (0.60537), N = 216 moving right - --- 0.307576 (0.753699), N = 87 moving right - --- 0.7153 (0.707861), N = 71 moving right - --- 1.25721 (0.654087), N = 42 moving right - - -- best stat: 0.753699, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 15 12 4 7 - - - -- linear combo weights (showing up to 5) - - 0.4059 0.0108 0.0540 0.7603 14.1281 - - - -- cutpoint (score) - --- -0.306123 (0.570676), N = 233 moving right - --- 0.223615 (0.653315), N = 169 moving right - --- 0.610418 (0.709289), N = 109 moving right - --- 0.712483 (0.703015), N = 86 moving right - --- 1.31319 (0.582569), N = 23 moving right - - -- best stat: 0.709289, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 6 7 10 14 - - - -- linear combo weights (showing up to 5) - - 0.5534 0.9190 14.1689 -0.2259 0.4524 - - - -- cutpoint (score) - --- -1.01553 (0.517839), N = 253 moving right - --- -0.653857 (0.604083), N = 215 moving right - --- -0.636672 (0.621383), N = 206 moving right - --- 0.288197 (0.754565), N = 95 moving right - --- 1.00506 (0.668602), N = 46 moving right - - -- best stat: 0.754565, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 5.3300e+02 0 2.0000e+00 - 5.4900e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.9800e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 74 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 185 -- max leaves: 93 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 5 2 9 3 - - - -- linear combo weights (showing up to 5) - - -0.3449 1.4716 -0.0969 0.3707 7.5893 - - - -- cutpoint (score) - --- -0.326204 (0.560044), N = 246 moving right - --- -0.277265 (0.576904), N = 227 moving right - --- -0.210961 (0.630406), N = 192 moving right - --- -0.0515158 (0.694677), N = 132 moving right - --- 1.2606 (0.65446), N = 46 moving right - - -- best stat: 0.694677, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 5 11 10 16 - - - -- linear combo weights (showing up to 5) - - 4.8137 0.7017 0.9855 -0.6868 0.3971 - - - -- cutpoint (score) - --- -1.0522 (0.599317), N = 216 moving right - --- -0.534069 (0.712998), N = 160 moving right - --- -0.531073 (0.710278), N = 159 moving right - --- 0.914498 (0.795612), N = 68 moving right - --- 3.86311 (0.631508), N = 23 moving right - - -- best stat: 0.795612, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 0 16 9 2 - - - -- linear combo weights (showing up to 5) - - 0.7894 -0.3858 0.4828 0.3661 0.0558 - - - -- cutpoint (score) - --- 0.186311 (0.715606), N = 136 moving right - --- 0.588744 (0.714616), N = 85 moving right - --- 0.786444 (0.70495), N = 65 moving right - --- 0.836223 (0.69697), N = 57 moving right - --- 0.958238 (0.635397), N = 43 moving right - - -- best stat: 0.715606, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 75 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 4 12 2 16 - - - -- linear combo weights (showing up to 5) - - 0.8703 0.5147 0.1702 0.1199 0.4155 - - - -- cutpoint (score) - --- -0.607601 (0.5957), N = 230 moving right - --- -0.0304592 (0.685148), N = 165 moving right - --- 0.780717 (0.709859), N = 83 moving right - --- 0.937119 (0.70234), N = 77 moving right - --- 0.942731 (0.704959), N = 76 moving right - - -- best stat: 0.709859, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 3 9 6 12 - - - -- linear combo weights (showing up to 5) - - -0.2323 4.8543 0.5974 1.1783 0.2741 - - - -- cutpoint (score) - --- -0.521729 (0.547079), N = 244 moving right - --- -0.112497 (0.663161), N = 151 moving right - --- -0.037371 (0.670722), N = 133 moving right - --- 0.585219 (0.695624), N = 71 moving right - --- 3.54149 (0.617898), N = 24 moving right - - -- best stat: 0.695624, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 15 1 13 11 - - - -- linear combo weights (showing up to 5) - - 3.7639 -0.1086 0.5772 0.5407 0.6314 - - - -- cutpoint (score) - --- -0.980387 (0.584463), N = 231 moving right - --- -0.187129 (0.744498), N = 131 moving right - --- 0.39984 (0.749989), N = 78 moving right - --- 0.72488 (0.707008), N = 62 moving right - --- 4.92886 (0.552993), N = 11 moving right - - -- best stat: 0.749989, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 76 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 0 3 13 15 - - - -- linear combo weights (showing up to 5) - - 0.8664 0.2024 9.0191 0.5122 -0.0848 - - - -- cutpoint (score) - --- -0.333079 (0.598018), N = 218 moving right - --- -0.155413 (0.629136), N = 180 moving right - --- -0.104471 (0.640787), N = 173 moving right - --- 0.24664 (0.689381), N = 107 moving right - --- 0.689337 (0.62727), N = 41 moving right - - -- best stat: 0.689381, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 6 15 8 14 - - - -- linear combo weights (showing up to 5) - - 0.3699 0.7477 -0.1930 1.8765 -0.2367 - - - -- cutpoint (score) - --- -0.687809 (0.628203), N = 190 moving right - --- -0.544516 (0.686914), N = 162 moving right - --- 0.658758 (0.701426), N = 58 moving right - --- 1.69868 (0.624927), N = 27 moving right - --- 3.63038 (0.549299), N = 10 moving right - - -- best stat: 0.701426, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 6 5 13 11 - - - -- linear combo weights (showing up to 5) - - 0.1214 1.4696 0.3751 0.4492 0.6175 - - - -- cutpoint (score) - --- -1.09227 (0.517228), N = 267 moving right - --- -0.245646 (0.691434), N = 167 moving right - --- 0.338695 (0.678228), N = 91 moving right - --- 0.342569 (0.670184), N = 90 moving right - --- 0.595748 (0.662078), N = 66 moving right - - -- best stat: 0.691434, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 77 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 191 -- max leaves: 96 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 17 5 1 10 - - - -- linear combo weights (showing up to 5) - - 0.0997 0.2589 1.4329 0.4823 -0.8493 - - - -- cutpoint (score) - --- 0.0119409 (0.615351), N = 219 moving right - --- 0.466376 (0.648426), N = 194 moving right - --- 1.43016 (0.752783), N = 123 moving right - --- 1.91367 (0.760483), N = 96 moving right - --- 2.01429 (0.75594), N = 88 moving right - - -- best stat: 0.760483, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 1 13 0 15 - - - -- linear combo weights (showing up to 5) - - 0.9418 0.6785 0.7399 0.1380 -0.1683 - - - -- cutpoint (score) - --- -1.60201 (0.545818), N = 249 moving right - --- -0.699131 (0.689723), N = 159 moving right - --- 0.0874382 (0.762641), N = 102 moving right - --- 1.0537 (0.708282), N = 60 moving right - --- 2.70736 (0.569715), N = 14 moving right - - -- best stat: 0.762641, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 1 8 15 0 - - - -- linear combo weights (showing up to 5) - - 6.8109 0.4731 1.4998 -0.0865 -0.0807 - - - -- cutpoint (score) - --- -0.322798 (0.804461), N = 106 moving right - --- 0.0287255 (0.806574), N = 87 moving right - --- 1.88021 (0.698128), N = 41 moving right - --- 1.89816 (0.691018), N = 40 moving right - --- 6.82159 (0.617873), N = 20 moving right - - -- best stat: 0.806574, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.1000e+01 9.7826e-01 2.1886e-02 - 1.1000e+02 9.6377e-01 3.6700e-02 - 1.4000e+02 9.5652e-01 4.4219e-02 - - ------------- Growing tree 78 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 13 6 14 2 - - - -- linear combo weights (showing up to 5) - - 0.1740 0.3900 1.5602 0.4807 -0.1224 - - - -- cutpoint (score) - --- -0.949801 (0.51421), N = 260 moving right - --- -0.655444 (0.590786), N = 218 moving right - --- -0.023477 (0.652731), N = 130 moving right - --- 0.751148 (0.608381), N = 55 moving right - --- 1.0294 (0.612684), N = 45 moving right - - -- best stat: 0.652731, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 7 10 15 6 - - - -- linear combo weights (showing up to 5) - - 1.8526 2.6325 -0.2824 0.0119 0.7989 - - - -- cutpoint (score) - --- -1.04727 (0.64992), N = 192 moving right - --- -0.922646 (0.679315), N = 174 moving right - --- -0.799366 (0.719477), N = 147 moving right - --- 0.161136 (0.743899), N = 84 moving right - --- 2.58772 (0.637202), N = 26 moving right - - -- best stat: 0.743899, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 1 17 6 8 - - - -- linear combo weights (showing up to 5) - - 0.3167 0.2804 0.4003 0.6189 1.8390 - - - -- cutpoint (score) - --- -0.260293 (0.596141), N = 227 moving right - --- -0.206227 (0.604575), N = 224 moving right - --- 0.281118 (0.678511), N = 176 moving right - --- 0.44295 (0.69536), N = 155 moving right - --- 4.87216 (0.609547), N = 22 moving right - - -- best stat: 0.69536, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8188e-01 1.8169e-02 - 1.1000e+02 9.7826e-01 2.1859e-02 - 1.4000e+02 9.7464e-01 2.5562e-02 - 1.8600e+02 9.7101e-01 2.9280e-02 - - ------------- Growing tree 79 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 4 14 0 9 - - - -- linear combo weights (showing up to 5) - - 0.7997 0.7874 0.4032 -0.2541 0.0750 - - - -- cutpoint (score) - --- -0.918566 (0.572874), N = 232 moving right - --- -0.356487 (0.638618), N = 176 moving right - --- -0.237164 (0.646646), N = 170 moving right - --- 0.114919 (0.677056), N = 138 moving right - --- 1.3682 (0.598155), N = 31 moving right - - -- best stat: 0.677056, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 16 17 10 6 - - - -- linear combo weights (showing up to 5) - - 9.1660 0.2152 0.3249 -0.5750 0.6080 - - - -- cutpoint (score) - --- 0.33913 (0.577567), N = 228 moving right - --- 0.958875 (0.696908), N = 129 moving right - --- 1.04259 (0.706639), N = 116 moving right - --- 1.33743 (0.703303), N = 87 moving right - --- 1.45884 (0.703763), N = 78 moving right - - -- best stat: 0.706639, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 11 12 17 6 - - - -- linear combo weights (showing up to 5) - - 0.5270 1.2580 0.0141 0.2422 0.8427 - - - -- cutpoint (score) - --- -0.273175 (0.578556), N = 241 moving right - --- -0.0332645 (0.631487), N = 213 moving right - --- 0.241269 (0.660425), N = 187 moving right - --- 0.277718 (0.663347), N = 185 moving right - --- 2.28112 (0.657573), N = 42 moving right - - -- best stat: 0.663347, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.7826e-01 2.1845e-02 - 7.7000e+01 9.7464e-01 2.5549e-02 - 1.1000e+02 9.7101e-01 2.9266e-02 - 1.3100e+02 9.6377e-01 3.6729e-02 - - ------------- Growing tree 80 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 14 8 2 9 - - - -- linear combo weights (showing up to 5) - - 0.4894 -0.0393 2.1875 -0.4029 -0.2094 - - - -- cutpoint (score) - --- -0.806126 (0.715288), N = 130 moving right - --- -0.692214 (0.725697), N = 121 moving right - --- 0.232921 (0.720031), N = 58 moving right - --- 1.0887 (0.682779), N = 40 moving right - --- 2.21034 (0.641704), N = 30 moving right - - -- best stat: 0.725697, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 0 14 15 10 - - - -- linear combo weights (showing up to 5) - - 0.4214 -0.2896 0.3989 -0.1093 -0.8835 - - - -- cutpoint (score) - --- -1.38736 (0.549663), N = 247 moving right - --- -0.383047 (0.671021), N = 166 moving right - --- -0.261251 (0.657307), N = 149 moving right - --- 0.578034 (0.662972), N = 67 moving right - --- 0.599561 (0.666052), N = 64 moving right - - -- best stat: 0.671021, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 2 11 17 0 - - - -- linear combo weights (showing up to 5) - - 0.3216 0.4427 0.9577 0.5128 -0.3317 - - - -- cutpoint (score) - --- 0.581197 (0.56929), N = 243 moving right - --- 1.15808 (0.685904), N = 183 moving right - --- 1.19635 (0.687905), N = 179 moving right - --- 1.45905 (0.728934), N = 144 moving right - --- 2.71319 (0.679946), N = 52 moving right - - -- best stat: 0.728934, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 3.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - 5.3300e+02 0 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7101e-01 2.9292e-02 - 1.9800e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 81 -------------- - -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 6 5 8 14 - - - -- linear combo weights (showing up to 5) - - -0.7862 0.9421 0.0990 2.7915 -0.0504 - - - -- cutpoint (score) - --- -1.56356 (0.516495), N = 259 moving right - --- -1.15722 (0.658867), N = 181 moving right - --- 0.770372 (0.725306), N = 59 moving right - --- 1.93345 (0.708327), N = 41 moving right - --- 8.50273 (0.57092), N = 11 moving right - - -- best stat: 0.725306, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 1 12 15 2 - - - -- linear combo weights (showing up to 5) - - 2.1958 0.4367 0.0881 -0.1904 -0.3046 - - - -- cutpoint (score) - --- -1.3818 (0.651165), N = 178 moving right - --- -1.32244 (0.674006), N = 164 moving right - --- -1.22093 (0.700504), N = 145 moving right - --- -0.842396 (0.758538), N = 114 moving right - --- 0.0523617 (0.757472), N = 68 moving right - - -- best stat: 0.758538, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 14 9 12 7 - - - -- linear combo weights (showing up to 5) - - 0.5642 0.4839 0.2799 0.1077 4.4078 - - - -- cutpoint (score) - --- -0.418159 (0.638546), N = 191 moving right - --- -0.222139 (0.640023), N = 173 moving right - --- 0.274426 (0.68258), N = 105 moving right - --- 0.30875 (0.688902), N = 102 moving right - --- 0.547109 (0.670542), N = 77 moving right - - -- best stat: 0.688902, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 82 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 14 7 16 5 - - - -- linear combo weights (showing up to 5) - - 0.5808 0.3891 5.3710 0.3979 0.8802 - - - -- cutpoint (score) - --- -0.573175 (0.526884), N = 255 moving right - --- -0.468953 (0.571196), N = 234 moving right - --- -0.405646 (0.574714), N = 232 moving right - --- 0.278706 (0.72152), N = 123 moving right - --- 2.08143 (0.606784), N = 21 moving right - - -- best stat: 0.72152, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 1 3 15 8 - - - -- linear combo weights (showing up to 5) - - 0.3983 0.3144 4.1016 -0.0973 1.6028 - - - -- cutpoint (score) - --- -1.3043 (0.570118), N = 238 moving right - --- -1.19638 (0.596941), N = 224 moving right - --- -1.10173 (0.62228), N = 214 moving right - --- -0.797592 (0.727112), N = 154 moving right - --- 0.893057 (0.705901), N = 49 moving right - - -- best stat: 0.727112, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 0 1 13 12 - - - -- linear combo weights (showing up to 5) - - 6.4248 -0.1444 0.6459 0.4856 0.0609 - - - -- cutpoint (score) - --- -0.726452 (0.567475), N = 230 moving right - --- -0.191992 (0.675093), N = 153 moving right - --- -0.155194 (0.687355), N = 143 moving right - --- -0.106918 (0.691849), N = 134 moving right - --- 0.184818 (0.66224), N = 100 moving right - - -- best stat: 0.691849, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8551e-01 1.4546e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 83 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 7 16 2 10 - - - -- linear combo weights (showing up to 5) - - 0.6312 9.1539 0.5559 -0.1499 -0.7889 - - - -- cutpoint (score) - --- -1.07823 (0.61362), N = 206 moving right - --- 0.0702865 (0.717755), N = 96 moving right - --- 0.348039 (0.718381), N = 81 moving right - --- 11.3175 (0.554206), N = 8 moving right - --- 11.5982 (0.547639), N = 7 moving right - - -- best stat: 0.718381, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 12 11 7 3 - - - -- linear combo weights (showing up to 5) - - -0.5270 0.0274 0.7128 8.5494 6.5381 - - - -- cutpoint (score) - --- -1.15525 (0.539018), N = 250 moving right - --- -1.05822 (0.556864), N = 244 moving right - --- -0.755469 (0.589379), N = 227 moving right - --- -0.722639 (0.605885), N = 215 moving right - --- -0.0322889 (0.724668), N = 115 moving right - - -- best stat: 0.724668, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 16 11 8 0 - - - -- linear combo weights (showing up to 5) - - -0.0459 0.4465 0.6765 1.3617 -0.0671 - - - -- cutpoint (score) - --- -1.23682 (0.640172), N = 199 moving right - --- -1.09126 (0.669663), N = 178 moving right - --- -0.836369 (0.712829), N = 148 moving right - --- -0.212997 (0.735536), N = 95 moving right - --- 0.404101 (0.710517), N = 67 moving right - - -- best stat: 0.735536, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 84 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 9 10 13 15 - - - -- linear combo weights (showing up to 5) - - 0.6520 0.3980 -0.6008 0.6330 -0.1029 - - - -- cutpoint (score) - --- -0.912581 (0.617197), N = 204 moving right - --- -0.617546 (0.665341), N = 177 moving right - --- 0.128112 (0.711135), N = 107 moving right - --- 0.910999 (0.659757), N = 50 moving right - --- 0.992931 (0.663915), N = 47 moving right - - -- best stat: 0.711135, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 8 5 3 9 - - - -- linear combo weights (showing up to 5) - - -0.2801 1.8522 0.6578 4.4475 -0.2323 - - - -- cutpoint (score) - --- -0.823469 (0.685607), N = 171 moving right - --- -0.517137 (0.743774), N = 126 moving right - --- -0.505085 (0.739857), N = 123 moving right - --- 0.344304 (0.723447), N = 74 moving right - --- 2.73274 (0.632341), N = 25 moving right - - -- best stat: 0.743774, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 12 2 15 10 - - - -- linear combo weights (showing up to 5) - - 0.3641 0.0140 -0.7084 -0.0903 -0.7458 - - - -- cutpoint (score) - --- -0.663712 (0.667992), N = 126 moving right - --- -0.530763 (0.676207), N = 115 moving right - --- -0.149111 (0.662067), N = 69 moving right - --- 0.110244 (0.651563), N = 51 moving right - --- 0.225357 (0.627601), N = 41 moving right - - -- best stat: 0.676207, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 85 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 3 11 7 6 - - - -- linear combo weights (showing up to 5) - - 0.4659 4.1252 0.4485 2.9222 0.6862 - - - -- cutpoint (score) - --- -0.625851 (0.531402), N = 252 moving right - --- -0.623626 (0.534596), N = 251 moving right - --- -0.527324 (0.569236), N = 238 moving right - --- 0.641285 (0.684068), N = 62 moving right - --- 1.31307 (0.62306), N = 38 moving right - - -- best stat: 0.684068, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 5 16 2 4 - - - -- linear combo weights (showing up to 5) - - 4.9804 0.2042 0.2004 -0.0338 0.6123 - - - -- cutpoint (score) - --- -0.199861 (0.527388), N = 251 moving right - --- 0.183186 (0.642664), N = 148 moving right - --- 0.352778 (0.660738), N = 139 moving right - --- 0.644939 (0.638583), N = 79 moving right - --- 5.30271 (0.546305), N = 10 moving right - - -- best stat: 0.660738, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 6 11 12 1 - - - -- linear combo weights (showing up to 5) - - 1.5977 0.2153 0.3532 -0.1276 0.3468 - - - -- cutpoint (score) - --- -1.30136 (0.549521), N = 246 moving right - --- -0.73396 (0.72361), N = 153 moving right - --- -0.569756 (0.741484), N = 132 moving right - --- -0.384311 (0.732347), N = 113 moving right - --- -0.305229 (0.746385), N = 107 moving right - - -- best stat: 0.746385, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - 5.1500e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.8600e+02 9.7826e-01 2.1912e-02 - 1.9800e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 86 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 1 5 7 6 - - - -- linear combo weights (showing up to 5) - - -0.0593 0.3740 0.9502 4.2579 2.4113 - - - -- cutpoint (score) - --- -0.580214 (0.525161), N = 257 moving right - --- 0.56944 (0.700995), N = 101 moving right - --- 0.591431 (0.703523), N = 98 moving right - --- 0.993724 (0.701329), N = 66 moving right - --- 4.83126 (0.549026), N = 8 moving right - - -- best stat: 0.703523, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 0 4 17 1 - - - -- linear combo weights (showing up to 5) - - 0.1299 -0.1450 0.5587 0.6566 0.3445 - - - -- cutpoint (score) - --- 1.96445 (0.68342), N = 165 moving right - --- 2.0343 (0.685823), N = 156 moving right - --- 2.35051 (0.690379), N = 136 moving right - --- 2.9027 (0.677318), N = 64 moving right - --- 3.24223 (0.60871), N = 35 moving right - - -- best stat: 0.690379, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 8 10 2 16 - - - -- linear combo weights (showing up to 5) - - 5.2958 1.3394 -0.4427 0.0345 0.4796 - - - -- cutpoint (score) - --- -1.49058 (0.51722), N = 258 moving right - --- -1.17646 (0.583946), N = 230 moving right - --- 0.148662 (0.767324), N = 91 moving right - --- 0.341194 (0.75744), N = 85 moving right - --- 0.995888 (0.730711), N = 55 moving right - - -- best stat: 0.767324, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.7464e-01 2.5562e-02 - 1.1000e+02 9.7101e-01 2.9279e-02 - 1.7900e+02 9.6739e-01 3.3011e-02 - - ------------- Growing tree 87 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 11 0 2 16 - - - -- linear combo weights (showing up to 5) - - -0.1741 1.3575 -0.3165 1.5516 0.7801 - - - -- cutpoint (score) - --- 0.0830077 (0.61435), N = 210 moving right - --- 0.145355 (0.626669), N = 203 moving right - --- 0.571423 (0.699493), N = 155 moving right - --- 1.23359 (0.727055), N = 102 moving right - --- 2.07755 (0.705825), N = 68 moving right - - -- best stat: 0.727055, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 14 11 6 2 - - - -- linear combo weights (showing up to 5) - - 0.9433 -0.0237 1.2933 1.1675 0.9262 - - - -- cutpoint (score) - --- 0.152143 (0.60276), N = 213 moving right - --- 0.540119 (0.663142), N = 170 moving right - --- 2.14243 (0.706129), N = 63 moving right - --- 2.62149 (0.681064), N = 46 moving right - --- 5.02407 (0.528415), N = 5 moving right - - -- best stat: 0.706129, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 0 10 6 13 - - - -- linear combo weights (showing up to 5) - - 0.2852 -0.3614 -0.6244 0.8326 0.5827 - - - -- cutpoint (score) - --- -1.39286 (0.564116), N = 245 moving right - --- -0.74382 (0.594033), N = 198 moving right - --- -0.373587 (0.645017), N = 148 moving right - --- -0.306787 (0.655612), N = 143 moving right - --- -0.277539 (0.663568), N = 130 moving right - - -- best stat: 0.663568, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 88 -------------- - -- N obs inbag: 276 -- N row inbag: 187 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 1 8 15 3 - - - -- linear combo weights (showing up to 5) - - 0.4092 0.5031 1.2288 -0.0109 7.2094 - - - -- cutpoint (score) - --- -1.02852 (0.600946), N = 218 moving right - --- -0.728036 (0.684647), N = 178 moving right - --- -0.64005 (0.718867), N = 159 moving right - --- -0.457641 (0.755793), N = 137 moving right - --- 11.0775 (0.542873), N = 6 moving right - - -- best stat: 0.755793, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 12 4 10 8 - - - -- linear combo weights (showing up to 5) - - 0.6146 0.0268 -0.1431 -0.4745 1.4652 - - - -- cutpoint (score) - --- -1.31253 (0.610508), N = 213 moving right - --- -0.979502 (0.669902), N = 176 moving right - --- -0.945219 (0.678658), N = 173 moving right - --- -0.748607 (0.711123), N = 143 moving right - --- 0.519917 (0.717071), N = 63 moving right - - -- best stat: 0.717071, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 10 8 12 9 - - - -- linear combo weights (showing up to 5) - - 7.0146 -0.3768 1.7028 0.1278 -0.5472 - - - -- cutpoint (score) - --- -1.46724 (0.498905), N = 265 moving right - --- -0.842931 (0.641093), N = 193 moving right - --- -0.824922 (0.643344), N = 192 moving right - --- 0.0666195 (0.755215), N = 87 moving right - --- 0.970221 (0.690492), N = 43 moving right - - -- best stat: 0.755215, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 89 -------------- - -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 191 -- max leaves: 96 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 3 9 0 14 - - - -- linear combo weights (showing up to 5) - - 0.0160 8.3244 0.8270 -0.0498 0.1560 - - - -- cutpoint (score) - --- -0.375571 (0.618939), N = 164 moving right - --- -0.325675 (0.620959), N = 159 moving right - --- 0.147107 (0.696298), N = 81 moving right - --- 0.416758 (0.686126), N = 52 moving right - --- 4.82841 (0.617952), N = 19 moving right - - -- best stat: 0.696298, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 8 5 4 7 - - - -- linear combo weights (showing up to 5) - - -0.0851 2.0914 0.2496 0.2370 12.6813 - - - -- cutpoint (score) - --- -1.12354 (0.652415), N = 201 moving right - --- -1.0907 (0.667003), N = 194 moving right - --- -0.841116 (0.710839), N = 155 moving right - --- -0.772526 (0.731441), N = 143 moving right - --- 12.1584 (0.593568), N = 13 moving right - - -- best stat: 0.731441, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 17 0 12 4 - - - -- linear combo weights (showing up to 5) - - -0.4925 0.7996 -0.4402 0.0832 0.1562 - - - -- cutpoint (score) - --- 1.58733 (0.662775), N = 172 moving right - --- 2.04499 (0.702476), N = 108 moving right - --- 2.39335 (0.676447), N = 76 moving right - --- 2.86525 (0.561948), N = 29 moving right - --- 2.88665 (0.534885), N = 15 moving right - - -- best stat: 0.702476, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.1000e+01 9.6739e-01 3.2956e-02 - 1.1000e+02 9.6377e-01 3.6701e-02 - 1.3100e+02 9.5652e-01 4.4220e-02 - - ------------- Growing tree 90 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 8 10 6 11 - - - -- linear combo weights (showing up to 5) - - 0.6881 1.7466 -0.4094 0.1911 0.5561 - - - -- cutpoint (score) - --- -1.80179 (0.545444), N = 256 moving right - --- -1.41269 (0.600283), N = 225 moving right - --- -1.33746 (0.618032), N = 217 moving right - --- -1.14993 (0.656359), N = 194 moving right - --- 1.18747 (0.695482), N = 49 moving right - - -- best stat: 0.695482, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 8 12 4 17 - - - -- linear combo weights (showing up to 5) - - -0.4422 2.1466 0.0563 -0.2263 0.6250 - - - -- cutpoint (score) - --- 0.302387 (0.673312), N = 196 moving right - --- 0.602635 (0.692012), N = 167 moving right - --- 0.744263 (0.701715), N = 159 moving right - --- 1.00983 (0.723067), N = 129 moving right - --- 3.9246 (0.619424), N = 20 moving right - - -- best stat: 0.723067, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 4 7 14 3 - - - -- linear combo weights (showing up to 5) - - 1.0585 0.6032 10.1659 -0.1062 4.9197 - - - -- cutpoint (score) - --- -0.756164 (0.566553), N = 241 moving right - --- -0.700068 (0.587684), N = 231 moving right - --- -0.695799 (0.597476), N = 226 moving right - --- -0.240326 (0.677402), N = 179 moving right - --- 0.830767 (0.751183), N = 74 moving right - - -- best stat: 0.751183, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 91 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 8 12 10 17 - - - -- linear combo weights (showing up to 5) - - 6.8065 1.0990 0.0392 -0.4565 0.2620 - - - -- cutpoint (score) - --- 0.5013 (0.707276), N = 132 moving right - --- 0.541847 (0.712936), N = 129 moving right - --- 0.672661 (0.729916), N = 102 moving right - --- 1.08192 (0.729585), N = 73 moving right - --- 3.2041 (0.65411), N = 32 moving right - - -- best stat: 0.729916, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 4 8 11 1 - - - -- linear combo weights (showing up to 5) - - 0.4159 0.5055 1.3609 0.5118 0.3808 - - - -- cutpoint (score) - --- -1.17916 (0.548521), N = 249 moving right - --- -0.874876 (0.649524), N = 200 moving right - --- -0.199593 (0.735362), N = 138 moving right - --- 3.42454 (0.627254), N = 28 moving right - --- 3.68067 (0.615583), N = 26 moving right - - -- best stat: 0.735362, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 1 3 17 7 - - - -- linear combo weights (showing up to 5) - - 0.6999 0.2916 2.3249 0.2769 8.2605 - - - -- cutpoint (score) - --- 0.0477225 (0.568116), N = 246 moving right - --- 0.253027 (0.623858), N = 211 moving right - --- 0.646369 (0.712253), N = 151 moving right - --- 1.03713 (0.766473), N = 104 moving right - --- 2.5165 (0.645933), N = 41 moving right - - -- best stat: 0.766473, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 4.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8551e-01 1.4493e-02 - 5.1000e+01 9.7826e-01 2.1846e-02 - 7.1000e+01 9.7101e-01 2.9253e-02 - 7.7000e+01 9.6739e-01 3.2984e-02 - 1.3100e+02 9.6377e-01 3.6730e-02 - - ------------- Growing tree 92 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 6 13 11 15 - - - -- linear combo weights (showing up to 5) - - 0.2637 1.0971 0.2475 0.5801 -0.0463 - - - -- cutpoint (score) - --- -0.592519 (0.601625), N = 227 moving right - --- 0.382281 (0.688341), N = 91 moving right - --- 0.675144 (0.664011), N = 63 moving right - --- 0.84276 (0.629415), N = 46 moving right - --- 1.33617 (0.58591), N = 32 moving right - - -- best stat: 0.688341, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 2 3 16 4 - - - -- linear combo weights (showing up to 5) - - -0.4276 -0.2556 4.9548 0.2454 0.4474 - - - -- cutpoint (score) - --- -0.714851 (0.509342), N = 247 moving right - --- -0.676367 (0.511643), N = 244 moving right - --- -0.493945 (0.589155), N = 199 moving right - --- -0.426032 (0.607604), N = 191 moving right - --- 6.00067 (0.55275), N = 10 moving right - - -- best stat: 0.607604, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 11 17 5 10 - - - -- linear combo weights (showing up to 5) - - 0.3485 0.5079 0.3644 0.4288 -0.3757 - - - -- cutpoint (score) - --- 0.300379 (0.581013), N = 233 moving right - --- 1.07493 (0.71621), N = 150 moving right - --- 1.28722 (0.739773), N = 121 moving right - --- 1.59654 (0.752222), N = 97 moving right - --- 1.7571 (0.741602), N = 80 moving right - - -- best stat: 0.752222, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.7826e-01 2.1898e-02 - 1.7900e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 93 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 17 3 6 12 - - - -- linear combo weights (showing up to 5) - - 0.8093 0.2637 6.7070 0.4458 -0.0212 - - - -- cutpoint (score) - --- -0.215816 (0.54996), N = 251 moving right - --- 0.640332 (0.678337), N = 144 moving right - --- 1.01512 (0.719502), N = 94 moving right - --- 1.19103 (0.701362), N = 79 moving right - --- 1.47091 (0.687534), N = 60 moving right - - -- best stat: 0.719502, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 14 1 10 11 - - - -- linear combo weights (showing up to 5) - - -0.1520 0.0140 0.3905 -0.6554 1.1702 - - - -- cutpoint (score) - --- -2.25336 (0.50499), N = 270 moving right - --- -1.74361 (0.531481), N = 252 moving right - --- 0.242648 (0.743372), N = 91 moving right - --- 0.844021 (0.734534), N = 66 moving right - --- 1.43789 (0.70134), N = 44 moving right - - -- best stat: 0.743372, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 13 12 1 - - - -- linear combo weights (showing up to 5) - - 0.4191 0.4345 0.8880 -0.0760 0.4814 - - - -- cutpoint (score) - --- -0.259851 (0.555372), N = 242 moving right - --- 0.511744 (0.652226), N = 196 moving right - --- 0.771875 (0.684807), N = 150 moving right - --- 0.916208 (0.69707), N = 138 moving right - --- 3.34196 (0.597488), N = 15 moving right - - -- best stat: 0.69707, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7464e-01 2.5588e-02 - 1.4000e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 94 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 2 0 17 3 - - - -- linear combo weights (showing up to 5) - - 0.9836 -0.1113 -0.0482 0.4368 4.2476 - - - -- cutpoint (score) - --- 0.321389 (0.595525), N = 229 moving right - --- 0.443959 (0.628632), N = 211 moving right - --- 1.60488 (0.741039), N = 83 moving right - --- 3.89674 (0.630774), N = 24 moving right - --- 4.93894 (0.617222), N = 21 moving right - - -- best stat: 0.741039, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 8 5 2 13 - - - -- linear combo weights (showing up to 5) - - 0.6967 1.5625 0.6828 -0.3807 -0.1075 - - - -- cutpoint (score) - --- 0.0581668 (0.774486), N = 85 moving right - --- 0.335356 (0.757158), N = 76 moving right - --- 0.418668 (0.745769), N = 71 moving right - --- 3.43212 (0.614146), N = 20 moving right - --- 4.17089 (0.600954), N = 17 moving right - - -- best stat: 0.774486, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 9 1 15 3 - - - -- linear combo weights (showing up to 5) - - -0.2747 0.5232 0.4862 -0.2184 5.6047 - - - -- cutpoint (score) - --- -0.657183 (0.56789), N = 232 moving right - --- 0.248382 (0.698049), N = 90 moving right - --- 0.311399 (0.67894), N = 78 moving right - --- 0.629243 (0.677306), N = 55 moving right - --- 6.05455 (0.555525), N = 8 moving right - - -- best stat: 0.698049, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 95 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 7 13 8 14 - - - -- linear combo weights (showing up to 5) - - 0.6328 7.6436 0.1410 1.8332 -0.1627 - - - -- cutpoint (score) - --- -1.08612 (0.578311), N = 226 moving right - --- -1.05585 (0.588425), N = 222 moving right - --- -0.459887 (0.748521), N = 126 moving right - --- 0.0262071 (0.750072), N = 96 moving right - --- 2.03552 (0.627353), N = 23 moving right - - -- best stat: 0.750072, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 4 15 9 8 - - - -- linear combo weights (showing up to 5) - - -0.2550 0.3275 -0.0659 -0.3573 2.0704 - - - -- cutpoint (score) - --- -0.988803 (0.649754), N = 192 moving right - --- -0.920414 (0.68955), N = 173 moving right - --- -0.468526 (0.742978), N = 113 moving right - --- 0.211722 (0.707587), N = 69 moving right - --- 2.03588 (0.621065), N = 27 moving right - - -- best stat: 0.742978, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 2 13 3 14 - - - -- linear combo weights (showing up to 5) - - 0.6314 -0.2247 0.4981 7.4053 0.0935 - - - -- cutpoint (score) - --- -0.558163 (0.67019), N = 170 moving right - --- -0.335134 (0.700782), N = 152 moving right - --- -0.122022 (0.699582), N = 126 moving right - --- 0.0638901 (0.672093), N = 97 moving right - --- 0.747751 (0.65991), N = 43 moving right - - -- best stat: 0.700782, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 96 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 13 6 11 16 - - - -- linear combo weights (showing up to 5) - - -0.3899 0.2861 0.2932 0.9669 0.5158 - - - -- cutpoint (score) - --- -1.58083 (0.534853), N = 251 moving right - --- -1.06651 (0.62373), N = 207 moving right - --- 1.2172 (0.646563), N = 42 moving right - --- 1.42393 (0.632549), N = 39 moving right - --- 1.60509 (0.617078), N = 34 moving right - - -- best stat: 0.646563, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 11 3 9 15 - - - -- linear combo weights (showing up to 5) - - -0.6518 0.4910 6.5571 0.2162 -0.0569 - - - -- cutpoint (score) - --- -0.613137 (0.609486), N = 210 moving right - --- -0.49187 (0.64986), N = 188 moving right - --- 0.987566 (0.679019), N = 50 moving right - --- 1.37029 (0.682144), N = 39 moving right - --- 1.55269 (0.658736), N = 33 moving right - - -- best stat: 0.682144, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 16 1 4 15 - - - -- linear combo weights (showing up to 5) - - 0.3471 0.4795 0.2447 0.7737 -0.1534 - - - -- cutpoint (score) - --- 0.162889 (0.651566), N = 164 moving right - --- 0.343139 (0.680035), N = 149 moving right - --- 0.484774 (0.714505), N = 125 moving right - --- 1.00764 (0.667612), N = 62 moving right - --- 1.64903 (0.607875), N = 26 moving right - - -- best stat: 0.714505, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 97 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 197 -- max leaves: 99 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 5 13 1 3 - - - -- linear combo weights (showing up to 5) - - 0.5798 0.1793 0.2936 0.4321 12.9205 - - - -- cutpoint (score) - --- -0.487092 (0.604221), N = 221 moving right - --- -0.351854 (0.649362), N = 193 moving right - --- 0.424712 (0.697089), N = 73 moving right - --- 0.454661 (0.696301), N = 71 moving right - --- 0.550467 (0.684603), N = 57 moving right - - -- best stat: 0.697089, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 7 16 4 8 - - - -- linear combo weights (showing up to 5) - - -0.2731 11.1386 0.2873 0.5417 1.9577 - - - -- cutpoint (score) - --- -0.999516 (0.603802), N = 220 moving right - --- -0.989992 (0.617027), N = 212 moving right - --- -0.977109 (0.634143), N = 204 moving right - --- -0.929817 (0.651751), N = 196 moving right - --- 3.86446 (0.645717), N = 21 moving right - - -- best stat: 0.651751, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 3 5 10 2 - - - -- linear combo weights (showing up to 5) - - 0.3307 11.9069 0.1249 -0.5437 -0.6429 - - - -- cutpoint (score) - --- -1.70205 (0.512535), N = 269 moving right - --- -1.01204 (0.630744), N = 207 moving right - --- -0.499123 (0.741516), N = 117 moving right - --- -0.0435017 (0.726247), N = 73 moving right - --- 0.449777 (0.678151), N = 38 moving right - - -- best stat: 0.741516, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 5.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 5.3300e+02 0 2.0000e+00 - 5.4900e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.4000e+02 9.9275e-01 7.2596e-03 - 1.9100e+02 9.8913e-01 1.0909e-02 - 2.1600e+02 9.8551e-01 1.4572e-02 - 2.2300e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 98 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 14 4 9 8 - - - -- linear combo weights (showing up to 5) - - -0.6013 0.0167 0.2203 -0.3920 2.1028 - - - -- cutpoint (score) - --- -1.34444 (0.580158), N = 220 moving right - --- -1.27331 (0.591803), N = 216 moving right - --- -0.848541 (0.688901), N = 169 moving right - --- 0.147466 (0.725964), N = 85 moving right - --- 2.82001 (0.63233), N = 26 moving right - - -- best stat: 0.725964, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 3 11 14 9 - - - -- linear combo weights (showing up to 5) - - 8.2325 3.2995 0.6228 0.2294 0.3216 - - - -- cutpoint (score) - --- -0.251074 (0.730383), N = 146 moving right - --- 0.437749 (0.740197), N = 76 moving right - --- 2.16693 (0.6512), N = 35 moving right - --- 4.03014 (0.62608), N = 26 moving right - --- 11.6375 (0.55454), N = 10 moving right - - -- best stat: 0.740197, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 17 3 5 14 - - - -- linear combo weights (showing up to 5) - - 0.0768 0.3218 6.1678 1.2027 0.2064 - - - -- cutpoint (score) - --- 0.85801 (0.655002), N = 194 moving right - --- 0.860274 (0.656137), N = 193 moving right - --- 2.26441 (0.688622), N = 64 moving right - --- 2.34714 (0.681078), N = 50 moving right - --- 8.61382 (0.556153), N = 10 moving right - - -- best stat: 0.688622, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 99 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 14 8 9 12 - - - -- linear combo weights (showing up to 5) - - 0.3741 0.0832 1.6125 -0.1948 0.1515 - - - -- cutpoint (score) - --- -1.05628 (0.601752), N = 217 moving right - --- -0.457038 (0.728554), N = 120 moving right - --- -0.288668 (0.747555), N = 105 moving right - --- 0.911892 (0.696399), N = 48 moving right - --- 6.39354 (0.531955), N = 8 moving right - - -- best stat: 0.747555, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 1 2 17 13 - - - -- linear combo weights (showing up to 5) - - 0.7527 0.4148 -0.3313 0.4734 0.6512 - - - -- cutpoint (score) - --- 0.118277 (0.564648), N = 247 moving right - --- 0.893009 (0.674225), N = 178 moving right - --- 1.0384 (0.699832), N = 163 moving right - --- 1.08103 (0.704323), N = 160 moving right - --- 1.49204 (0.749172), N = 115 moving right - - -- best stat: 0.749172, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 6 8 9 11 - - - -- linear combo weights (showing up to 5) - - 0.5233 -0.2246 1.3660 -0.3237 1.3391 - - - -- cutpoint (score) - --- -1.14762 (0.643926), N = 193 moving right - --- -0.225023 (0.724083), N = 100 moving right - --- 1.01494 (0.740789), N = 65 moving right - --- 1.12771 (0.731128), N = 58 moving right - --- 1.89011 (0.676221), N = 41 moving right - - -- best stat: 0.740789, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8188e-01 1.8169e-02 - 7.1000e+01 9.7826e-01 2.1859e-02 - 1.3100e+02 9.7464e-01 2.5562e-02 - 1.4000e+02 9.7101e-01 2.9280e-02 - - ------------- Growing tree 100 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 0 12 10 8 - - - -- linear combo weights (showing up to 5) - - 0.1998 -0.1006 0.0670 -0.6184 1.6571 - - - -- cutpoint (score) - --- -1.48341 (0.543867), N = 247 moving right - --- 0.555466 (0.718269), N = 76 moving right - --- 1.64075 (0.644387), N = 37 moving right - --- 1.97361 (0.624694), N = 32 moving right - --- 2.26786 (0.629952), N = 29 moving right - - -- best stat: 0.718269, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 0 12 9 3 - - - -- linear combo weights (showing up to 5) - - -0.2082 0.1773 0.1816 0.2128 5.9476 - - - -- cutpoint (score) - --- -0.311531 (0.501397), N = 256 moving right - --- 0.143695 (0.636704), N = 116 moving right - --- 0.244294 (0.668387), N = 82 moving right - --- 0.261021 (0.673548), N = 79 moving right - --- 0.344137 (0.639634), N = 59 moving right - - -- best stat: 0.673548, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 13 17 2 6 - - - -- linear combo weights (showing up to 5) - - 0.5988 0.4640 0.6115 -0.3171 1.3000 - - - -- cutpoint (score) - --- 1.02574 (0.616662), N = 220 moving right - --- 1.25409 (0.664216), N = 189 moving right - --- 2.12142 (0.730938), N = 93 moving right - --- 2.50013 (0.69908), N = 60 moving right - --- 3.22244 (0.622308), N = 37 moving right - - -- best stat: 0.730938, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.7826e-01 2.1899e-02 - 1.1000e+02 9.6739e-01 3.3010e-02 - 1.3100e+02 9.6014e-01 4.0500e-02 - - ------------- Growing tree 101 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 2 13 12 6 - - - -- linear combo weights (showing up to 5) - - 0.5420 -0.5555 0.6483 0.0577 1.0071 - - - -- cutpoint (score) - --- 0.8572 (0.669142), N = 188 moving right - --- 0.877262 (0.672442), N = 186 moving right - --- 1.53667 (0.732037), N = 114 moving right - --- 1.53899 (0.712552), N = 110 moving right - --- 1.59142 (0.712316), N = 96 moving right - - -- best stat: 0.732037, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 7 11 17 6 - - - -- linear combo weights (showing up to 5) - - -0.0025 11.2793 0.6520 0.2767 0.9848 - - - -- cutpoint (score) - --- -0.0869319 (0.532646), N = 262 moving right - --- 0.579451 (0.692123), N = 174 moving right - --- 1.14552 (0.703418), N = 99 moving right - --- 1.70681 (0.696838), N = 53 moving right - --- 13.0934 (0.553172), N = 10 moving right - - -- best stat: 0.703418, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 17 3 0 4 - - - -- linear combo weights (showing up to 5) - - 0.1129 0.3252 6.2832 -0.1166 0.4878 - - - -- cutpoint (score) - --- 0.729067 (0.594618), N = 223 moving right - --- 0.824172 (0.617678), N = 202 moving right - --- 1.33729 (0.667531), N = 127 moving right - --- 1.34219 (0.669809), N = 126 moving right - --- 1.63126 (0.647201), N = 76 moving right - - -- best stat: 0.669809, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 4.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8551e-01 1.4493e-02 - 5.1000e+01 9.8188e-01 1.8169e-02 - 1.1000e+02 9.7101e-01 2.9239e-02 - 1.3100e+02 9.6377e-01 3.6702e-02 - 1.9800e+02 9.6014e-01 4.0461e-02 - - ------------- Growing tree 102 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 2 6 1 9 - - - -- linear combo weights (showing up to 5) - - -0.2530 -0.1612 1.5772 0.4070 0.6487 - - - -- cutpoint (score) - --- -0.53873 (0.611888), N = 210 moving right - --- -0.210391 (0.664274), N = 153 moving right - --- -0.0704593 (0.697259), N = 129 moving right - --- -0.0647979 (0.707815), N = 125 moving right - --- 0.0709638 (0.730139), N = 98 moving right - - -- best stat: 0.730139, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 1 7 10 6 - - - -- linear combo weights (showing up to 5) - - 0.6558 0.2996 5.5731 -0.4964 1.4927 - - - -- cutpoint (score) - --- -0.257661 (0.690791), N = 159 moving right - --- 0.166996 (0.731182), N = 114 moving right - --- 0.441546 (0.731808), N = 94 moving right - --- 0.523571 (0.733915), N = 93 moving right - --- 1.19428 (0.710611), N = 57 moving right - - -- best stat: 0.733915, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 0 9 3 7 - - - -- linear combo weights (showing up to 5) - - 0.1811 -0.2753 0.5590 4.1958 6.0955 - - - -- cutpoint (score) - --- -0.496884 (0.547129), N = 218 moving right - --- -0.292661 (0.652508), N = 136 moving right - --- -0.214747 (0.671722), N = 122 moving right - --- 0.347257 (0.688225), N = 67 moving right - --- 0.770718 (0.65885), N = 48 moving right - - -- best stat: 0.688225, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 103 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 6 12 11 17 - - - -- linear combo weights (showing up to 5) - - 0.3135 1.7941 0.0920 1.1392 0.3261 - - - -- cutpoint (score) - --- -0.0962915 (0.562319), N = 240 moving right - --- 0.0318461 (0.609257), N = 217 moving right - --- 0.494726 (0.66318), N = 182 moving right - --- 3.25905 (0.667844), N = 43 moving right - --- 3.45797 (0.62958), N = 36 moving right - - -- best stat: 0.667844, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 17 1 9 0 - - - -- linear combo weights (showing up to 5) - - 0.8089 0.4698 0.3638 0.6908 -0.3211 - - - -- cutpoint (score) - --- 0.707059 (0.669353), N = 181 moving right - --- 0.719713 (0.678621), N = 177 moving right - --- 1.22039 (0.709185), N = 129 moving right - --- 1.48666 (0.724884), N = 108 moving right - --- 2.61495 (0.642202), N = 38 moving right - - -- best stat: 0.724884, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 12 16 7 5 - - - -- linear combo weights (showing up to 5) - - 1.2588 0.2780 0.6822 5.5801 0.6792 - - - -- cutpoint (score) - --- -0.584597 (0.576966), N = 232 moving right - --- 0.128435 (0.66584), N = 130 moving right - --- 0.544102 (0.703172), N = 88 moving right - --- 0.613064 (0.69944), N = 86 moving right - --- 0.96684 (0.679435), N = 72 moving right - - -- best stat: 0.703172, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 104 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 5 1 13 2 - - - -- linear combo weights (showing up to 5) - - 1.5289 0.8475 0.6299 0.3757 0.2830 - - - -- cutpoint (score) - --- -1.61298 (0.542714), N = 253 moving right - --- -0.608903 (0.678154), N = 181 moving right - --- -0.564636 (0.684755), N = 168 moving right - --- 1.33194 (0.733646), N = 64 moving right - --- 3.60686 (0.539435), N = 10 moving right - - -- best stat: 0.733646, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 15 5 6 4 - - - -- linear combo weights (showing up to 5) - - 0.4773 -0.1233 0.7469 0.2296 0.3174 - - - -- cutpoint (score) - --- 0.968925 (0.569455), N = 239 moving right - --- 1.34697 (0.623572), N = 204 moving right - --- 1.45288 (0.651773), N = 175 moving right - --- 2.65351 (0.617627), N = 44 moving right - --- 3.15865 (0.526339), N = 8 moving right - - -- best stat: 0.651773, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 9 4 10 5 - - - -- linear combo weights (showing up to 5) - - -0.1007 0.3431 0.2439 -0.8679 0.8623 - - - -- cutpoint (score) - --- -0.50869 (0.583968), N = 212 moving right - --- 0.159833 (0.692625), N = 141 moving right - --- 0.177099 (0.694868), N = 140 moving right - --- 0.572656 (0.702674), N = 101 moving right - --- 0.929153 (0.665143), N = 71 moving right - - -- best stat: 0.702674, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.6377e-01 3.6727e-02 - - ------------- Growing tree 105 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 0 10 2 3 - - - -- linear combo weights (showing up to 5) - - 0.6080 0.3986 -0.4979 -0.3200 6.9343 - - - -- cutpoint (score) - --- -0.491108 (0.595288), N = 214 moving right - --- -0.404999 (0.613214), N = 203 moving right - --- 0.468604 (0.694852), N = 58 moving right - --- 0.751322 (0.660898), N = 31 moving right - --- 7.21819 (0.578061), N = 15 moving right - - -- best stat: 0.694852, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 13 14 11 8 - - - -- linear combo weights (showing up to 5) - - 0.8560 0.0796 -0.0548 0.3583 1.0550 - - - -- cutpoint (score) - --- -0.73414 (0.611136), N = 222 moving right - --- -0.684516 (0.619789), N = 215 moving right - --- 0.448546 (0.722291), N = 91 moving right - --- 0.506861 (0.7109), N = 84 moving right - --- 0.893234 (0.67127), N = 58 moving right - - -- best stat: 0.722291, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 9 15 12 6 - - - -- linear combo weights (showing up to 5) - - 0.6027 0.4083 -0.1254 0.1186 1.2185 - - - -- cutpoint (score) - --- -0.296366 (0.518446), N = 251 moving right - --- -0.260194 (0.529857), N = 246 moving right - --- -0.234413 (0.541488), N = 240 moving right - --- 0.300603 (0.641652), N = 153 moving right - --- 1.40277 (0.583197), N = 35 moving right - - -- best stat: 0.641652, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.7464e-01 2.5561e-02 - 1.7900e+02 9.7101e-01 2.9279e-02 - - ------------- Growing tree 106 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 9 1 14 5 - - - -- linear combo weights (showing up to 5) - - 6.8001 0.3889 0.4672 0.3356 0.6129 - - - -- cutpoint (score) - --- -0.350927 (0.615222), N = 209 moving right - --- -0.195204 (0.635508), N = 187 moving right - --- 0.582286 (0.701863), N = 76 moving right - --- 2.57806 (0.600232), N = 20 moving right - --- 3.51323 (0.580645), N = 15 moving right - - -- best stat: 0.701863, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 2 4 0 5 - - - -- linear combo weights (showing up to 5) - - 0.5771 0.0542 0.8751 -0.0895 1.0045 - - - -- cutpoint (score) - --- 0.0541837 (0.648239), N = 168 moving right - --- 0.92933 (0.624875), N = 94 moving right - --- 1.00452 (0.612104), N = 78 moving right - --- 1.50643 (0.600132), N = 61 moving right - --- 1.84438 (0.569693), N = 44 moving right - - -- best stat: 0.648239, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 3 9 1 15 - - - -- linear combo weights (showing up to 5) - - 0.4908 4.5462 0.5039 0.3431 -0.1241 - - - -- cutpoint (score) - --- -0.63672 (0.537135), N = 252 moving right - --- -0.531325 (0.567054), N = 236 moving right - --- -0.37954 (0.597953), N = 214 moving right - --- 0.542727 (0.665647), N = 58 moving right - --- 1.72126 (0.597454), N = 26 moving right - - -- best stat: 0.665647, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7826e-01 2.1899e-02 - 1.7900e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 107 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 12 5 8 9 - - - -- linear combo weights (showing up to 5) - - 0.1144 0.0222 0.6313 1.6867 -0.5487 - - - -- cutpoint (score) - --- -0.758912 (0.576944), N = 209 moving right - --- -0.493065 (0.701184), N = 142 moving right - --- 0.277822 (0.712746), N = 85 moving right - --- 0.708754 (0.700103), N = 72 moving right - --- 2.89863 (0.565675), N = 15 moving right - - -- best stat: 0.712746, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 17 9 15 16 - - - -- linear combo weights (showing up to 5) - - 0.0822 0.7143 0.2426 -0.0176 0.3312 - - - -- cutpoint (score) - --- 1.69926 (0.631917), N = 190 moving right - --- 1.79425 (0.649894), N = 174 moving right - --- 1.90223 (0.658011), N = 166 moving right - --- 2.27639 (0.687679), N = 118 moving right - --- 2.35949 (0.696621), N = 114 moving right - - -- best stat: 0.696621, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 15 3 2 13 - - - -- linear combo weights (showing up to 5) - - 1.0248 0.0383 5.5793 -0.6845 0.4325 - - - -- cutpoint (score) - --- -0.964582 (0.575863), N = 234 moving right - --- -0.050398 (0.708147), N = 153 moving right - --- 0.276757 (0.728469), N = 109 moving right - --- 0.61387 (0.676391), N = 69 moving right - --- 0.940229 (0.610331), N = 41 moving right - - -- best stat: 0.728469, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.3100e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 108 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 1 14 8 9 - - - -- linear combo weights (showing up to 5) - - 0.4690 0.2937 -0.1994 1.5712 -0.2550 - - - -- cutpoint (score) - --- -0.632001 (0.631351), N = 184 moving right - --- -0.339169 (0.711352), N = 125 moving right - --- -0.249555 (0.741245), N = 110 moving right - --- -0.123905 (0.740243), N = 95 moving right - --- 0.438178 (0.713736), N = 61 moving right - - -- best stat: 0.741245, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 5 7 14 1 - - - -- linear combo weights (showing up to 5) - - 0.3522 0.4964 6.3066 0.1640 0.4849 - - - -- cutpoint (score) - --- -0.453998 (0.557161), N = 237 moving right - --- -0.338484 (0.578218), N = 227 moving right - --- -0.281309 (0.588376), N = 219 moving right - --- -0.0598735 (0.660042), N = 174 moving right - --- 1.84919 (0.597852), N = 21 moving right - - -- best stat: 0.660042, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 2 10 7 14 - - - -- linear combo weights (showing up to 5) - - 2.2360 -0.5583 -0.5017 4.8257 0.1924 - - - -- cutpoint (score) - --- -1.42422 (0.51719), N = 261 moving right - --- -0.664598 (0.651447), N = 168 moving right - --- -0.486514 (0.68158), N = 128 moving right - --- -0.29002 (0.688011), N = 101 moving right - --- -0.27534 (0.690696), N = 100 moving right - - -- best stat: 0.690696, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7464e-01 2.5588e-02 - 1.8600e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 109 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 16 9 12 13 - - - -- linear combo weights (showing up to 5) - - 0.6438 0.9137 0.3986 0.0280 0.4347 - - - -- cutpoint (score) - --- 1.78633 (0.734439), N = 130 moving right - --- 2.1431 (0.72785), N = 104 moving right - --- 2.45967 (0.740281), N = 83 moving right - --- 3.01883 (0.702965), N = 55 moving right - --- 3.23394 (0.70347), N = 42 moving right - - -- best stat: 0.740281, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 1 16 15 4 - - - -- linear combo weights (showing up to 5) - - 0.5249 0.2694 0.9493 -0.0113 0.7884 - - - -- cutpoint (score) - --- -0.937126 (0.58658), N = 230 moving right - --- -0.417205 (0.621041), N = 187 moving right - --- 0.43182 (0.733758), N = 103 moving right - --- 0.768651 (0.72741), N = 76 moving right - --- 1.13347 (0.711179), N = 61 moving right - - -- best stat: 0.733758, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 7 12 15 - - - -- linear combo weights (showing up to 5) - - 0.5144 0.7842 8.4154 0.0644 0.0357 - - - -- cutpoint (score) - --- 0.474689 (0.535339), N = 254 moving right - --- 0.898381 (0.63602), N = 194 moving right - --- 1.59519 (0.701274), N = 101 moving right - --- 2.11518 (0.70492), N = 68 moving right - --- 11.6 (0.545157), N = 6 moving right - - -- best stat: 0.70492, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8188e-01 1.8195e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.6014e-01 4.0459e-02 - - ------------- Growing tree 110 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 11 0 4 1 - - - -- linear combo weights (showing up to 5) - - 0.5085 1.2563 -0.0663 0.3633 0.4366 - - - -- cutpoint (score) - --- -0.37337 (0.71017), N = 144 moving right - --- -0.293585 (0.720938), N = 140 moving right - --- -0.14957 (0.719544), N = 127 moving right - --- 0.177987 (0.715281), N = 108 moving right - --- 2.17011 (0.650127), N = 40 moving right - - -- best stat: 0.720938, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 0 17 6 4 - - - -- linear combo weights (showing up to 5) - - 0.7939 -0.1484 0.4746 0.6886 0.0250 - - - -- cutpoint (score) - --- 0.474577 (0.517576), N = 267 moving right - --- 1.2753 (0.615257), N = 197 moving right - --- 1.63774 (0.664087), N = 142 moving right - --- 2.24265 (0.661764), N = 64 moving right - --- 2.7828 (0.558265), N = 16 moving right - - -- best stat: 0.664087, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 2 5 15 11 - - - -- linear combo weights (showing up to 5) - - 0.4795 -0.3424 0.5488 0.1244 1.1555 - - - -- cutpoint (score) - --- -0.309871 (0.531718), N = 262 moving right - --- -0.277807 (0.537234), N = 260 moving right - --- 0.910725 (0.703039), N = 157 moving right - --- 1.4025 (0.731565), N = 109 moving right - --- 3.38375 (0.572993), N = 23 moving right - - -- best stat: 0.731565, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 111 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 13 15 16 10 - - - -- linear combo weights (showing up to 5) - - -0.1315 0.5642 0.0048 0.7588 -0.9577 - - - -- cutpoint (score) - --- -1.77062 (0.547239), N = 242 moving right - --- -1.25394 (0.601233), N = 213 moving right - --- -1.03774 (0.614889), N = 191 moving right - --- 0.632126 (0.722877), N = 71 moving right - --- 2.73785 (0.581328), N = 13 moving right - - -- best stat: 0.722877, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 4 10 8 15 - - - -- linear combo weights (showing up to 5) - - 0.0622 -0.1256 -0.7073 1.8583 -0.2485 - - - -- cutpoint (score) - --- -0.37302 (0.752533), N = 116 moving right - --- -0.369732 (0.755214), N = 115 moving right - --- 0.171088 (0.744174), N = 85 moving right - --- 0.432539 (0.734507), N = 69 moving right - --- 1.87496 (0.662171), N = 36 moving right - - -- best stat: 0.755214, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 15 13 14 7 - - - -- linear combo weights (showing up to 5) - - 0.5253 -0.1324 0.4839 0.6415 7.6382 - - - -- cutpoint (score) - --- -1.49107 (0.507599), N = 270 moving right - --- -1.46249 (0.517794), N = 264 moving right - --- -0.861436 (0.570437), N = 236 moving right - --- -0.520449 (0.670614), N = 177 moving right - --- 0.599264 (0.690666), N = 70 moving right - - -- best stat: 0.690666, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 112 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 4 17 15 2 - - - -- linear combo weights (showing up to 5) - - -0.1465 0.6594 0.4816 -0.1812 -1.4257 - - - -- cutpoint (score) - --- -0.348137 (0.607437), N = 218 moving right - --- -0.164865 (0.634374), N = 194 moving right - --- 0.44785 (0.687229), N = 125 moving right - --- 0.784501 (0.701107), N = 90 moving right - --- 2.14196 (0.531629), N = 17 moving right - - -- best stat: 0.701107, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 14 3 13 6 - - - -- linear combo weights (showing up to 5) - - 0.9095 -0.0962 8.4073 0.5077 0.1620 - - - -- cutpoint (score) - --- -1.09323 (0.579681), N = 233 moving right - --- -0.817676 (0.625122), N = 211 moving right - --- -0.76142 (0.635525), N = 206 moving right - --- 0.959694 (0.727689), N = 58 moving right - --- 1.56912 (0.657725), N = 30 moving right - - -- best stat: 0.727689, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 9 0 15 4 - - - -- linear combo weights (showing up to 5) - - 0.3978 0.7224 -0.1106 -0.3153 1.0795 - - - -- cutpoint (score) - --- 0.0222139 (0.681762), N = 160 moving right - --- 0.038898 (0.685281), N = 158 moving right - --- 0.25205 (0.716246), N = 137 moving right - --- 0.415252 (0.712019), N = 120 moving right - --- 0.497293 (0.710823), N = 115 moving right - - -- best stat: 0.716246, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7464e-01 2.5575e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 113 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 14 5 7 16 - - - -- linear combo weights (showing up to 5) - - 1.6488 0.1412 0.1952 6.1559 0.6840 - - - -- cutpoint (score) - --- -1.70318 (0.542347), N = 250 moving right - --- -0.833164 (0.724203), N = 144 moving right - --- 0.844811 (0.762733), N = 62 moving right - --- 2.77057 (0.673184), N = 33 moving right - --- 3.3508 (0.613536), N = 22 moving right - - -- best stat: 0.762733, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 5 7 9 0 - - - -- linear combo weights (showing up to 5) - - 0.6065 0.2219 8.7567 0.3134 -0.0905 - - - -- cutpoint (score) - --- 0.134476 (0.657538), N = 154 moving right - --- 0.370169 (0.654471), N = 136 moving right - --- 0.517007 (0.681812), N = 97 moving right - --- 0.588104 (0.682562), N = 82 moving right - --- 0.634513 (0.688322), N = 79 moving right - - -- best stat: 0.688322, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 5 15 2 17 - - - -- linear combo weights (showing up to 5) - - 0.4588 0.5230 0.0333 -0.8626 0.6037 - - - -- cutpoint (score) - --- 0.381179 (0.606011), N = 219 moving right - --- 0.850051 (0.686733), N = 173 moving right - --- 0.921719 (0.685718), N = 170 moving right - --- 1.35796 (0.713214), N = 123 moving right - --- 1.61999 (0.69823), N = 86 moving right - - -- best stat: 0.713214, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8188e-01 1.8196e-02 - 1.4000e+02 9.7464e-01 2.5576e-02 - 1.7900e+02 9.7101e-01 2.9293e-02 - 1.9100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 114 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 7 6 2 9 - - - -- linear combo weights (showing up to 5) - - 0.6569 11.4896 0.8625 0.0128 0.1589 - - - -- cutpoint (score) - --- -0.457905 (0.61642), N = 218 moving right - --- -0.352363 (0.662769), N = 185 moving right - --- 0.147583 (0.713466), N = 106 moving right - --- 0.349828 (0.715956), N = 85 moving right - --- 0.472275 (0.706796), N = 69 moving right - - -- best stat: 0.715956, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 0 3 2 14 - - - -- linear combo weights (showing up to 5) - - 0.3834 -0.3078 4.2381 -0.2140 0.1320 - - - -- cutpoint (score) - --- -0.531339 (0.663107), N = 183 moving right - --- -0.276934 (0.703229), N = 121 moving right - --- -0.156743 (0.661165), N = 94 moving right - --- 0.0218534 (0.632651), N = 69 moving right - --- 0.333385 (0.588054), N = 38 moving right - - -- best stat: 0.703229, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 14 0 8 9 - - - -- linear combo weights (showing up to 5) - - -0.5169 -0.3740 -0.0962 2.5563 -0.5484 - - - -- cutpoint (score) - --- -2.4447 (0.498966), N = 270 moving right - --- -2.06107 (0.521106), N = 261 moving right - --- -1.89425 (0.537759), N = 244 moving right - --- -1.87114 (0.541157), N = 243 moving right - --- -0.00756827 (0.670473), N = 53 moving right - - -- best stat: 0.670473, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 5.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8188e-01 1.8196e-02 - 7.7000e+01 9.7826e-01 2.1886e-02 - 1.3100e+02 9.7464e-01 2.5589e-02 - 1.4000e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 115 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 9 1 0 11 - - - -- linear combo weights (showing up to 5) - - -0.5095 0.4480 0.4669 0.0472 1.3099 - - - -- cutpoint (score) - --- -1.58631 (0.564593), N = 238 moving right - --- -1.30992 (0.601689), N = 219 moving right - --- -1.22838 (0.629784), N = 206 moving right - --- -1.05842 (0.666446), N = 182 moving right - --- 1.0185 (0.718674), N = 63 moving right - - -- best stat: 0.718674, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 11 9 15 6 - - - -- linear combo weights (showing up to 5) - - 12.6239 1.1561 0.5354 -0.0199 1.7727 - - - -- cutpoint (score) - --- -1.24956 (0.541245), N = 252 moving right - --- -0.715092 (0.671112), N = 184 moving right - --- 0.715051 (0.755336), N = 82 moving right - --- 1.75222 (0.698815), N = 43 moving right - --- 3.3687 (0.626729), N = 23 moving right - - -- best stat: 0.755336, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 11 1 13 0 - - - -- linear combo weights (showing up to 5) - - 5.5383 1.2687 0.4270 0.6315 0.1195 - - - -- cutpoint (score) - --- -1.29614 (0.607696), N = 218 moving right - --- -1.10014 (0.631415), N = 204 moving right - --- -0.0660887 (0.77311), N = 119 moving right - --- 0.515683 (0.741134), N = 90 moving right - --- 1.25268 (0.741959), N = 61 moving right - - -- best stat: 0.77311, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 116 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 14 5 6 7 - - - -- linear combo weights (showing up to 5) - - -0.2249 0.4326 0.7262 1.6719 5.5451 - - - -- cutpoint (score) - --- -0.319289 (0.574713), N = 219 moving right - --- 0.0614955 (0.661286), N = 158 moving right - --- 0.348988 (0.677744), N = 120 moving right - --- 0.550438 (0.676619), N = 88 moving right - --- 2.42958 (0.621384), N = 25 moving right - - -- best stat: 0.677744, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 7 4 12 1 - - - -- linear combo weights (showing up to 5) - - -0.5595 5.1762 0.9258 0.0850 0.4840 - - - -- cutpoint (score) - --- -0.912407 (0.519537), N = 260 moving right - --- -0.0650527 (0.658957), N = 185 moving right - --- 0.196342 (0.700951), N = 159 moving right - --- 1.427 (0.674212), N = 60 moving right - --- 1.64585 (0.625074), N = 39 moving right - - -- best stat: 0.700951, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 16 15 4 3 - - - -- linear combo weights (showing up to 5) - - 0.7886 0.2234 -0.1147 1.0623 4.1910 - - - -- cutpoint (score) - --- -0.735197 (0.546967), N = 251 moving right - --- -0.575535 (0.580969), N = 237 moving right - --- 0.372981 (0.69582), N = 152 moving right - --- 0.662947 (0.744997), N = 124 moving right - --- 2.07736 (0.670916), N = 42 moving right - - -- best stat: 0.744997, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8188e-01 1.8208e-02 - 1.1000e+02 9.7826e-01 2.1898e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 117 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 1 16 15 4 - - - -- linear combo weights (showing up to 5) - - 0.6701 0.3570 0.6424 -0.1268 0.9312 - - - -- cutpoint (score) - --- -1.00892 (0.548109), N = 244 moving right - --- -0.448671 (0.637637), N = 192 moving right - --- -0.443266 (0.642627), N = 189 moving right - --- 1.09858 (0.696979), N = 71 moving right - --- 1.99876 (0.628396), N = 29 moving right - - -- best stat: 0.696979, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 3 1 11 14 - - - -- linear combo weights (showing up to 5) - - 0.4967 10.7092 0.3051 0.7162 0.0387 - - - -- cutpoint (score) - --- -0.334025 (0.702103), N = 130 moving right - --- -0.0870324 (0.728261), N = 105 moving right - --- 0.400139 (0.713963), N = 67 moving right - --- 0.742459 (0.682994), N = 54 moving right - --- 2.3439 (0.60904), N = 18 moving right - - -- best stat: 0.728261, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 2 9 5 3 - - - -- linear combo weights (showing up to 5) - - 0.5185 -0.7086 0.7778 0.9137 12.1001 - - - -- cutpoint (score) - --- -0.552061 (0.669322), N = 175 moving right - --- -0.454349 (0.669143), N = 170 moving right - --- -0.371897 (0.703066), N = 152 moving right - --- 0.293974 (0.720004), N = 81 moving right - --- 12.5479 (0.531372), N = 5 moving right - - -- best stat: 0.720004, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.8600e+02 9.7464e-01 2.5602e-02 - 1.9100e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 118 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 16 0 8 7 - - - -- linear combo weights (showing up to 5) - - -0.2128 0.3217 -0.3824 1.6196 4.2242 - - - -- cutpoint (score) - --- -1.5303 (0.563569), N = 236 moving right - --- -1.44495 (0.594664), N = 219 moving right - --- -0.958738 (0.747602), N = 132 moving right - --- -0.253207 (0.732734), N = 86 moving right - --- -0.175496 (0.730096), N = 81 moving right - - -- best stat: 0.747602, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 14 0 15 10 - - - -- linear combo weights (showing up to 5) - - 0.0812 0.3891 0.0507 -0.3171 -0.8217 - - - -- cutpoint (score) - --- -0.733658 (0.611611), N = 205 moving right - --- -0.623561 (0.597742), N = 198 moving right - --- 0.0594178 (0.66227), N = 119 moving right - --- 0.440908 (0.667406), N = 86 moving right - --- 0.903826 (0.635392), N = 44 moving right - - -- best stat: 0.667406, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 6 2 9 4 - - - -- linear combo weights (showing up to 5) - - 6.3706 2.2308 -0.4320 0.4053 0.8843 - - - -- cutpoint (score) - --- -0.775945 (0.510292), N = 271 moving right - --- -0.627489 (0.583673), N = 233 moving right - --- -0.482486 (0.638849), N = 206 moving right - --- -0.468676 (0.640308), N = 201 moving right - --- 6.86391 (0.536211), N = 7 moving right - - -- best stat: 0.640308, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8551e-01 1.4546e-02 - 1.7900e+02 9.8188e-01 1.8222e-02 - 1.9100e+02 9.7101e-01 2.9292e-02 - 2.1600e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 119 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 13 1 9 12 - - - -- linear combo weights (showing up to 5) - - 1.8858 0.3008 0.7291 -0.6122 0.2428 - - - -- cutpoint (score) - --- -1.66011 (0.545217), N = 252 moving right - --- -1.18664 (0.624521), N = 208 moving right - --- -0.916923 (0.679692), N = 166 moving right - --- 0.339487 (0.768492), N = 69 moving right - --- 0.839006 (0.693566), N = 50 moving right - - -- best stat: 0.768492, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 17 5 4 7 - - - -- linear combo weights (showing up to 5) - - 0.4332 0.3674 1.1271 -0.0184 12.9396 - - - -- cutpoint (score) - --- 1.36168 (0.691562), N = 122 moving right - --- 1.50413 (0.713887), N = 105 moving right - --- 2.01522 (0.69459), N = 62 moving right - --- 3.46256 (0.625958), N = 22 moving right - --- 14.4663 (0.570635), N = 12 moving right - - -- best stat: 0.713887, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 11 5 13 1 - - - -- linear combo weights (showing up to 5) - - -0.3726 0.9522 1.3692 0.4114 0.8428 - - - -- cutpoint (score) - --- -1.53115 (0.569437), N = 242 moving right - --- -0.771751 (0.670522), N = 183 moving right - --- -0.545802 (0.692847), N = 155 moving right - --- 0.145933 (0.744816), N = 111 moving right - --- 2.57335 (0.58586), N = 16 moving right - - -- best stat: 0.744816, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 5.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8188e-01 1.8208e-02 - 1.8600e+02 9.7101e-01 2.9279e-02 - 1.9100e+02 9.6739e-01 3.3010e-02 - - ------------- Growing tree 120 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 3 16 6 7 - - - -- linear combo weights (showing up to 5) - - 0.4553 5.9336 0.4009 0.0321 2.5580 - - - -- cutpoint (score) - --- -0.543362 (0.539442), N = 240 moving right - --- -0.501512 (0.563284), N = 226 moving right - --- -0.170898 (0.641078), N = 158 moving right - --- 0.0718255 (0.670874), N = 97 moving right - --- 0.0725243 (0.665926), N = 96 moving right - - -- best stat: 0.670874, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 17 12 4 8 - - - -- linear combo weights (showing up to 5) - - -0.0233 0.2450 0.1703 0.2783 1.3595 - - - -- cutpoint (score) - --- -0.157449 (0.59826), N = 218 moving right - --- 0.301616 (0.669113), N = 159 moving right - --- 0.687177 (0.750199), N = 106 moving right - --- 0.877822 (0.732397), N = 91 moving right - --- 1.13295 (0.668736), N = 64 moving right - - -- best stat: 0.750199, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 8 0 16 10 - - - -- linear combo weights (showing up to 5) - - -0.1715 1.3228 0.0372 0.2981 -0.4428 - - - -- cutpoint (score) - --- -1.53614 (0.491843), N = 258 moving right - --- -1.36467 (0.504739), N = 252 moving right - --- -0.879622 (0.620088), N = 192 moving right - --- -0.656322 (0.678822), N = 154 moving right - --- 0.67756 (0.712036), N = 53 moving right - - -- best stat: 0.712036, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.3100e+02 9.9275e-01 7.2596e-03 - 1.8600e+02 9.8913e-01 1.0909e-02 - 1.9800e+02 9.8188e-01 1.8235e-02 - 2.1600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 121 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 11 5 0 6 - - - -- linear combo weights (showing up to 5) - - 0.3718 1.0311 0.4293 -0.0570 -0.0653 - - - -- cutpoint (score) - --- 0.0672303 (0.569554), N = 248 moving right - --- 0.805439 (0.697907), N = 158 moving right - --- 0.918581 (0.703895), N = 146 moving right - --- 2.31771 (0.650271), N = 48 moving right - --- 2.56976 (0.630271), N = 37 moving right - - -- best stat: 0.703895, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 14 17 10 4 - - - -- linear combo weights (showing up to 5) - - -0.0556 0.1977 0.5222 -0.6836 -0.0115 - - - -- cutpoint (score) - --- -0.0311255 (0.510504), N = 266 moving right - --- 1.39672 (0.668876), N = 157 moving right - --- 2.26572 (0.655349), N = 66 moving right - --- 3.20686 (0.582733), N = 15 moving right - --- 3.2798 (0.574632), N = 14 moving right - - -- best stat: 0.668876, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 8 9 10 4 - - - -- linear combo weights (showing up to 5) - - -0.0507 1.8863 -0.3039 -0.5209 0.0483 - - - -- cutpoint (score) - --- -1.51332 (0.540659), N = 243 moving right - --- -1.12798 (0.612888), N = 205 moving right - --- -0.724613 (0.692384), N = 163 moving right - --- 1.13191 (0.653411), N = 41 moving right - --- 1.71505 (0.632849), N = 32 moving right - - -- best stat: 0.692384, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.9100e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 122 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 13 15 12 4 - - - -- linear combo weights (showing up to 5) - - 0.5344 0.5855 0.1194 0.0334 0.8695 - - - -- cutpoint (score) - --- -0.471922 (0.558981), N = 244 moving right - --- -0.210709 (0.598084), N = 224 moving right - --- -0.118552 (0.608319), N = 214 moving right - --- 0.831966 (0.677311), N = 106 moving right - --- 1.44002 (0.60125), N = 46 moving right - - -- best stat: 0.677311, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 6 8 12 0 - - - -- linear combo weights (showing up to 5) - - -0.0326 0.8728 2.5519 -0.0987 -0.0631 - - - -- cutpoint (score) - --- -1.41348 (0.626338), N = 203 moving right - --- -1.4004 (0.631895), N = 201 moving right - --- -1.27462 (0.675472), N = 170 moving right - --- -1.17719 (0.716066), N = 149 moving right - --- 2.1939 (0.639801), N = 31 moving right - - -- best stat: 0.716066, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 5 12 0 3 - - - -- linear combo weights (showing up to 5) - - 0.7439 0.7910 0.2518 -0.0289 8.5138 - - - -- cutpoint (score) - --- -0.0662412 (0.6093), N = 158 moving right - --- -0.018638 (0.617615), N = 143 moving right - --- -0.0108478 (0.627605), N = 137 moving right - --- 0.669915 (0.640292), N = 64 moving right - --- 0.725903 (0.64591), N = 43 moving right - - -- best stat: 0.64591, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 123 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 2 12 15 11 - - - -- linear combo weights (showing up to 5) - - 0.7186 0.6852 -0.0118 -0.0457 0.9867 - - - -- cutpoint (score) - --- 1.54423 (0.577162), N = 239 moving right - --- 1.86163 (0.608561), N = 224 moving right - --- 2.22638 (0.661688), N = 186 moving right - --- 2.24387 (0.669584), N = 183 moving right - --- 4.01615 (0.610601), N = 32 moving right - - -- best stat: 0.669584, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 8 15 0 10 - - - -- linear combo weights (showing up to 5) - - -0.1982 1.7415 -0.1500 -0.3958 -0.7998 - - - -- cutpoint (score) - --- -2.20455 (0.525095), N = 251 moving right - --- -1.43877 (0.632166), N = 190 moving right - --- -1.14226 (0.665708), N = 171 moving right - --- -0.963588 (0.695128), N = 154 moving right - --- -0.947049 (0.686049), N = 152 moving right - - -- best stat: 0.695128, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 8 16 14 9 - - - -- linear combo weights (showing up to 5) - - 0.5595 1.7172 0.2482 0.0856 -0.4108 - - - -- cutpoint (score) - --- -1.14121 (0.636451), N = 190 moving right - --- -1.12871 (0.64049), N = 186 moving right - --- -0.838161 (0.71755), N = 137 moving right - --- -0.624923 (0.723263), N = 123 moving right - --- 0.0849323 (0.692965), N = 78 moving right - - -- best stat: 0.723263, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 124 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 3 8 15 7 - - - -- linear combo weights (showing up to 5) - - 0.3456 8.5614 1.7756 0.0315 0.9153 - - - -- cutpoint (score) - --- -0.265955 (0.58281), N = 238 moving right - --- 0.00243713 (0.635649), N = 212 moving right - --- 0.428281 (0.717766), N = 153 moving right - --- 1.01964 (0.779051), N = 92 moving right - --- 1.81079 (0.690957), N = 60 moving right - - -- best stat: 0.779051, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 4 7 6 2 - - - -- linear combo weights (showing up to 5) - - 0.4412 0.7462 3.6007 0.4215 -0.5366 - - - -- cutpoint (score) - --- -0.0684662 (0.704275), N = 121 moving right - --- 0.115744 (0.710533), N = 104 moving right - --- 0.309305 (0.708303), N = 83 moving right - --- 0.438275 (0.697237), N = 72 moving right - --- 3.92611 (0.53571), N = 8 moving right - - -- best stat: 0.710533, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 12 16 17 5 - - - -- linear combo weights (showing up to 5) - - 9.0353 0.1181 0.4934 0.3146 0.8595 - - - -- cutpoint (score) - --- 0.14229 (0.526679), N = 259 moving right - --- 0.378938 (0.566374), N = 239 moving right - --- 1.34468 (0.677227), N = 108 moving right - --- 1.35957 (0.669561), N = 107 moving right - --- 1.69043 (0.683442), N = 72 moving right - - -- best stat: 0.683442, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 125 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 4 6 11 12 - - - -- linear combo weights (showing up to 5) - - 7.7158 0.3921 0.3228 0.9790 0.0253 - - - -- cutpoint (score) - --- -0.349967 (0.667734), N = 189 moving right - --- -0.302043 (0.686183), N = 181 moving right - --- 0.0963339 (0.736861), N = 133 moving right - --- 0.232678 (0.740633), N = 113 moving right - --- 9.08242 (0.531781), N = 7 moving right - - -- best stat: 0.740633, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 9 7 1 8 - - - -- linear combo weights (showing up to 5) - - 0.2963 -0.2921 6.9406 0.5535 1.7071 - - - -- cutpoint (score) - --- -1.80144 (0.512598), N = 271 moving right - --- -0.176275 (0.749378), N = 128 moving right - --- 1.77612 (0.662087), N = 42 moving right - --- 2.273 (0.658825), N = 37 moving right - --- 3.35969 (0.639927), N = 28 moving right - - -- best stat: 0.749378, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 16 9 5 8 - - - -- linear combo weights (showing up to 5) - - 0.0799 0.6046 -0.4146 1.0150 1.9719 - - - -- cutpoint (score) - --- -1.47216 (0.557161), N = 245 moving right - --- -1.37586 (0.562543), N = 237 moving right - --- -0.912884 (0.664227), N = 184 moving right - --- -0.39039 (0.718881), N = 137 moving right - --- 2.95562 (0.630142), N = 27 moving right - - -- best stat: 0.718881, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 6.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.4000e+02 9.5652e-01 4.4134e-02 - - ------------- Growing tree 126 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 11 6 4 16 - - - -- linear combo weights (showing up to 5) - - 0.0680 1.0043 0.7001 0.3741 0.1709 - - - -- cutpoint (score) - --- -0.497467 (0.632531), N = 200 moving right - --- -0.477108 (0.634511), N = 194 moving right - --- -0.168673 (0.692222), N = 152 moving right - --- 0.108753 (0.69596), N = 115 moving right - --- 0.330033 (0.689997), N = 88 moving right - - -- best stat: 0.69596, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 11 14 7 5 - - - -- linear combo weights (showing up to 5) - - 2.4145 0.3577 -0.1120 1.5842 0.4261 - - - -- cutpoint (score) - --- -1.8208 (0.515529), N = 264 moving right - --- -1.35687 (0.663055), N = 185 moving right - --- -1.19581 (0.708307), N = 159 moving right - --- -0.731719 (0.74426), N = 105 moving right - --- 2.35546 (0.649284), N = 27 moving right - - -- best stat: 0.74426, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 3 2 16 5 - - - -- linear combo weights (showing up to 5) - - -0.4872 3.9703 -1.7476 -0.0204 1.4765 - - - -- cutpoint (score) - --- -1.94509 (0.59778), N = 213 moving right - --- -1.8931 (0.611729), N = 204 moving right - --- -1.4236 (0.7017), N = 128 moving right - --- -0.5506 (0.686593), N = 86 moving right - --- 2.65863 (0.583496), N = 16 moving right - - -- best stat: 0.7017, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 127 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 1 5 16 4 - - - -- linear combo weights (showing up to 5) - - 0.6933 0.3006 0.5320 0.5892 0.7209 - - - -- cutpoint (score) - --- -0.959678 (0.556289), N = 245 moving right - --- -0.401968 (0.651175), N = 180 moving right - --- 0.611144 (0.727544), N = 106 moving right - --- 1.02339 (0.716167), N = 75 moving right - --- 2.50941 (0.581492), N = 20 moving right - - -- best stat: 0.727544, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 15 13 1 10 - - - -- linear combo weights (showing up to 5) - - 1.9523 0.0127 0.5381 0.4995 -0.6148 - - - -- cutpoint (score) - --- -0.310398 (0.650331), N = 156 moving right - --- -0.150416 (0.648768), N = 138 moving right - --- -0.0465796 (0.665988), N = 119 moving right - --- 0.28454 (0.705633), N = 90 moving right - --- 2.53814 (0.545426), N = 10 moving right - - -- best stat: 0.705633, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 12 8 0 11 - - - -- linear combo weights (showing up to 5) - - -0.0046 -0.0174 1.3673 -0.2030 0.5304 - - - -- cutpoint (score) - --- -1.32784 (0.585792), N = 233 moving right - --- -1.28197 (0.600173), N = 226 moving right - --- -1.19784 (0.632041), N = 213 moving right - --- -0.157548 (0.728017), N = 88 moving right - --- 1.90964 (0.591923), N = 24 moving right - - -- best stat: 0.728017, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 4.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.4000e+02 9.8913e-01 1.0896e-02 - 1.9100e+02 9.7826e-01 2.1885e-02 - 1.9800e+02 9.6377e-01 3.6700e-02 - 2.1600e+02 9.5652e-01 4.4219e-02 - - ------------- Growing tree 128 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 5 13 14 17 - - - -- linear combo weights (showing up to 5) - - 0.5545 1.0979 0.5200 0.3733 0.5607 - - - -- cutpoint (score) - --- 0.641153 (0.584088), N = 237 moving right - --- 0.973349 (0.60754), N = 226 moving right - --- 1.28161 (0.648481), N = 198 moving right - --- 2.49007 (0.739626), N = 94 moving right - --- 2.51498 (0.743883), N = 92 moving right - - -- best stat: 0.743883, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 2 14 3 8 - - - -- linear combo weights (showing up to 5) - - 0.4079 -0.2222 -0.3394 6.5509 1.1410 - - - -- cutpoint (score) - --- -0.944443 (0.609439), N = 223 moving right - --- -0.818062 (0.636956), N = 201 moving right - --- -0.582794 (0.682807), N = 163 moving right - --- -0.417559 (0.720775), N = 144 moving right - --- 1.12822 (0.663113), N = 42 moving right - - -- best stat: 0.720775, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 5 8 3 14 - - - -- linear combo weights (showing up to 5) - - -0.0597 0.5853 1.0442 6.3966 -0.2621 - - - -- cutpoint (score) - --- -0.755913 (0.525773), N = 260 moving right - --- -0.572172 (0.561306), N = 241 moving right - --- -0.400801 (0.673583), N = 183 moving right - --- 0.747922 (0.723173), N = 68 moving right - --- 1.54615 (0.659929), N = 40 moving right - - -- best stat: 0.723173, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 4.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8551e-01 1.4532e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 129 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 13 15 11 9 - - - -- linear combo weights (showing up to 5) - - 0.8645 -0.1336 -0.0987 0.9438 0.6920 - - - -- cutpoint (score) - --- -0.603109 (0.641185), N = 190 moving right - --- -0.396232 (0.694265), N = 153 moving right - --- -0.380851 (0.695673), N = 151 moving right - --- 0.21151 (0.723102), N = 108 moving right - --- 3.3948 (0.512722), N = 6 moving right - - -- best stat: 0.723102, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 6 9 14 16 - - - -- linear combo weights (showing up to 5) - - 0.0929 0.1062 0.6769 0.3159 0.4202 - - - -- cutpoint (score) - --- -0.512428 (0.630264), N = 196 moving right - --- 0.269401 (0.673809), N = 67 moving right - --- 0.451301 (0.670876), N = 53 moving right - --- 0.513974 (0.656746), N = 50 moving right - --- 1.14337 (0.587505), N = 27 moving right - - -- best stat: 0.673809, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 15 0 6 8 - - - -- linear combo weights (showing up to 5) - - 0.5818 -0.1710 0.2035 -0.5457 1.9260 - - - -- cutpoint (score) - --- -0.958257 (0.624792), N = 193 moving right - --- -0.858603 (0.650443), N = 182 moving right - --- -0.800943 (0.670692), N = 173 moving right - --- -0.625469 (0.715968), N = 144 moving right - --- 3.88246 (0.594085), N = 15 moving right - - -- best stat: 0.715968, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 130 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 10 0 1 17 - - - -- linear combo weights (showing up to 5) - - 7.7587 -0.5320 -0.0339 0.4654 0.4405 - - - -- cutpoint (score) - --- -0.14487 (0.516299), N = 264 moving right - --- 0.484195 (0.608982), N = 216 moving right - --- 0.93285 (0.650716), N = 182 moving right - --- 2.68695 (0.614468), N = 39 moving right - --- 3.01745 (0.607108), N = 23 moving right - - -- best stat: 0.650716, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 15 7 12 5 - - - -- linear combo weights (showing up to 5) - - 0.5714 -0.0680 7.9029 0.0514 0.8828 - - - -- cutpoint (score) - --- -0.608549 (0.534847), N = 249 moving right - --- -0.556147 (0.539465), N = 247 moving right - --- 0.138575 (0.661431), N = 162 moving right - --- 0.571333 (0.676605), N = 96 moving right - --- 2.04438 (0.607502), N = 20 moving right - - -- best stat: 0.676605, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 13 6 14 2 - - - -- linear combo weights (showing up to 5) - - 8.4783 0.3934 1.2210 0.1728 -0.3731 - - - -- cutpoint (score) - --- -0.728513 (0.572161), N = 228 moving right - --- -0.343497 (0.654031), N = 138 moving right - --- -0.332822 (0.655866), N = 137 moving right - --- -0.0311832 (0.676763), N = 83 moving right - --- 0.395933 (0.64525), N = 51 moving right - - -- best stat: 0.676763, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 131 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 0 17 11 5 - - - -- linear combo weights (showing up to 5) - - 0.9393 -0.1501 0.3088 1.4752 0.6326 - - - -- cutpoint (score) - --- 0.0252811 (0.644373), N = 198 moving right - --- 0.495991 (0.694301), N = 162 moving right - --- 1.25678 (0.734218), N = 102 moving right - --- 2.97801 (0.643503), N = 35 moving right - --- 3.30909 (0.628933), N = 30 moving right - - -- best stat: 0.734218, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 10 2 13 14 - - - -- linear combo weights (showing up to 5) - - 2.0876 -0.5963 -0.9154 0.0483 -0.0819 - - - -- cutpoint (score) - --- -2.11367 (0.650259), N = 202 moving right - --- -2.08748 (0.661223), N = 197 moving right - --- -1.99698 (0.676497), N = 187 moving right - --- 1.05002 (0.669554), N = 39 moving right - --- 3.83948 (0.578155), N = 14 moving right - - -- best stat: 0.676497, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 4 8 14 17 - - - -- linear combo weights (showing up to 5) - - 0.3254 -0.0456 2.1194 -0.0275 0.4626 - - - -- cutpoint (score) - --- -0.432767 (0.559648), N = 246 moving right - --- 1.01828 (0.73658), N = 106 moving right - --- 3.1361 (0.671067), N = 37 moving right - --- 4.70904 (0.621617), N = 22 moving right - --- 8.07988 (0.556435), N = 11 moving right - - -- best stat: 0.73658, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.3100e+02 9.7101e-01 2.9238e-02 - 1.4000e+02 9.6739e-01 3.2970e-02 - 1.8600e+02 9.6377e-01 3.6715e-02 - - ------------- Growing tree 132 -------------- - -- N obs inbag: 276 -- N row inbag: 164 -- max nodes: 199 -- max leaves: 100 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 4 5 1 3 - - - -- linear combo weights (showing up to 5) - - 0.4874 0.2963 0.7984 0.2708 4.9206 - - - -- cutpoint (score) - --- 0.119703 (0.67639), N = 158 moving right - --- 0.325929 (0.735347), N = 125 moving right - --- 0.433739 (0.746045), N = 117 moving right - --- 0.743833 (0.723459), N = 78 moving right - --- 1.88082 (0.611307), N = 26 moving right - - -- best stat: 0.746045, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 17 9 0 12 - - - -- linear combo weights (showing up to 5) - - 0.3947 0.6866 0.4687 0.0335 0.0431 - - - -- cutpoint (score) - --- 0.993734 (0.560854), N = 247 moving right - --- 2.34975 (0.723574), N = 105 moving right - --- 2.41112 (0.729586), N = 101 moving right - --- 2.70311 (0.700439), N = 74 moving right - --- 4.3626 (0.50144), N = 6 moving right - - -- best stat: 0.729586, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 3 15 9 0 - - - -- linear combo weights (showing up to 5) - - 0.1808 5.2100 -0.3751 0.5322 0.0219 - - - -- cutpoint (score) - --- -0.334436 (0.596745), N = 212 moving right - --- -0.103304 (0.665143), N = 149 moving right - --- 0.0355373 (0.692415), N = 113 moving right - --- 2.58052 (0.601522), N = 23 moving right - --- 5.27407 (0.568169), N = 14 moving right - - -- best stat: 0.692415, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7464e-01 2.5588e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 133 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 5 3 14 4 - - - -- linear combo weights (showing up to 5) - - 1.3010 0.7840 10.1433 -0.1512 0.3127 - - - -- cutpoint (score) - --- -0.464924 (0.663674), N = 197 moving right - --- -0.294436 (0.721171), N = 165 moving right - --- -0.270516 (0.724164), N = 159 moving right - --- 0.0180641 (0.747439), N = 135 moving right - --- 1.27474 (0.652609), N = 39 moving right - - -- best stat: 0.747439, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 13 0 5 6 - - - -- linear combo weights (showing up to 5) - - 0.4829 0.3994 -0.4043 1.6569 0.6356 - - - -- cutpoint (score) - --- -0.0444966 (0.671105), N = 179 moving right - --- 0.034085 (0.675644), N = 171 moving right - --- 0.821927 (0.653673), N = 99 moving right - --- 1.16442 (0.66022), N = 85 moving right - --- 2.38993 (0.52902), N = 10 moving right - - -- best stat: 0.675644, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 6 15 0 11 - - - -- linear combo weights (showing up to 5) - - 11.2432 0.1087 0.0050 -0.3310 0.7110 - - - -- cutpoint (score) - --- -0.889448 (0.556332), N = 250 moving right - --- -0.851871 (0.56304), N = 244 moving right - --- -0.67221 (0.638631), N = 208 moving right - --- -0.369837 (0.682171), N = 144 moving right - --- -0.227953 (0.714705), N = 123 moving right - - -- best stat: 0.714705, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 134 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 6 12 2 16 - - - -- linear combo weights (showing up to 5) - - 0.9431 1.5113 0.0612 -0.3811 0.3189 - - - -- cutpoint (score) - --- -0.761252 (0.504088), N = 265 moving right - --- -0.685086 (0.523544), N = 248 moving right - --- -0.470823 (0.57233), N = 216 moving right - --- 0.284933 (0.658979), N = 136 moving right - --- 0.384528 (0.665374), N = 109 moving right - - -- best stat: 0.665374, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 9 16 11 8 - - - -- linear combo weights (showing up to 5) - - -0.0161 -0.3376 0.1778 0.8932 1.6264 - - - -- cutpoint (score) - --- -1.60532 (0.544404), N = 245 moving right - --- -1.4642 (0.580548), N = 226 moving right - --- -1.10654 (0.665772), N = 168 moving right - --- -0.822936 (0.698205), N = 134 moving right - --- 3.58406 (0.607552), N = 19 moving right - - -- best stat: 0.698205, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 17 14 6 7 - - - -- linear combo weights (showing up to 5) - - -0.0920 0.6054 0.3936 1.6010 6.2963 - - - -- cutpoint (score) - --- 1.05194 (0.585895), N = 234 moving right - --- 1.9429 (0.69049), N = 146 moving right - --- 2.0335 (0.710281), N = 133 moving right - --- 2.19766 (0.714768), N = 105 moving right - --- 8.72933 (0.574741), N = 13 moving right - - -- best stat: 0.714768, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 135 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 245 -- max leaves: 123 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 12 6 1 5 - - - -- linear combo weights (showing up to 5) - - -0.7939 0.0765 -0.3670 0.4801 1.2873 - - - -- cutpoint (score) - --- -1.58116 (0.53061), N = 261 moving right - --- 0.309058 (0.713295), N = 139 moving right - --- 0.352048 (0.716343), N = 136 moving right - --- 0.576569 (0.721486), N = 124 moving right - --- 1.79415 (0.642629), N = 44 moving right - - -- best stat: 0.721486, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 10 8 1 15 - - - -- linear combo weights (showing up to 5) - - -0.4129 -0.7514 1.2820 0.4344 -0.2113 - - - -- cutpoint (score) - --- -2.37183 (0.530267), N = 262 moving right - --- -1.60473 (0.6268), N = 215 moving right - --- -0.917435 (0.735486), N = 164 moving right - --- 0.227695 (0.763771), N = 88 moving right - --- 4.39632 (0.54901), N = 11 moving right - - -- best stat: 0.763771, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 11 3 12 2 - - - -- linear combo weights (showing up to 5) - - 0.3297 0.7167 5.1626 0.1581 0.1191 - - - -- cutpoint (score) - --- 0.624496 (0.6516), N = 202 moving right - --- 1.05314 (0.717867), N = 140 moving right - --- 1.27011 (0.712057), N = 115 moving right - --- 1.44745 (0.712971), N = 82 moving right - --- 2.00614 (0.656876), N = 49 moving right - - -- best stat: 0.717867, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.7826e-01 2.1886e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 136 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 5 10 8 13 - - - -- linear combo weights (showing up to 5) - - 0.5255 0.9252 -0.6249 1.8622 0.0083 - - - -- cutpoint (score) - --- -1.33418 (0.637985), N = 207 moving right - --- -0.483347 (0.740205), N = 142 moving right - --- -0.461427 (0.746618), N = 137 moving right - --- 0.44208 (0.75522), N = 80 moving right - --- 0.549255 (0.752222), N = 76 moving right - - -- best stat: 0.75522, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 1 9 5 14 - - - -- linear combo weights (showing up to 5) - - -0.3191 0.5270 0.3802 1.1671 0.5406 - - - -- cutpoint (score) - --- -0.736772 (0.586438), N = 234 moving right - --- -0.330258 (0.66817), N = 187 moving right - --- -0.188856 (0.687147), N = 170 moving right - --- -0.153012 (0.687081), N = 168 moving right - --- 0.544696 (0.690999), N = 88 moving right - - -- best stat: 0.690999, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 9 16 17 14 - - - -- linear combo weights (showing up to 5) - - 0.6063 0.4134 0.2832 0.6277 0.5579 - - - -- cutpoint (score) - --- 0.778863 (0.55969), N = 243 moving right - --- 1.591 (0.671212), N = 187 moving right - --- 2.40737 (0.694523), N = 103 moving right - --- 2.94709 (0.656481), N = 35 moving right - --- 3.93773 (0.554546), N = 11 moving right - - -- best stat: 0.694523, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7101e-01 2.9265e-02 - 1.7900e+02 9.6739e-01 3.2996e-02 - - ------------- Growing tree 137 -------------- - -- N obs inbag: 276 -- N row inbag: 163 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 6 7 13 16 - - - -- linear combo weights (showing up to 5) - - 7.7346 0.5747 10.9807 0.4357 0.2903 - - - -- cutpoint (score) - --- -0.369391 (0.632466), N = 196 moving right - --- 0.0185141 (0.691687), N = 131 moving right - --- 0.182383 (0.688146), N = 97 moving right - --- 0.715103 (0.598631), N = 40 moving right - --- 0.989154 (0.5826), N = 21 moving right - - -- best stat: 0.691687, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 11 15 0 17 - - - -- linear combo weights (showing up to 5) - - -0.0943 0.8647 0.0422 -0.1620 0.4166 - - - -- cutpoint (score) - --- 0.114016 (0.529671), N = 260 moving right - --- 1.11463 (0.692166), N = 115 moving right - --- 1.47278 (0.67946), N = 78 moving right - --- 1.92854 (0.623684), N = 33 moving right - --- 2.18361 (0.613036), N = 28 moving right - - -- best stat: 0.692166, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 11 13 14 15 - - - -- linear combo weights (showing up to 5) - - 2.0482 0.4137 -0.0500 -0.0952 -0.0717 - - - -- cutpoint (score) - --- -1.49291 (0.55044), N = 251 moving right - --- -0.974642 (0.707671), N = 155 moving right - --- -0.25143 (0.732939), N = 99 moving right - --- 5.20412 (0.55379), N = 9 moving right - --- 5.40408 (0.545344), N = 8 moving right - - -- best stat: 0.732939, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.7826e-01 2.1886e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9307e-02 - - ------------- Growing tree 138 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 11 6 17 4 - - - -- linear combo weights (showing up to 5) - - 1.2139 0.5140 0.7346 0.3357 0.1820 - - - -- cutpoint (score) - --- -0.111346 (0.602233), N = 230 moving right - --- 0.00967467 (0.639518), N = 214 moving right - --- 0.320617 (0.677264), N = 181 moving right - --- 0.649296 (0.729944), N = 148 moving right - --- 3.14505 (0.653189), N = 38 moving right - - -- best stat: 0.729944, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 14 1 10 4 - - - -- linear combo weights (showing up to 5) - - 0.4049 0.2753 0.1655 -0.7982 0.9370 - - - -- cutpoint (score) - --- 0.247851 (0.714589), N = 159 moving right - --- 0.560469 (0.712064), N = 135 moving right - --- 0.682672 (0.721325), N = 128 moving right - --- 0.856618 (0.718197), N = 105 moving right - --- 3.67223 (0.538648), N = 7 moving right - - -- best stat: 0.721325, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 4 5 13 0 - - - -- linear combo weights (showing up to 5) - - 4.3362 0.9139 0.8398 0.3243 0.1125 - - - -- cutpoint (score) - --- 0.0940677 (0.634226), N = 212 moving right - --- 0.821388 (0.659223), N = 142 moving right - --- 0.880684 (0.67127), N = 127 moving right - --- 1.08164 (0.673395), N = 108 moving right - --- 1.84984 (0.626589), N = 36 moving right - - -- best stat: 0.673395, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.4000e+02 9.7826e-01 2.1885e-02 - 1.7900e+02 9.7101e-01 2.9293e-02 - 1.8600e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 139 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 4 14 8 5 - - - -- linear combo weights (showing up to 5) - - 5.0031 0.2057 0.1986 1.4628 0.4828 - - - -- cutpoint (score) - --- -0.0776574 (0.737948), N = 105 moving right - --- 0.322558 (0.739607), N = 85 moving right - --- 0.81803 (0.693275), N = 56 moving right - --- 1.90651 (0.636856), N = 29 moving right - --- 1.97425 (0.640306), N = 27 moving right - - -- best stat: 0.739607, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 3 16 10 9 - - - -- linear combo weights (showing up to 5) - - 0.1277 1.6670 0.4836 -0.6016 0.2128 - - - -- cutpoint (score) - --- -0.552604 (0.62), N = 203 moving right - --- 0.0988785 (0.710437), N = 112 moving right - --- 0.363898 (0.730721), N = 82 moving right - --- 0.791861 (0.698013), N = 60 moving right - --- 2.62525 (0.577314), N = 17 moving right - - -- best stat: 0.730721, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 8 7 2 3 - - - -- linear combo weights (showing up to 5) - - 0.3469 1.5106 4.7602 -0.2721 1.5893 - - - -- cutpoint (score) - --- -1.35698 (0.552118), N = 243 moving right - --- -1.11456 (0.657773), N = 181 moving right - --- -0.60186 (0.752773), N = 118 moving right - --- -0.543854 (0.741921), N = 114 moving right - --- -0.193717 (0.716157), N = 90 moving right - - -- best stat: 0.752773, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 140 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 7 6 14 17 - - - -- linear combo weights (showing up to 5) - - -0.3917 19.5433 -0.0753 0.4777 0.5028 - - - -- cutpoint (score) - --- 0.266084 (0.540203), N = 249 moving right - --- 1.30664 (0.700875), N = 154 moving right - --- 1.61244 (0.668226), N = 116 moving right - --- 1.76941 (0.694279), N = 93 moving right - --- 3.20459 (0.621568), N = 20 moving right - - -- best stat: 0.700875, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 1 5 15 9 - - - -- linear combo weights (showing up to 5) - - 1.0752 0.4303 1.0320 -0.1546 0.6945 - - - -- cutpoint (score) - --- -0.668645 (0.548108), N = 244 moving right - --- -0.477919 (0.570303), N = 226 moving right - --- 0.0604799 (0.675429), N = 173 moving right - --- 0.0616071 (0.675686), N = 170 moving right - --- 1.30764 (0.720099), N = 77 moving right - - -- best stat: 0.720099, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 17 16 8 1 - - - -- linear combo weights (showing up to 5) - - -0.3026 0.2700 0.2242 2.7053 0.3106 - - - -- cutpoint (score) - --- -1.27596 (0.546471), N = 250 moving right - --- -0.906398 (0.642476), N = 199 moving right - --- -0.229721 (0.738084), N = 116 moving right - --- -0.182679 (0.742177), N = 113 moving right - --- 0.867806 (0.764091), N = 66 moving right - - -- best stat: 0.764091, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 141 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 0 14 6 12 - - - -- linear combo weights (showing up to 5) - - -0.7395 0.0466 0.1819 0.2913 -0.0873 - - - -- cutpoint (score) - --- -0.857541 (0.523505), N = 254 moving right - --- -0.279457 (0.602478), N = 183 moving right - --- -0.0518763 (0.636665), N = 145 moving right - --- 0.0634659 (0.642099), N = 124 moving right - --- 0.148925 (0.642716), N = 111 moving right - - -- best stat: 0.642716, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 14 2 3 8 - - - -- linear combo weights (showing up to 5) - - 0.0057 -0.2037 -0.5901 9.3532 1.9939 - - - -- cutpoint (score) - --- -1.61141 (0.597127), N = 218 moving right - --- -1.5972 (0.616268), N = 207 moving right - --- -1.17145 (0.745688), N = 128 moving right - --- -0.980231 (0.756864), N = 110 moving right - --- -0.676038 (0.746758), N = 90 moving right - - -- best stat: 0.756864, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 9 12 4 15 - - - -- linear combo weights (showing up to 5) - - 0.6945 0.5757 -0.0343 0.6834 -0.2467 - - - -- cutpoint (score) - --- -0.59564 (0.518833), N = 265 moving right - --- -0.311246 (0.550879), N = 238 moving right - --- 0.632429 (0.682522), N = 108 moving right - --- 1.58312 (0.56471), N = 18 moving right - --- 1.99443 (0.540897), N = 11 moving right - - -- best stat: 0.682522, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8188e-01 1.8208e-02 - 1.3100e+02 9.7826e-01 2.1898e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 142 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 15 17 6 1 - - - -- linear combo weights (showing up to 5) - - 0.4800 -0.2321 0.5254 0.3919 0.4758 - - - -- cutpoint (score) - --- 1.02199 (0.607991), N = 204 moving right - --- 1.13781 (0.6269), N = 190 moving right - --- 2.37596 (0.706508), N = 77 moving right - --- 2.82028 (0.620991), N = 35 moving right - --- 3.36378 (0.502404), N = 7 moving right - - -- best stat: 0.706508, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 9 8 0 17 - - - -- linear combo weights (showing up to 5) - - -0.5711 -0.1820 1.2776 -0.4275 0.5174 - - - -- cutpoint (score) - --- 0.404974 (0.623375), N = 220 moving right - --- 0.850013 (0.674009), N = 177 moving right - --- 0.881518 (0.673051), N = 175 moving right - --- 1.13754 (0.717287), N = 133 moving right - --- 2.84323 (0.652247), N = 45 moving right - - -- best stat: 0.717287, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 3 6 1 4 - - - -- linear combo weights (showing up to 5) - - -0.5718 3.9694 -0.2576 0.3481 0.6058 - - - -- cutpoint (score) - --- -0.0803273 (0.639594), N = 192 moving right - --- 0.387336 (0.695831), N = 133 moving right - --- 0.490166 (0.698969), N = 116 moving right - --- 0.575164 (0.709524), N = 104 moving right - --- 0.901366 (0.697767), N = 86 moving right - - -- best stat: 0.709524, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 143 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 6 4 5 8 - - - -- linear combo weights (showing up to 5) - - -0.3681 -0.0885 0.6280 0.0725 2.1959 - - - -- cutpoint (score) - --- -0.906385 (0.647498), N = 198 moving right - --- -0.58341 (0.687014), N = 167 moving right - --- -0.515795 (0.698632), N = 160 moving right - --- -0.0918144 (0.738771), N = 111 moving right - --- 0.478103 (0.711319), N = 74 moving right - - -- best stat: 0.738771, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 13 0 3 16 - - - -- linear combo weights (showing up to 5) - - 3.0829 0.6716 0.1894 8.4282 0.5676 - - - -- cutpoint (score) - --- -0.117142 (0.719945), N = 131 moving right - --- 0.0324215 (0.720333), N = 120 moving right - --- 0.412878 (0.708521), N = 77 moving right - --- 0.42647 (0.706248), N = 72 moving right - --- 9.40652 (0.59714), N = 16 moving right - - -- best stat: 0.720333, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 13 1 12 14 - - - -- linear combo weights (showing up to 5) - - -0.8015 0.8502 0.4620 0.2093 0.2385 - - - -- cutpoint (score) - --- -1.70736 (0.586202), N = 230 moving right - --- -1.57276 (0.61039), N = 215 moving right - --- -1.45791 (0.656979), N = 191 moving right - --- 0.0678499 (0.659912), N = 50 moving right - --- 0.533881 (0.599685), N = 28 moving right - - -- best stat: 0.659912, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.7826e-01 2.1898e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 144 -------------- - -- N obs inbag: 276 -- N row inbag: 187 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 15 0 17 9 - - - -- linear combo weights (showing up to 5) - - 1.4521 -0.0816 -0.2393 0.6549 0.3671 - - - -- cutpoint (score) - --- 1.42497 (0.623442), N = 209 moving right - --- 1.51723 (0.636152), N = 200 moving right - --- 1.73715 (0.709295), N = 161 moving right - --- 1.86629 (0.700933), N = 146 moving right - --- 1.91326 (0.703266), N = 143 moving right - - -- best stat: 0.709295, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 7 11 5 15 - - - -- linear combo weights (showing up to 5) - - 0.0727 3.5228 0.7564 1.0080 -0.0406 - - - -- cutpoint (score) - --- -0.614488 (0.582064), N = 231 moving right - --- -0.512352 (0.610806), N = 213 moving right - --- -0.0583296 (0.701418), N = 129 moving right - --- 0.150913 (0.722658), N = 116 moving right - --- 2.50149 (0.574935), N = 19 moving right - - -- best stat: 0.722658, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 3 11 8 17 - - - -- linear combo weights (showing up to 5) - - -0.1944 5.9721 0.2801 1.0324 0.4351 - - - -- cutpoint (score) - --- 0.299987 (0.629414), N = 214 moving right - --- 0.966093 (0.725644), N = 124 moving right - --- 1.40193 (0.748619), N = 82 moving right - --- 1.58439 (0.715118), N = 70 moving right - --- 7.07326 (0.559817), N = 11 moving right - - -- best stat: 0.748619, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 5.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 145 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 8 5 2 13 - - - -- linear combo weights (showing up to 5) - - 0.0410 1.8952 1.0200 -0.1221 -0.0517 - - - -- cutpoint (score) - --- -1.04168 (0.662175), N = 189 moving right - --- -0.627642 (0.714696), N = 142 moving right - --- -0.0494973 (0.728814), N = 101 moving right - --- 1.06094 (0.655806), N = 50 moving right - --- 1.6223 (0.624811), N = 36 moving right - - -- best stat: 0.728814, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 3 12 17 4 - - - -- linear combo weights (showing up to 5) - - 0.3715 5.7432 -0.0037 0.4236 0.3929 - - - -- cutpoint (score) - --- 0.844574 (0.553315), N = 254 moving right - --- 1.24011 (0.597955), N = 218 moving right - --- 1.66264 (0.677011), N = 137 moving right - --- 1.66307 (0.649871), N = 129 moving right - --- 1.66393 (0.650117), N = 124 moving right - - -- best stat: 0.677011, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 9 15 12 6 - - - -- linear combo weights (showing up to 5) - - 0.2910 0.3525 -0.1681 0.0005 0.9795 - - - -- cutpoint (score) - --- -0.378902 (0.584744), N = 225 moving right - --- -0.101739 (0.61419), N = 154 moving right - --- 0.191226 (0.628156), N = 90 moving right - --- 0.318768 (0.584366), N = 73 moving right - --- 0.411162 (0.576637), N = 64 moving right - - -- best stat: 0.628156, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 146 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 4 8 6 13 - - - -- linear combo weights (showing up to 5) - - -0.0755 0.3519 2.5371 -0.1876 -0.1726 - - - -- cutpoint (score) - --- -1.55746 (0.518555), N = 267 moving right - --- -1.00861 (0.649366), N = 169 moving right - --- -0.839859 (0.684809), N = 137 moving right - --- -0.713755 (0.699802), N = 122 moving right - --- -0.319845 (0.693804), N = 84 moving right - - -- best stat: 0.699802, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 6 16 8 12 - - - -- linear combo weights (showing up to 5) - - 0.2947 -0.4714 0.5605 2.1373 -0.1295 - - - -- cutpoint (score) - --- -1.36017 (0.650742), N = 174 moving right - --- -0.820271 (0.732448), N = 124 moving right - --- -0.0537307 (0.687424), N = 78 moving right - --- -0.00486889 (0.689002), N = 75 moving right - --- 5.23237 (0.543085), N = 5 moving right - - -- best stat: 0.732448, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 4 5 8 13 - - - -- linear combo weights (showing up to 5) - - 0.6224 -0.0502 -0.2272 2.5420 -0.1170 - - - -- cutpoint (score) - --- 0.21057 (0.573522), N = 234 moving right - --- 0.456133 (0.642783), N = 198 moving right - --- 0.660516 (0.66835), N = 171 moving right - --- 0.799586 (0.663593), N = 160 moving right - --- 1.1108 (0.689949), N = 121 moving right - - -- best stat: 0.689949, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.8600e+02 9.8913e-01 1.0909e-02 - 1.9100e+02 9.8551e-01 1.4572e-02 - 2.1600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 147 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 0 5 9 15 - - - -- linear combo weights (showing up to 5) - - 0.5265 -0.2357 0.9525 0.3918 -0.1891 - - - -- cutpoint (score) - --- 0.697019 (0.555762), N = 243 moving right - --- 1.33542 (0.651015), N = 170 moving right - --- 1.83794 (0.656149), N = 105 moving right - --- 2.47317 (0.627044), N = 52 moving right - --- 3.0716 (0.525334), N = 15 moving right - - -- best stat: 0.656149, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 11 13 7 10 - - - -- linear combo weights (showing up to 5) - - 0.4086 0.9231 0.1524 13.1160 -0.4663 - - - -- cutpoint (score) - --- 1.62273 (0.72747), N = 79 moving right - --- 1.65966 (0.729998), N = 77 moving right - --- 1.89659 (0.746663), N = 67 moving right - --- 3.25037 (0.624635), N = 24 moving right - --- 3.27144 (0.61334), N = 22 moving right - - -- best stat: 0.746663, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 5 12 0 14 - - - -- linear combo weights (showing up to 5) - - 0.2790 1.2396 0.0194 -0.0190 0.4344 - - - -- cutpoint (score) - --- -0.578872 (0.535661), N = 257 moving right - --- 0.289621 (0.637667), N = 117 moving right - --- 0.745603 (0.639622), N = 67 moving right - --- 1.0649 (0.577699), N = 38 moving right - --- 1.50646 (0.550608), N = 17 moving right - - -- best stat: 0.639622, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 148 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 14 12 10 9 - - - -- linear combo weights (showing up to 5) - - 0.0715 0.3673 0.1449 -0.7437 0.3429 - - - -- cutpoint (score) - --- -1.02653 (0.566351), N = 242 moving right - --- -0.583124 (0.592065), N = 202 moving right - --- -0.121444 (0.649503), N = 136 moving right - --- 0.130023 (0.676873), N = 109 moving right - --- 0.422003 (0.665427), N = 83 moving right - - -- best stat: 0.676873, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 12 4 6 0 - - - -- linear combo weights (showing up to 5) - - 0.3844 0.1530 0.8377 1.1958 0.1023 - - - -- cutpoint (score) - --- 0.737544 (0.697518), N = 115 moving right - --- 0.780961 (0.706042), N = 105 moving right - --- 0.954879 (0.663219), N = 83 moving right - --- 0.989308 (0.660643), N = 79 moving right - --- 1.22778 (0.621193), N = 59 moving right - - -- best stat: 0.706042, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 12 5 13 3 - - - -- linear combo weights (showing up to 5) - - 0.5019 0.2287 0.6016 0.4662 7.2500 - - - -- cutpoint (score) - --- -0.320777 (0.659417), N = 195 moving right - --- -0.185228 (0.665978), N = 184 moving right - --- 0.147219 (0.70686), N = 138 moving right - --- 0.482256 (0.703344), N = 93 moving right - --- 7.91558 (0.550856), N = 10 moving right - - -- best stat: 0.70686, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8188e-01 1.8208e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 149 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 13 4 1 12 - - - -- linear combo weights (showing up to 5) - - 1.9223 0.0256 0.8454 0.3060 0.1427 - - - -- cutpoint (score) - --- -1.19607 (0.569068), N = 235 moving right - --- -1.03797 (0.615297), N = 211 moving right - --- -0.15197 (0.77329), N = 130 moving right - --- 0.44175 (0.769384), N = 81 moving right - --- 6.44615 (0.548028), N = 7 moving right - - -- best stat: 0.77329, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 15 7 8 10 - - - -- linear combo weights (showing up to 5) - - 0.2864 0.0443 4.7548 1.8239 -0.4351 - - - -- cutpoint (score) - --- -1.58105 (0.54206), N = 242 moving right - --- -0.391308 (0.790337), N = 101 moving right - --- -0.0251598 (0.787902), N = 85 moving right - --- 2.71718 (0.644851), N = 26 moving right - --- 4.88769 (0.597942), N = 17 moving right - - -- best stat: 0.790337, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 5 15 14 3 - - - -- linear combo weights (showing up to 5) - - 0.0036 0.9394 -0.0118 0.2454 6.2307 - - - -- cutpoint (score) - --- 0.0870157 (0.635372), N = 126 moving right - --- 0.111743 (0.64292), N = 121 moving right - --- 0.112112 (0.639585), N = 120 moving right - --- 0.809143 (0.654812), N = 55 moving right - --- 7.30013 (0.538154), N = 6 moving right - - -- best stat: 0.654812, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8551e-01 1.4559e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 150 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 2 3 8 0 - - - -- linear combo weights (showing up to 5) - - 0.0562 0.2795 3.4875 1.9604 -0.1332 - - - -- cutpoint (score) - --- -1.07909 (0.524739), N = 262 moving right - --- -0.849132 (0.631152), N = 206 moving right - --- -0.827928 (0.654359), N = 194 moving right - --- -0.641431 (0.739709), N = 130 moving right - --- -0.29247 (0.759329), N = 103 moving right - - -- best stat: 0.759329, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 13 10 4 8 - - - -- linear combo weights (showing up to 5) - - 0.2788 0.0871 -0.5959 -0.2390 1.9586 - - - -- cutpoint (score) - --- -1.88594 (0.537425), N = 257 moving right - --- -1.41133 (0.603351), N = 220 moving right - --- -1.1611 (0.680038), N = 177 moving right - --- -0.85409 (0.733868), N = 145 moving right - --- 3.05964 (0.647535), N = 28 moving right - - -- best stat: 0.733868, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 17 14 3 12 - - - -- linear combo weights (showing up to 5) - - -0.0734 0.3572 0.6965 4.1544 0.0909 - - - -- cutpoint (score) - --- -0.0679774 (0.519402), N = 263 moving right - --- 1.25137 (0.688875), N = 104 moving right - --- 1.26792 (0.694847), N = 100 moving right - --- 1.47094 (0.684041), N = 89 moving right - --- 2.14589 (0.650182), N = 42 moving right - - -- best stat: 0.694847, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 3.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 151 -------------- - -- N obs inbag: 276 -- N row inbag: 164 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 3 17 4 13 - - - -- linear combo weights (showing up to 5) - - 10.0060 6.2686 0.1343 0.6447 0.4117 - - - -- cutpoint (score) - --- -0.171353 (0.544371), N = 254 moving right - --- 0.731627 (0.689492), N = 149 moving right - --- 0.979293 (0.718318), N = 106 moving right - --- 1.11431 (0.74018), N = 81 moving right - --- 1.87875 (0.654513), N = 28 moving right - - -- best stat: 0.74018, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 8 13 3 9 - - - -- linear combo weights (showing up to 5) - - 0.1999 1.4788 0.1147 8.5068 0.1578 - - - -- cutpoint (score) - --- -1.16214 (0.529357), N = 256 moving right - --- -1.03163 (0.607667), N = 213 moving right - --- 0.210551 (0.756975), N = 68 moving right - --- 10.0572 (0.57396), N = 12 moving right - --- 12.3399 (0.547633), N = 8 moving right - - -- best stat: 0.756975, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 12 11 3 17 - - - -- linear combo weights (showing up to 5) - - 0.1220 0.0882 0.8543 10.4809 0.2448 - - - -- cutpoint (score) - --- 0.127472 (0.614144), N = 216 moving right - --- 0.234459 (0.680077), N = 183 moving right - --- 0.406734 (0.71575), N = 158 moving right - --- 0.429241 (0.715634), N = 155 moving right - --- 11.9331 (0.552283), N = 9 moving right - - -- best stat: 0.71575, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.7464e-01 2.5522e-02 - 1.1000e+02 9.7101e-01 2.9239e-02 - 1.3100e+02 9.6014e-01 4.0433e-02 - 1.7900e+02 9.5652e-01 4.4207e-02 - - ------------- Growing tree 152 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 0 6 3 7 - - - -- linear combo weights (showing up to 5) - - 0.5597 -0.1013 0.4934 5.7732 7.3448 - - - -- cutpoint (score) - --- -0.101311 (0.573856), N = 221 moving right - --- 0.493369 (0.617868), N = 81 moving right - --- 0.951789 (0.6028), N = 25 moving right - --- 1.0531 (0.601442), N = 19 moving right - --- 6.82626 (0.590324), N = 15 moving right - - -- best stat: 0.617868, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 3 16 5 1 - - - -- linear combo weights (showing up to 5) - - -0.5359 5.6354 0.1942 0.6811 0.3039 - - - -- cutpoint (score) - --- -0.953076 (0.513939), N = 257 moving right - --- -0.178505 (0.658913), N = 172 moving right - --- 0.218628 (0.700104), N = 135 moving right - --- 0.695893 (0.678077), N = 77 moving right - --- 1.28434 (0.64046), N = 32 moving right - - -- best stat: 0.700104, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 9 10 16 6 - - - -- linear combo weights (showing up to 5) - - 0.1619 0.4334 -0.7316 0.4388 -0.0737 - - - -- cutpoint (score) - --- -1.46428 (0.511515), N = 259 moving right - --- -0.29006 (0.663532), N = 144 moving right - --- -0.106163 (0.685873), N = 125 moving right - --- 0.0609629 (0.694608), N = 110 moving right - --- 1.41798 (0.580606), N = 25 moving right - - -- best stat: 0.694608, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.1000e+02 9.9638e-01 3.6232e-03 - 1.4000e+02 9.8551e-01 1.4532e-02 - 1.7900e+02 9.7826e-01 2.1885e-02 - 1.9100e+02 9.7464e-01 2.5589e-02 - 1.9800e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 153 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 193 -- max leaves: 97 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 7 9 0 8 - - - -- linear combo weights (showing up to 5) - - -0.1199 3.2297 -0.0111 -0.0798 1.7060 - - - -- cutpoint (score) - --- -1.13295 (0.552162), N = 251 moving right - --- -1.02741 (0.602228), N = 221 moving right - --- -0.9054 (0.66072), N = 177 moving right - --- -0.751774 (0.715713), N = 145 moving right - --- 1.12998 (0.676028), N = 39 moving right - - -- best stat: 0.715713, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 0 2 15 3 - - - -- linear combo weights (showing up to 5) - - -0.8897 0.2044 -0.0592 -0.0143 9.4654 - - - -- cutpoint (score) - --- -0.463539 (0.594379), N = 213 moving right - --- -0.445735 (0.595599), N = 202 moving right - --- -0.370893 (0.612173), N = 191 moving right - --- -0.342405 (0.605681), N = 187 moving right - --- 0.844952 (0.68298), N = 50 moving right - - -- best stat: 0.68298, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 16 11 0 9 - - - -- linear combo weights (showing up to 5) - - 0.5998 0.5917 1.0988 0.0545 0.5009 - - - -- cutpoint (score) - --- -0.985781 (0.660835), N = 188 moving right - --- -0.679996 (0.724161), N = 142 moving right - --- -0.298871 (0.75404), N = 110 moving right - --- -0.0556345 (0.744211), N = 94 moving right - --- 1.82283 (0.615533), N = 34 moving right - - -- best stat: 0.75404, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 154 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 2 3 1 11 - - - -- linear combo weights (showing up to 5) - - 0.5982 -0.2173 5.1566 0.2995 0.4412 - - - -- cutpoint (score) - --- -0.404414 (0.645512), N = 188 moving right - --- -0.38667 (0.631889), N = 181 moving right - --- -0.0731176 (0.717812), N = 117 moving right - --- 0.313006 (0.691679), N = 66 moving right - --- 1.73405 (0.589462), N = 17 moving right - - -- best stat: 0.717812, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 8 4 9 12 - - - -- linear combo weights (showing up to 5) - - 0.0442 2.7420 0.5484 -0.1552 -0.0567 - - - -- cutpoint (score) - --- -1.36624 (0.635785), N = 204 moving right - --- -1.18568 (0.645423), N = 189 moving right - --- -1.13953 (0.660248), N = 181 moving right - --- -0.786258 (0.724156), N = 131 moving right - --- 1.62991 (0.658868), N = 41 moving right - - -- best stat: 0.724156, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 11 17 6 2 - - - -- linear combo weights (showing up to 5) - - 0.6921 0.4058 0.4910 1.8425 -0.5681 - - - -- cutpoint (score) - --- 0.481625 (0.670666), N = 182 moving right - --- 0.908589 (0.697868), N = 134 moving right - --- 1.85684 (0.631711), N = 51 moving right - --- 1.92937 (0.626124), N = 48 moving right - --- 3.28104 (0.541426), N = 6 moving right - - -- best stat: 0.697868, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9275e-01 7.2464e-03 - 1.7900e+02 9.8551e-01 1.4546e-02 - 1.9100e+02 9.8188e-01 1.8222e-02 - 1.9800e+02 9.7826e-01 2.1912e-02 - 2.1600e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 155 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 3 2 17 9 - - - -- linear combo weights (showing up to 5) - - -0.0859 9.3859 -0.9108 0.5288 0.6810 - - - -- cutpoint (score) - --- 0.278653 (0.630916), N = 208 moving right - --- 0.384411 (0.642499), N = 187 moving right - --- 0.436856 (0.660349), N = 179 moving right - --- 0.705048 (0.679885), N = 152 moving right - --- 1.67613 (0.639301), N = 50 moving right - - -- best stat: 0.679885, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 9 17 13 11 - - - -- linear combo weights (showing up to 5) - - 1.1890 0.0470 0.3411 0.1184 1.0142 - - - -- cutpoint (score) - --- -0.182439 (0.649112), N = 194 moving right - --- -0.120182 (0.667329), N = 187 moving right - --- 0.0979065 (0.699313), N = 165 moving right - --- 0.155596 (0.693327), N = 160 moving right - --- 0.270547 (0.701733), N = 157 moving right - - -- best stat: 0.701733, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 12 15 8 4 - - - -- linear combo weights (showing up to 5) - - 4.8709 0.0562 0.0133 1.6266 0.3908 - - - -- cutpoint (score) - --- -0.924551 (0.578856), N = 233 moving right - --- -0.37689 (0.70947), N = 133 moving right - --- -0.33393 (0.712128), N = 119 moving right - --- 0.759573 (0.663915), N = 60 moving right - --- 0.879651 (0.647966), N = 55 moving right - - -- best stat: 0.712128, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.3100e+02 9.9638e-01 3.6232e-03 - 1.7900e+02 9.9275e-01 7.2596e-03 - 1.8600e+02 9.8913e-01 1.0909e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 156 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 11 16 4 15 - - - -- linear combo weights (showing up to 5) - - 0.3690 0.7515 0.5887 0.2209 -0.0350 - - - -- cutpoint (score) - --- 0.313482 (0.626261), N = 211 moving right - --- 1.57053 (0.749733), N = 99 moving right - --- 1.86388 (0.732118), N = 78 moving right - --- 2.8139 (0.653946), N = 39 moving right - --- 3.37119 (0.540153), N = 15 moving right - - -- best stat: 0.749733, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 7 0 9 2 - - - -- linear combo weights (showing up to 5) - - -0.1192 12.1708 0.0633 0.3066 -0.8240 - - - -- cutpoint (score) - --- -1.10065 (0.522188), N = 267 moving right - --- -1.02128 (0.533529), N = 254 moving right - --- -1.01526 (0.542039), N = 248 moving right - --- -0.839921 (0.653535), N = 157 moving right - --- -0.729476 (0.680256), N = 102 moving right - - -- best stat: 0.680256, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 7 3 17 11 - - - -- linear combo weights (showing up to 5) - - 0.3564 10.9540 0.5343 0.4103 0.6845 - - - -- cutpoint (score) - --- 1.07656 (0.721906), N = 140 moving right - --- 1.08659 (0.72855), N = 137 moving right - --- 2.39816 (0.670187), N = 50 moving right - --- 2.39856 (0.672873), N = 49 moving right - --- 2.8952 (0.627615), N = 31 moving right - - -- best stat: 0.72855, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 157 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 10 5 15 16 - - - -- linear combo weights (showing up to 5) - - 0.1340 -0.7372 0.8458 -0.2084 0.9163 - - - -- cutpoint (score) - --- -0.0401216 (0.670408), N = 146 moving right - --- 0.289831 (0.699729), N = 122 moving right - --- 0.365673 (0.69369), N = 118 moving right - --- 0.711327 (0.729509), N = 91 moving right - --- 3.82527 (0.546956), N = 8 moving right - - -- best stat: 0.729509, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 16 14 2 9 - - - -- linear combo weights (showing up to 5) - - 0.2408 1.0519 0.2896 -0.3875 0.3663 - - - -- cutpoint (score) - --- -0.918542 (0.640541), N = 175 moving right - --- -0.483546 (0.684915), N = 138 moving right - --- -0.209344 (0.713514), N = 113 moving right - --- 0.189465 (0.703952), N = 74 moving right - --- 2.63161 (0.544156), N = 8 moving right - - -- best stat: 0.713514, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 0 6 17 4 - - - -- linear combo weights (showing up to 5) - - 1.0554 -0.7640 0.3114 0.5262 0.3040 - - - -- cutpoint (score) - --- 1.11846 (0.642948), N = 185 moving right - --- 1.36372 (0.658593), N = 168 moving right - --- 2.10469 (0.677498), N = 95 moving right - --- 2.17383 (0.680649), N = 81 moving right - --- 2.94526 (0.562361), N = 25 moving right - - -- best stat: 0.680649, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.1000e+02 9.9638e-01 3.6232e-03 - 1.4000e+02 9.8188e-01 1.8169e-02 - 1.9100e+02 9.7464e-01 2.5549e-02 - 2.1600e+02 9.7101e-01 2.9266e-02 - 2.2300e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 158 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 17 1 7 2 - - - -- linear combo weights (showing up to 5) - - 0.0242 0.4384 0.3842 7.6914 -0.3306 - - - -- cutpoint (score) - --- 0.431598 (0.579975), N = 237 moving right - --- 0.747998 (0.63549), N = 193 moving right - --- 1.19529 (0.697556), N = 110 moving right - --- 1.42219 (0.689998), N = 80 moving right - --- 1.89188 (0.62138), N = 35 moving right - - -- best stat: 0.697556, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 1 0 7 16 - - - -- linear combo weights (showing up to 5) - - 0.8091 0.3664 -0.2062 6.9072 0.7107 - - - -- cutpoint (score) - --- -0.381902 (0.614253), N = 206 moving right - --- -0.337637 (0.626515), N = 199 moving right - --- 0.866544 (0.708256), N = 78 moving right - --- 0.908328 (0.706428), N = 72 moving right - --- 0.968961 (0.716964), N = 68 moving right - - -- best stat: 0.716964, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 3 14 17 0 - - - -- linear combo weights (showing up to 5) - - 0.7103 8.9329 0.1257 0.4600 -0.0767 - - - -- cutpoint (score) - --- 0.829845 (0.586219), N = 237 moving right - --- 1.2051 (0.634134), N = 201 moving right - --- 1.32259 (0.670672), N = 171 moving right - --- 1.34378 (0.669234), N = 164 moving right - --- 1.36657 (0.666379), N = 157 moving right - - -- best stat: 0.670672, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 159 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 8 17 3 11 - - - -- linear combo weights (showing up to 5) - - 8.4819 1.4062 0.2539 3.7387 0.3480 - - - -- cutpoint (score) - --- 0.0987888 (0.717432), N = 154 moving right - --- 0.134876 (0.728954), N = 146 moving right - --- 1.56132 (0.715774), N = 58 moving right - --- 3.33989 (0.651169), N = 27 moving right - --- 5.50197 (0.614753), N = 19 moving right - - -- best stat: 0.728954, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 8 6 12 5 - - - -- linear combo weights (showing up to 5) - - 0.6254 1.7907 0.6384 -0.1318 0.4048 - - - -- cutpoint (score) - --- -1.09386 (0.654039), N = 187 moving right - --- -0.891304 (0.704677), N = 153 moving right - --- -0.809673 (0.7179), N = 142 moving right - --- -0.401919 (0.764711), N = 114 moving right - --- 2.89874 (0.597173), N = 20 moving right - - -- best stat: 0.764711, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 6 13 0 17 - - - -- linear combo weights (showing up to 5) - - 0.7959 1.1010 0.2164 -0.2681 0.4750 - - - -- cutpoint (score) - --- 1.78102 (0.655123), N = 153 moving right - --- 2.11815 (0.660544), N = 119 moving right - --- 2.39211 (0.689753), N = 80 moving right - --- 2.57641 (0.64577), N = 42 moving right - --- 2.82581 (0.583822), N = 23 moving right - - -- best stat: 0.689753, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 160 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 13 16 9 14 - - - -- linear combo weights (showing up to 5) - - -0.7411 0.4590 0.8966 0.0126 0.3806 - - - -- cutpoint (score) - --- -0.975005 (0.583172), N = 201 moving right - --- -0.775559 (0.63379), N = 180 moving right - --- -0.387267 (0.664896), N = 161 moving right - --- -0.281546 (0.687759), N = 145 moving right - --- 2.86281 (0.568608), N = 14 moving right - - -- best stat: 0.687759, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 14 0 2 12 - - - -- linear combo weights (showing up to 5) - - 0.3372 0.3261 -0.2445 -0.5351 0.0190 - - - -- cutpoint (score) - --- -0.936304 (0.562916), N = 206 moving right - --- -0.851161 (0.592994), N = 187 moving right - --- -0.514223 (0.610394), N = 100 moving right - --- -0.347021 (0.6083), N = 73 moving right - --- 0.869764 (0.518047), N = 10 moving right - - -- best stat: 0.610394, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 17 2 7 13 - - - -- linear combo weights (showing up to 5) - - -0.4162 0.3854 -0.5242 9.1022 0.2938 - - - -- cutpoint (score) - --- 0.213114 (0.594137), N = 205 moving right - --- 0.336876 (0.611536), N = 194 moving right - --- 0.590791 (0.660727), N = 166 moving right - --- 0.650579 (0.677822), N = 155 moving right - --- 0.754697 (0.693984), N = 142 moving right - - -- best stat: 0.693984, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.7826e-01 2.1859e-02 - 1.3100e+02 9.7464e-01 2.5562e-02 - 1.4000e+02 9.6377e-01 3.6715e-02 - 1.8600e+02 9.6014e-01 4.0474e-02 - - ------------- Growing tree 161 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 10 17 6 3 - - - -- linear combo weights (showing up to 5) - - 1.1116 -0.4610 0.3683 -0.1068 5.6203 - - - -- cutpoint (score) - --- -0.102838 (0.592757), N = 224 moving right - --- -0.0689861 (0.611196), N = 217 moving right - --- 0.212422 (0.679174), N = 178 moving right - --- 0.589592 (0.710838), N = 149 moving right - --- 1.4478 (0.705987), N = 78 moving right - - -- best stat: 0.710838, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 9 15 17 2 - - - -- linear combo weights (showing up to 5) - - 0.6387 0.5317 -0.1260 0.5427 -0.5277 - - - -- cutpoint (score) - --- 0.743265 (0.627078), N = 207 moving right - --- 1.61787 (0.700572), N = 119 moving right - --- 2.53972 (0.564918), N = 34 moving right - --- 2.62293 (0.570917), N = 31 moving right - --- 2.71963 (0.546781), N = 18 moving right - - -- best stat: 0.700572, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 3 13 15 7 - - - -- linear combo weights (showing up to 5) - - 0.9015 5.9386 0.5000 -0.0377 4.2765 - - - -- cutpoint (score) - --- -0.502026 (0.542695), N = 246 moving right - --- -0.493503 (0.5497), N = 244 moving right - --- -0.308127 (0.596441), N = 221 moving right - --- -0.176511 (0.601373), N = 200 moving right - --- 0.555587 (0.721627), N = 122 moving right - - -- best stat: 0.721627, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 162 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 16 15 14 5 - - - -- linear combo weights (showing up to 5) - - 0.3955 0.7526 -0.2093 0.1972 0.5832 - - - -- cutpoint (score) - --- -0.86338 (0.584908), N = 225 moving right - --- -0.548324 (0.61959), N = 197 moving right - --- -0.387458 (0.646459), N = 173 moving right - --- -0.0653432 (0.68694), N = 137 moving right - --- 0.589592 (0.663464), N = 86 moving right - - -- best stat: 0.68694, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 10 7 4 0 - - - -- linear combo weights (showing up to 5) - - 0.4333 -0.5565 7.7555 0.4700 0.1462 - - - -- cutpoint (score) - --- -0.590308 (0.573052), N = 227 moving right - --- -0.441895 (0.584238), N = 205 moving right - --- -0.408544 (0.582758), N = 203 moving right - --- 0.179454 (0.673979), N = 139 moving right - --- 0.878715 (0.708325), N = 69 moving right - - -- best stat: 0.708325, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 4 13 16 10 - - - -- linear combo weights (showing up to 5) - - 0.3878 0.4121 0.3423 0.7505 -0.6513 - - - -- cutpoint (score) - --- -1.45914 (0.539751), N = 246 moving right - --- -0.892189 (0.60578), N = 204 moving right - --- 1.84387 (0.636122), N = 32 moving right - --- 2.40168 (0.578714), N = 19 moving right - --- 3.09327 (0.548945), N = 9 moving right - - -- best stat: 0.636122, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7464e-01 2.5589e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 163 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 9 14 10 13 - - - -- linear combo weights (showing up to 5) - - -0.3458 0.0464 0.4349 -0.7858 0.2749 - - - -- cutpoint (score) - --- -1.47421 (0.560963), N = 236 moving right - --- -1.056 (0.604174), N = 206 moving right - --- -1.03471 (0.608549), N = 204 moving right - --- -0.781874 (0.624463), N = 172 moving right - --- 0.389521 (0.650792), N = 58 moving right - - -- best stat: 0.650792, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 9 0 15 12 - - - -- linear combo weights (showing up to 5) - - 0.6448 0.5918 0.1544 -0.2238 0.1717 - - - -- cutpoint (score) - --- -0.289082 (0.666938), N = 151 moving right - --- 0.395591 (0.670306), N = 80 moving right - --- 0.483572 (0.65569), N = 67 moving right - --- 0.688567 (0.643222), N = 55 moving right - --- 0.746456 (0.63149), N = 46 moving right - - -- best stat: 0.670306, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 7 3 0 17 - - - -- linear combo weights (showing up to 5) - - 0.5909 4.0988 8.1615 -0.1355 0.2406 - - - -- cutpoint (score) - --- 0.345718 (0.569482), N = 239 moving right - --- 0.721815 (0.666144), N = 155 moving right - --- 1.55328 (0.619391), N = 23 moving right - --- 13.0873 (0.588706), N = 14 moving right - --- 13.6782 (0.534731), N = 5 moving right - - -- best stat: 0.666144, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 164 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 2 1 15 8 - - - -- linear combo weights (showing up to 5) - - -0.0418 0.2093 0.4313 -0.1741 1.6568 - - - -- cutpoint (score) - --- -0.774208 (0.622907), N = 207 moving right - --- -0.663008 (0.647484), N = 191 moving right - --- -0.230734 (0.781004), N = 127 moving right - --- 1.85318 (0.653764), N = 39 moving right - --- 2.81934 (0.624456), N = 27 moving right - - -- best stat: 0.781004, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 14 1 6 5 - - - -- linear combo weights (showing up to 5) - - 0.4506 0.4024 0.3691 1.9774 0.9599 - - - -- cutpoint (score) - --- -0.310479 (0.60731), N = 209 moving right - --- -0.0558706 (0.661238), N = 159 moving right - --- 0.137913 (0.706352), N = 138 moving right - --- 0.286236 (0.735765), N = 120 moving right - --- 3.78358 (0.51949), N = 5 moving right - - -- best stat: 0.735765, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 14 5 2 11 - - - -- linear combo weights (showing up to 5) - - 7.3247 0.3641 0.5217 0.6610 0.6507 - - - -- cutpoint (score) - --- 0.175536 (0.641706), N = 189 moving right - --- 0.18529 (0.646583), N = 187 moving right - --- 0.324147 (0.702416), N = 157 moving right - --- 0.354035 (0.703651), N = 155 moving right - --- 1.35354 (0.700929), N = 67 moving right - - -- best stat: 0.703651, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7464e-01 2.5588e-02 - 1.1000e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 165 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 16 5 1 14 - - - -- linear combo weights (showing up to 5) - - 0.6618 0.4515 1.2622 0.6964 0.3196 - - - -- cutpoint (score) - --- 0.401681 (0.705111), N = 116 moving right - --- 0.445648 (0.706118), N = 115 moving right - --- 1.222 (0.673272), N = 57 moving right - --- 2.24986 (0.597894), N = 27 moving right - --- 2.67872 (0.553911), N = 14 moving right - - -- best stat: 0.706118, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 13 16 5 2 - - - -- linear combo weights (showing up to 5) - - 1.8450 0.1667 0.4313 0.2279 0.1761 - - - -- cutpoint (score) - --- -1.32346 (0.54938), N = 252 moving right - --- -1.25467 (0.571129), N = 233 moving right - --- -1.00966 (0.627316), N = 201 moving right - --- -0.889974 (0.660283), N = 183 moving right - --- 1.9036 (0.650153), N = 30 moving right - - -- best stat: 0.660283, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 7 16 13 15 - - - -- linear combo weights (showing up to 5) - - 0.1159 6.1872 0.4857 0.4769 0.0264 - - - -- cutpoint (score) - --- -0.690521 (0.539653), N = 251 moving right - --- -0.672719 (0.534618), N = 247 moving right - --- 0.0602305 (0.66131), N = 132 moving right - --- 0.985963 (0.61046), N = 34 moving right - --- 1.12629 (0.590644), N = 28 moving right - - -- best stat: 0.66131, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 1.1000e+02 9.7464e-01 2.5562e-02 - 1.3100e+02 9.7101e-01 2.9279e-02 - 1.8600e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 166 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 17 11 13 5 - - - -- linear combo weights (showing up to 5) - - 7.8873 0.4613 0.4300 0.3088 0.1981 - - - -- cutpoint (score) - --- 0.729107 (0.588869), N = 228 moving right - --- 1.22804 (0.659015), N = 175 moving right - --- 1.3715 (0.691156), N = 150 moving right - --- 1.5377 (0.742496), N = 122 moving right - --- 10.2477 (0.549936), N = 10 moving right - - -- best stat: 0.742496, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 2 13 0 12 - - - -- linear combo weights (showing up to 5) - - 0.7173 -0.0165 0.2311 -0.1814 -0.0019 - - - -- cutpoint (score) - --- -0.570865 (0.636142), N = 192 moving right - --- -0.233574 (0.67877), N = 131 moving right - --- 0.488949 (0.652719), N = 59 moving right - --- 0.57886 (0.651336), N = 53 moving right - --- 0.998711 (0.578981), N = 34 moving right - - -- best stat: 0.67877, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 14 4 16 12 - - - -- linear combo weights (showing up to 5) - - -0.3872 0.4888 0.4922 0.5876 0.0856 - - - -- cutpoint (score) - --- -1.2628 (0.506771), N = 264 moving right - --- -1.02874 (0.501259), N = 256 moving right - --- -0.385339 (0.591677), N = 203 moving right - --- 0.458053 (0.682404), N = 94 moving right - --- 0.773424 (0.693407), N = 69 moving right - - -- best stat: 0.693407, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 167 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 15 10 2 17 - - - -- linear combo weights (showing up to 5) - - 0.0746 -0.0472 -0.5684 -0.1351 0.5713 - - - -- cutpoint (score) - --- 1.16686 (0.601824), N = 200 moving right - --- 1.4323 (0.64122), N = 162 moving right - --- 1.9862 (0.636558), N = 87 moving right - --- 2.44098 (0.663948), N = 50 moving right - --- 3.10919 (0.572828), N = 14 moving right - - -- best stat: 0.663948, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 14 16 5 10 - - - -- linear combo weights (showing up to 5) - - 0.3470 0.4033 0.7024 0.4011 -0.5223 - - - -- cutpoint (score) - --- 0.627943 (0.649016), N = 173 moving right - --- 0.673878 (0.662344), N = 167 moving right - --- 0.820874 (0.680202), N = 148 moving right - --- 1.32146 (0.703383), N = 109 moving right - --- 2.64653 (0.650527), N = 40 moving right - - -- best stat: 0.703383, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 11 10 4 15 - - - -- linear combo weights (showing up to 5) - - 1.4593 0.1873 -0.4149 0.0475 -0.1428 - - - -- cutpoint (score) - --- -1.01885 (0.608204), N = 210 moving right - --- -0.601685 (0.693831), N = 155 moving right - --- -0.473256 (0.727715), N = 137 moving right - --- -0.0529648 (0.713992), N = 99 moving right - --- 1.80447 (0.62055), N = 34 moving right - - -- best stat: 0.727715, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 168 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 2 15 8 3 - - - -- linear combo weights (showing up to 5) - - -0.0466 -1.5065 -0.1280 1.3335 3.3577 - - - -- cutpoint (score) - --- -2.43422 (0.523638), N = 265 moving right - --- -2.13934 (0.673473), N = 185 moving right - --- -1.8134 (0.763617), N = 140 moving right - --- -1.79051 (0.765874), N = 135 moving right - --- -0.0357491 (0.658279), N = 47 moving right - - -- best stat: 0.765874, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 6 4 14 12 - - - -- linear combo weights (showing up to 5) - - 0.9791 0.8096 0.7359 0.3938 0.0468 - - - -- cutpoint (score) - --- -0.517797 (0.590248), N = 224 moving right - --- -0.256103 (0.639761), N = 195 moving right - --- -0.206502 (0.653409), N = 189 moving right - --- 0.682214 (0.730615), N = 107 moving right - --- 2.41955 (0.591314), N = 17 moving right - - -- best stat: 0.730615, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 7 3 13 16 - - - -- linear combo weights (showing up to 5) - - -1.3636 2.2033 2.8274 0.2622 0.7722 - - - -- cutpoint (score) - --- -1.54675 (0.684341), N = 150 moving right - --- -1.50558 (0.696986), N = 143 moving right - --- -1.15638 (0.712682), N = 116 moving right - --- -1.01067 (0.704071), N = 105 moving right - --- -0.769555 (0.709443), N = 88 moving right - - -- best stat: 0.712682, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.8600e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 169 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 0 10 7 17 - - - -- linear combo weights (showing up to 5) - - 0.6837 -0.0944 -0.5422 5.8702 0.5452 - - - -- cutpoint (score) - --- 0.148566 (0.508602), N = 271 moving right - --- 0.241709 (0.519657), N = 266 moving right - --- 0.710508 (0.561603), N = 245 moving right - --- 1.54707 (0.675443), N = 147 moving right - --- 8.67569 (0.555533), N = 7 moving right - - -- best stat: 0.675443, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 10 3 1 0 - - - -- linear combo weights (showing up to 5) - - 1.4522 -0.3927 8.5176 0.5630 0.2102 - - - -- cutpoint (score) - --- -0.0390485 (0.636592), N = 184 moving right - --- 0.847177 (0.698456), N = 98 moving right - --- 0.927816 (0.675162), N = 91 moving right - --- 1.98072 (0.635225), N = 28 moving right - --- 2.04333 (0.63828), N = 24 moving right - - -- best stat: 0.698456, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 9 15 11 2 - - - -- linear combo weights (showing up to 5) - - 5.2240 0.4762 -0.0638 1.2039 -0.2797 - - - -- cutpoint (score) - --- -1.5794 (0.546529), N = 253 moving right - --- -1.27936 (0.619287), N = 214 moving right - --- -0.919625 (0.704466), N = 164 moving right - --- 0.105675 (0.703883), N = 83 moving right - --- 0.533455 (0.68702), N = 66 moving right - - -- best stat: 0.704466, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 170 -------------- - -- N obs inbag: 276 -- N row inbag: 184 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 10 6 5 4 - - - -- linear combo weights (showing up to 5) - - 2.0873 -0.4238 0.7009 0.7407 -0.1466 - - - -- cutpoint (score) - --- -1.76005 (0.523151), N = 260 moving right - --- -1.50877 (0.549029), N = 241 moving right - --- -1.43198 (0.567589), N = 234 moving right - --- -1.34821 (0.583265), N = 228 moving right - --- 0.048615 (0.727624), N = 97 moving right - - -- best stat: 0.727624, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 1 4 17 15 - - - -- linear combo weights (showing up to 5) - - 8.5395 0.2882 0.2462 0.4179 0.0691 - - - -- cutpoint (score) - --- 0.906884 (0.588856), N = 223 moving right - --- 0.963237 (0.595213), N = 221 moving right - --- 0.991363 (0.602786), N = 213 moving right - --- 1.58069 (0.68507), N = 106 moving right - --- 1.70187 (0.668766), N = 87 moving right - - -- best stat: 0.68507, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 0 15 11 8 - - - -- linear combo weights (showing up to 5) - - -0.2937 -0.0531 -0.1077 0.4746 2.2994 - - - -- cutpoint (score) - --- -1.24411 (0.676849), N = 177 moving right - --- -1.19416 (0.69019), N = 169 moving right - --- -1.19007 (0.694683), N = 166 moving right - --- 0.395751 (0.672984), N = 54 moving right - --- 3.60011 (0.623877), N = 22 moving right - - -- best stat: 0.694683, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 171 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 15 16 1 14 - - - -- linear combo weights (showing up to 5) - - -0.5565 -0.1721 1.1117 0.3372 0.1975 - - - -- cutpoint (score) - --- -1.28377 (0.612685), N = 202 moving right - --- -0.504118 (0.663645), N = 121 moving right - --- -0.378986 (0.676425), N = 114 moving right - --- 0.830959 (0.676783), N = 37 moving right - --- 0.93182 (0.628038), N = 25 moving right - - -- best stat: 0.676783, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 11 15 8 17 - - - -- linear combo weights (showing up to 5) - - -0.5496 0.2053 -0.0892 2.5667 0.3464 - - - -- cutpoint (score) - --- 1.31991 (0.724699), N = 71 moving right - --- 2.8065 (0.669576), N = 39 moving right - --- 3.70753 (0.637572), N = 26 moving right - --- 5.03786 (0.620899), N = 19 moving right - --- 9.84796 (0.548767), N = 7 moving right - - -- best stat: 0.724699, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 13 10 6 4 - - - -- linear combo weights (showing up to 5) - - -0.0859 0.3680 -0.7349 0.5766 0.6254 - - - -- cutpoint (score) - --- -1.41738 (0.515622), N = 267 moving right - --- -1.22011 (0.529274), N = 262 moving right - --- -0.411119 (0.592073), N = 211 moving right - --- -0.334364 (0.608276), N = 204 moving right - --- -0.102162 (0.618124), N = 185 moving right - - -- best stat: 0.618124, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.3100e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 172 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 7 1 13 4 - - - -- linear combo weights (showing up to 5) - - -0.1210 3.2575 0.6672 0.6463 0.2169 - - - -- cutpoint (score) - --- 0.0256039 (0.678947), N = 162 moving right - --- 0.572848 (0.688795), N = 94 moving right - --- 0.644882 (0.68227), N = 85 moving right - --- 0.763422 (0.689386), N = 75 moving right - --- 1.36844 (0.614092), N = 36 moving right - - -- best stat: 0.689386, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 9 17 0 4 - - - -- linear combo weights (showing up to 5) - - -0.2896 0.4727 0.6899 -0.0813 -0.0629 - - - -- cutpoint (score) - --- 1.42513 (0.608057), N = 203 moving right - --- 1.57782 (0.675155), N = 166 moving right - --- 1.76236 (0.688978), N = 132 moving right - --- 2.09572 (0.637804), N = 94 moving right - --- 2.30315 (0.597496), N = 53 moving right - - -- best stat: 0.688978, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 1 0 9 2 - - - -- linear combo weights (showing up to 5) - - 6.1990 0.4871 0.0753 0.6140 -0.0028 - - - -- cutpoint (score) - --- -0.461943 (0.572541), N = 219 moving right - --- -0.181169 (0.622023), N = 179 moving right - --- 0.256861 (0.699254), N = 85 moving right - --- 0.317634 (0.681761), N = 72 moving right - --- 6.61908 (0.533967), N = 8 moving right - - -- best stat: 0.699254, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.7464e-01 2.5575e-02 - 1.1000e+02 9.6739e-01 3.3010e-02 - 1.3100e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 173 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 16 6 12 3 - - - -- linear combo weights (showing up to 5) - - 11.9527 0.3971 -0.1251 0.1061 7.2599 - - - -- cutpoint (score) - --- -0.321899 (0.612758), N = 200 moving right - --- -0.00170892 (0.633322), N = 133 moving right - --- 0.0208119 (0.636214), N = 116 moving right - --- 0.68423 (0.61038), N = 19 moving right - --- 7.18067 (0.598363), N = 14 moving right - - -- best stat: 0.636214, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 8 11 12 4 - - - -- linear combo weights (showing up to 5) - - 0.2664 1.8579 0.2887 -0.0526 -0.0101 - - - -- cutpoint (score) - --- -1.31134 (0.547811), N = 246 moving right - --- -1.1086 (0.62651), N = 206 moving right - --- -0.960407 (0.659712), N = 172 moving right - --- 0.386806 (0.687366), N = 62 moving right - --- 0.387458 (0.690301), N = 61 moving right - - -- best stat: 0.690301, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 15 6 0 12 - - - -- linear combo weights (showing up to 5) - - 0.4274 -0.0544 0.3249 -0.3460 0.0303 - - - -- cutpoint (score) - --- -0.787582 (0.500878), N = 269 moving right - --- -0.766015 (0.50452), N = 268 moving right - --- -0.300757 (0.573708), N = 162 moving right - --- -0.0331715 (0.597678), N = 71 moving right - --- 0.214113 (0.573965), N = 40 moving right - - -- best stat: 0.597678, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 174 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 4 2 14 0 - - - -- linear combo weights (showing up to 5) - - 0.7436 0.6162 0.2709 0.2110 -0.0404 - - - -- cutpoint (score) - --- -0.542089 (0.536027), N = 252 moving right - --- 0.258669 (0.659157), N = 155 moving right - --- 0.296529 (0.674061), N = 147 moving right - --- 0.880764 (0.663724), N = 75 moving right - --- 2.24542 (0.53458), N = 14 moving right - - -- best stat: 0.674061, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 7 16 9 3 - - - -- linear combo weights (showing up to 5) - - -0.5888 14.7157 0.5425 0.6022 -0.2125 - - - -- cutpoint (score) - --- -1.43787 (0.525078), N = 262 moving right - --- -1.07685 (0.540921), N = 244 moving right - --- -0.661581 (0.624455), N = 197 moving right - --- 0.104578 (0.716654), N = 101 moving right - --- 0.387994 (0.709212), N = 76 moving right - - -- best stat: 0.716654, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 13 3 11 10 - - - -- linear combo weights (showing up to 5) - - 0.5078 0.2538 2.4685 0.5137 -0.4822 - - - -- cutpoint (score) - --- -1.4384 (0.521674), N = 262 moving right - --- -0.561222 (0.655609), N = 173 moving right - --- -0.146061 (0.721669), N = 129 moving right - --- -0.0038131 (0.724565), N = 116 moving right - --- 0.566 (0.71435), N = 65 moving right - - -- best stat: 0.724565, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 175 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 255 -- max leaves: 128 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 4 6 17 13 - - - -- linear combo weights (showing up to 5) - - -0.0111 0.3862 0.3789 0.4197 0.5170 - - - -- cutpoint (score) - --- 0.98937 (0.638018), N = 200 moving right - --- 1.6177 (0.678066), N = 128 moving right - --- 1.98417 (0.702752), N = 82 moving right - --- 2.19389 (0.636753), N = 60 moving right - --- 2.37161 (0.576832), N = 33 moving right - - -- best stat: 0.702752, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 16 13 4 15 - - - -- linear combo weights (showing up to 5) - - 0.4752 0.4097 0.4835 0.5337 -0.1198 - - - -- cutpoint (score) - --- 0.260013 (0.68671), N = 133 moving right - --- 0.417581 (0.699713), N = 116 moving right - --- 0.478318 (0.701789), N = 105 moving right - --- 0.563916 (0.697656), N = 98 moving right - --- 1.34574 (0.623127), N = 43 moving right - - -- best stat: 0.701789, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 12 7 2 14 - - - -- linear combo weights (showing up to 5) - - -0.0428 0.1753 5.5439 -0.3518 0.5241 - - - -- cutpoint (score) - --- -0.818289 (0.552995), N = 236 moving right - --- -0.797269 (0.566602), N = 228 moving right - --- -0.587282 (0.58959), N = 179 moving right - --- -0.216199 (0.619881), N = 105 moving right - --- -0.061518 (0.627505), N = 88 moving right - - -- best stat: 0.627505, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 176 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 9 14 10 8 - - - -- linear combo weights (showing up to 5) - - 0.4434 -0.1597 -0.0180 -0.4755 1.6344 - - - -- cutpoint (score) - --- -1.33442 (0.538281), N = 247 moving right - --- -0.785806 (0.662046), N = 178 moving right - --- -0.681387 (0.688965), N = 165 moving right - --- 0.571746 (0.710823), N = 69 moving right - --- 7.5832 (0.518097), N = 5 moving right - - -- best stat: 0.710823, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 5 1 12 2 - - - -- linear combo weights (showing up to 5) - - -0.0926 0.8780 0.4053 0.1898 -0.3523 - - - -- cutpoint (score) - --- -0.873439 (0.525856), N = 245 moving right - --- -0.690281 (0.55049), N = 228 moving right - --- 0.198076 (0.658698), N = 86 moving right - --- 0.486228 (0.641586), N = 64 moving right - --- 0.570792 (0.622051), N = 51 moving right - - -- best stat: 0.658698, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 10 5 15 0 - - - -- linear combo weights (showing up to 5) - - 0.1015 -0.7459 0.8083 -0.0948 -0.0347 - - - -- cutpoint (score) - --- -0.356491 (0.605982), N = 194 moving right - --- -0.246265 (0.623114), N = 179 moving right - --- 0.155821 (0.644795), N = 132 moving right - --- 0.19014 (0.653361), N = 124 moving right - --- 1.29756 (0.628943), N = 32 moving right - - -- best stat: 0.653361, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.7900e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 177 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 4 9 16 1 - - - -- linear combo weights (showing up to 5) - - 0.8970 0.7437 0.3275 0.3951 0.3836 - - - -- cutpoint (score) - --- 0.0879492 (0.672117), N = 191 moving right - --- 0.28294 (0.698122), N = 176 moving right - --- 0.803101 (0.747577), N = 119 moving right - --- 0.92161 (0.751277), N = 107 moving right - --- 1.37148 (0.66729), N = 71 moving right - - -- best stat: 0.751277, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 12 4 14 7 - - - -- linear combo weights (showing up to 5) - - -0.3457 0.0659 1.0698 0.3724 12.2261 - - - -- cutpoint (score) - --- -0.555861 (0.530671), N = 256 moving right - --- -0.406901 (0.570552), N = 234 moving right - --- 0.0292667 (0.640562), N = 182 moving right - --- 0.849383 (0.664776), N = 90 moving right - --- 1.07704 (0.632034), N = 59 moving right - - -- best stat: 0.664776, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 2 4 16 3 - - - -- linear combo weights (showing up to 5) - - -0.2905 0.1027 0.9812 0.3445 8.1862 - - - -- cutpoint (score) - --- -0.148593 (0.586964), N = 216 moving right - --- 1.07155 (0.698182), N = 65 moving right - --- 1.17428 (0.697357), N = 51 moving right - --- 1.1913 (0.68706), N = 49 moving right - --- 1.3793 (0.650376), N = 37 moving right - - -- best stat: 0.698182, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 178 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 4 2 10 0 - - - -- linear combo weights (showing up to 5) - - 7.3033 0.2872 -0.9102 -0.5254 -0.2445 - - - -- cutpoint (score) - --- -1.05495 (0.623511), N = 179 moving right - --- -0.925141 (0.661673), N = 155 moving right - --- -0.858646 (0.657937), N = 140 moving right - --- -0.47298 (0.658269), N = 79 moving right - --- -0.0279342 (0.640174), N = 36 moving right - - -- best stat: 0.661673, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 16 1 0 10 - - - -- linear combo weights (showing up to 5) - - -0.2258 0.6114 0.5274 -0.4146 -0.7913 - - - -- cutpoint (score) - --- -1.55274 (0.568728), N = 224 moving right - --- -0.62184 (0.675555), N = 151 moving right - --- 1.69256 (0.639137), N = 29 moving right - --- 2.36956 (0.591845), N = 18 moving right - --- 2.9595 (0.549097), N = 10 moving right - - -- best stat: 0.675555, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 15 10 17 9 - - - -- linear combo weights (showing up to 5) - - 1.9187 -0.2584 -0.5770 0.3314 -0.3390 - - - -- cutpoint (score) - --- -0.541544 (0.593941), N = 220 moving right - --- -0.474803 (0.595912), N = 219 moving right - --- 0.627956 (0.746877), N = 116 moving right - --- 1.5172 (0.760448), N = 77 moving right - --- 7.71648 (0.55082), N = 8 moving right - - -- best stat: 0.760448, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 179 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 17 2 6 12 - - - -- linear combo weights (showing up to 5) - - -0.1553 0.7094 -0.1349 0.8246 0.3712 - - - -- cutpoint (score) - --- 1.09416 (0.570183), N = 243 moving right - --- 1.80811 (0.644837), N = 193 moving right - --- 1.87979 (0.672757), N = 170 moving right - --- 2.85626 (0.597657), N = 41 moving right - --- 2.86683 (0.593317), N = 40 moving right - - -- best stat: 0.672757, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 3 5 14 17 - - - -- linear combo weights (showing up to 5) - - 0.0867 2.9731 0.7559 0.1694 0.5067 - - - -- cutpoint (score) - --- 0.911103 (0.553401), N = 251 moving right - --- 1.26069 (0.618723), N = 221 moving right - --- 1.43745 (0.641745), N = 194 moving right - --- 1.46117 (0.638057), N = 190 moving right - --- 2.04212 (0.694923), N = 105 moving right - - -- best stat: 0.694923, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 0 15 2 10 - - - -- linear combo weights (showing up to 5) - - 0.3923 0.3384 -0.2172 -0.0856 -0.6947 - - - -- cutpoint (score) - --- -1.10687 (0.532801), N = 257 moving right - --- -0.766711 (0.570463), N = 233 moving right - --- -0.489484 (0.593913), N = 212 moving right - --- -0.193072 (0.678457), N = 167 moving right - --- 0.312639 (0.686802), N = 107 moving right - - -- best stat: 0.686802, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 180 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 17 13 8 16 - - - -- linear combo weights (showing up to 5) - - -0.1993 0.4509 0.0239 1.9980 0.3549 - - - -- cutpoint (score) - --- 0.013894 (0.633364), N = 210 moving right - --- 0.158778 (0.63738), N = 202 moving right - --- 0.222843 (0.666365), N = 184 moving right - --- 0.379374 (0.707774), N = 163 moving right - --- 1.81261 (0.71122), N = 64 moving right - - -- best stat: 0.71122, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 16 11 6 3 - - - -- linear combo weights (showing up to 5) - - 0.1391 0.3208 0.5929 1.4236 4.4464 - - - -- cutpoint (score) - --- -0.872764 (0.519789), N = 264 moving right - --- -0.566142 (0.599161), N = 225 moving right - --- -0.536111 (0.616253), N = 212 moving right - --- 1.01474 (0.704919), N = 65 moving right - --- 4.91216 (0.576596), N = 16 moving right - - -- best stat: 0.704919, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 15 8 13 16 - - - -- linear combo weights (showing up to 5) - - 0.3408 -0.1703 1.9806 -0.0291 0.3294 - - - -- cutpoint (score) - --- -1.33229 (0.614303), N = 215 moving right - --- -1.28376 (0.632832), N = 205 moving right - --- -0.406327 (0.780136), N = 110 moving right - --- 0.856727 (0.675737), N = 53 moving right - --- 1.71965 (0.642086), N = 33 moving right - - -- best stat: 0.780136, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 181 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 199 -- max leaves: 100 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 1 0 3 17 - - - -- linear combo weights (showing up to 5) - - 0.4327 0.2133 0.0707 4.2702 0.4058 - - - -- cutpoint (score) - --- 0.737748 (0.609454), N = 202 moving right - --- 0.741305 (0.613611), N = 200 moving right - --- 1.1218 (0.681466), N = 129 moving right - --- 1.15833 (0.690515), N = 122 moving right - --- 1.71363 (0.684601), N = 59 moving right - - -- best stat: 0.690515, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 12 11 15 10 - - - -- linear combo weights (showing up to 5) - - 5.3756 0.0947 0.8255 -0.0335 -0.5599 - - - -- cutpoint (score) - --- -0.821341 (0.62366), N = 202 moving right - --- -0.777473 (0.630019), N = 199 moving right - --- -0.0463259 (0.73198), N = 107 moving right - --- 0.016548 (0.738984), N = 100 moving right - --- 0.0513074 (0.729912), N = 95 moving right - - -- best stat: 0.738984, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 15 10 0 3 - - - -- linear combo weights (showing up to 5) - - 0.4968 0.0581 -0.4447 0.0407 4.4984 - - - -- cutpoint (score) - --- 0.521866 (0.535906), N = 256 moving right - --- 0.799299 (0.558095), N = 235 moving right - --- 0.825036 (0.577416), N = 228 moving right - --- 1.25499 (0.649518), N = 168 moving right - --- 1.33389 (0.665614), N = 156 moving right - - -- best stat: 0.665614, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7464e-01 2.5602e-02 - 1.1000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 182 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 14 6 1 17 - - - -- linear combo weights (showing up to 5) - - 0.7830 0.2906 2.0188 0.1923 0.3712 - - - -- cutpoint (score) - --- 0.585508 (0.586175), N = 240 moving right - --- 1.06773 (0.664341), N = 185 moving right - --- 1.63386 (0.68916), N = 101 moving right - --- 1.67039 (0.682281), N = 95 moving right - --- 3.50612 (0.565915), N = 16 moving right - - -- best stat: 0.68916, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 14 10 5 1 - - - -- linear combo weights (showing up to 5) - - 0.1124 0.3063 -0.6308 0.6935 0.2643 - - - -- cutpoint (score) - --- -0.772374 (0.564349), N = 236 moving right - --- 0.243142 (0.701431), N = 122 moving right - --- 0.724258 (0.669574), N = 68 moving right - --- 0.742663 (0.672508), N = 66 moving right - --- 0.923077 (0.613809), N = 51 moving right - - -- best stat: 0.701431, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 15 6 2 16 - - - -- linear combo weights (showing up to 5) - - 0.2899 -0.2374 1.9112 -0.2611 0.5250 - - - -- cutpoint (score) - --- -0.966566 (0.548014), N = 249 moving right - --- -0.644176 (0.619955), N = 195 moving right - --- -0.179721 (0.658512), N = 127 moving right - --- 0.0714304 (0.680636), N = 84 moving right - --- 1.34079 (0.591587), N = 27 moving right - - -- best stat: 0.680636, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 183 -------------- - -- N obs inbag: 276 -- N row inbag: 162 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 14 11 4 3 - - - -- linear combo weights (showing up to 5) - - 4.7569 0.1249 0.7346 0.4045 3.0905 - - - -- cutpoint (score) - --- -0.464582 (0.611001), N = 221 moving right - --- -0.0759936 (0.712351), N = 166 moving right - --- 0.0382627 (0.696434), N = 150 moving right - --- 0.65464 (0.736468), N = 77 moving right - --- 0.775232 (0.720727), N = 71 moving right - - -- best stat: 0.736468, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 7 3 12 1 - - - -- linear combo weights (showing up to 5) - - -0.3022 5.2551 4.0154 0.1280 0.3837 - - - -- cutpoint (score) - --- -0.991051 (0.498219), N = 271 moving right - --- -0.248752 (0.600668), N = 187 moving right - --- -0.0898826 (0.614475), N = 161 moving right - --- 0.11298 (0.654905), N = 116 moving right - --- 0.725372 (0.641714), N = 43 moving right - - -- best stat: 0.654905, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 17 13 1 10 - - - -- linear combo weights (showing up to 5) - - 0.0069 0.5464 0.4362 0.3374 -0.4829 - - - -- cutpoint (score) - --- 1.2676 (0.651211), N = 194 moving right - --- 1.54277 (0.656708), N = 156 moving right - --- 1.84065 (0.69971), N = 120 moving right - --- 2.01205 (0.704393), N = 100 moving right - --- 3.59618 (0.556259), N = 16 moving right - - -- best stat: 0.704393, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7101e-01 2.9292e-02 - 1.9800e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 184 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 7 13 16 9 - - - -- linear combo weights (showing up to 5) - - -0.2865 23.3447 0.2338 0.8336 0.3736 - - - -- cutpoint (score) - --- -1.01679 (0.600362), N = 221 moving right - --- -0.980914 (0.603191), N = 220 moving right - --- -0.811278 (0.629487), N = 188 moving right - --- -0.331931 (0.689616), N = 134 moving right - --- 2.19936 (0.571074), N = 12 moving right - - -- best stat: 0.689616, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 9 12 13 3 - - - -- linear combo weights (showing up to 5) - - 0.7576 0.3407 0.1220 0.2936 20.8467 - - - -- cutpoint (score) - --- -0.363181 (0.608316), N = 217 moving right - --- -0.30722 (0.627168), N = 206 moving right - --- -0.193349 (0.643099), N = 186 moving right - --- 0.525611 (0.642426), N = 76 moving right - --- 0.604462 (0.660421), N = 66 moving right - - -- best stat: 0.660421, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 3 10 1 8 - - - -- linear combo weights (showing up to 5) - - 12.1361 12.6535 -0.1866 0.2975 1.5512 - - - -- cutpoint (score) - --- -0.887989 (0.632548), N = 186 moving right - --- -0.0376083 (0.759276), N = 76 moving right - --- 0.786821 (0.707843), N = 49 moving right - --- 1.25092 (0.654183), N = 36 moving right - --- 2.39899 (0.637696), N = 25 moving right - - -- best stat: 0.759276, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - 5.4900e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.9800e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 185 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 187 -- max leaves: 94 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 7 16 9 15 - - - -- linear combo weights (showing up to 5) - - -0.6002 16.8764 0.5894 0.3905 0.0278 - - - -- cutpoint (score) - --- -1.18343 (0.522474), N = 252 moving right - --- -0.374425 (0.68101), N = 148 moving right - --- -0.296527 (0.692914), N = 142 moving right - --- -0.248129 (0.701239), N = 135 moving right - --- 0.705533 (0.739008), N = 51 moving right - - -- best stat: 0.739008, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 2 11 13 0 - - - -- linear combo weights (showing up to 5) - - 0.0113 -0.2729 0.8593 0.2126 -0.0607 - - - -- cutpoint (score) - --- -0.296284 (0.670861), N = 103 moving right - --- -0.157789 (0.67479), N = 83 moving right - --- 0.0997298 (0.654607), N = 63 moving right - --- 0.10208 (0.647989), N = 62 moving right - --- 0.963453 (0.548386), N = 18 moving right - - -- best stat: 0.67479, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 16 14 3 13 - - - -- linear combo weights (showing up to 5) - - 0.5078 0.5027 0.2324 6.6366 0.2605 - - - -- cutpoint (score) - --- -1.34636 (0.512091), N = 267 moving right - --- -0.911106 (0.564102), N = 241 moving right - --- -0.613231 (0.666955), N = 173 moving right - --- -0.516905 (0.693405), N = 162 moving right - --- -0.430229 (0.702011), N = 151 moving right - - -- best stat: 0.702011, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 186 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 187 -- max leaves: 94 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 17 16 8 6 - - - -- linear combo weights (showing up to 5) - - -0.1055 0.6444 0.7120 1.4063 -0.1363 - - - -- cutpoint (score) - --- 0.0356565 (0.559759), N = 246 moving right - --- 0.715237 (0.68472), N = 176 moving right - --- 0.834436 (0.706936), N = 166 moving right - --- 1.29342 (0.771071), N = 132 moving right - --- 1.49194 (0.781623), N = 120 moving right - - -- best stat: 0.781623, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 10 9 2 17 - - - -- linear combo weights (showing up to 5) - - 1.7535 -0.8006 -0.4800 -1.4180 0.6643 - - - -- cutpoint (score) - --- -1.01112 (0.617608), N = 219 moving right - --- -0.529572 (0.675945), N = 188 moving right - --- -0.201025 (0.72453), N = 155 moving right - --- 0.993029 (0.789399), N = 86 moving right - --- 3.23783 (0.655596), N = 25 moving right - - -- best stat: 0.789399, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 0 15 11 3 - - - -- linear combo weights (showing up to 5) - - 0.3368 0.4143 -0.2061 0.9626 7.6390 - - - -- cutpoint (score) - --- -0.0334885 (0.539143), N = 259 moving right - --- 0.41704 (0.632603), N = 210 moving right - --- 0.697622 (0.688652), N = 172 moving right - --- 1.16764 (0.75201), N = 119 moving right - --- 1.17728 (0.760786), N = 115 moving right - - -- best stat: 0.760786, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 187 -------------- - -- N obs inbag: 276 -- N row inbag: 188 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 4 7 1 3 - - - -- linear combo weights (showing up to 5) - - -0.4850 0.4159 4.0048 0.3801 3.7213 - - - -- cutpoint (score) - --- -1.01033 (0.503709), N = 267 moving right - --- -0.509528 (0.573184), N = 225 moving right - --- 0.0684178 (0.658824), N = 157 moving right - --- 0.686812 (0.684693), N = 69 moving right - --- 9.40673 (0.529633), N = 5 moving right - - -- best stat: 0.684693, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 9 7 4 0 - - - -- linear combo weights (showing up to 5) - - 1.1910 0.1002 4.3714 0.0936 -0.3135 - - - -- cutpoint (score) - --- -1.01349 (0.595549), N = 226 moving right - --- -0.462575 (0.664706), N = 148 moving right - --- -0.412501 (0.664088), N = 144 moving right - --- 0.547347 (0.677369), N = 58 moving right - --- 0.923903 (0.676132), N = 50 moving right - - -- best stat: 0.677369, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 12 17 15 0 - - - -- linear combo weights (showing up to 5) - - 0.2329 0.1331 0.6074 0.1218 -0.4602 - - - -- cutpoint (score) - --- 0.787831 (0.561945), N = 248 moving right - --- 1.45924 (0.62758), N = 174 moving right - --- 1.73706 (0.634698), N = 124 moving right - --- 1.92237 (0.615948), N = 89 moving right - --- 2.37508 (0.579122), N = 26 moving right - - -- best stat: 0.634698, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 188 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 17 9 5 7 - - - -- linear combo weights (showing up to 5) - - -0.8917 0.5659 0.6150 -0.0832 4.7983 - - - -- cutpoint (score) - --- 0.0796516 (0.608396), N = 220 moving right - --- 0.205381 (0.611847), N = 214 moving right - --- 0.684862 (0.713519), N = 147 moving right - --- 1.75222 (0.677315), N = 63 moving right - --- 2.49222 (0.611275), N = 28 moving right - - -- best stat: 0.713519, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 4 10 8 0 - - - -- linear combo weights (showing up to 5) - - 0.1095 0.3905 -0.6382 1.7128 -0.0568 - - - -- cutpoint (score) - --- -1.91742 (0.507316), N = 269 moving right - --- -1.88413 (0.515696), N = 265 moving right - --- -0.184465 (0.748718), N = 115 moving right - --- 0.204779 (0.730419), N = 92 moving right - --- 0.497979 (0.730794), N = 77 moving right - - -- best stat: 0.748718, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 5 17 15 14 - - - -- linear combo weights (showing up to 5) - - 5.3405 0.2958 0.4958 -0.2787 0.3765 - - - -- cutpoint (score) - --- 0.0567396 (0.506566), N = 271 moving right - --- 0.886118 (0.607233), N = 218 moving right - --- 1.60011 (0.67203), N = 129 moving right - --- 1.97548 (0.653356), N = 75 moving right - --- 3.35452 (0.571541), N = 11 moving right - - -- best stat: 0.67203, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 189 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 15 9 11 16 - - - -- linear combo weights (showing up to 5) - - 3.7025 -0.2689 0.4805 0.7995 0.5955 - - - -- cutpoint (score) - --- -1.5741 (0.508961), N = 269 moving right - --- -1.14067 (0.570264), N = 238 moving right - --- -0.76394 (0.663026), N = 191 moving right - --- -0.753024 (0.672814), N = 187 moving right - --- -0.508022 (0.72131), N = 165 moving right - - -- best stat: 0.72131, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 14 10 3 15 - - - -- linear combo weights (showing up to 5) - - 0.0066 0.1601 -0.6181 6.1522 -0.2843 - - - -- cutpoint (score) - --- -0.451475 (0.618279), N = 205 moving right - --- -0.371643 (0.617587), N = 194 moving right - --- -0.263753 (0.633201), N = 178 moving right - --- -0.119597 (0.648989), N = 159 moving right - --- 0.109867 (0.665103), N = 114 moving right - - -- best stat: 0.665103, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 4 12 3 17 - - - -- linear combo weights (showing up to 5) - - 0.3453 0.2198 0.0311 6.5962 0.5720 - - - -- cutpoint (score) - --- 1.70404 (0.682659), N = 174 moving right - --- 2.39724 (0.722329), N = 89 moving right - --- 2.63012 (0.658161), N = 55 moving right - --- 2.78622 (0.647162), N = 40 moving right - --- 9.22451 (0.56861), N = 14 moving right - - -- best stat: 0.722329, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 190 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 12 1 11 15 - - - -- linear combo weights (showing up to 5) - - 0.2152 -0.2381 0.6228 1.5343 -0.1109 - - - -- cutpoint (score) - --- -1.88017 (0.531017), N = 259 moving right - --- -0.639521 (0.682673), N = 169 moving right - --- -0.0390775 (0.740832), N = 104 moving right - --- 0.496092 (0.714558), N = 74 moving right - --- 2.90201 (0.575478), N = 15 moving right - - -- best stat: 0.740832, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 16 5 0 6 - - - -- linear combo weights (showing up to 5) - - 0.6400 0.8878 1.4374 -0.0474 -0.5761 - - - -- cutpoint (score) - --- -0.792794 (0.552486), N = 222 moving right - --- -0.387575 (0.630801), N = 175 moving right - --- 0.138505 (0.662686), N = 111 moving right - --- 0.567783 (0.694847), N = 85 moving right - --- 3.27221 (0.551639), N = 8 moving right - - -- best stat: 0.694847, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 6 2 3 14 - - - -- linear combo weights (showing up to 5) - - -0.6178 -0.1350 -1.2560 8.7686 0.1477 - - - -- cutpoint (score) - --- -2.02166 (0.526846), N = 255 moving right - --- -1.99963 (0.531462), N = 252 moving right - --- -1.53606 (0.601859), N = 196 moving right - --- -1.36143 (0.642107), N = 164 moving right - --- -1.29015 (0.661691), N = 155 moving right - - -- best stat: 0.661691, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 191 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 3 2 8 9 - - - -- linear combo weights (showing up to 5) - - -0.4418 9.9634 -1.0318 1.2598 0.0346 - - - -- cutpoint (score) - --- -2.12992 (0.566107), N = 240 moving right - --- -1.7794 (0.659268), N = 195 moving right - --- -1.72594 (0.671165), N = 188 moving right - --- -1.23399 (0.746097), N = 120 moving right - --- -0.98082 (0.737854), N = 101 moving right - - -- best stat: 0.746097, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 9 8 6 13 - - - -- linear combo weights (showing up to 5) - - -0.6360 -0.2438 1.5000 -0.3140 0.2789 - - - -- cutpoint (score) - --- -1.46513 (0.647621), N = 189 moving right - --- -1.14322 (0.708205), N = 137 moving right - --- -1.03545 (0.731044), N = 128 moving right - --- 0.132143 (0.618429), N = 41 moving right - --- 0.755014 (0.618304), N = 28 moving right - - -- best stat: 0.731044, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 3 17 4 0 - - - -- linear combo weights (showing up to 5) - - 1.0798 11.1390 0.2057 0.4964 -0.1796 - - - -- cutpoint (score) - --- -0.331962 (0.604082), N = 223 moving right - --- 0.786098 (0.740345), N = 114 moving right - --- 0.890069 (0.739266), N = 101 moving right - --- 1.09477 (0.72604), N = 79 moving right - --- 1.31371 (0.724192), N = 69 moving right - - -- best stat: 0.740345, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 192 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 7 10 12 0 - - - -- linear combo weights (showing up to 5) - - 0.3974 7.2607 -0.3935 0.1439 0.0242 - - - -- cutpoint (score) - --- -0.908545 (0.511307), N = 262 moving right - --- -0.68364 (0.543464), N = 248 moving right - --- -0.276752 (0.60907), N = 183 moving right - --- -0.103811 (0.624153), N = 168 moving right - --- 8.53959 (0.552904), N = 8 moving right - - -- best stat: 0.624153, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 10 6 12 8 - - - -- linear combo weights (showing up to 5) - - -0.1160 -0.4042 0.6621 0.1519 1.5422 - - - -- cutpoint (score) - --- -1.36146 (0.511697), N = 261 moving right - --- -1.29211 (0.531254), N = 251 moving right - --- -0.942076 (0.606793), N = 212 moving right - --- -0.0981908 (0.718367), N = 104 moving right - --- 0.258674 (0.728176), N = 76 moving right - - -- best stat: 0.728176, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 0 12 13 17 - - - -- linear combo weights (showing up to 5) - - 0.1678 -0.1130 0.0942 0.2371 0.6874 - - - -- cutpoint (score) - --- 1.3439 (0.627457), N = 215 moving right - --- 1.62588 (0.63347), N = 194 moving right - --- 2.16997 (0.649333), N = 129 moving right - --- 2.27955 (0.6567), N = 117 moving right - --- 2.62598 (0.610712), N = 56 moving right - - -- best stat: 0.6567, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.7826e-01 2.1858e-02 - 1.3100e+02 9.7464e-01 2.5562e-02 - 1.4000e+02 9.6377e-01 3.6714e-02 - - ------------- Growing tree 193 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 7 9 6 1 - - - -- linear combo weights (showing up to 5) - - -0.5291 8.4108 0.4884 0.6010 0.1680 - - - -- cutpoint (score) - --- -1.03755 (0.527365), N = 263 moving right - --- -0.451373 (0.625147), N = 211 moving right - --- -0.325273 (0.663884), N = 184 moving right - --- -0.293091 (0.671757), N = 179 moving right - --- 0.138762 (0.708934), N = 108 moving right - - -- best stat: 0.708934, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 5 9 12 7 - - - -- linear combo weights (showing up to 5) - - 0.2279 0.6034 0.5361 0.1083 8.4433 - - - -- cutpoint (score) - --- -0.411729 (0.554577), N = 250 moving right - --- -0.239709 (0.603716), N = 214 moving right - --- 0.585466 (0.638269), N = 62 moving right - --- 0.865469 (0.623417), N = 35 moving right - --- 1.03034 (0.62549), N = 30 moving right - - -- best stat: 0.638269, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 7 17 2 14 - - - -- linear combo weights (showing up to 5) - - 0.0358 8.7394 0.5914 0.2844 0.3725 - - - -- cutpoint (score) - --- 1.78727 (0.64753), N = 189 moving right - --- 2.20963 (0.67904), N = 126 moving right - --- 2.34947 (0.65506), N = 99 moving right - --- 2.38552 (0.652987), N = 90 moving right - --- 11.0678 (0.565892), N = 10 moving right - - -- best stat: 0.67904, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 194 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 259 -- max leaves: 130 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 16 10 8 5 - - - -- linear combo weights (showing up to 5) - - -0.3143 0.4838 -0.5697 1.3727 0.1034 - - - -- cutpoint (score) - --- -1.78161 (0.555018), N = 246 moving right - --- -1.62015 (0.590866), N = 228 moving right - --- -1.4395 (0.631341), N = 210 moving right - --- -1.22833 (0.672129), N = 183 moving right - --- -0.996019 (0.708977), N = 165 moving right - - -- best stat: 0.708977, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 2 15 16 3 - - - -- linear combo weights (showing up to 5) - - 0.4284 -0.1893 0.1067 0.7524 5.0856 - - - -- cutpoint (score) - --- -0.809132 (0.560898), N = 233 moving right - --- -0.697717 (0.589475), N = 208 moving right - --- -0.65417 (0.580851), N = 203 moving right - --- -0.233978 (0.651333), N = 133 moving right - --- 0.25421 (0.694806), N = 72 moving right - - -- best stat: 0.694806, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 15 4 6 1 - - - -- linear combo weights (showing up to 5) - - 0.4840 0.1141 0.8243 1.3538 0.1864 - - - -- cutpoint (score) - --- 0.825763 (0.531693), N = 256 moving right - --- 1.10557 (0.587279), N = 228 moving right - --- 1.22703 (0.61174), N = 217 moving right - --- 1.64605 (0.689063), N = 164 moving right - --- 2.70865 (0.672227), N = 61 moving right - - -- best stat: 0.689063, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 4.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 195 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 14 9 2 6 - - - -- linear combo weights (showing up to 5) - - 1.0147 0.1484 0.0501 0.0372 0.8722 - - - -- cutpoint (score) - --- -0.752214 (0.598165), N = 226 moving right - --- 0.0423713 (0.710512), N = 112 moving right - --- 0.114508 (0.71931), N = 105 moving right - --- 0.118721 (0.722329), N = 104 moving right - --- 0.198883 (0.736088), N = 89 moving right - - -- best stat: 0.736088, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 10 12 2 15 - - - -- linear combo weights (showing up to 5) - - 0.6217 -0.7712 0.1699 -0.7279 -0.0481 - - - -- cutpoint (score) - --- 0.0365224 (0.587939), N = 232 moving right - --- 0.165975 (0.598961), N = 229 moving right - --- 1.44563 (0.693897), N = 106 moving right - --- 1.48753 (0.674498), N = 103 moving right - --- 2.66805 (0.634623), N = 33 moving right - - -- best stat: 0.693897, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 15 5 16 0 - - - -- linear combo weights (showing up to 5) - - 1.9724 -0.2627 0.4837 0.4644 -0.1397 - - - -- cutpoint (score) - --- -1.2278 (0.611621), N = 208 moving right - --- 0.433771 (0.757406), N = 81 moving right - --- 0.578564 (0.758459), N = 71 moving right - --- 0.797882 (0.742687), N = 60 moving right - --- 3.24577 (0.628422), N = 25 moving right - - -- best stat: 0.758459, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 196 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 2 11 7 9 - - - -- linear combo weights (showing up to 5) - - 0.2621 0.1736 1.2707 15.6669 0.0222 - - - -- cutpoint (score) - --- -0.159896 (0.723246), N = 121 moving right - --- -0.0313106 (0.720031), N = 107 moving right - --- 0.06203 (0.715805), N = 97 moving right - --- 0.240596 (0.726729), N = 85 moving right - --- 1.54549 (0.706406), N = 44 moving right - - -- best stat: 0.726729, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 13 15 0 3 - - - -- linear combo weights (showing up to 5) - - 0.5450 0.5516 -0.0665 -0.1262 7.0966 - - - -- cutpoint (score) - --- 1.24053 (0.669511), N = 179 moving right - --- 1.70086 (0.733449), N = 128 moving right - --- 1.7953 (0.700697), N = 109 moving right - --- 2.29561 (0.681569), N = 55 moving right - --- 3.49777 (0.622619), N = 23 moving right - - -- best stat: 0.733449, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 17 1 2 14 - - - -- linear combo weights (showing up to 5) - - 0.5511 0.5543 0.5239 -0.7377 0.2618 - - - -- cutpoint (score) - --- 0.467808 (0.675798), N = 187 moving right - --- 0.526773 (0.6853), N = 177 moving right - --- 2.18299 (0.645972), N = 47 moving right - --- 2.30544 (0.621424), N = 37 moving right - --- 2.59439 (0.549695), N = 15 moving right - - -- best stat: 0.6853, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 5.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 197 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 15 5 2 17 - - - -- linear combo weights (showing up to 5) - - -0.6978 -0.0062 0.7131 -0.7498 0.4209 - - - -- cutpoint (score) - --- 0.243938 (0.61106), N = 187 moving right - --- 0.263 (0.615414), N = 184 moving right - --- 1.28831 (0.683489), N = 78 moving right - --- 1.47773 (0.655658), N = 61 moving right - --- 3.24696 (0.550683), N = 8 moving right - - -- best stat: 0.683489, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 4 5 13 17 - - - -- linear combo weights (showing up to 5) - - 2.3535 -0.0127 0.5344 0.5022 0.5375 - - - -- cutpoint (score) - --- 1.10149 (0.61183), N = 221 moving right - --- 1.90623 (0.687025), N = 122 moving right - --- 1.99605 (0.691331), N = 108 moving right - --- 2.27283 (0.722073), N = 69 moving right - --- 3.00109 (0.580703), N = 21 moving right - - -- best stat: 0.722073, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 4 5 8 6 - - - -- linear combo weights (showing up to 5) - - -0.1275 -0.0174 0.7395 1.8088 2.7973 - - - -- cutpoint (score) - --- -0.678372 (0.695083), N = 155 moving right - --- -0.656442 (0.700712), N = 150 moving right - --- 0.746473 (0.744732), N = 67 moving right - --- 0.949179 (0.711921), N = 51 moving right - --- 4.92281 (0.576686), N = 14 moving right - - -- best stat: 0.744732, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 198 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 1 6 3 9 - - - -- linear combo weights (showing up to 5) - - 1.0207 0.3511 0.1813 3.1264 0.0746 - - - -- cutpoint (score) - --- -0.943858 (0.58778), N = 236 moving right - --- -0.764161 (0.612567), N = 218 moving right - --- -0.487185 (0.687285), N = 156 moving right - --- -0.364688 (0.703825), N = 137 moving right - --- -0.233416 (0.72723), N = 118 moving right - - -- best stat: 0.72723, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 1 3 11 10 - - - -- linear combo weights (showing up to 5) - - 0.5295 0.3032 2.4784 0.9710 -0.3944 - - - -- cutpoint (score) - --- -1.11087 (0.560942), N = 241 moving right - --- -1.08785 (0.568811), N = 238 moving right - --- 0.698954 (0.71847), N = 65 moving right - --- 0.878344 (0.730462), N = 58 moving right - --- 4.26506 (0.539365), N = 7 moving right - - -- best stat: 0.730462, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 15 6 1 12 - - - -- linear combo weights (showing up to 5) - - 0.2479 -0.1642 -0.0729 0.3993 0.2548 - - - -- cutpoint (score) - --- -0.286407 (0.607485), N = 173 moving right - --- -0.15333 (0.61814), N = 149 moving right - --- 0.477032 (0.578084), N = 51 moving right - --- 0.682391 (0.527729), N = 27 moving right - --- 0.920609 (0.524408), N = 18 moving right - - -- best stat: 0.61814, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 - 1.8600e+02 9.6014e-01 4.0500e-02 - - ------------- Growing tree 199 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 4 10 9 3 - - - -- linear combo weights (showing up to 5) - - 0.3124 -0.1068 -0.6326 0.3756 3.7579 - - - -- cutpoint (score) - --- 0.18076 (0.598357), N = 216 moving right - --- 0.368617 (0.623947), N = 192 moving right - --- 1.1615 (0.694878), N = 91 moving right - --- 1.65726 (0.698203), N = 54 moving right - --- 6.05531 (0.551624), N = 12 moving right - - -- best stat: 0.698203, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 2 9 17 6 - - - -- linear combo weights (showing up to 5) - - 1.2831 -0.6894 0.2510 0.4525 0.4963 - - - -- cutpoint (score) - --- 0.519304 (0.627658), N = 210 moving right - --- 1.01672 (0.65516), N = 145 moving right - --- 1.30808 (0.664476), N = 108 moving right - --- 1.37377 (0.663317), N = 104 moving right - --- 2.24426 (0.600754), N = 48 moving right - - -- best stat: 0.664476, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 17 14 4 1 - - - -- linear combo weights (showing up to 5) - - 0.2928 0.4591 0.3447 0.1509 0.4584 - - - -- cutpoint (score) - --- 0.739167 (0.606745), N = 217 moving right - --- 0.898164 (0.643255), N = 191 moving right - --- 1.52055 (0.69453), N = 128 moving right - --- 2.4975 (0.620468), N = 36 moving right - --- 2.62624 (0.583089), N = 29 moving right - - -- best stat: 0.69453, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.7000e+01 9.7826e-01 2.1886e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6377e-01 3.6756e-02 - - ------------- Growing tree 200 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 13 17 4 12 - - - -- linear combo weights (showing up to 5) - - 1.0096 0.1551 0.3519 0.2511 -0.0626 - - - -- cutpoint (score) - --- 0.750039 (0.659777), N = 171 moving right - --- 1.02333 (0.676868), N = 135 moving right - --- 1.03681 (0.689246), N = 128 moving right - --- 1.047 (0.691479), N = 126 moving right - --- 1.62604 (0.690457), N = 76 moving right - - -- best stat: 0.691479, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 17 14 7 4 - - - -- linear combo weights (showing up to 5) - - -0.3116 0.5896 0.5729 6.0051 -0.1795 - - - -- cutpoint (score) - --- 0.869329 (0.58973), N = 230 moving right - --- 1.24673 (0.655746), N = 185 moving right - --- 1.31455 (0.657677), N = 174 moving right - --- 2.15278 (0.617742), N = 43 moving right - --- 2.64378 (0.59062), N = 23 moving right - - -- best stat: 0.657677, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 1 7 12 15 - - - -- linear combo weights (showing up to 5) - - 0.5162 0.5431 6.0605 -0.0358 -0.2303 - - - -- cutpoint (score) - --- -0.990505 (0.540597), N = 248 moving right - --- 0.368932 (0.696116), N = 89 moving right - --- 0.547494 (0.668843), N = 71 moving right - --- 0.71302 (0.67331), N = 55 moving right - --- 6.93261 (0.541335), N = 6 moving right - - -- best stat: 0.696116, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 201 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 9 16 2 8 - - - -- linear combo weights (showing up to 5) - - 0.4575 -0.3666 0.1000 -0.0380 2.0206 - - - -- cutpoint (score) - --- -1.39208 (0.546534), N = 247 moving right - --- -0.50022 (0.758438), N = 125 moving right - --- -0.259975 (0.767553), N = 108 moving right - --- -0.0884426 (0.785761), N = 94 moving right - --- 1.11441 (0.677515), N = 48 moving right - - -- best stat: 0.785761, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 14 2 6 10 - - - -- linear combo weights (showing up to 5) - - 0.2518 0.5246 -0.4407 0.3713 -0.8722 - - - -- cutpoint (score) - --- -1.35441 (0.602491), N = 218 moving right - --- -0.742741 (0.663137), N = 158 moving right - --- -0.427312 (0.704879), N = 130 moving right - --- 0.555278 (0.656235), N = 57 moving right - --- 1.68333 (0.561793), N = 14 moving right - - -- best stat: 0.704879, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 10 1 4 15 - - - -- linear combo weights (showing up to 5) - - 0.4872 -0.8264 0.3545 0.4666 0.0114 - - - -- cutpoint (score) - --- 0.893831 (0.677577), N = 188 moving right - --- 1.51565 (0.718151), N = 138 moving right - --- 2.96159 (0.654883), N = 46 moving right - --- 3.36738 (0.612793), N = 31 moving right - --- 3.88988 (0.585368), N = 19 moving right - - -- best stat: 0.718151, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 202 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 12 11 2 4 - - - -- linear combo weights (showing up to 5) - - 0.1977 -0.2530 1.0335 0.2288 0.7143 - - - -- cutpoint (score) - --- -0.140171 (0.597851), N = 215 moving right - --- -0.0231413 (0.610126), N = 201 moving right - --- 0.57535 (0.67051), N = 115 moving right - --- 0.647585 (0.66281), N = 108 moving right - --- 3.19928 (0.521243), N = 7 moving right - - -- best stat: 0.67051, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 15 6 4 10 - - - -- linear combo weights (showing up to 5) - - 6.6410 0.1383 0.5818 0.4057 -0.4666 - - - -- cutpoint (score) - --- -0.129809 (0.600431), N = 201 moving right - --- 0.0688902 (0.65882), N = 161 moving right - --- 0.102241 (0.667365), N = 158 moving right - --- 0.613738 (0.690946), N = 86 moving right - --- 0.737855 (0.688286), N = 62 moving right - - -- best stat: 0.690946, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 13 17 3 1 - - - -- linear combo weights (showing up to 5) - - 0.5756 0.5575 0.2525 7.0079 0.4113 - - - -- cutpoint (score) - --- 0.242057 (0.663274), N = 186 moving right - --- 0.389485 (0.689798), N = 168 moving right - --- 0.942997 (0.74224), N = 118 moving right - --- 1.80128 (0.709469), N = 65 moving right - --- 2.21208 (0.656965), N = 41 moving right - - -- best stat: 0.74224, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 203 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 197 -- max leaves: 99 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 0 1 10 12 - - - -- linear combo weights (showing up to 5) - - 1.5541 -0.3757 0.4944 -0.7466 -0.0782 - - - -- cutpoint (score) - --- -1.55446 (0.608213), N = 212 moving right - --- -1.09793 (0.661774), N = 170 moving right - --- -1.08168 (0.666885), N = 168 moving right - --- -1.06288 (0.677392), N = 163 moving right - --- 0.62648 (0.729838), N = 58 moving right - - -- best stat: 0.729838, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 1 4 14 16 - - - -- linear combo weights (showing up to 5) - - -0.3057 0.5065 0.6508 0.2837 0.4734 - - - -- cutpoint (score) - --- -0.0859128 (0.637724), N = 156 moving right - --- 0.067173 (0.660987), N = 140 moving right - --- 0.120681 (0.671844), N = 136 moving right - --- 0.383117 (0.680581), N = 104 moving right - --- 0.893027 (0.657667), N = 65 moving right - - -- best stat: 0.680581, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 4 1 15 17 - - - -- linear combo weights (showing up to 5) - - 0.1871 0.0257 0.5620 -0.2027 0.6834 - - - -- cutpoint (score) - --- 1.28838 (0.612866), N = 197 moving right - --- 1.56384 (0.626431), N = 170 moving right - --- 2.21017 (0.676081), N = 93 moving right - --- 3.10021 (0.68163), N = 47 moving right - --- 3.27488 (0.656007), N = 37 moving right - - -- best stat: 0.68163, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.6739e-01 3.2995e-02 - - ------------- Growing tree 204 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 15 12 4 2 - - - -- linear combo weights (showing up to 5) - - 0.3776 -0.1139 0.0652 1.1169 -0.8156 - - - -- cutpoint (score) - --- -1.27649 (0.546292), N = 248 moving right - --- -1.17944 (0.570591), N = 235 moving right - --- 0.1418 (0.68629), N = 99 moving right - --- 0.255027 (0.687699), N = 86 moving right - --- 1.47443 (0.495283), N = 7 moving right - - -- best stat: 0.687699, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 8 5 10 16 - - - -- linear combo weights (showing up to 5) - - 4.0710 1.0319 0.2288 -0.5170 0.4490 - - - -- cutpoint (score) - --- -0.377005 (0.713857), N = 125 moving right - --- 0.134178 (0.745773), N = 88 moving right - --- 0.698107 (0.710488), N = 63 moving right - --- 0.861006 (0.685228), N = 58 moving right - --- 2.2162 (0.612227), N = 25 moving right - - -- best stat: 0.745773, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 7 5 17 0 - - - -- linear combo weights (showing up to 5) - - 0.4329 9.3997 0.3207 0.5945 -0.3738 - - - -- cutpoint (score) - --- 1.33899 (0.656906), N = 165 moving right - --- 1.34557 (0.661827), N = 163 moving right - --- 1.67235 (0.674528), N = 123 moving right - --- 2.43864 (0.641428), N = 53 moving right - --- 2.52451 (0.655967), N = 44 moving right - - -- best stat: 0.674528, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 3.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.7826e-01 2.1898e-02 - 1.9800e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 205 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 13 8 15 7 - - - -- linear combo weights (showing up to 5) - - 0.1842 -0.1336 1.5443 -0.1290 4.2633 - - - -- cutpoint (score) - --- -0.983749 (0.58519), N = 219 moving right - --- -0.76311 (0.643382), N = 188 moving right - --- -0.54759 (0.694876), N = 148 moving right - --- 3.71071 (0.637853), N = 29 moving right - --- 8.13264 (0.546048), N = 9 moving right - - -- best stat: 0.694876, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 12 11 10 9 - - - -- linear combo weights (showing up to 5) - - 0.9145 -0.1690 0.8079 -0.6967 0.2590 - - - -- cutpoint (score) - --- -0.104316 (0.692476), N = 129 moving right - --- 0.588852 (0.716074), N = 82 moving right - --- 1.3666 (0.649161), N = 41 moving right - --- 2.50542 (0.552412), N = 11 moving right - --- 2.68749 (0.522033), N = 5 moving right - - -- best stat: 0.716074, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 1 8 15 11 - - - -- linear combo weights (showing up to 5) - - 0.4487 0.4654 1.6084 -0.0409 0.2536 - - - -- cutpoint (score) - --- 0.383617 (0.688136), N = 178 moving right - --- 0.761836 (0.727383), N = 148 moving right - --- 1.12521 (0.754695), N = 124 moving right - --- 1.53407 (0.762289), N = 88 moving right - --- 1.70956 (0.75966), N = 79 moving right - - -- best stat: 0.762289, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.9800e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 206 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 17 7 16 2 - - - -- linear combo weights (showing up to 5) - - -0.3280 0.5114 7.7292 0.4163 -0.6050 - - - -- cutpoint (score) - --- 0.0156373 (0.542786), N = 257 moving right - --- 0.625584 (0.660349), N = 164 moving right - --- 0.666874 (0.65881), N = 155 moving right - --- 1.61654 (0.640033), N = 55 moving right - --- 1.78561 (0.621367), N = 41 moving right - - -- best stat: 0.660349, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 4 17 9 2 - - - -- linear combo weights (showing up to 5) - - -0.7397 0.1609 0.4368 0.8274 -0.7508 - - - -- cutpoint (score) - --- -0.777674 (0.534013), N = 255 moving right - --- -0.342951 (0.591619), N = 228 moving right - --- -0.0161181 (0.642716), N = 202 moving right - --- 1.13178 (0.693571), N = 93 moving right - --- 1.33292 (0.683567), N = 67 moving right - - -- best stat: 0.693571, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 17 1 0 13 - - - -- linear combo weights (showing up to 5) - - 1.1392 0.5667 0.3997 -0.1588 0.6211 - - - -- cutpoint (score) - --- 1.18273 (0.644936), N = 201 moving right - --- 1.63526 (0.665318), N = 155 moving right - --- 2.76906 (0.613693), N = 37 moving right - --- 2.77869 (0.60325), N = 35 moving right - --- 2.88014 (0.573238), N = 29 moving right - - -- best stat: 0.665318, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7101e-01 2.9292e-02 - 1.9800e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 207 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 5 7 1 16 - - - -- linear combo weights (showing up to 5) - - -0.0549 0.8295 9.7564 0.3801 0.5432 - - - -- cutpoint (score) - --- 0.44337 (0.711008), N = 98 moving right - --- 0.745228 (0.729075), N = 79 moving right - --- 0.821654 (0.702923), N = 67 moving right - --- 1.01226 (0.689511), N = 58 moving right - --- 1.07527 (0.693145), N = 55 moving right - - -- best stat: 0.729075, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 9 5 11 7 - - - -- linear combo weights (showing up to 5) - - 0.5276 0.1193 0.6278 0.5208 10.1147 - - - -- cutpoint (score) - --- 1.15086 (0.620305), N = 213 moving right - --- 1.16202 (0.621632), N = 212 moving right - --- 1.30569 (0.682651), N = 182 moving right - --- 1.36147 (0.687959), N = 180 moving right - --- 2.44012 (0.744427), N = 72 moving right - - -- best stat: 0.744427, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 0 4 1 2 - - - -- linear combo weights (showing up to 5) - - 0.6167 0.0531 0.3945 0.3865 -0.5349 - - - -- cutpoint (score) - --- 0.732613 (0.575167), N = 238 moving right - --- 1.00944 (0.604912), N = 218 moving right - --- 1.24825 (0.620468), N = 204 moving right - --- 1.37092 (0.642945), N = 178 moving right - --- 1.72925 (0.682692), N = 138 moving right - - -- best stat: 0.682692, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 2.1600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 208 -------------- - -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 2 8 15 7 - - - -- linear combo weights (showing up to 5) - - 0.1394 -0.4605 1.7013 -0.2407 10.7897 - - - -- cutpoint (score) - --- -1.76804 (0.531317), N = 263 moving right - --- -1.61069 (0.574371), N = 245 moving right - --- -1.43665 (0.615469), N = 216 moving right - --- -1.40853 (0.620739), N = 212 moving right - --- -1.30553 (0.653413), N = 193 moving right - - -- best stat: 0.653413, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 12 10 15 17 - - - -- linear combo weights (showing up to 5) - - 0.4901 0.1534 -0.7669 -0.1636 0.3689 - - - -- cutpoint (score) - --- -0.579081 (0.546487), N = 257 moving right - --- -0.124742 (0.575729), N = 242 moving right - --- 0.138362 (0.611078), N = 225 moving right - --- 0.705822 (0.668523), N = 168 moving right - --- 1.36254 (0.675968), N = 99 moving right - - -- best stat: 0.675968, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 1 7 6 4 - - - -- linear combo weights (showing up to 5) - - 4.1674 0.2273 13.2202 0.5556 1.1075 - - - -- cutpoint (score) - --- -0.00421829 (0.62978), N = 206 moving right - --- 0.0488311 (0.646587), N = 195 moving right - --- 1.03653 (0.67988), N = 97 moving right - --- 1.74459 (0.611118), N = 22 moving right - --- 14.4168 (0.54505), N = 7 moving right - - -- best stat: 0.67988, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 209 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 17 8 1 10 - - - -- linear combo weights (showing up to 5) - - 0.0217 0.5599 1.9114 0.3251 -0.4036 - - - -- cutpoint (score) - --- -0.301402 (0.551058), N = 240 moving right - --- 0.0454776 (0.592902), N = 216 moving right - --- 0.197268 (0.613195), N = 208 moving right - --- 0.71854 (0.68305), N = 161 moving right - --- 1.81758 (0.774694), N = 76 moving right - - -- best stat: 0.774694, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 12 8 15 11 - - - -- linear combo weights (showing up to 5) - - -0.0745 0.1152 2.0638 -0.1621 0.2242 - - - -- cutpoint (score) - --- -1.38801 (0.577855), N = 222 moving right - --- -1.254 (0.628155), N = 193 moving right - --- -1.18793 (0.663147), N = 177 moving right - --- -1.11339 (0.701565), N = 160 moving right - --- -0.802099 (0.733674), N = 128 moving right - - -- best stat: 0.733674, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 6 4 13 11 - - - -- linear combo weights (showing up to 5) - - -0.5138 0.8869 0.5003 0.2653 0.6764 - - - -- cutpoint (score) - --- -0.876898 (0.564262), N = 230 moving right - --- 0.218926 (0.714487), N = 116 moving right - --- 0.270634 (0.715571), N = 111 moving right - --- 0.581465 (0.731181), N = 88 moving right - --- 1.60448 (0.70098), N = 47 moving right - - -- best stat: 0.731181, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 210 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 15 10 5 6 - - - -- linear combo weights (showing up to 5) - - 6.9862 0.0814 -0.5420 0.5319 0.7944 - - - -- cutpoint (score) - --- -0.83945 (0.492607), N = 263 moving right - --- -0.216339 (0.601582), N = 209 moving right - --- -0.07433 (0.621837), N = 182 moving right - --- 0.15121 (0.651597), N = 133 moving right - --- 8.49657 (0.535207), N = 6 moving right - - -- best stat: 0.651597, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 2 10 9 16 - - - -- linear combo weights (showing up to 5) - - -0.0183 -0.9822 -0.7444 0.5875 0.3674 - - - -- cutpoint (score) - --- -2.39016 (0.509009), N = 255 moving right - --- -2.23329 (0.533654), N = 244 moving right - --- -1.3201 (0.646171), N = 177 moving right - --- -1.29794 (0.661993), N = 170 moving right - --- 0.213633 (0.644721), N = 39 moving right - - -- best stat: 0.661993, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 1 16 4 17 - - - -- linear combo weights (showing up to 5) - - 0.1879 0.0951 0.2991 0.4593 0.4165 - - - -- cutpoint (score) - --- 0.870312 (0.603343), N = 210 moving right - --- 0.87747 (0.595245), N = 207 moving right - --- 0.933602 (0.613594), N = 194 moving right - --- 1.45661 (0.68173), N = 142 moving right - --- 2.4179 (0.587665), N = 31 moving right - - -- best stat: 0.68173, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8188e-01 1.8196e-02 - 7.7000e+01 9.7464e-01 2.5576e-02 - 1.1000e+02 9.6377e-01 3.6728e-02 - 1.3100e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 211 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 2 16 14 17 - - - -- linear combo weights (showing up to 5) - - 0.2516 -0.6735 0.2618 0.4665 0.5126 - - - -- cutpoint (score) - --- 0.500018 (0.644959), N = 190 moving right - --- 0.714804 (0.657679), N = 156 moving right - --- 1.56466 (0.657721), N = 58 moving right - --- 1.99586 (0.628492), N = 38 moving right - --- 2.0435 (0.61609), N = 33 moving right - - -- best stat: 0.657721, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 12 1 9 2 - - - -- linear combo weights (showing up to 5) - - 0.2132 0.0373 0.4681 1.0053 -0.7748 - - - -- cutpoint (score) - --- -1.68444 (0.553653), N = 237 moving right - --- -1.4585 (0.580025), N = 206 moving right - --- -0.836663 (0.633254), N = 113 moving right - --- -0.590967 (0.667584), N = 87 moving right - --- 0.47223 (0.581929), N = 29 moving right - - -- best stat: 0.667584, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 11 6 12 4 - - - -- linear combo weights (showing up to 5) - - 8.9814 1.0693 0.8413 -0.1222 0.3126 - - - -- cutpoint (score) - --- -0.456527 (0.657552), N = 195 moving right - --- -0.454968 (0.661933), N = 193 moving right - --- 0.262493 (0.74164), N = 98 moving right - --- 0.900763 (0.717131), N = 64 moving right - --- 1.97781 (0.67169), N = 38 moving right - - -- best stat: 0.74164, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 212 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 6 0 3 17 - - - -- linear combo weights (showing up to 5) - - 0.2596 0.4295 0.2250 7.4128 0.1941 - - - -- cutpoint (score) - --- 0.476629 (0.580029), N = 209 moving right - --- 0.707192 (0.658122), N = 133 moving right - --- 0.73247 (0.660373), N = 118 moving right - --- 0.77284 (0.677072), N = 105 moving right - --- 8.15496 (0.605167), N = 19 moving right - - -- best stat: 0.677072, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 13 0 10 7 - - - -- linear combo weights (showing up to 5) - - 0.8965 0.1122 -0.2488 -0.5126 4.3231 - - - -- cutpoint (score) - --- -1.33964 (0.562992), N = 246 moving right - --- -1.2779 (0.584215), N = 237 moving right - --- -0.624826 (0.670253), N = 171 moving right - --- 0.743665 (0.725683), N = 49 moving right - --- 5.94466 (0.563105), N = 10 moving right - - -- best stat: 0.725683, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 14 9 5 2 - - - -- linear combo weights (showing up to 5) - - 0.3866 0.4418 0.4187 0.8620 -0.9014 - - - -- cutpoint (score) - --- -0.16574 (0.626862), N = 213 moving right - --- 0.854656 (0.706779), N = 108 moving right - --- 0.911222 (0.708872), N = 101 moving right - --- 1.11861 (0.626885), N = 72 moving right - --- 1.20865 (0.622586), N = 59 moving right - - -- best stat: 0.708872, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 213 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 4 5 6 14 - - - -- linear combo weights (showing up to 5) - - 0.5636 0.6511 1.2429 0.6246 0.5073 - - - -- cutpoint (score) - --- -0.512806 (0.570277), N = 238 moving right - --- 0.0230181 (0.636604), N = 198 moving right - --- 0.451029 (0.681297), N = 168 moving right - --- 0.564947 (0.700485), N = 146 moving right - --- 1.09739 (0.718651), N = 114 moving right - - -- best stat: 0.718651, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 0 16 3 17 - - - -- linear combo weights (showing up to 5) - - 1.1802 -0.2447 0.3274 4.3407 0.5319 - - - -- cutpoint (score) - --- 0.789272 (0.663291), N = 188 moving right - --- 1.62669 (0.75809), N = 99 moving right - --- 2.25939 (0.737037), N = 57 moving right - --- 6.75322 (0.585977), N = 18 moving right - --- 9.80823 (0.533625), N = 5 moving right - - -- best stat: 0.75809, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 16 0 2 10 - - - -- linear combo weights (showing up to 5) - - 0.2144 0.8059 -0.1592 -0.5324 -0.7404 - - - -- cutpoint (score) - --- -1.63065 (0.577455), N = 222 moving right - --- -1.44796 (0.613867), N = 200 moving right - --- -0.311274 (0.713157), N = 98 moving right - --- 0.179251 (0.71019), N = 64 moving right - --- 1.05659 (0.620644), N = 35 moving right - - -- best stat: 0.713157, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.7464e-01 2.5522e-02 - 7.7000e+01 9.7101e-01 2.9239e-02 - 1.1000e+02 9.5652e-01 4.4164e-02 - 1.3100e+02 9.4928e-01 5.1740e-02 - - ------------- Growing tree 214 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 10 14 12 16 - - - -- linear combo weights (showing up to 5) - - 0.3070 -0.5746 0.5080 0.0130 0.5219 - - - -- cutpoint (score) - --- -1.47977 (0.522768), N = 265 moving right - --- -1.29371 (0.542735), N = 256 moving right - --- -0.830804 (0.599594), N = 216 moving right - --- -0.391698 (0.656717), N = 162 moving right - --- 0.601776 (0.673539), N = 67 moving right - - -- best stat: 0.673539, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 2 11 12 7 - - - -- linear combo weights (showing up to 5) - - 0.0047 -0.6892 0.3685 -0.0084 9.3504 - - - -- cutpoint (score) - --- -1.01667 (0.533847), N = 256 moving right - --- -0.96712 (0.569988), N = 236 moving right - --- -0.887357 (0.667208), N = 179 moving right - --- -0.72871 (0.734659), N = 117 moving right - --- 0.456252 (0.61388), N = 30 moving right - - -- best stat: 0.734659, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 0 10 14 8 - - - -- linear combo weights (showing up to 5) - - 0.2556 -0.1309 -0.4359 -0.1281 1.8532 - - - -- cutpoint (score) - --- -1.35307 (0.626258), N = 212 moving right - --- -1.12502 (0.682325), N = 180 moving right - --- -0.796117 (0.751116), N = 144 moving right - --- -0.607284 (0.762378), N = 118 moving right - --- 0.395416 (0.719399), N = 75 moving right - - -- best stat: 0.762378, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.7826e-01 2.1899e-02 - 1.1000e+02 9.6739e-01 3.3010e-02 - 1.4000e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 215 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 17 12 11 13 - - - -- linear combo weights (showing up to 5) - - -0.0288 0.5399 -0.1258 1.1276 0.2397 - - - -- cutpoint (score) - --- 0.445349 (0.587666), N = 232 moving right - --- 0.591804 (0.602476), N = 220 moving right - --- 0.707712 (0.62711), N = 207 moving right - --- 1.57713 (0.714714), N = 119 moving right - --- 1.70095 (0.708115), N = 107 moving right - - -- best stat: 0.714714, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 17 15 5 14 - - - -- linear combo weights (showing up to 5) - - -0.9964 0.7064 0.0315 0.4767 0.5450 - - - -- cutpoint (score) - --- 0.669732 (0.612573), N = 220 moving right - --- 0.995113 (0.665529), N = 181 moving right - --- 1.50546 (0.705182), N = 129 moving right - --- 1.8326 (0.702501), N = 91 moving right - --- 2.11301 (0.679563), N = 69 moving right - - -- best stat: 0.705182, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 12 16 11 10 - - - -- linear combo weights (showing up to 5) - - 7.9961 -0.0826 0.2152 0.9832 -0.4797 - - - -- cutpoint (score) - --- -1.23288 (0.53603), N = 249 moving right - --- -0.674387 (0.643135), N = 186 moving right - --- -0.0724041 (0.749214), N = 109 moving right - --- 0.0843242 (0.740877), N = 95 moving right - --- 0.14937 (0.735263), N = 91 moving right - - -- best stat: 0.749214, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8188e-01 1.8169e-02 - 7.1000e+01 9.7464e-01 2.5549e-02 - 7.7000e+01 9.6377e-01 3.6701e-02 - 1.1000e+02 9.5652e-01 4.4220e-02 - - ------------- Growing tree 216 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 5 17 16 13 - - - -- linear combo weights (showing up to 5) - - -0.2069 0.3574 0.5106 0.5183 0.4363 - - - -- cutpoint (score) - --- 0.453296 (0.573594), N = 236 moving right - --- 0.881568 (0.63712), N = 194 moving right - --- 1.22331 (0.674727), N = 166 moving right - --- 2.16167 (0.671657), N = 76 moving right - --- 3.16863 (0.572698), N = 17 moving right - - -- best stat: 0.674727, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 8 5 0 4 - - - -- linear combo weights (showing up to 5) - - -0.1044 1.9954 0.2263 -0.2638 0.2014 - - - -- cutpoint (score) - --- -1.40599 (0.550576), N = 254 moving right - --- -1.31925 (0.564765), N = 248 moving right - --- -1.24792 (0.575749), N = 239 moving right - --- -1.11782 (0.627508), N = 213 moving right - --- -1.07446 (0.634602), N = 209 moving right - - -- best stat: 0.634602, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 2 9 6 4 - - - -- linear combo weights (showing up to 5) - - -0.1979 -0.4897 0.3378 0.3466 0.8093 - - - -- cutpoint (score) - --- -0.735417 (0.55418), N = 225 moving right - --- -0.520282 (0.615875), N = 191 moving right - --- -0.449244 (0.625753), N = 187 moving right - --- 0.412782 (0.580555), N = 56 moving right - --- 0.55738 (0.569571), N = 33 moving right - - -- best stat: 0.625753, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.7826e-01 2.1859e-02 - 7.1000e+01 9.7464e-01 2.5562e-02 - 7.7000e+01 9.6739e-01 3.2997e-02 - 1.1000e+02 9.6377e-01 3.6743e-02 - - ------------- Growing tree 217 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 8 9 12 1 - - - -- linear combo weights (showing up to 5) - - 7.3360 1.4958 -0.1287 -0.0062 0.3930 - - - -- cutpoint (score) - --- -0.766456 (0.622907), N = 195 moving right - --- -0.702986 (0.666284), N = 176 moving right - --- -0.365748 (0.76297), N = 124 moving right - --- 0.952223 (0.677388), N = 52 moving right - --- 1.11503 (0.6796), N = 51 moving right - - -- best stat: 0.76297, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 3 17 6 4 - - - -- linear combo weights (showing up to 5) - - 0.3706 5.5795 0.4631 0.2773 0.1763 - - - -- cutpoint (score) - --- 1.12526 (0.611065), N = 205 moving right - --- 1.30544 (0.635031), N = 178 moving right - --- 1.31855 (0.638327), N = 175 moving right - --- 1.84441 (0.72855), N = 106 moving right - --- 2.62093 (0.628199), N = 24 moving right - - -- best stat: 0.72855, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 8 11 15 10 - - - -- linear combo weights (showing up to 5) - - -0.4077 1.7027 0.4719 -0.2915 -0.4416 - - - -- cutpoint (score) - --- -1.90317 (0.51876), N = 258 moving right - --- -0.858592 (0.718227), N = 162 moving right - --- -0.762708 (0.699293), N = 154 moving right - --- -0.391728 (0.725145), N = 126 moving right - --- -0.236935 (0.732931), N = 114 moving right - - -- best stat: 0.732931, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.7464e-01 2.5575e-02 - 7.7000e+01 9.7101e-01 2.9293e-02 - 1.1000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 218 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 12 1 10 14 - - - -- linear combo weights (showing up to 5) - - 1.2042 -0.1499 0.2290 -0.7234 0.3029 - - - -- cutpoint (score) - --- -1.46908 (0.514307), N = 266 moving right - --- -1.01043 (0.546514), N = 250 moving right - --- -0.650587 (0.601948), N = 222 moving right - --- -0.603259 (0.621762), N = 214 moving right - --- 0.0600867 (0.693479), N = 171 moving right - - -- best stat: 0.693479, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 8 4 13 7 - - - -- linear combo weights (showing up to 5) - - 0.2817 0.9603 0.6888 0.1623 6.0498 - - - -- cutpoint (score) - --- -0.689918 (0.608213), N = 214 moving right - --- -0.232772 (0.702478), N = 161 moving right - --- 0.379508 (0.764297), N = 107 moving right - --- 0.692019 (0.746259), N = 84 moving right - --- 1.5211 (0.687413), N = 49 moving right - - -- best stat: 0.764297, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 0 7 11 4 - - - -- linear combo weights (showing up to 5) - - 8.1764 0.0361 1.8327 0.6981 0.8113 - - - -- cutpoint (score) - --- -0.436606 (0.608553), N = 220 moving right - --- 0.441249 (0.747017), N = 132 moving right - --- 0.441436 (0.750848), N = 131 moving right - --- 2.88173 (0.617332), N = 25 moving right - --- 3.27271 (0.622481), N = 23 moving right - - -- best stat: 0.750848, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8188e-01 1.8195e-02 - 1.3100e+02 9.7464e-01 2.5575e-02 - 1.7900e+02 9.7101e-01 2.9293e-02 - 1.8600e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 219 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 8 13 9 3 - - - -- linear combo weights (showing up to 5) - - -0.1174 1.7144 0.2007 -0.4017 8.2139 - - - -- cutpoint (score) - --- -0.814976 (0.684889), N = 162 moving right - --- -0.458114 (0.726789), N = 121 moving right - --- -0.13142 (0.751626), N = 94 moving right - --- -0.101127 (0.759994), N = 90 moving right - --- 9.01996 (0.580118), N = 15 moving right - - -- best stat: 0.759994, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 8 12 3 13 - - - -- linear combo weights (showing up to 5) - - -0.4974 1.4348 0.0937 7.7607 0.0260 - - - -- cutpoint (score) - --- -1.62927 (0.51248), N = 268 moving right - --- -1.09518 (0.586235), N = 228 moving right - --- -0.87241 (0.658047), N = 193 moving right - --- -0.619112 (0.705409), N = 155 moving right - --- -0.269123 (0.747207), N = 115 moving right - - -- best stat: 0.747207, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 9 15 14 8 - - - -- linear combo weights (showing up to 5) - - -0.8137 -0.5785 -0.2281 -0.0548 2.2166 - - - -- cutpoint (score) - --- 0.132944 (0.74107), N = 89 moving right - --- 0.779179 (0.706003), N = 57 moving right - --- 0.99471 (0.696673), N = 42 moving right - --- 2.35562 (0.660911), N = 32 moving right - --- 4.38645 (0.599288), N = 18 moving right - - -- best stat: 0.74107, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 220 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 2 17 9 8 - - - -- linear combo weights (showing up to 5) - - 0.1286 -0.2528 0.2803 -0.6202 2.6785 - - - -- cutpoint (score) - --- -0.423892 (0.707954), N = 162 moving right - --- -0.1779 (0.726725), N = 143 moving right - --- 1.03009 (0.709366), N = 64 moving right - --- 1.30211 (0.705369), N = 51 moving right - --- 3.7813 (0.612885), N = 23 moving right - - -- best stat: 0.726725, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 15 14 16 13 - - - -- linear combo weights (showing up to 5) - - 0.8484 0.0558 0.2123 0.8551 0.1941 - - - -- cutpoint (score) - --- -0.813659 (0.671923), N = 172 moving right - --- -0.029927 (0.752078), N = 102 moving right - --- 0.220135 (0.720819), N = 87 moving right - --- 0.856553 (0.685584), N = 60 moving right - --- 2.18306 (0.551044), N = 18 moving right - - -- best stat: 0.752078, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 7 17 15 5 - - - -- linear combo weights (showing up to 5) - - 0.4599 4.2995 0.5662 0.0932 0.0702 - - - -- cutpoint (score) - --- 0.779172 (0.543368), N = 254 moving right - --- 1.1937 (0.5965), N = 222 moving right - --- 1.9393 (0.696659), N = 116 moving right - --- 2.24827 (0.654524), N = 59 moving right - --- 6.32823 (0.55522), N = 8 moving right - - -- best stat: 0.696659, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.1000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 221 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 13 7 12 9 - - - -- linear combo weights (showing up to 5) - - 1.4221 0.1115 5.0268 0.0546 -0.4191 - - - -- cutpoint (score) - --- -0.690313 (0.63959), N = 189 moving right - --- -0.65561 (0.659443), N = 177 moving right - --- -0.420955 (0.734974), N = 131 moving right - --- 0.804956 (0.683439), N = 48 moving right - --- 6.49567 (0.536125), N = 8 moving right - - -- best stat: 0.734974, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 13 12 7 9 - - - -- linear combo weights (showing up to 5) - - 0.6264 0.3700 0.1292 6.9741 0.0388 - - - -- cutpoint (score) - --- -0.788806 (0.564939), N = 244 moving right - --- -0.0545157 (0.647145), N = 158 moving right - --- 0.53304 (0.651325), N = 73 moving right - --- 0.569122 (0.640508), N = 64 moving right - --- 0.994387 (0.604552), N = 32 moving right - - -- best stat: 0.651325, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 7 2 16 0 - - - -- linear combo weights (showing up to 5) - - 0.3325 6.4833 -0.5205 0.4565 -0.1239 - - - -- cutpoint (score) - --- -1.00002 (0.622155), N = 205 moving right - --- -0.792148 (0.688069), N = 164 moving right - --- -0.754228 (0.691913), N = 158 moving right - --- -0.560766 (0.694181), N = 139 moving right - --- 0.169681 (0.622361), N = 53 moving right - - -- best stat: 0.694181, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 222 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 8 0 5 1 - - - -- linear combo weights (showing up to 5) - - 0.8222 1.5344 0.2315 0.6202 0.5463 - - - -- cutpoint (score) - --- -1.45826 (0.558505), N = 236 moving right - --- -1.41117 (0.573649), N = 229 moving right - --- -1.15945 (0.626123), N = 204 moving right - --- 0.0521813 (0.768863), N = 101 moving right - --- 2.03432 (0.62839), N = 31 moving right - - -- best stat: 0.768863, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 11 9 0 15 - - - -- linear combo weights (showing up to 5) - - -0.0049 1.2564 0.2000 0.1880 -0.1755 - - - -- cutpoint (score) - --- -1.00201 (0.545959), N = 239 moving right - --- -0.820347 (0.601933), N = 210 moving right - --- -0.720547 (0.62029), N = 192 moving right - --- 1.49256 (0.627333), N = 32 moving right - --- 2.4215 (0.550339), N = 14 moving right - - -- best stat: 0.627333, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 0 17 4 15 - - - -- linear combo weights (showing up to 5) - - 1.9765 -0.1754 0.5320 -0.3989 -0.2939 - - - -- cutpoint (score) - --- -0.342072 (0.566847), N = 244 moving right - --- -0.182727 (0.590773), N = 231 moving right - --- 0.487433 (0.680049), N = 150 moving right - --- 0.707112 (0.71027), N = 130 moving right - --- 4.93347 (0.560992), N = 11 moving right - - -- best stat: 0.71027, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.7826e-01 2.1845e-02 - 1.7900e+02 9.7464e-01 2.5549e-02 - 1.9800e+02 9.7101e-01 2.9266e-02 - 2.1600e+02 9.6377e-01 3.6729e-02 - - ------------- Growing tree 223 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 4 13 1 15 - - - -- linear combo weights (showing up to 5) - - 1.4272 0.2495 0.3082 0.5497 -0.0048 - - - -- cutpoint (score) - --- -1.5058 (0.561635), N = 248 moving right - --- -1.44205 (0.564867), N = 247 moving right - --- -1.39071 (0.570365), N = 244 moving right - --- -0.959022 (0.633399), N = 206 moving right - --- 1.40606 (0.68802), N = 52 moving right - - -- best stat: 0.68802, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 10 7 16 9 - - - -- linear combo weights (showing up to 5) - - 6.2837 -0.3498 2.5402 0.2997 0.9933 - - - -- cutpoint (score) - --- -0.687125 (0.601576), N = 218 moving right - --- -0.649795 (0.616709), N = 210 moving right - --- -0.515173 (0.641222), N = 191 moving right - --- 0.144838 (0.718759), N = 82 moving right - --- 3.09495 (0.610227), N = 21 moving right - - -- best stat: 0.718759, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 14 6 3 17 - - - -- linear combo weights (showing up to 5) - - 1.8775 -0.2101 0.5933 7.2230 0.1327 - - - -- cutpoint (score) - --- -0.91368 (0.504315), N = 270 moving right - --- -0.567854 (0.625025), N = 210 moving right - --- -0.385082 (0.696217), N = 161 moving right - --- 0.103556 (0.752276), N = 105 moving right - --- 0.595701 (0.732217), N = 72 moving right - - -- best stat: 0.752276, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 224 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 0 11 13 2 - - - -- linear combo weights (showing up to 5) - - 11.0088 -0.1990 0.9509 0.3721 0.1622 - - - -- cutpoint (score) - --- -0.244576 (0.706409), N = 138 moving right - --- 0.634344 (0.721712), N = 80 moving right - --- 0.677533 (0.728817), N = 76 moving right - --- 0.694235 (0.731104), N = 71 moving right - --- 11.4533 (0.571536), N = 12 moving right - - -- best stat: 0.731104, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 17 5 14 10 - - - -- linear combo weights (showing up to 5) - - 1.5963 0.3880 0.5066 -0.1436 -0.4674 - - - -- cutpoint (score) - --- -0.0619709 (0.608862), N = 216 moving right - --- 0.583602 (0.686308), N = 153 moving right - --- 1.25679 (0.751468), N = 102 moving right - --- 1.59934 (0.726732), N = 72 moving right - --- 1.76053 (0.707967), N = 66 moving right - - -- best stat: 0.751468, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 10 6 16 13 - - - -- linear combo weights (showing up to 5) - - -0.6618 -0.7552 0.0691 0.7145 0.7197 - - - -- cutpoint (score) - --- -1.20449 (0.662746), N = 170 moving right - --- -0.110221 (0.711712), N = 92 moving right - --- -0.100797 (0.717866), N = 89 moving right - --- 0.614802 (0.704364), N = 52 moving right - --- 0.965121 (0.632545), N = 33 moving right - - -- best stat: 0.717866, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.3100e+02 9.6739e-01 3.3010e-02 - - ------------- Growing tree 225 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 2 17 3 7 - - - -- linear combo weights (showing up to 5) - - 1.1402 0.3879 0.3039 2.3235 5.9940 - - - -- cutpoint (score) - --- 0.527553 (0.669521), N = 194 moving right - --- 0.947702 (0.739278), N = 128 moving right - --- 1.14759 (0.743571), N = 108 moving right - --- 1.16051 (0.745469), N = 107 moving right - --- 3.91873 (0.62957), N = 25 moving right - - -- best stat: 0.745469, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 8 14 0 17 - - - -- linear combo weights (showing up to 5) - - -0.0357 1.7467 0.1759 -0.2528 0.3432 - - - -- cutpoint (score) - --- 0.26474 (0.699553), N = 142 moving right - --- 0.344837 (0.708478), N = 134 moving right - --- 0.623697 (0.740385), N = 97 moving right - --- 1.56845 (0.644077), N = 53 moving right - --- 7.83772 (0.535839), N = 5 moving right - - -- best stat: 0.740385, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 2 7 8 15 - - - -- linear combo weights (showing up to 5) - - -0.2711 -0.1828 6.4450 1.5463 0.0252 - - - -- cutpoint (score) - --- -1.27583 (0.565079), N = 245 moving right - --- -0.978461 (0.701202), N = 160 moving right - --- -0.528628 (0.766507), N = 105 moving right - --- 0.559841 (0.686944), N = 55 moving right - --- 8.97872 (0.535341), N = 6 moving right - - -- best stat: 0.766507, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7464e-01 2.5588e-02 - 1.4000e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 226 -------------- - -- N obs inbag: 276 -- N row inbag: 161 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 8 1 10 17 - - - -- linear combo weights (showing up to 5) - - 1.0408 2.0786 0.1693 -0.3933 0.0999 - - - -- cutpoint (score) - --- -0.757579 (0.689087), N = 169 moving right - --- -0.547466 (0.725248), N = 147 moving right - --- 0.22756 (0.741446), N = 81 moving right - --- 0.667117 (0.735759), N = 68 moving right - --- 1.13839 (0.701972), N = 55 moving right - - -- best stat: 0.741446, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 9 2 14 8 - - - -- linear combo weights (showing up to 5) - - -0.2156 -0.4582 -0.1574 -0.1069 2.6183 - - - -- cutpoint (score) - --- -1.66177 (0.565005), N = 237 moving right - --- -1.14176 (0.746917), N = 119 moving right - --- -0.973981 (0.758866), N = 103 moving right - --- 0.693351 (0.652637), N = 44 moving right - --- 6.31095 (0.575755), N = 11 moving right - - -- best stat: 0.758866, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 15 7 4 8 - - - -- linear combo weights (showing up to 5) - - 0.3315 -0.0701 10.9429 0.0372 1.8155 - - - -- cutpoint (score) - --- -1.53182 (0.518741), N = 264 moving right - --- -1.4262 (0.548471), N = 250 moving right - --- -1.1133 (0.632481), N = 199 moving right - --- -0.907027 (0.716778), N = 152 moving right - --- 0.00435325 (0.719513), N = 79 moving right - - -- best stat: 0.719513, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8188e-01 1.8208e-02 - 1.3100e+02 9.7101e-01 2.9279e-02 - 1.7900e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 227 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 16 14 10 7 - - - -- linear combo weights (showing up to 5) - - 0.0843 0.3882 0.4440 -0.5269 9.1889 - - - -- cutpoint (score) - --- -1.20214 (0.521798), N = 260 moving right - --- -0.852742 (0.547017), N = 235 moving right - --- -0.709828 (0.569696), N = 217 moving right - --- -0.374592 (0.665697), N = 172 moving right - --- -0.141537 (0.692309), N = 124 moving right - - -- best stat: 0.692309, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 13 8 6 17 - - - -- linear combo weights (showing up to 5) - - 5.4870 0.0043 1.0221 -0.4538 0.3456 - - - -- cutpoint (score) - --- 0.582997 (0.666557), N = 162 moving right - --- 0.797046 (0.701836), N = 137 moving right - --- 0.949403 (0.727485), N = 104 moving right - --- 2.53297 (0.691838), N = 43 moving right - --- 4.29226 (0.64771), N = 30 moving right - - -- best stat: 0.727485, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 16 13 0 2 - - - -- linear combo weights (showing up to 5) - - 9.6589 0.4419 0.3381 -0.0365 -0.9106 - - - -- cutpoint (score) - --- -1.2197 (0.663505), N = 180 moving right - --- -0.788548 (0.703106), N = 109 moving right - --- 0.0353564 (0.626383), N = 31 moving right - --- 1.14732 (0.595755), N = 18 moving right - --- 9.4725 (0.536528), N = 7 moving right - - -- best stat: 0.703106, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 228 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 8 16 6 12 - - - -- linear combo weights (showing up to 5) - - -0.0254 1.3970 0.4899 0.4887 -0.1027 - - - -- cutpoint (score) - --- -1.06708 (0.552984), N = 236 moving right - --- -0.318908 (0.734939), N = 127 moving right - --- 0.0104103 (0.74433), N = 99 moving right - --- 0.623254 (0.716641), N = 65 moving right - --- 1.06221 (0.681493), N = 50 moving right - - -- best stat: 0.74433, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 5 13 6 0 - - - -- linear combo weights (showing up to 5) - - 1.3910 0.6244 -0.0030 0.5369 -0.0964 - - - -- cutpoint (score) - --- -0.867451 (0.566255), N = 243 moving right - --- -0.823307 (0.60637), N = 221 moving right - --- 0.191765 (0.711695), N = 109 moving right - --- 1.3104 (0.648737), N = 50 moving right - --- 2.06335 (0.612081), N = 30 moving right - - -- best stat: 0.711695, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 3 0 11 6 - - - -- linear combo weights (showing up to 5) - - 0.4861 4.3932 0.1190 0.5699 0.5613 - - - -- cutpoint (score) - --- -0.573019 (0.573373), N = 221 moving right - --- -0.343847 (0.639749), N = 180 moving right - --- -0.211286 (0.684891), N = 153 moving right - --- 0.0112384 (0.70156), N = 124 moving right - --- 1.25087 (0.684248), N = 51 moving right - - -- best stat: 0.70156, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 229 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 7 2 6 10 - - - -- linear combo weights (showing up to 5) - - 0.4295 10.9425 -0.8008 1.1233 -0.5727 - - - -- cutpoint (score) - --- -2.01166 (0.51436), N = 266 moving right - --- -1.22131 (0.606485), N = 213 moving right - --- 0.0437855 (0.699165), N = 64 moving right - --- 0.195065 (0.673058), N = 53 moving right - --- 11.2864 (0.554641), N = 9 moving right - - -- best stat: 0.699165, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 8 14 5 3 - - - -- linear combo weights (showing up to 5) - - 0.4957 1.5496 -0.1537 0.1486 5.8371 - - - -- cutpoint (score) - --- -0.893575 (0.550547), N = 249 moving right - --- -0.65608 (0.652341), N = 200 moving right - --- -0.627557 (0.644482), N = 198 moving right - --- -0.477662 (0.685278), N = 181 moving right - --- 0.680069 (0.743129), N = 76 moving right - - -- best stat: 0.743129, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 5 6 10 0 - - - -- linear combo weights (showing up to 5) - - 0.4867 0.9965 0.5950 -0.7896 0.0421 - - - -- cutpoint (score) - --- -1.40003 (0.516067), N = 262 moving right - --- -0.329116 (0.593503), N = 214 moving right - --- 1.25309 (0.675197), N = 67 moving right - --- 1.42639 (0.667956), N = 55 moving right - --- 1.53099 (0.650325), N = 47 moving right - - -- best stat: 0.675197, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7464e-01 2.5602e-02 - 1.7900e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 230 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 247 -- max leaves: 124 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 14 13 6 9 - - - -- linear combo weights (showing up to 5) - - 1.0604 0.1403 0.1485 0.8533 0.0310 - - - -- cutpoint (score) - --- -0.796188 (0.60251), N = 224 moving right - --- -0.557682 (0.66342), N = 175 moving right - --- -0.362131 (0.672299), N = 160 moving right - --- -0.118961 (0.668185), N = 123 moving right - --- 0.952194 (0.609437), N = 40 moving right - - -- best stat: 0.672299, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 11 3 15 17 - - - -- linear combo weights (showing up to 5) - - 0.9896 0.5051 9.8550 -0.2446 0.3732 - - - -- cutpoint (score) - --- -0.160362 (0.586034), N = 237 moving right - --- 0.304382 (0.656578), N = 195 moving right - --- 0.767022 (0.711905), N = 152 moving right - --- 0.78595 (0.722798), N = 147 moving right - --- 1.78917 (0.729389), N = 64 moving right - - -- best stat: 0.729389, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 9 17 4 7 - - - -- linear combo weights (showing up to 5) - - 1.3373 0.3438 0.6635 -0.2511 3.7616 - - - -- cutpoint (score) - --- 1.63803 (0.653975), N = 194 moving right - --- 1.83199 (0.693372), N = 165 moving right - --- 1.87521 (0.707539), N = 157 moving right - --- 3.4529 (0.639892), N = 34 moving right - --- 6.04259 (0.538242), N = 5 moving right - - -- best stat: 0.707539, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 231 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 17 7 12 6 - - - -- linear combo weights (showing up to 5) - - 1.5620 0.1167 5.2781 0.1084 -0.0792 - - - -- cutpoint (score) - --- -0.543626 (0.638772), N = 198 moving right - --- -0.426148 (0.683347), N = 178 moving right - --- -0.349644 (0.682263), N = 165 moving right - --- 0.22806 (0.73817), N = 90 moving right - --- 0.3436 (0.733035), N = 82 moving right - - -- best stat: 0.73817, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 15 14 3 16 - - - -- linear combo weights (showing up to 5) - - 0.4476 0.0109 0.3086 3.4602 0.3151 - - - -- cutpoint (score) - --- -0.181763 (0.606171), N = 198 moving right - --- -0.0585425 (0.651985), N = 143 moving right - --- 0.166666 (0.65577), N = 100 moving right - --- 0.283935 (0.66916), N = 86 moving right - --- 0.354246 (0.662897), N = 77 moving right - - -- best stat: 0.66916, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 3 2 17 8 - - - -- linear combo weights (showing up to 5) - - 0.2748 3.3591 -0.1551 0.0478 1.5569 - - - -- cutpoint (score) - --- -1.03236 (0.506197), N = 271 moving right - --- -1.01843 (0.510579), N = 269 moving right - --- -0.719853 (0.61602), N = 197 moving right - --- 0.0584047 (0.743194), N = 91 moving right - --- 2.74076 (0.606967), N = 25 moving right - - -- best stat: 0.743194, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 - 4.0000e+02 1.0000e+00 2.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.7900e+02 9.9638e-01 3.6232e-03 - 1.9100e+02 9.8913e-01 1.0896e-02 - 1.9800e+02 9.8188e-01 1.8222e-02 - 2.6400e+02 9.7826e-01 2.1912e-02 - 3.0400e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 232 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 12 17 13 9 - - - -- linear combo weights (showing up to 5) - - 9.0149 0.0555 0.6621 0.0955 0.4671 - - - -- cutpoint (score) - --- 1.76824 (0.666416), N = 163 moving right - --- 2.36224 (0.714948), N = 81 moving right - --- 2.6074 (0.646154), N = 40 moving right - --- 11.2717 (0.565403), N = 12 moving right - --- 11.3332 (0.542801), N = 9 moving right - - -- best stat: 0.714948, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 8 4 2 9 - - - -- linear combo weights (showing up to 5) - - 0.3971 1.9629 0.7664 0.1838 -0.2624 - - - -- cutpoint (score) - --- -1.01407 (0.615523), N = 205 moving right - --- -0.243857 (0.727505), N = 134 moving right - --- -0.0136321 (0.750322), N = 109 moving right - --- 0.262868 (0.740985), N = 94 moving right - --- 2.39333 (0.626363), N = 28 moving right - - -- best stat: 0.750322, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 5 13 2 16 - - - -- linear combo weights (showing up to 5) - - 2.1330 -0.0759 -0.1047 0.1362 0.5786 - - - -- cutpoint (score) - --- -1.38342 (0.584678), N = 228 moving right - --- -1.0941 (0.64991), N = 175 moving right - --- -1.04253 (0.671332), N = 165 moving right - --- -0.688086 (0.743754), N = 119 moving right - --- -0.574493 (0.739804), N = 111 moving right - - -- best stat: 0.743754, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8551e-01 1.4559e-02 - 1.8600e+02 9.7826e-01 2.1912e-02 - 1.9100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 233 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 0 7 8 5 - - - -- linear combo weights (showing up to 5) - - 0.0265 -0.1459 11.2189 1.3743 0.2981 - - - -- cutpoint (score) - --- -0.863008 (0.596377), N = 224 moving right - --- -0.436596 (0.723932), N = 124 moving right - --- -0.409855 (0.72704), N = 122 moving right - --- 1.00024 (0.665828), N = 40 moving right - --- 1.24805 (0.650191), N = 33 moving right - - -- best stat: 0.72704, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 6 16 1 2 - - - -- linear combo weights (showing up to 5) - - 13.2878 1.0604 0.2512 0.2963 -1.6894 - - - -- cutpoint (score) - --- -1.84944 (0.628223), N = 180 moving right - --- -1.59863 (0.676087), N = 125 moving right - --- -1.5258 (0.67664), N = 107 moving right - --- -0.227297 (0.626354), N = 44 moving right - --- 0.737096 (0.59405), N = 16 moving right - - -- best stat: 0.67664, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 17 7 1 15 - - - -- linear combo weights (showing up to 5) - - 1.1696 0.2673 11.4895 0.2924 -0.1004 - - - -- cutpoint (score) - --- -0.620972 (0.547826), N = 254 moving right - --- 0.0707241 (0.683066), N = 161 moving right - --- 0.335706 (0.706217), N = 136 moving right - --- 0.552891 (0.727975), N = 116 moving right - --- 2.24433 (0.675953), N = 40 moving right - - -- best stat: 0.727975, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 234 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 14 15 5 9 - - - -- linear combo weights (showing up to 5) - - 1.6806 0.1438 -0.2507 0.5356 -0.2517 - - - -- cutpoint (score) - --- -0.835621 (0.620591), N = 206 moving right - --- -0.53234 (0.699459), N = 156 moving right - --- 0.117692 (0.743053), N = 97 moving right - --- 1.13919 (0.671081), N = 46 moving right - --- 2.54752 (0.614813), N = 25 moving right - - -- best stat: 0.743053, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 4 6 10 15 - - - -- linear combo weights (showing up to 5) - - 0.5299 0.8202 -0.4258 -0.8596 -0.2610 - - - -- cutpoint (score) - --- -0.444709 (0.621364), N = 204 moving right - --- -0.356415 (0.641788), N = 197 moving right - --- 0.35245 (0.719883), N = 134 moving right - --- 0.95339 (0.717137), N = 88 moving right - --- 1.5046 (0.678954), N = 51 moving right - - -- best stat: 0.719883, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 3 10 5 6 - - - -- linear combo weights (showing up to 5) - - 0.8202 4.4874 -0.6122 0.4269 -0.1245 - - - -- cutpoint (score) - --- -0.851738 (0.522906), N = 260 moving right - --- -0.12581 (0.641116), N = 197 moving right - --- -0.065316 (0.652101), N = 192 moving right - --- 0.951508 (0.701168), N = 88 moving right - --- 1.20507 (0.68109), N = 67 moving right - - -- best stat: 0.701168, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8551e-01 1.4493e-02 - 7.1000e+01 9.7826e-01 2.1846e-02 - 7.7000e+01 9.7464e-01 2.5549e-02 - 1.1000e+02 9.7101e-01 2.9267e-02 - 1.4000e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 235 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 0 3 8 10 - - - -- linear combo weights (showing up to 5) - - -0.0571 0.0308 3.1115 2.1959 -0.4980 - - - -- cutpoint (score) - --- -1.33903 (0.604308), N = 205 moving right - --- -1.32667 (0.613886), N = 200 moving right - --- -1.05632 (0.696037), N = 159 moving right - --- -0.877634 (0.727176), N = 139 moving right - --- -0.616296 (0.739179), N = 121 moving right - - -- best stat: 0.739179, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 13 0 8 14 - - - -- linear combo weights (showing up to 5) - - 0.7264 0.1279 -0.0333 2.4265 -0.1686 - - - -- cutpoint (score) - --- -1.37499 (0.586858), N = 223 moving right - --- -1.33217 (0.604555), N = 212 moving right - --- -0.506492 (0.738192), N = 113 moving right - --- 0.493523 (0.716467), N = 80 moving right - --- 1.77277 (0.649813), N = 31 moving right - - -- best stat: 0.738192, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 2 4 10 7 - - - -- linear combo weights (showing up to 5) - - 0.4687 -0.7254 0.5720 -0.7697 6.7116 - - - -- cutpoint (score) - --- -0.595487 (0.660932), N = 168 moving right - --- -0.446265 (0.678916), N = 152 moving right - --- -0.156559 (0.705554), N = 107 moving right - --- 0.518401 (0.654622), N = 42 moving right - --- 7.92117 (0.548937), N = 7 moving right - - -- best stat: 0.705554, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 236 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 253 -- max leaves: 127 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 8 15 0 12 - - - -- linear combo weights (showing up to 5) - - 0.4356 1.4819 -0.0567 0.1883 -0.0281 - - - -- cutpoint (score) - --- -1.00553 (0.606178), N = 214 moving right - --- -0.635749 (0.718966), N = 148 moving right - --- -0.0566772 (0.738891), N = 97 moving right - --- 0.0693244 (0.736887), N = 94 moving right - --- 1.55375 (0.617316), N = 40 moving right - - -- best stat: 0.738891, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 17 9 15 13 - - - -- linear combo weights (showing up to 5) - - 5.1332 0.5701 0.5884 -0.0091 0.2318 - - - -- cutpoint (score) - --- 0.753943 (0.581801), N = 236 moving right - --- 1.11943 (0.609068), N = 213 moving right - --- 2.0032 (0.686977), N = 94 moving right - --- 2.13047 (0.650056), N = 74 moving right - --- 2.27871 (0.64466), N = 49 moving right - - -- best stat: 0.686977, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 9 17 7 12 - - - -- linear combo weights (showing up to 5) - - 0.2789 0.6882 0.5152 5.1709 0.1005 - - - -- cutpoint (score) - --- 1.00172 (0.599337), N = 223 moving right - --- 1.84164 (0.680907), N = 118 moving right - --- 1.95754 (0.665067), N = 99 moving right - --- 2.07965 (0.669827), N = 79 moving right - --- 2.14686 (0.672255), N = 71 moving right - - -- best stat: 0.680907, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 237 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 3 2 9 5 - - - -- linear combo weights (showing up to 5) - - -0.7245 6.3964 -0.6921 0.2430 0.6686 - - - -- cutpoint (score) - --- -0.959705 (0.634792), N = 207 moving right - --- -0.787483 (0.682943), N = 183 moving right - --- -0.764759 (0.689451), N = 178 moving right - --- -0.264103 (0.719197), N = 119 moving right - --- 1.6097 (0.645153), N = 33 moving right - - -- best stat: 0.719197, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 11 8 14 4 - - - -- linear combo weights (showing up to 5) - - -0.3546 0.6189 1.3942 -0.1014 0.1595 - - - -- cutpoint (score) - --- -1.20202 (0.520402), N = 265 moving right - --- -1.18029 (0.527449), N = 262 moving right - --- -1.0307 (0.584305), N = 223 moving right - --- -0.863602 (0.641799), N = 189 moving right - --- -0.857518 (0.650204), N = 185 moving right - - -- best stat: 0.650204, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 8 9 10 1 - - - -- linear combo weights (showing up to 5) - - 0.2473 1.3104 -0.4105 -0.8087 0.3748 - - - -- cutpoint (score) - --- -1.02309 (0.622255), N = 203 moving right - --- -0.731716 (0.667592), N = 169 moving right - --- 0.464033 (0.746726), N = 85 moving right - --- 0.631594 (0.737164), N = 73 moving right - --- 4.89368 (0.560269), N = 12 moving right - - -- best stat: 0.746726, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.1000e+01 9.7464e-01 2.5576e-02 - 1.1000e+02 9.6739e-01 3.3011e-02 - 1.4000e+02 9.5652e-01 4.4247e-02 - - ------------- Growing tree 238 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 11 7 12 6 - - - -- linear combo weights (showing up to 5) - - 0.3037 0.4879 6.9951 0.0174 1.2912 - - - -- cutpoint (score) - --- -0.361725 (0.636131), N = 192 moving right - --- -0.257482 (0.675034), N = 174 moving right - --- -0.0283215 (0.68024), N = 114 moving right - --- 0.303732 (0.715156), N = 86 moving right - --- 1.62511 (0.62859), N = 33 moving right - - -- best stat: 0.715156, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 15 13 12 17 - - - -- linear combo weights (showing up to 5) - - 1.0651 -0.1104 0.4266 0.0937 0.6244 - - - -- cutpoint (score) - --- 1.21443 (0.614995), N = 215 moving right - --- 1.92696 (0.700074), N = 140 moving right - --- 2.1615 (0.661605), N = 114 moving right - --- 2.88477 (0.570576), N = 32 moving right - --- 3.36108 (0.549172), N = 12 moving right - - -- best stat: 0.700074, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 13 3 4 9 - - - -- linear combo weights (showing up to 5) - - -0.0826 0.3659 9.9157 0.8229 0.2417 - - - -- cutpoint (score) - --- -0.587055 (0.531073), N = 259 moving right - --- -0.194155 (0.619148), N = 207 moving right - --- 0.588709 (0.724887), N = 126 moving right - --- 0.942204 (0.694806), N = 71 moving right - --- 10.9718 (0.538552), N = 6 moving right - - -- best stat: 0.724887, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8551e-01 1.4493e-02 - 7.1000e+01 9.8188e-01 1.8169e-02 - 1.3100e+02 9.7101e-01 2.9239e-02 - 1.7900e+02 9.6014e-01 4.0433e-02 - 1.9100e+02 9.4565e-01 5.5528e-02 - - ------------- Growing tree 239 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 3 4 13 0 - - - -- linear combo weights (showing up to 5) - - -0.0453 4.9695 0.3314 0.4423 0.0378 - - - -- cutpoint (score) - --- -0.398353 (0.550234), N = 244 moving right - --- 0.0932705 (0.641869), N = 148 moving right - --- 0.16551 (0.654807), N = 131 moving right - --- 0.356176 (0.663358), N = 104 moving right - --- 0.66137 (0.630529), N = 64 moving right - - -- best stat: 0.663358, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 15 17 9 7 - - - -- linear combo weights (showing up to 5) - - 0.5123 0.0626 0.2620 0.6558 9.4575 - - - -- cutpoint (score) - --- 0.176909 (0.610637), N = 206 moving right - --- 0.29756 (0.631701), N = 186 moving right - --- 0.435677 (0.673648), N = 162 moving right - --- 1.01263 (0.723255), N = 84 moving right - --- 3.08733 (0.602147), N = 22 moving right - - -- best stat: 0.723255, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 0 6 17 13 - - - -- linear combo weights (showing up to 5) - - 4.6548 0.1304 1.4072 0.2275 0.4949 - - - -- cutpoint (score) - --- 0.0083183 (0.54132), N = 254 moving right - --- 0.311437 (0.588845), N = 224 moving right - --- 0.365538 (0.592181), N = 217 moving right - --- 1.79923 (0.636836), N = 47 moving right - --- 4.99087 (0.59681), N = 17 moving right - - -- best stat: 0.636836, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 240 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 6 16 11 4 - - - -- linear combo weights (showing up to 5) - - 0.1489 0.3474 1.0177 0.8861 0.3941 - - - -- cutpoint (score) - --- -0.845823 (0.638028), N = 197 moving right - --- -0.778279 (0.659067), N = 188 moving right - --- -0.388286 (0.714274), N = 152 moving right - --- -0.276958 (0.732428), N = 141 moving right - --- 2.55355 (0.618579), N = 23 moving right - - -- best stat: 0.732428, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 13 0 15 12 - - - -- linear combo weights (showing up to 5) - - 0.7106 0.2895 -0.3862 -0.1604 0.0611 - - - -- cutpoint (score) - --- 1.08668 (0.588611), N = 226 moving right - --- 1.17241 (0.605917), N = 217 moving right - --- 1.67788 (0.670986), N = 174 moving right - --- 1.83404 (0.680191), N = 158 moving right - --- 2.70514 (0.64456), N = 55 moving right - - -- best stat: 0.680191, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 15 3 4 6 - - - -- linear combo weights (showing up to 5) - - 12.8285 0.0031 3.9725 0.9121 1.2456 - - - -- cutpoint (score) - --- -0.0019793 (0.510774), N = 256 moving right - --- -0.000430122 (0.540551), N = 227 moving right - --- 0.00246616 (0.613277), N = 181 moving right - --- 0.91124 (0.643775), N = 109 moving right - --- 0.914608 (0.662036), N = 54 moving right - - -- best stat: 0.662036, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 241 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 9 6 7 5 - - - -- linear combo weights (showing up to 5) - - -0.3344 0.1658 1.4726 11.2771 1.1808 - - - -- cutpoint (score) - --- -0.194182 (0.618029), N = 202 moving right - --- 0.0103177 (0.70313), N = 151 moving right - --- 0.464863 (0.696992), N = 102 moving right - --- 0.886314 (0.699272), N = 83 moving right - --- 1.01653 (0.697475), N = 75 moving right - - -- best stat: 0.70313, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 9 6 1 3 - - - -- linear combo weights (showing up to 5) - - 0.6096 0.3684 0.7633 0.5942 13.8501 - - - -- cutpoint (score) - --- -0.928262 (0.587119), N = 229 moving right - --- -0.718045 (0.628749), N = 204 moving right - --- -0.068013 (0.698658), N = 140 moving right - --- 0.454297 (0.741604), N = 90 moving right - --- 0.902763 (0.715166), N = 51 moving right - - -- best stat: 0.741604, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 2 15 17 1 - - - -- linear combo weights (showing up to 5) - - -0.5543 -0.6354 -0.1510 0.6174 0.6168 - - - -- cutpoint (score) - --- 0.230322 (0.613995), N = 219 moving right - --- 0.31117 (0.622786), N = 211 moving right - --- 0.717235 (0.673229), N = 168 moving right - --- 0.962765 (0.702539), N = 148 moving right - --- 2.26974 (0.687412), N = 55 moving right - - -- best stat: 0.702539, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.6377e-01 3.6700e-02 - 1.4000e+02 9.5652e-01 4.4219e-02 - - ------------- Growing tree 242 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 3 16 15 14 - - - -- linear combo weights (showing up to 5) - - 0.7164 6.3791 0.1414 -0.3238 0.0297 - - - -- cutpoint (score) - --- -0.811339 (0.523333), N = 262 moving right - --- -0.343926 (0.610817), N = 190 moving right - --- -0.105406 (0.673914), N = 134 moving right - --- -0.0875707 (0.698301), N = 120 moving right - --- 0.11263 (0.700879), N = 81 moving right - - -- best stat: 0.700879, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 12 6 11 2 - - - -- linear combo weights (showing up to 5) - - 0.7437 0.0630 0.9140 1.1773 0.4324 - - - -- cutpoint (score) - --- -0.33995 (0.676357), N = 160 moving right - --- -0.282697 (0.684449), N = 157 moving right - --- 0.282302 (0.701305), N = 100 moving right - --- 0.91917 (0.678307), N = 58 moving right - --- 1.39886 (0.658851), N = 46 moving right - - -- best stat: 0.701305, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 5 11 10 7 - - - -- linear combo weights (showing up to 5) - - -0.0647 0.6174 0.8875 -0.5221 18.9966 - - - -- cutpoint (score) - --- -0.480593 (0.681625), N = 172 moving right - --- -0.239393 (0.730555), N = 141 moving right - --- 0.035719 (0.698077), N = 114 moving right - --- 2.00135 (0.643341), N = 27 moving right - --- 20.9927 (0.551038), N = 8 moving right - - -- best stat: 0.730555, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 - 4.0000e+02 1.0000e+00 3.0000e+00 - 5.1500e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8188e-01 1.8169e-02 - 1.1000e+02 9.7826e-01 2.1859e-02 - 1.4000e+02 9.7101e-01 2.9266e-02 - 1.9800e+02 9.6739e-01 3.2997e-02 - - ------------- Growing tree 243 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 5 1 16 6 - - - -- linear combo weights (showing up to 5) - - 3.4730 0.0126 0.4059 0.2001 0.0823 - - - -- cutpoint (score) - --- -0.678288 (0.789823), N = 99 moving right - --- 0.0596075 (0.740789), N = 65 moving right - --- 0.207276 (0.747456), N = 62 moving right - --- 0.510428 (0.719502), N = 58 moving right - --- 5.57234 (0.596179), N = 16 moving right - - -- best stat: 0.789823, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 8 17 6 4 - - - -- linear combo weights (showing up to 5) - - -0.2626 3.4257 0.3126 0.2455 -0.1436 - - - -- cutpoint (score) - --- -1.57817 (0.56704), N = 240 moving right - --- -0.481789 (0.755846), N = 121 moving right - --- -0.406987 (0.760332), N = 111 moving right - --- 1.95818 (0.662575), N = 45 moving right - --- 8.47324 (0.559855), N = 9 moving right - - -- best stat: 0.760332, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 5 17 15 9 - - - -- linear combo weights (showing up to 5) - - 0.3411 0.3873 0.6398 -0.1232 0.5661 - - - -- cutpoint (score) - --- 0.971477 (0.542492), N = 248 moving right - --- 1.30368 (0.585836), N = 223 moving right - --- 1.66154 (0.652066), N = 192 moving right - --- 1.67066 (0.659086), N = 188 moving right - --- 1.85765 (0.699647), N = 160 moving right - - -- best stat: 0.699647, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.7826e-01 2.1859e-02 - 7.1000e+01 9.7464e-01 2.5562e-02 - 7.7000e+01 9.7101e-01 2.9280e-02 - 1.1000e+02 9.6739e-01 3.3011e-02 - - ------------- Growing tree 244 -------------- - -- N obs inbag: 276 -- N row inbag: 161 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 16 11 15 6 - - - -- linear combo weights (showing up to 5) - - 0.1513 0.7554 1.1308 -0.2236 -0.5028 - - - -- cutpoint (score) - --- -0.811308 (0.683807), N = 162 moving right - --- -0.702877 (0.699012), N = 153 moving right - --- -0.0636924 (0.755688), N = 104 moving right - --- -0.0400258 (0.7629), N = 102 moving right - --- 1.81912 (0.617582), N = 33 moving right - - -- best stat: 0.7629, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 11 4 2 3 - - - -- linear combo weights (showing up to 5) - - 5.9683 0.9121 0.5796 -0.1987 4.7346 - - - -- cutpoint (score) - --- -0.950634 (0.540203), N = 256 moving right - --- -0.712965 (0.619162), N = 211 moving right - --- -0.54763 (0.649192), N = 193 moving right - --- 0.537379 (0.704399), N = 68 moving right - --- 1.93335 (0.63539), N = 33 moving right - - -- best stat: 0.704399, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 2 1 5 6 - - - -- linear combo weights (showing up to 5) - - 8.7824 -1.1169 0.6924 1.0882 0.1563 - - - -- cutpoint (score) - --- -2.0386 (0.518788), N = 259 moving right - --- -0.744918 (0.68009), N = 146 moving right - --- -0.582363 (0.684876), N = 119 moving right - --- 0.408664 (0.646432), N = 42 moving right - --- 0.447757 (0.651641), N = 39 moving right - - -- best stat: 0.684876, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 5.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.7826e-01 2.1805e-02 - 1.1000e+02 9.7464e-01 2.5509e-02 - 1.4000e+02 9.6739e-01 3.2944e-02 - 1.8600e+02 9.6014e-01 4.0434e-02 - - ------------- Growing tree 245 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 6 9 13 3 - - - -- linear combo weights (showing up to 5) - - 0.0500 1.6093 0.3592 0.4496 8.3315 - - - -- cutpoint (score) - --- -0.6567 (0.559365), N = 248 moving right - --- -0.51771 (0.586873), N = 236 moving right - --- -0.0890965 (0.716516), N = 158 moving right - --- 0.355193 (0.665145), N = 92 moving right - --- 0.495449 (0.67453), N = 80 moving right - - -- best stat: 0.716516, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 10 8 17 13 - - - -- linear combo weights (showing up to 5) - - 2.8123 -0.4502 1.6006 0.3556 0.0899 - - - -- cutpoint (score) - --- 0.746249 (0.712108), N = 118 moving right - --- 1.07202 (0.733484), N = 84 moving right - --- 2.84686 (0.656975), N = 37 moving right - --- 3.04985 (0.651607), N = 36 moving right - --- 3.82286 (0.639577), N = 24 moving right - - -- best stat: 0.733484, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 6 13 5 15 - - - -- linear combo weights (showing up to 5) - - 0.7400 1.5825 0.5603 0.8923 -0.0497 - - - -- cutpoint (score) - --- -0.871606 (0.565811), N = 240 moving right - --- -0.626795 (0.623629), N = 210 moving right - --- -0.280458 (0.628821), N = 176 moving right - --- 1.04689 (0.709287), N = 70 moving right - --- 1.5712 (0.648002), N = 48 moving right - - -- best stat: 0.709287, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 246 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 14 12 7 6 - - - -- linear combo weights (showing up to 5) - - -0.4654 0.5203 0.4395 5.0249 1.6492 - - - -- cutpoint (score) - --- -1.04232 (0.544789), N = 256 moving right - --- -0.687287 (0.585531), N = 221 moving right - --- -0.244611 (0.646663), N = 177 moving right - --- 0.246164 (0.692441), N = 92 moving right - --- 0.248957 (0.686493), N = 91 moving right - - -- best stat: 0.692441, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 15 17 13 6 - - - -- linear combo weights (showing up to 5) - - 0.1367 -0.3042 0.6168 0.4608 1.5940 - - - -- cutpoint (score) - --- 0.708651 (0.560562), N = 246 moving right - --- 0.842835 (0.571906), N = 240 moving right - --- 0.945735 (0.588268), N = 231 moving right - --- 2.1688 (0.741677), N = 105 moving right - --- 3.40809 (0.609038), N = 30 moving right - - -- best stat: 0.741677, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 11 5 8 1 - - - -- linear combo weights (showing up to 5) - - 0.0300 0.5946 0.7130 1.6148 0.3211 - - - -- cutpoint (score) - --- -1.37551 (0.588021), N = 237 moving right - --- -0.879585 (0.710664), N = 170 moving right - --- -0.442312 (0.752717), N = 137 moving right - --- -0.17993 (0.75534), N = 121 moving right - --- 0.562026 (0.751748), N = 84 moving right - - -- best stat: 0.75534, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7101e-01 2.9279e-02 - 1.1000e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 247 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 14 15 4 3 - - - -- linear combo weights (showing up to 5) - - 4.5574 0.5906 0.0147 0.6843 3.1880 - - - -- cutpoint (score) - --- -0.188807 (0.594479), N = 211 moving right - --- 0.207599 (0.653311), N = 163 moving right - --- 0.483881 (0.677888), N = 119 moving right - --- 0.523067 (0.683166), N = 106 moving right - --- 1.45923 (0.635688), N = 44 moving right - - -- best stat: 0.683166, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 13 0 11 3 - - - -- linear combo weights (showing up to 5) - - 1.0375 0.3275 -0.1964 0.5823 4.8400 - - - -- cutpoint (score) - --- -1.04088 (0.516232), N = 268 moving right - --- -0.817036 (0.564548), N = 241 moving right - --- -0.366722 (0.652321), N = 183 moving right - --- 0.484597 (0.699246), N = 78 moving right - --- 0.841022 (0.706657), N = 63 moving right - - -- best stat: 0.706657, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 15 6 9 4 - - - -- linear combo weights (showing up to 5) - - 0.5181 -0.0579 0.7367 0.1826 0.8391 - - - -- cutpoint (score) - --- -0.435663 (0.542048), N = 238 moving right - --- -0.224496 (0.594021), N = 210 moving right - --- 0.389183 (0.656398), N = 153 moving right - --- 0.533885 (0.675678), N = 130 moving right - --- 0.876566 (0.6443), N = 85 moving right - - -- best stat: 0.675678, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 248 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 13 11 10 5 - - - -- linear combo weights (showing up to 5) - - 0.8602 0.2126 0.9211 -0.7220 0.6075 - - - -- cutpoint (score) - --- -0.278515 (0.678693), N = 166 moving right - --- -0.0492621 (0.691385), N = 138 moving right - --- 1.13595 (0.716749), N = 62 moving right - --- 1.25926 (0.709095), N = 58 moving right - --- 1.70783 (0.677589), N = 46 moving right - - -- best stat: 0.716749, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 15 11 9 16 - - - -- linear combo weights (showing up to 5) - - 9.5291 -0.0058 0.7609 0.2213 0.6958 - - - -- cutpoint (score) - --- -1.21764 (0.539161), N = 255 moving right - --- -0.777032 (0.59919), N = 215 moving right - --- -0.742711 (0.617656), N = 208 moving right - --- -0.469301 (0.718028), N = 146 moving right - --- 2.73975 (0.592544), N = 20 moving right - - -- best stat: 0.718028, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 4 17 2 16 - - - -- linear combo weights (showing up to 5) - - -0.7794 0.4835 0.1878 -0.6669 0.8523 - - - -- cutpoint (score) - --- -1.48219 (0.509359), N = 260 moving right - --- -0.754742 (0.598647), N = 209 moving right - --- -0.178983 (0.698535), N = 152 moving right - --- 0.00254125 (0.707836), N = 132 moving right - --- 0.446334 (0.709076), N = 109 moving right - - -- best stat: 0.709076, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 249 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 0 4 3 5 - - - -- linear combo weights (showing up to 5) - - 0.2617 0.0373 0.2413 8.6439 1.0089 - - - -- cutpoint (score) - --- -0.02315 (0.592258), N = 214 moving right - --- 0.0358493 (0.621789), N = 201 moving right - --- 0.335724 (0.691588), N = 108 moving right - --- 1.16345 (0.663928), N = 60 moving right - --- 8.4251 (0.623444), N = 25 moving right - - -- best stat: 0.691588, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 5 12 8 0 - - - -- linear combo weights (showing up to 5) - - 0.4794 0.6207 0.1360 1.5639 0.1329 - - - -- cutpoint (score) - --- -1.06353 (0.555516), N = 243 moving right - --- -0.768301 (0.625611), N = 205 moving right - --- -0.621522 (0.690662), N = 172 moving right - --- 0.36859 (0.731659), N = 91 moving right - --- 1.04302 (0.662372), N = 56 moving right - - -- best stat: 0.731659, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 5 2 11 13 - - - -- linear combo weights (showing up to 5) - - 8.0211 1.0220 -0.2093 0.4649 0.2050 - - - -- cutpoint (score) - --- -0.337184 (0.675827), N = 179 moving right - --- 0.230931 (0.747203), N = 116 moving right - --- 0.525269 (0.731915), N = 91 moving right - --- 3.94389 (0.632309), N = 26 moving right - --- 7.59437 (0.604177), N = 20 moving right - - -- best stat: 0.747203, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7101e-01 2.9305e-02 - - ------------- Growing tree 250 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 0 6 12 5 - - - -- linear combo weights (showing up to 5) - - 0.6474 -0.2763 0.4925 0.0553 0.7276 - - - -- cutpoint (score) - --- -0.0423025 (0.56933), N = 226 moving right - --- -0.020441 (0.61766), N = 192 moving right - --- 0.375018 (0.624488), N = 127 moving right - --- 1.07757 (0.596081), N = 52 moving right - --- 1.0964 (0.603199), N = 48 moving right - - -- best stat: 0.624488, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 17 14 2 9 - - - -- linear combo weights (showing up to 5) - - 0.0197 0.6564 0.3384 -0.7404 0.4634 - - - -- cutpoint (score) - --- 0.370852 (0.586006), N = 228 moving right - --- 0.867409 (0.628833), N = 198 moving right - --- 1.85399 (0.637377), N = 71 moving right - --- 1.94841 (0.601626), N = 60 moving right - --- 2.02271 (0.595771), N = 49 moving right - - -- best stat: 0.637377, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 8 11 16 10 - - - -- linear combo weights (showing up to 5) - - 2.3531 1.7572 0.7296 0.3049 -0.4568 - - - -- cutpoint (score) - --- -1.08442 (0.710514), N = 141 moving right - --- -1.06883 (0.723238), N = 136 moving right - --- 0.51424 (0.773989), N = 70 moving right - --- 1.69579 (0.705259), N = 43 moving right - --- 2.69211 (0.650101), N = 29 moving right - - -- best stat: 0.773989, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 251 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 11 15 17 14 - - - -- linear combo weights (showing up to 5) - - -0.1087 0.9293 -0.0464 0.4236 0.1570 - - - -- cutpoint (score) - --- 0.0831442 (0.545353), N = 255 moving right - --- 0.853945 (0.655253), N = 175 moving right - --- 1.43459 (0.715769), N = 99 moving right - --- 1.78343 (0.695827), N = 64 moving right - --- 2.83346 (0.583881), N = 24 moving right - - -- best stat: 0.715769, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 2 6 15 16 - - - -- linear combo weights (showing up to 5) - - -0.7334 -0.1803 0.6999 0.0581 0.8557 - - - -- cutpoint (score) - --- -0.748135 (0.603863), N = 187 moving right - --- -0.296448 (0.65486), N = 133 moving right - --- -0.158085 (0.676041), N = 110 moving right - --- 0.0498457 (0.69624), N = 90 moving right - --- 0.557945 (0.677064), N = 57 moving right - - -- best stat: 0.69624, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 0 8 10 3 - - - -- linear combo weights (showing up to 5) - - -0.3807 -0.0354 1.6007 -0.5076 4.7378 - - - -- cutpoint (score) - --- -0.582334 (0.6856), N = 157 moving right - --- -0.240562 (0.748436), N = 102 moving right - --- 0.299344 (0.715907), N = 67 moving right - --- 0.897653 (0.671046), N = 45 moving right - --- 1.13519 (0.677634), N = 41 moving right - - -- best stat: 0.748436, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 252 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 3 14 8 11 - - - -- linear combo weights (showing up to 5) - - -0.1542 6.4478 -0.2020 1.1298 0.5105 - - - -- cutpoint (score) - --- -0.754717 (0.654856), N = 189 moving right - --- -0.618047 (0.716306), N = 160 moving right - --- -0.588473 (0.71949), N = 159 moving right - --- 0.670936 (0.722498), N = 74 moving right - --- 0.898364 (0.708278), N = 64 moving right - - -- best stat: 0.722498, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 14 5 10 6 - - - -- linear combo weights (showing up to 5) - - 0.6829 0.1939 0.3520 -0.7196 0.5016 - - - -- cutpoint (score) - --- -0.210636 (0.608348), N = 206 moving right - --- -0.133236 (0.641495), N = 192 moving right - --- 0.130287 (0.646886), N = 177 moving right - --- 0.668499 (0.678998), N = 121 moving right - --- 1.34397 (0.644406), N = 56 moving right - - -- best stat: 0.678998, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 11 1 17 4 - - - -- linear combo weights (showing up to 5) - - 6.6988 0.7751 0.3838 0.1397 0.5282 - - - -- cutpoint (score) - --- -0.445396 (0.558227), N = 249 moving right - --- -0.158723 (0.586979), N = 229 moving right - --- -0.0970718 (0.60495), N = 217 moving right - --- 0.632669 (0.727283), N = 129 moving right - --- 1.48791 (0.695523), N = 71 moving right - - -- best stat: 0.727283, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8188e-01 1.8196e-02 - 7.7000e+01 9.7464e-01 2.5576e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6377e-01 3.6756e-02 - - ------------- Growing tree 253 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 7 10 2 15 - - - -- linear combo weights (showing up to 5) - - 0.5769 3.5902 -0.7625 -0.6553 -0.0288 - - - -- cutpoint (score) - --- 0.811084 (0.684719), N = 172 moving right - --- 0.898458 (0.711467), N = 161 moving right - --- 1.06907 (0.71822), N = 145 moving right - --- 1.40033 (0.688692), N = 113 moving right - --- 1.97779 (0.708422), N = 62 moving right - - -- best stat: 0.71822, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 10 7 12 17 - - - -- linear combo weights (showing up to 5) - - 0.3626 -0.6935 3.4154 0.1212 0.5233 - - - -- cutpoint (score) - --- 0.511338 (0.550671), N = 254 moving right - --- 1.24655 (0.659825), N = 194 moving right - --- 1.3612 (0.691141), N = 172 moving right - --- 2.22857 (0.680328), N = 83 moving right - --- 2.57515 (0.679621), N = 61 moving right - - -- best stat: 0.691141, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 12 7 9 13 - - - -- linear combo weights (showing up to 5) - - -0.7339 0.0970 3.9405 0.4834 0.1818 - - - -- cutpoint (score) - --- -1.33642 (0.540188), N = 258 moving right - --- -0.415565 (0.605094), N = 188 moving right - --- -0.164811 (0.671081), N = 154 moving right - --- 0.0339773 (0.694584), N = 133 moving right - --- 0.0729036 (0.710474), N = 125 moving right - - -- best stat: 0.710474, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 254 -------------- - -- N obs inbag: 276 -- N row inbag: 162 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 2 12 10 9 - - - -- linear combo weights (showing up to 5) - - -0.3436 -0.5574 0.0574 -0.9328 0.5914 - - - -- cutpoint (score) - --- -1.26534 (0.62128), N = 208 moving right - --- -0.510959 (0.671738), N = 131 moving right - --- -0.323555 (0.702632), N = 108 moving right - --- 0.20221 (0.700535), N = 53 moving right - --- 1.24004 (0.562904), N = 11 moving right - - -- best stat: 0.702632, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 0 16 3 7 - - - -- linear combo weights (showing up to 5) - - 1.5415 0.0946 0.2330 7.7502 4.7096 - - - -- cutpoint (score) - --- -0.846665 (0.651773), N = 189 moving right - --- -0.779811 (0.699554), N = 166 moving right - --- -0.716258 (0.719496), N = 141 moving right - --- -0.248246 (0.761008), N = 103 moving right - --- 0.869943 (0.697569), N = 53 moving right - - -- best stat: 0.761008, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 14 16 12 1 - - - -- linear combo weights (showing up to 5) - - 2.1646 0.0237 0.3092 0.0332 0.4859 - - - -- cutpoint (score) - --- -1.19666 (0.655476), N = 177 moving right - --- -0.60967 (0.741847), N = 121 moving right - --- -0.438001 (0.777627), N = 94 moving right - --- 0.704312 (0.718916), N = 62 moving right - --- 4.50703 (0.575708), N = 13 moving right - - -- best stat: 0.777627, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 5.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 255 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 1 14 6 13 - - - -- linear combo weights (showing up to 5) - - 1.3881 0.5821 0.0013 0.1698 0.2921 - - - -- cutpoint (score) - --- -1.36267 (0.579915), N = 236 moving right - --- -1.10406 (0.615621), N = 202 moving right - --- -0.18217 (0.747134), N = 109 moving right - --- 1.43669 (0.676356), N = 48 moving right - --- 3.86814 (0.533571), N = 6 moving right - - -- best stat: 0.747134, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 12 3 7 8 - - - -- linear combo weights (showing up to 5) - - 0.0375 0.0108 18.3065 0.3604 1.3206 - - - -- cutpoint (score) - --- -0.851487 (0.511889), N = 265 moving right - --- -0.725006 (0.604771), N = 208 moving right - --- -0.714261 (0.619392), N = 202 moving right - --- -0.10635 (0.733994), N = 99 moving right - --- 0.381661 (0.681474), N = 63 moving right - - -- best stat: 0.733994, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 5 14 12 3 - - - -- linear combo weights (showing up to 5) - - 0.8275 1.0062 0.3466 0.1693 19.7364 - - - -- cutpoint (score) - --- -0.251549 (0.570643), N = 222 moving right - --- 0.0269099 (0.632455), N = 161 moving right - --- 0.130349 (0.642132), N = 141 moving right - --- 0.840713 (0.643363), N = 53 moving right - --- 1.32254 (0.615583), N = 28 moving right - - -- best stat: 0.643363, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 256 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 197 -- max leaves: 99 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 11 0 13 14 - - - -- linear combo weights (showing up to 5) - - 0.1855 0.9152 -0.5037 0.2195 0.3128 - - - -- cutpoint (score) - --- -1.18716 (0.586461), N = 227 moving right - --- -1.17913 (0.592912), N = 224 moving right - --- -0.906505 (0.661909), N = 183 moving right - --- -0.357573 (0.696046), N = 117 moving right - --- -0.00528882 (0.696628), N = 81 moving right - - -- best stat: 0.696628, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 2 10 17 3 - - - -- linear combo weights (showing up to 5) - - 7.7341 -0.9336 -0.3817 0.3710 6.5976 - - - -- cutpoint (score) - --- -0.210261 (0.594449), N = 218 moving right - --- 0.157518 (0.671922), N = 161 moving right - --- 0.166949 (0.674157), N = 160 moving right - --- 0.459286 (0.671596), N = 111 moving right - --- 7.34297 (0.615383), N = 18 moving right - - -- best stat: 0.674157, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 2 7 5 9 - - - -- linear combo weights (showing up to 5) - - 0.2977 -0.8336 11.2252 0.7866 0.1127 - - - -- cutpoint (score) - --- -1.06772 (0.590676), N = 223 moving right - --- -0.957917 (0.638459), N = 197 moving right - --- -0.761917 (0.665821), N = 162 moving right - --- -0.695042 (0.661), N = 153 moving right - --- 0.0765086 (0.665192), N = 54 moving right - - -- best stat: 0.665821, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8188e-01 1.8208e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 257 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 6 16 10 1 - - - -- linear combo weights (showing up to 5) - - 0.7652 -0.4840 0.6328 -0.8562 0.2614 - - - -- cutpoint (score) - --- -2.03534 (0.51889), N = 266 moving right - --- -2.02004 (0.521023), N = 265 moving right - --- -0.239124 (0.721286), N = 142 moving right - --- 0.0765406 (0.747826), N = 115 moving right - --- 1.17418 (0.697104), N = 46 moving right - - -- best stat: 0.747826, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 7 9 16 6 - - - -- linear combo weights (showing up to 5) - - -0.1177 7.8173 0.3570 0.4213 0.2731 - - - -- cutpoint (score) - --- -0.138298 (0.691443), N = 151 moving right - --- 0.0222181 (0.712446), N = 118 moving right - --- 0.501672 (0.677496), N = 55 moving right - --- 0.600217 (0.658975), N = 52 moving right - --- 8.31684 (0.559685), N = 10 moving right - - -- best stat: 0.712446, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 14 16 1 2 - - - -- linear combo weights (showing up to 5) - - 7.8180 0.2638 0.4391 0.2945 -0.3723 - - - -- cutpoint (score) - --- -0.945359 (0.572873), N = 233 moving right - --- -0.876697 (0.594183), N = 223 moving right - --- -0.346564 (0.671569), N = 122 moving right - --- -0.24825 (0.673435), N = 96 moving right - --- 0.108309 (0.666995), N = 54 moving right - - -- best stat: 0.673435, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 258 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 245 -- max leaves: 123 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 12 16 2 8 - - - -- linear combo weights (showing up to 5) - - 0.2438 0.1416 0.4953 0.5103 2.5996 - - - -- cutpoint (score) - --- -1.68567 (0.524743), N = 261 moving right - --- -1.3063 (0.582788), N = 226 moving right - --- 0.279583 (0.694579), N = 95 moving right - --- 1.10481 (0.698722), N = 69 moving right - --- 1.34085 (0.689487), N = 65 moving right - - -- best stat: 0.698722, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 4 6 9 15 - - - -- linear combo weights (showing up to 5) - - -0.4038 1.0923 1.1196 0.1776 -0.0352 - - - -- cutpoint (score) - --- -0.45511 (0.58817), N = 211 moving right - --- -0.388553 (0.60484), N = 184 moving right - --- 0.640223 (0.639071), N = 112 moving right - --- 0.772633 (0.622846), N = 55 moving right - --- 1.22901 (0.561491), N = 23 moving right - - -- best stat: 0.639071, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 8 16 2 15 - - - -- linear combo weights (showing up to 5) - - 0.6197 2.8962 0.4253 0.6929 -0.1766 - - - -- cutpoint (score) - --- -1.76092 (0.543504), N = 246 moving right - --- -1.66542 (0.560077), N = 238 moving right - --- -0.960577 (0.671617), N = 172 moving right - --- 0.0733786 (0.763408), N = 107 moving right - --- 3.24348 (0.644085), N = 29 moving right - - -- best stat: 0.763408, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 259 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 16 4 17 1 - - - -- linear combo weights (showing up to 5) - - 0.2880 0.5547 0.3672 0.3892 0.3121 - - - -- cutpoint (score) - --- 0.608556 (0.591238), N = 210 moving right - --- 0.804113 (0.61698), N = 187 moving right - --- 1.32635 (0.688465), N = 131 moving right - --- 1.44721 (0.712334), N = 118 moving right - --- 1.67443 (0.710976), N = 98 moving right - - -- best stat: 0.712334, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 16 4 5 10 - - - -- linear combo weights (showing up to 5) - - 0.6911 0.6145 0.3453 0.8745 -0.4613 - - - -- cutpoint (score) - --- -1.20742 (0.521071), N = 264 moving right - --- -0.991938 (0.530557), N = 249 moving right - --- 0.0314025 (0.689884), N = 146 moving right - --- 1.19212 (0.69114), N = 71 moving right - --- 2.35623 (0.562636), N = 17 moving right - - -- best stat: 0.69114, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 10 6 11 15 - - - -- linear combo weights (showing up to 5) - - 0.4217 -0.4811 1.2839 0.8965 -0.1189 - - - -- cutpoint (score) - --- -1.84252 (0.501461), N = 265 moving right - --- -1.34548 (0.556278), N = 237 moving right - --- -0.511821 (0.690851), N = 152 moving right - --- -0.32065 (0.704309), N = 137 moving right - --- 0.0737655 (0.718178), N = 107 moving right - - -- best stat: 0.718178, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.4000e+02 9.7826e-01 2.1885e-02 - 1.7900e+02 9.7101e-01 2.9293e-02 - 1.9800e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 260 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 10 7 2 8 - - - -- linear combo weights (showing up to 5) - - 0.1662 -0.6339 4.8402 -0.4326 1.5654 - - - -- cutpoint (score) - --- -1.45409 (0.658365), N = 184 moving right - --- -1.11303 (0.709594), N = 159 moving right - --- -0.387413 (0.770738), N = 106 moving right - --- -0.146177 (0.756564), N = 95 moving right - --- 0.106556 (0.73657), N = 72 moving right - - -- best stat: 0.770738, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 0 9 6 17 - - - -- linear combo weights (showing up to 5) - - 0.0925 -0.2420 0.3693 0.4409 0.7075 - - - -- cutpoint (score) - --- 0.989925 (0.554976), N = 253 moving right - --- 2.36326 (0.673517), N = 111 moving right - --- 2.79459 (0.596267), N = 49 moving right - --- 2.95138 (0.570571), N = 25 moving right - --- 2.9871 (0.540871), N = 20 moving right - - -- best stat: 0.673517, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 2 0 4 - - - -- linear combo weights (showing up to 5) - - 0.6384 0.3405 -0.6999 -0.3323 0.3666 - - - -- cutpoint (score) - --- 0.592694 (0.628806), N = 214 moving right - --- 0.832011 (0.647589), N = 196 moving right - --- 1.57535 (0.687832), N = 116 moving right - --- 1.63755 (0.687901), N = 108 moving right - --- 1.86959 (0.680174), N = 86 moving right - - -- best stat: 0.687901, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.3100e+02 9.6377e-01 3.6742e-02 - - ------------- Growing tree 261 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 11 14 15 2 - - - -- linear combo weights (showing up to 5) - - 0.6473 1.0397 0.2307 -0.1352 0.5426 - - - -- cutpoint (score) - --- -1.06987 (0.547144), N = 256 moving right - --- -0.411297 (0.604853), N = 210 moving right - --- -0.316874 (0.610044), N = 207 moving right - --- -0.0266146 (0.660343), N = 172 moving right - --- 0.233181 (0.695782), N = 133 moving right - - -- best stat: 0.695782, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 11 3 15 6 - - - -- linear combo weights (showing up to 5) - - 0.5979 0.8455 4.7673 -0.0563 0.9503 - - - -- cutpoint (score) - --- -0.531168 (0.605484), N = 218 moving right - --- 1.02236 (0.684179), N = 69 moving right - --- 1.39954 (0.662908), N = 44 moving right - --- 1.51969 (0.64076), N = 38 moving right - --- 3.5658 (0.600822), N = 18 moving right - - -- best stat: 0.684179, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 13 6 8 4 - - - -- linear combo weights (showing up to 5) - - 0.4862 0.1770 0.4196 1.6604 0.1803 - - - -- cutpoint (score) - --- -0.709116 (0.653605), N = 173 moving right - --- -0.551069 (0.721512), N = 139 moving right - --- -0.275455 (0.757806), N = 107 moving right - --- -0.157548 (0.759007), N = 97 moving right - --- 7.147 (0.530167), N = 6 moving right - - -- best stat: 0.759007, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 262 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 3 8 15 10 - - - -- linear combo weights (showing up to 5) - - 2.2161 2.0509 2.1961 -0.2328 -0.3115 - - - -- cutpoint (score) - --- -2.12193 (0.509584), N = 271 moving right - --- -1.67606 (0.555256), N = 251 moving right - --- -1.05277 (0.698712), N = 167 moving right - --- -0.686925 (0.750011), N = 131 moving right - --- 1.44899 (0.668528), N = 50 moving right - - -- best stat: 0.750011, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 6 8 5 15 - - - -- linear combo weights (showing up to 5) - - 0.4113 -0.2194 2.4480 0.2997 -0.2228 - - - -- cutpoint (score) - --- -0.486432 (0.606105), N = 229 moving right - --- 0.620126 (0.730608), N = 124 moving right - --- 0.664396 (0.740256), N = 119 moving right - --- 1.53628 (0.717152), N = 71 moving right - --- 1.83934 (0.710457), N = 63 moving right - - -- best stat: 0.740256, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 16 8 3 6 - - - -- linear combo weights (showing up to 5) - - -0.0275 0.1792 2.4271 2.7218 0.0763 - - - -- cutpoint (score) - --- -1.47401 (0.57928), N = 233 moving right - --- -1.46379 (0.581611), N = 232 moving right - --- -1.37344 (0.618812), N = 211 moving right - --- -1.02845 (0.73217), N = 147 moving right - --- 0.142249 (0.733688), N = 77 moving right - - -- best stat: 0.733688, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.7900e+02 9.6739e-01 3.3037e-02 - - ------------- Growing tree 263 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 9 17 11 4 - - - -- linear combo weights (showing up to 5) - - 0.1604 0.3016 0.6769 0.8887 0.3388 - - - -- cutpoint (score) - --- 0.428134 (0.522477), N = 265 moving right - --- 1.88728 (0.683985), N = 173 moving right - --- 2.1292 (0.714107), N = 141 moving right - --- 2.30113 (0.728002), N = 131 moving right - --- 3.78109 (0.625323), N = 34 moving right - - -- best stat: 0.728002, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 8 16 6 7 - - - -- linear combo weights (showing up to 5) - - 0.1103 1.6006 0.4598 0.0522 3.6934 - - - -- cutpoint (score) - --- -1.35247 (0.518207), N = 259 moving right - --- -1.11337 (0.573598), N = 218 moving right - --- -1.02965 (0.626594), N = 193 moving right - --- 1.25385 (0.685047), N = 43 moving right - --- 4.0666 (0.627552), N = 25 moving right - - -- best stat: 0.685047, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 9 13 14 7 - - - -- linear combo weights (showing up to 5) - - 0.5958 0.1407 0.2972 0.5890 6.5306 - - - -- cutpoint (score) - --- 1.33505 (0.648842), N = 186 moving right - --- 1.62589 (0.71444), N = 150 moving right - --- 2.52416 (0.671819), N = 62 moving right - --- 2.59944 (0.662195), N = 50 moving right - --- 9.12444 (0.577619), N = 14 moving right - - -- best stat: 0.71444, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 264 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 12 7 17 11 - - - -- linear combo weights (showing up to 5) - - -0.0107 0.0488 1.8053 0.4263 1.3230 - - - -- cutpoint (score) - --- 0.341094 (0.649075), N = 209 moving right - --- 0.366813 (0.659443), N = 201 moving right - --- 0.598417 (0.671056), N = 183 moving right - --- 1.10952 (0.741685), N = 122 moving right - --- 3.16996 (0.630951), N = 38 moving right - - -- best stat: 0.741685, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 13 1 14 10 - - - -- linear combo weights (showing up to 5) - - 3.7476 0.4205 0.4360 0.4139 -0.5803 - - - -- cutpoint (score) - --- -1.42084 (0.527911), N = 252 moving right - --- -0.873002 (0.613657), N = 210 moving right - --- -0.332252 (0.658158), N = 167 moving right - --- -0.319488 (0.664296), N = 165 moving right - --- -0.119608 (0.686422), N = 141 moving right - - -- best stat: 0.686422, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 7 10 1 3 - - - -- linear combo weights (showing up to 5) - - 0.6635 2.7713 -0.5435 0.2379 2.5819 - - - -- cutpoint (score) - --- -0.642467 (0.560406), N = 225 moving right - --- -0.402421 (0.614818), N = 195 moving right - --- -0.320181 (0.628297), N = 184 moving right - --- 0.254679 (0.675846), N = 99 moving right - --- 0.639284 (0.657826), N = 64 moving right - - -- best stat: 0.675846, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.7900e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 265 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 8 3 16 14 - - - -- linear combo weights (showing up to 5) - - 0.5344 1.4839 6.4788 0.2850 -0.0655 - - - -- cutpoint (score) - --- -0.984426 (0.575604), N = 236 moving right - --- -0.715478 (0.703306), N = 169 moving right - --- 1.07992 (0.692748), N = 46 moving right - --- 1.27823 (0.673616), N = 39 moving right - --- 6.4321 (0.592636), N = 16 moving right - - -- best stat: 0.703306, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 8 17 11 6 - - - -- linear combo weights (showing up to 5) - - 0.5314 1.5536 0.5020 0.8105 0.4740 - - - -- cutpoint (score) - --- 0.0409433 (0.634214), N = 196 moving right - --- 1.22258 (0.774209), N = 112 moving right - --- 2.16816 (0.773997), N = 70 moving right - --- 3.02155 (0.685446), N = 46 moving right - --- 5.77967 (0.580729), N = 14 moving right - - -- best stat: 0.774209, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 5 15 12 17 - - - -- linear combo weights (showing up to 5) - - -0.5977 0.7323 0.0534 0.1429 0.7013 - - - -- cutpoint (score) - --- 0.774505 (0.546646), N = 254 moving right - --- 2.13718 (0.675311), N = 132 moving right - --- 2.14759 (0.686255), N = 126 moving right - --- 2.7904 (0.619706), N = 51 moving right - --- 2.94257 (0.605815), N = 28 moving right - - -- best stat: 0.686255, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 266 -------------- - -- N obs inbag: 276 -- N row inbag: 164 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 0 4 17 2 - - - -- linear combo weights (showing up to 5) - - 8.9030 -0.1587 0.3469 0.3406 -0.5619 - - - -- cutpoint (score) - --- -0.0393834 (0.572312), N = 242 moving right - --- 0.181939 (0.616931), N = 213 moving right - --- 0.340593 (0.676476), N = 172 moving right - --- 0.800455 (0.677833), N = 112 moving right - --- 0.988672 (0.691), N = 65 moving right - - -- best stat: 0.691, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 13 17 11 2 - - - -- linear combo weights (showing up to 5) - - 0.2117 0.4382 0.4805 1.0144 0.2902 - - - -- cutpoint (score) - --- -0.393769 (0.519974), N = 265 moving right - --- 0.646002 (0.627119), N = 202 moving right - --- 2.1911 (0.721251), N = 81 moving right - --- 3.11587 (0.653076), N = 42 moving right - --- 4.18097 (0.592286), N = 20 moving right - - -- best stat: 0.721251, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 17 15 13 10 - - - -- linear combo weights (showing up to 5) - - 0.2378 0.4749 0.1262 0.5640 -0.9548 - - - -- cutpoint (score) - --- 0.822524 (0.618177), N = 198 moving right - --- 1.12456 (0.660883), N = 166 moving right - --- 1.91621 (0.730549), N = 98 moving right - --- 3.05896 (0.670737), N = 47 moving right - --- 3.73171 (0.596446), N = 21 moving right - - -- best stat: 0.730549, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 5.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8188e-01 1.8116e-02 - 7.7000e+01 9.7101e-01 2.9186e-02 - 1.1000e+02 9.6739e-01 3.2917e-02 - 1.3100e+02 9.6377e-01 3.6663e-02 - 1.4000e+02 9.5652e-01 4.4182e-02 - - ------------- Growing tree 267 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 9 10 0 17 - - - -- linear combo weights (showing up to 5) - - 0.6083 0.5291 -0.7287 -0.2139 0.4446 - - - -- cutpoint (score) - --- -0.0230234 (0.550755), N = 246 moving right - --- 0.917697 (0.67564), N = 168 moving right - --- 1.25316 (0.711133), N = 122 moving right - --- 2.26038 (0.63988), N = 48 moving right - --- 2.97394 (0.587053), N = 20 moving right - - -- best stat: 0.711133, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 11 13 14 0 - - - -- linear combo weights (showing up to 5) - - 0.6394 0.7519 0.3697 0.1870 -0.2383 - - - -- cutpoint (score) - --- -0.492817 (0.697749), N = 145 moving right - --- 0.273042 (0.725897), N = 81 moving right - --- 0.49415 (0.709407), N = 62 moving right - --- 0.542523 (0.70051), N = 58 moving right - --- 2.31713 (0.525234), N = 7 moving right - - -- best stat: 0.725897, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 14 16 17 10 - - - -- linear combo weights (showing up to 5) - - 0.4829 0.3748 0.5392 0.3047 -0.8111 - - - -- cutpoint (score) - --- -0.941163 (0.507977), N = 265 moving right - --- 0.186841 (0.602048), N = 209 moving right - --- 0.253721 (0.627052), N = 198 moving right - --- 0.472817 (0.655296), N = 177 moving right - --- 1.41574 (0.708698), N = 91 moving right - - -- best stat: 0.708698, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 268 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 7 0 5 3 - - - -- linear combo weights (showing up to 5) - - 0.5309 3.1613 0.1092 0.3676 4.3377 - - - -- cutpoint (score) - --- 1.17093 (0.603563), N = 211 moving right - --- 1.70183 (0.665144), N = 117 moving right - --- 2.06941 (0.6651), N = 81 moving right - --- 2.49115 (0.613308), N = 30 moving right - --- 6.57041 (0.569194), N = 13 moving right - - -- best stat: 0.665144, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 0 9 10 16 - - - -- linear combo weights (showing up to 5) - - 0.0220 0.2413 0.4463 -0.6004 0.5628 - - - -- cutpoint (score) - --- -0.978856 (0.531258), N = 239 moving right - --- -0.818537 (0.572066), N = 221 moving right - --- 0.194538 (0.703646), N = 106 moving right - --- 1.34908 (0.615766), N = 30 moving right - --- 1.87285 (0.521644), N = 13 moving right - - -- best stat: 0.703646, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 8 9 1 17 - - - -- linear combo weights (showing up to 5) - - 0.3622 1.5998 -0.0659 0.2731 0.4428 - - - -- cutpoint (score) - --- 0.707925 (0.731924), N = 137 moving right - --- 0.708172 (0.733838), N = 136 moving right - --- 1.01178 (0.740407), N = 120 moving right - --- 1.8133 (0.698817), N = 55 moving right - --- 3.00935 (0.603802), N = 25 moving right - - -- best stat: 0.740407, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.3100e+02 9.9275e-01 7.2596e-03 - 1.8600e+02 9.8913e-01 1.0909e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 269 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 4 2 9 7 - - - -- linear combo weights (showing up to 5) - - 0.2641 0.6180 -0.6014 0.5142 13.3239 - - - -- cutpoint (score) - --- -0.496568 (0.666024), N = 181 moving right - --- -0.406379 (0.686398), N = 162 moving right - --- -0.264779 (0.684028), N = 129 moving right - --- 0.32522 (0.68197), N = 59 moving right - --- 0.879065 (0.639863), N = 44 moving right - - -- best stat: 0.686398, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 4 11 10 17 - - - -- linear combo weights (showing up to 5) - - 0.4895 0.1149 1.1126 -0.5284 0.2881 - - - -- cutpoint (score) - --- 0.000240045 (0.656287), N = 188 moving right - --- 0.0262407 (0.667016), N = 183 moving right - --- 0.133008 (0.683936), N = 173 moving right - --- 1.2754 (0.752903), N = 89 moving right - --- 2.12141 (0.703575), N = 70 moving right - - -- best stat: 0.752903, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 11 4 7 15 - - - -- linear combo weights (showing up to 5) - - 0.2536 0.8404 0.5100 12.1019 0.1324 - - - -- cutpoint (score) - --- -1.05987 (0.511023), N = 271 moving right - --- -0.302837 (0.688419), N = 183 moving right - --- -0.0264946 (0.708499), N = 148 moving right - --- 0.44097 (0.724317), N = 107 moving right - --- 1.12873 (0.686728), N = 61 moving right - - -- best stat: 0.724317, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7826e-01 2.1899e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 270 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 8 0 3 17 - - - -- linear combo weights (showing up to 5) - - 0.2132 1.5687 -0.1543 6.0314 0.2307 - - - -- cutpoint (score) - --- -0.774347 (0.522623), N = 262 moving right - --- -0.32999 (0.602494), N = 213 moving right - --- 0.0534261 (0.700223), N = 142 moving right - --- 0.382794 (0.734469), N = 99 moving right - --- 1.46148 (0.678334), N = 46 moving right - - -- best stat: 0.734469, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 4 9 17 13 - - - -- linear combo weights (showing up to 5) - - -0.6204 0.2930 0.1008 0.3817 0.3435 - - - -- cutpoint (score) - --- 0.285486 (0.564663), N = 236 moving right - --- 1.08514 (0.661434), N = 154 moving right - --- 1.31213 (0.692875), N = 127 moving right - --- 1.76559 (0.669428), N = 89 moving right - --- 2.16326 (0.658695), N = 54 moving right - - -- best stat: 0.692875, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 13 11 17 0 - - - -- linear combo weights (showing up to 5) - - -0.0611 0.3079 0.8304 0.4360 -0.4396 - - - -- cutpoint (score) - --- -0.0471586 (0.574393), N = 239 moving right - --- 0.691014 (0.637141), N = 170 moving right - --- 0.715675 (0.639212), N = 169 moving right - --- 2.46365 (0.620775), N = 30 moving right - --- 3.10806 (0.531485), N = 8 moving right - - -- best stat: 0.639212, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 271 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 15 14 13 9 - - - -- linear combo weights (showing up to 5) - - 0.6047 -0.2060 0.2461 0.2357 0.2958 - - - -- cutpoint (score) - --- -0.878215 (0.506687), N = 271 moving right - --- -0.821126 (0.514756), N = 266 moving right - --- -0.241866 (0.58807), N = 207 moving right - --- 0.453761 (0.640832), N = 112 moving right - --- 1.39699 (0.546364), N = 20 moving right - - -- best stat: 0.640832, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 11 5 16 15 - - - -- linear combo weights (showing up to 5) - - 0.6350 1.4490 0.8536 0.3548 -0.0803 - - - -- cutpoint (score) - --- -1.63397 (0.577103), N = 242 moving right - --- -1.61224 (0.580647), N = 241 moving right - --- -0.376081 (0.750011), N = 118 moving right - --- 0.195994 (0.768802), N = 90 moving right - --- 1.72709 (0.643774), N = 39 moving right - - -- best stat: 0.768802, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 10 2 5 14 - - - -- linear combo weights (showing up to 5) - - 0.0429 -0.9165 -1.4570 0.9311 0.2675 - - - -- cutpoint (score) - --- -1.1629 (0.692836), N = 133 moving right - --- -1.09071 (0.67614), N = 127 moving right - --- -0.6685 (0.673086), N = 98 moving right - --- -0.659684 (0.664438), N = 97 moving right - --- 0.24367 (0.655298), N = 32 moving right - - -- best stat: 0.692836, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 272 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 7 14 12 17 - - - -- linear combo weights (showing up to 5) - - 17.5797 5.2551 0.1138 0.0219 0.5156 - - - -- cutpoint (score) - --- 1.08213 (0.605861), N = 199 moving right - --- 1.62677 (0.690037), N = 102 moving right - --- 1.99039 (0.667406), N = 57 moving right - --- 2.00076 (0.656621), N = 53 moving right - --- 2.0364 (0.621519), N = 38 moving right - - -- best stat: 0.690037, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 3 1 4 11 - - - -- linear combo weights (showing up to 5) - - 4.2517 18.2010 0.4891 0.5905 0.6913 - - - -- cutpoint (score) - --- -0.574915 (0.591843), N = 222 moving right - --- -0.527097 (0.604868), N = 217 moving right - --- -0.230555 (0.655166), N = 187 moving right - --- 2.03836 (0.616346), N = 20 moving right - --- 22.6615 (0.548127), N = 7 moving right - - -- best stat: 0.655166, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 5 14 0 6 - - - -- linear combo weights (showing up to 5) - - 0.5739 1.2355 0.3058 -0.5710 -0.0363 - - - -- cutpoint (score) - --- 0.810604 (0.570528), N = 240 moving right - --- 1.32986 (0.624936), N = 163 moving right - --- 1.39897 (0.654658), N = 149 moving right - --- 1.58591 (0.652095), N = 129 moving right - --- 1.93722 (0.650155), N = 97 moving right - - -- best stat: 0.654658, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 273 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 13 0 1 5 - - - -- linear combo weights (showing up to 5) - - 0.2287 0.5086 0.1362 0.4609 0.7785 - - - -- cutpoint (score) - --- -0.591259 (0.563108), N = 242 moving right - --- -0.264435 (0.653648), N = 198 moving right - --- 0.582952 (0.710341), N = 91 moving right - --- 0.684264 (0.677942), N = 79 moving right - --- 1.22537 (0.614512), N = 43 moving right - - -- best stat: 0.710341, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 2 3 1 16 - - - -- linear combo weights (showing up to 5) - - 0.5612 0.4678 3.6244 0.1394 0.1066 - - - -- cutpoint (score) - --- -0.0105689 (0.600455), N = 223 moving right - --- 0.238041 (0.71014), N = 147 moving right - --- 0.652671 (0.678727), N = 83 moving right - --- 1.57494 (0.623643), N = 34 moving right - --- 2.25359 (0.606327), N = 24 moving right - - -- best stat: 0.71014, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 5 16 14 4 - - - -- linear combo weights (showing up to 5) - - 0.3217 0.5747 0.2229 0.3253 0.7282 - - - -- cutpoint (score) - --- -0.501387 (0.534772), N = 252 moving right - --- -0.209323 (0.57966), N = 228 moving right - --- 0.689426 (0.679913), N = 121 moving right - --- 0.728941 (0.68289), N = 113 moving right - --- 1.40161 (0.600796), N = 41 moving right - - -- best stat: 0.68289, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 274 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 16 11 0 6 - - - -- linear combo weights (showing up to 5) - - 0.2190 0.7424 1.0048 0.0768 1.0478 - - - -- cutpoint (score) - --- -1.75649 (0.50577), N = 271 moving right - --- -1.37271 (0.54159), N = 243 moving right - --- -0.740089 (0.662606), N = 180 moving right - --- -0.214047 (0.719725), N = 121 moving right - --- -0.0190091 (0.707198), N = 111 moving right - - -- best stat: 0.719725, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 7 3 15 2 - - - -- linear combo weights (showing up to 5) - - 0.3875 6.8229 4.8717 -0.1651 -0.3524 - - - -- cutpoint (score) - --- 0.509087 (0.594097), N = 218 moving right - --- 1.02559 (0.672472), N = 95 moving right - --- 1.4419 (0.64491), N = 41 moving right - --- 5.82605 (0.615203), N = 25 moving right - --- 6.71392 (0.593325), N = 18 moving right - - -- best stat: 0.672472, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 17 2 9 13 - - - -- linear combo weights (showing up to 5) - - -0.8483 0.5361 -0.4175 0.4030 0.0925 - - - -- cutpoint (score) - --- 0.569559 (0.640921), N = 195 moving right - --- 2.25219 (0.670199), N = 45 moving right - --- 3.14438 (0.583394), N = 20 moving right - --- 3.35135 (0.56246), N = 17 moving right - --- 3.45197 (0.551371), N = 13 moving right - - -- best stat: 0.670199, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 5.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 275 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 11 13 0 4 - - - -- linear combo weights (showing up to 5) - - -0.6367 0.7826 0.2736 -0.1279 0.6338 - - - -- cutpoint (score) - --- -1.01235 (0.584108), N = 223 moving right - --- -0.916952 (0.604302), N = 214 moving right - --- -0.194396 (0.700502), N = 147 moving right - --- 0.226554 (0.70602), N = 115 moving right - --- 1.538 (0.669297), N = 40 moving right - - -- best stat: 0.70602, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 10 9 1 4 - - - -- linear combo weights (showing up to 5) - - 0.4774 -0.5538 0.4865 0.4149 0.4018 - - - -- cutpoint (score) - --- 1.18664 (0.72025), N = 156 moving right - --- 1.73986 (0.721377), N = 103 moving right - --- 2.10848 (0.715061), N = 83 moving right - --- 2.78776 (0.672279), N = 45 moving right - --- 2.79127 (0.668921), N = 44 moving right - - -- best stat: 0.721377, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 2 10 0 - - - -- linear combo weights (showing up to 5) - - 0.5810 0.5772 -1.2392 -0.7001 -0.2771 - - - -- cutpoint (score) - --- -0.74014 (0.571898), N = 231 moving right - --- -0.21227 (0.682751), N = 165 moving right - --- -0.191909 (0.671175), N = 163 moving right - --- 0.405106 (0.726754), N = 120 moving right - --- 1.96129 (0.639922), N = 33 moving right - - -- best stat: 0.726754, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 5.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 276 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 16 11 7 8 - - - -- linear combo weights (showing up to 5) - - -0.1161 0.3206 0.9043 3.7496 1.3020 - - - -- cutpoint (score) - --- -1.71974 (0.541916), N = 251 moving right - --- -1.42568 (0.614751), N = 213 moving right - --- 0.726737 (0.708639), N = 63 moving right - --- 1.08606 (0.686099), N = 51 moving right - --- 5.57239 (0.581905), N = 15 moving right - - -- best stat: 0.708639, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 14 4 9 1 - - - -- linear combo weights (showing up to 5) - - 2.1004 0.0540 0.2518 -0.2998 0.5851 - - - -- cutpoint (score) - --- -1.1369 (0.580523), N = 209 moving right - --- -0.964472 (0.612845), N = 191 moving right - --- -0.893237 (0.628409), N = 182 moving right - --- -0.567349 (0.724999), N = 137 moving right - --- 0.781028 (0.692781), N = 44 moving right - - -- best stat: 0.724999, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 8 3 0 4 - - - -- linear combo weights (showing up to 5) - - -0.4578 1.6346 5.2026 -0.2756 0.0964 - - - -- cutpoint (score) - --- -1.38453 (0.585257), N = 227 moving right - --- -0.945603 (0.648393), N = 180 moving right - --- -0.645336 (0.724727), N = 138 moving right - --- -0.575838 (0.743056), N = 126 moving right - --- 0.29317 (0.708408), N = 68 moving right - - -- best stat: 0.743056, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 1.4000e+02 9.7464e-01 2.5576e-02 - 1.7900e+02 9.7101e-01 2.9293e-02 - 1.9100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 277 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 0 1 8 13 - - - -- linear combo weights (showing up to 5) - - -0.3257 -0.1205 0.3045 2.3180 -0.0700 - - - -- cutpoint (score) - --- -1.71812 (0.579726), N = 227 moving right - --- -1.42674 (0.65002), N = 181 moving right - --- -1.34381 (0.686967), N = 159 moving right - --- 0.862059 (0.646223), N = 38 moving right - --- 2.68418 (0.588474), N = 16 moving right - - -- best stat: 0.686967, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 15 8 16 3 - - - -- linear combo weights (showing up to 5) - - 0.1450 -0.0350 1.7472 0.2621 5.0700 - - - -- cutpoint (score) - --- -1.25439 (0.512387), N = 261 moving right - --- -1.22175 (0.521448), N = 258 moving right - --- -1.12507 (0.547671), N = 239 moving right - --- -0.766582 (0.69229), N = 157 moving right - --- 1.73663 (0.658434), N = 35 moving right - - -- best stat: 0.69229, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 15 8 13 - - - -- linear combo weights (showing up to 5) - - 0.2758 0.3838 -0.0528 2.0759 -0.0387 - - - -- cutpoint (score) - --- -0.632633 (0.59411), N = 222 moving right - --- -0.405657 (0.632838), N = 194 moving right - --- 0.20139 (0.732955), N = 134 moving right - --- 0.734534 (0.737847), N = 101 moving right - --- 4.08209 (0.582955), N = 15 moving right - - -- best stat: 0.737847, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 278 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 6 3 10 8 - - - -- linear combo weights (showing up to 5) - - 0.0906 0.5972 4.8724 -0.3397 1.3828 - - - -- cutpoint (score) - --- -0.956071 (0.592202), N = 218 moving right - --- -0.688907 (0.674822), N = 177 moving right - --- -0.583141 (0.701708), N = 161 moving right - --- 4.55621 (0.599864), N = 20 moving right - --- 6.51973 (0.567456), N = 11 moving right - - -- best stat: 0.701708, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 10 11 5 7 - - - -- linear combo weights (showing up to 5) - - 1.2824 -0.5462 0.4204 0.4357 1.5214 - - - -- cutpoint (score) - --- -1.79854 (0.507582), N = 268 moving right - --- -1.65609 (0.517644), N = 257 moving right - --- -1.30086 (0.560475), N = 235 moving right - --- 0.152247 (0.762903), N = 105 moving right - --- 2.04687 (0.640554), N = 26 moving right - - -- best stat: 0.762903, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 0 17 12 15 - - - -- linear combo weights (showing up to 5) - - 3.1772 -0.2187 0.8053 0.1744 -0.0534 - - - -- cutpoint (score) - --- 1.57681 (0.601724), N = 217 moving right - --- 1.92728 (0.616108), N = 209 moving right - --- 2.3511 (0.66854), N = 121 moving right - --- 2.97485 (0.661339), N = 74 moving right - --- 3.25073 (0.613247), N = 30 moving right - - -- best stat: 0.66854, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.1000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 279 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 4 12 17 15 - - - -- linear combo weights (showing up to 5) - - -0.1757 0.4545 0.0887 0.4718 0.0374 - - - -- cutpoint (score) - --- 1.27183 (0.639998), N = 191 moving right - --- 1.44904 (0.647915), N = 158 moving right - --- 2.31147 (0.536172), N = 18 moving right - --- 2.33217 (0.523867), N = 13 moving right - --- 2.34776 (0.505502), N = 9 moving right - - -- best stat: 0.647915, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 10 9 5 8 - - - -- linear combo weights (showing up to 5) - - 0.8085 -0.5893 -0.4373 0.5105 2.2804 - - - -- cutpoint (score) - --- -2.00551 (0.509426), N = 266 moving right - --- -1.46961 (0.585508), N = 234 moving right - --- -1.43042 (0.589223), N = 231 moving right - --- -1.11394 (0.667905), N = 186 moving right - --- 0.695829 (0.7487), N = 76 moving right - - -- best stat: 0.7487, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 10 12 14 17 - - - -- linear combo weights (showing up to 5) - - -0.3001 -0.7962 -0.0959 0.7942 0.3969 - - - -- cutpoint (score) - --- -0.0374933 (0.615736), N = 220 moving right - --- 0.0843478 (0.631895), N = 213 moving right - --- 0.24318 (0.641066), N = 207 moving right - --- 0.462693 (0.660638), N = 188 moving right - --- 0.693912 (0.693606), N = 165 moving right - - -- best stat: 0.693606, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7464e-01 2.5588e-02 - 1.4000e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 280 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 10 17 7 13 - - - -- linear combo weights (showing up to 5) - - 0.7749 -0.4134 0.6097 2.3286 0.2314 - - - -- cutpoint (score) - --- 1.17742 (0.667292), N = 187 moving right - --- 1.31644 (0.680544), N = 177 moving right - --- 2.24899 (0.752746), N = 113 moving right - --- 2.2866 (0.747645), N = 109 moving right - --- 3.67823 (0.65234), N = 43 moving right - - -- best stat: 0.752746, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 16 5 15 10 - - - -- linear combo weights (showing up to 5) - - 0.8198 0.5861 0.8402 -0.0677 -0.5802 - - - -- cutpoint (score) - --- -0.802482 (0.569329), N = 238 moving right - --- -0.27171 (0.63252), N = 185 moving right - --- -0.243422 (0.63639), N = 178 moving right - --- -0.210945 (0.648763), N = 167 moving right - --- 1.89535 (0.640202), N = 34 moving right - - -- best stat: 0.648763, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 14 11 6 5 - - - -- linear combo weights (showing up to 5) - - 0.4262 0.2604 0.9802 1.2570 0.5958 - - - -- cutpoint (score) - --- -1.10437 (0.562566), N = 248 moving right - --- -0.733063 (0.625777), N = 215 moving right - --- -0.585714 (0.65234), N = 191 moving right - --- 1.1969 (0.679586), N = 55 moving right - --- 1.7655 (0.658692), N = 42 moving right - - -- best stat: 0.679586, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 281 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 5 6 11 0 - - - -- linear combo weights (showing up to 5) - - 1.8088 0.3246 1.0227 0.3273 -0.0769 - - - -- cutpoint (score) - --- -1.34724 (0.575103), N = 236 moving right - --- -0.0598206 (0.736871), N = 103 moving right - --- 0.277718 (0.732964), N = 76 moving right - --- 0.326505 (0.724655), N = 72 moving right - --- 1.69738 (0.648719), N = 37 moving right - - -- best stat: 0.736871, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 11 1 3 0 - - - -- linear combo weights (showing up to 5) - - -0.0189 0.6563 0.2881 5.5281 -0.1764 - - - -- cutpoint (score) - --- -0.748178 (0.562153), N = 241 moving right - --- -0.459536 (0.676126), N = 174 moving right - --- -0.43702 (0.679676), N = 172 moving right - --- -0.341231 (0.714719), N = 151 moving right - --- 0.0756574 (0.733956), N = 90 moving right - - -- best stat: 0.733956, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 12 14 5 1 - - - -- linear combo weights (showing up to 5) - - 0.4536 -0.0405 0.4519 1.1612 0.5657 - - - -- cutpoint (score) - --- -0.467084 (0.599655), N = 227 moving right - --- -0.337001 (0.614707), N = 214 moving right - --- -0.108854 (0.663057), N = 172 moving right - --- 0.010778 (0.686736), N = 160 moving right - --- 1.19422 (0.629323), N = 51 moving right - - -- best stat: 0.686736, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 282 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 12 2 4 0 - - - -- linear combo weights (showing up to 5) - - 0.4305 0.0929 -0.0844 0.7793 0.1320 - - - -- cutpoint (score) - --- -0.33493 (0.568245), N = 241 moving right - --- -0.248183 (0.569669), N = 230 moving right - --- -0.16798 (0.595918), N = 217 moving right - --- 1.11364 (0.587787), N = 38 moving right - --- 1.45926 (0.520822), N = 16 moving right - - -- best stat: 0.595918, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 17 9 6 7 - - - -- linear combo weights (showing up to 5) - - 0.3763 0.5807 0.5819 0.9756 6.0295 - - - -- cutpoint (score) - --- 0.998026 (0.600355), N = 227 moving right - --- 1.55692 (0.681332), N = 177 moving right - --- 2.05021 (0.712844), N = 106 moving right - --- 2.50198 (0.704094), N = 56 moving right - --- 2.64267 (0.690969), N = 45 moving right - - -- best stat: 0.712844, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 9 12 2 6 - - - -- linear combo weights (showing up to 5) - - 0.2558 0.6456 0.1428 0.0180 0.8968 - - - -- cutpoint (score) - --- -0.733683 (0.501073), N = 266 moving right - --- -0.624836 (0.499216), N = 255 moving right - --- -0.558993 (0.498514), N = 239 moving right - --- 0.326885 (0.600768), N = 63 moving right - --- 0.335568 (0.596063), N = 61 moving right - - -- best stat: 0.600768, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 7.1000e+01 9.7826e-01 2.1886e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.1000e+02 9.7101e-01 2.9307e-02 - - ------------- Growing tree 283 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 199 -- max leaves: 100 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 4 2 3 0 - - - -- linear combo weights (showing up to 5) - - 0.2339 0.5933 -1.3279 13.4435 -0.4456 - - - -- cutpoint (score) - --- -1.96539 (0.506846), N = 269 moving right - --- -1.79669 (0.530883), N = 249 moving right - --- -1.44799 (0.605078), N = 182 moving right - --- -1.30609 (0.632859), N = 163 moving right - --- -1.20147 (0.647149), N = 148 moving right - - -- best stat: 0.647149, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 5 13 11 7 - - - -- linear combo weights (showing up to 5) - - 0.3419 0.2864 0.2751 1.1177 6.6024 - - - -- cutpoint (score) - --- 0.41215 (0.666645), N = 188 moving right - --- 0.479611 (0.667021), N = 184 moving right - --- 1.11966 (0.774248), N = 108 moving right - --- 3.75291 (0.653684), N = 29 moving right - --- 7.2419 (0.615069), N = 22 moving right - - -- best stat: 0.774248, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 10 12 0 17 - - - -- linear combo weights (showing up to 5) - - -0.1660 -0.9245 -0.0030 -0.3841 0.7173 - - - -- cutpoint (score) - --- 1.53424 (0.658758), N = 174 moving right - --- 1.60343 (0.668661), N = 169 moving right - --- 1.93964 (0.661992), N = 132 moving right - --- 1.9444 (0.66423), N = 131 moving right - --- 2.35091 (0.676127), N = 92 moving right - - -- best stat: 0.676127, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 4.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8551e-01 1.4493e-02 - 5.1000e+01 9.7826e-01 2.1846e-02 - 7.7000e+01 9.7464e-01 2.5549e-02 - 1.3100e+02 9.7101e-01 2.9267e-02 - 1.4000e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 284 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 269 -- max leaves: 135 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 0 14 9 4 - - - -- linear combo weights (showing up to 5) - - 1.6633 0.1947 0.3520 0.1099 1.1030 - - - -- cutpoint (score) - --- -0.379441 (0.519169), N = 261 moving right - --- -0.0588074 (0.604715), N = 204 moving right - --- 0.780215 (0.685514), N = 138 moving right - --- 0.880702 (0.677595), N = 132 moving right - --- 2.64286 (0.556845), N = 14 moving right - - -- best stat: 0.685514, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 9 15 0 16 - - - -- linear combo weights (showing up to 5) - - 5.8696 0.3345 -0.2392 -0.0030 0.8936 - - - -- cutpoint (score) - --- -1.05778 (0.533788), N = 255 moving right - --- -0.30724 (0.634168), N = 168 moving right - --- -0.255011 (0.645562), N = 162 moving right - --- 0.31608 (0.714626), N = 96 moving right - --- 0.799898 (0.700115), N = 63 moving right - - -- best stat: 0.714626, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 12 8 15 16 - - - -- linear combo weights (showing up to 5) - - -0.1934 -0.0042 1.8038 -0.3572 0.6858 - - - -- cutpoint (score) - --- -1.45553 (0.577699), N = 238 moving right - --- -1.05994 (0.650185), N = 191 moving right - --- -0.894893 (0.684725), N = 173 moving right - --- -0.537701 (0.749973), N = 136 moving right - --- -0.110324 (0.739708), N = 109 moving right - - -- best stat: 0.749973, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 285 -------------- - -- N obs inbag: 276 -- N row inbag: 162 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 5 6 13 10 - - - -- linear combo weights (showing up to 5) - - 0.4691 1.2579 0.6442 0.3434 -0.7881 - - - -- cutpoint (score) - --- -0.158043 (0.666965), N = 161 moving right - --- 0.661816 (0.698103), N = 95 moving right - --- 2.31874 (0.60729), N = 25 moving right - --- 2.31913 (0.610867), N = 23 moving right - --- 2.46995 (0.591924), N = 19 moving right - - -- best stat: 0.698103, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 17 14 16 2 - - - -- linear combo weights (showing up to 5) - - 1.0586 0.3613 0.8224 0.5852 0.2115 - - - -- cutpoint (score) - --- 0.753285 (0.617805), N = 205 moving right - --- 1.25437 (0.681897), N = 172 moving right - --- 1.80351 (0.703442), N = 97 moving right - --- 2.24299 (0.683523), N = 67 moving right - --- 2.86919 (0.588862), N = 30 moving right - - -- best stat: 0.703442, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 13 11 5 12 - - - -- linear combo weights (showing up to 5) - - 0.1828 0.2693 0.9709 0.9450 0.0312 - - - -- cutpoint (score) - --- -0.908246 (0.514851), N = 254 moving right - --- -0.905046 (0.518537), N = 253 moving right - --- 0.844884 (0.71439), N = 76 moving right - --- 0.876376 (0.718347), N = 73 moving right - --- 0.96621 (0.719377), N = 71 moving right - - -- best stat: 0.719377, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - 5.3300e+02 0 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.3100e+02 9.9638e-01 3.6232e-03 - 1.7900e+02 9.8551e-01 1.4532e-02 - 1.9800e+02 9.8188e-01 1.8209e-02 - 2.1600e+02 9.7464e-01 2.5589e-02 - 2.2300e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 286 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 10 6 7 9 - - - -- linear combo weights (showing up to 5) - - 0.1065 -0.4512 0.6488 9.6844 0.1785 - - - -- cutpoint (score) - --- -0.180702 (0.588434), N = 187 moving right - --- -0.0514431 (0.650192), N = 144 moving right - --- 0.321667 (0.69077), N = 82 moving right - --- 0.491753 (0.68837), N = 65 moving right - --- 0.582561 (0.694439), N = 59 moving right - - -- best stat: 0.694439, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 15 10 1 2 - - - -- linear combo weights (showing up to 5) - - 9.9514 0.0098 -0.5173 0.2903 -0.9745 - - - -- cutpoint (score) - --- -1.26321 (0.643291), N = 187 moving right - --- -0.911523 (0.663183), N = 136 moving right - --- -0.679301 (0.668577), N = 108 moving right - --- 0.133478 (0.624132), N = 34 moving right - --- 1.24296 (0.600353), N = 19 moving right - - -- best stat: 0.668577, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 5 15 6 12 - - - -- linear combo weights (showing up to 5) - - 0.3260 2.2394 -0.1792 -0.0404 0.1933 - - - -- cutpoint (score) - --- -0.403559 (0.573718), N = 228 moving right - --- -0.336102 (0.580401), N = 220 moving right - --- -0.0214028 (0.644005), N = 163 moving right - --- -0.0048043 (0.646186), N = 162 moving right - --- 0.0725386 (0.673595), N = 145 moving right - - -- best stat: 0.673595, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 287 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 3 2 13 11 - - - -- linear combo weights (showing up to 5) - - 1.4161 3.1016 0.3149 0.2692 0.5457 - - - -- cutpoint (score) - --- -1.30173 (0.529247), N = 257 moving right - --- -0.738158 (0.656014), N = 187 moving right - --- -0.675926 (0.675244), N = 178 moving right - --- -0.491631 (0.702487), N = 156 moving right - --- 0.222983 (0.75218), N = 103 moving right - - -- best stat: 0.75218, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 0 5 4 3 - - - -- linear combo weights (showing up to 5) - - 0.2926 -0.1940 1.0117 0.6077 4.6490 - - - -- cutpoint (score) - --- 0.0929947 (0.655445), N = 176 moving right - --- 0.46432 (0.676088), N = 132 moving right - --- 0.768497 (0.667387), N = 95 moving right - --- 0.790287 (0.661966), N = 88 moving right - --- 6.26844 (0.53233), N = 9 moving right - - -- best stat: 0.676088, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 12 15 3 8 - - - -- linear combo weights (showing up to 5) - - 0.4900 0.2757 -0.3018 2.8096 1.5052 - - - -- cutpoint (score) - --- -1.37702 (0.588879), N = 226 moving right - --- -1.11252 (0.657271), N = 196 moving right - --- 0.590296 (0.718141), N = 68 moving right - --- 5.99364 (0.586011), N = 16 moving right - --- 8.32538 (0.558257), N = 10 moving right - - -- best stat: 0.718141, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.7464e-01 2.5562e-02 - 7.7000e+01 9.6739e-01 3.2997e-02 - 1.3100e+02 9.6014e-01 4.0488e-02 - - ------------- Growing tree 288 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 17 4 6 14 - - - -- linear combo weights (showing up to 5) - - 0.4425 0.6322 0.3476 -1.1576 0.5919 - - - -- cutpoint (score) - --- 1.40494 (0.617944), N = 196 moving right - --- 2.19761 (0.718053), N = 119 moving right - --- 2.49355 (0.711375), N = 80 moving right - --- 2.77888 (0.684623), N = 53 moving right - --- 3.02765 (0.634729), N = 29 moving right - - -- best stat: 0.718053, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 17 10 12 4 - - - -- linear combo weights (showing up to 5) - - 1.0336 0.4085 -0.6198 -0.1644 0.1177 - - - -- cutpoint (score) - --- -0.248151 (0.55881), N = 245 moving right - --- 0.177744 (0.612396), N = 211 moving right - --- 0.997982 (0.702962), N = 146 moving right - --- 1.80541 (0.743958), N = 71 moving right - --- 2.65947 (0.695295), N = 41 moving right - - -- best stat: 0.743958, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 16 9 6 10 - - - -- linear combo weights (showing up to 5) - - -0.1837 0.4545 0.6245 -0.9677 -0.9549 - - - -- cutpoint (score) - --- -1.0521 (0.608603), N = 207 moving right - --- -0.611152 (0.655792), N = 164 moving right - --- -0.250646 (0.699411), N = 140 moving right - --- 0.0509984 (0.71311), N = 107 moving right - --- 0.371502 (0.707743), N = 84 moving right - - -- best stat: 0.71311, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 289 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 9 4 8 13 - - - -- linear combo weights (showing up to 5) - - -0.5500 -0.3621 -0.0492 1.6004 0.2895 - - - -- cutpoint (score) - --- -1.62518 (0.523052), N = 252 moving right - --- -1.61143 (0.526867), N = 251 moving right - --- -0.816336 (0.627022), N = 179 moving right - --- 0.535169 (0.674139), N = 61 moving right - --- 1.38586 (0.645205), N = 35 moving right - - -- best stat: 0.674139, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 8 16 14 4 - - - -- linear combo weights (showing up to 5) - - 2.7031 1.1609 0.3339 0.1348 0.0472 - - - -- cutpoint (score) - --- -1.15978 (0.504928), N = 271 moving right - --- -0.777027 (0.615874), N = 210 moving right - --- -0.71194 (0.654147), N = 185 moving right - --- 1.21126 (0.662811), N = 51 moving right - --- 4.75071 (0.588172), N = 16 moving right - - -- best stat: 0.662811, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 2 0 15 7 - - - -- linear combo weights (showing up to 5) - - 1.3662 -0.3833 -0.1677 -0.0529 2.8111 - - - -- cutpoint (score) - --- -1.40081 (0.522118), N = 267 moving right - --- -1.23455 (0.628671), N = 202 moving right - --- -1.12942 (0.649219), N = 172 moving right - --- -0.0607707 (0.686221), N = 62 moving right - --- 2.28579 (0.609296), N = 24 moving right - - -- best stat: 0.686221, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 290 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 13 11 6 0 - - - -- linear combo weights (showing up to 5) - - 0.4653 0.2452 0.9169 0.9262 0.2668 - - - -- cutpoint (score) - --- -0.275245 (0.568058), N = 235 moving right - --- -0.0611809 (0.606488), N = 201 moving right - --- 0.508087 (0.678843), N = 118 moving right - --- 0.639492 (0.673471), N = 101 moving right - --- 3.04735 (0.516405), N = 7 moving right - - -- best stat: 0.678843, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 9 10 6 0 - - - -- linear combo weights (showing up to 5) - - 14.7492 0.3646 -0.4245 0.9210 0.2071 - - - -- cutpoint (score) - --- -0.352517 (0.55657), N = 239 moving right - --- -0.348269 (0.551818), N = 238 moving right - --- 0.403317 (0.675702), N = 82 moving right - --- 1.04241 (0.673781), N = 42 moving right - --- 2.47816 (0.602479), N = 19 moving right - - -- best stat: 0.675702, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 5 14 15 2 - - - -- linear combo weights (showing up to 5) - - 0.2549 1.2387 0.2454 -0.1878 -0.1147 - - - -- cutpoint (score) - --- -0.360805 (0.58969), N = 213 moving right - --- -0.348623 (0.59907), N = 207 moving right - --- -0.298618 (0.610331), N = 200 moving right - --- -0.158785 (0.628058), N = 162 moving right - --- 1.18871 (0.569318), N = 37 moving right - - -- best stat: 0.628058, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.7826e-01 2.1845e-02 - 1.4000e+02 9.7101e-01 2.9252e-02 - 1.7900e+02 9.6739e-01 3.2984e-02 - 1.9800e+02 9.6377e-01 3.6729e-02 - - ------------- Growing tree 291 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 11 10 3 13 - - - -- linear combo weights (showing up to 5) - - 0.5759 0.6777 -0.5587 8.1555 0.1166 - - - -- cutpoint (score) - --- -0.911132 (0.557182), N = 249 moving right - --- -0.140912 (0.709273), N = 153 moving right - --- 0.00477088 (0.697463), N = 136 moving right - --- 0.376703 (0.68608), N = 99 moving right - --- 2.38449 (0.613002), N = 21 moving right - - -- best stat: 0.709273, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 1 9 3 11 - - - -- linear combo weights (showing up to 5) - - -0.1037 0.2793 0.1224 8.5317 0.7601 - - - -- cutpoint (score) - --- -0.940177 (0.528093), N = 261 moving right - --- -0.250293 (0.710432), N = 145 moving right - --- -0.121762 (0.716673), N = 118 moving right - --- 0.370557 (0.683823), N = 68 moving right - --- 1.01784 (0.644245), N = 37 moving right - - -- best stat: 0.716673, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 9 12 11 13 - - - -- linear combo weights (showing up to 5) - - 0.0182 -0.2988 0.1353 1.0287 0.2415 - - - -- cutpoint (score) - --- -1.00182 (0.54157), N = 250 moving right - --- -0.934789 (0.55582), N = 244 moving right - --- -0.688729 (0.617575), N = 208 moving right - --- -0.540773 (0.64518), N = 172 moving right - --- 0.526551 (0.647742), N = 66 moving right - - -- best stat: 0.647742, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 5.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.7826e-01 2.1805e-02 - 7.7000e+01 9.7464e-01 2.5509e-02 - 1.1000e+02 9.6739e-01 3.2944e-02 - 1.3100e+02 9.6377e-01 3.6689e-02 - - ------------- Growing tree 292 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 5 2 11 17 - - - -- linear combo weights (showing up to 5) - - -0.0364 0.2282 0.1818 0.7658 0.4828 - - - -- cutpoint (score) - --- 1.30584 (0.659044), N = 177 moving right - --- 1.96792 (0.739773), N = 99 moving right - --- 2.03833 (0.720861), N = 92 moving right - --- 2.41324 (0.673852), N = 56 moving right - --- 2.47874 (0.634466), N = 46 moving right - - -- best stat: 0.739773, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 12 0 15 1 - - - -- linear combo weights (showing up to 5) - - 0.3671 0.0635 0.0649 -0.0405 0.5360 - - - -- cutpoint (score) - --- -0.182546 (0.678143), N = 158 moving right - --- 0.0112561 (0.705365), N = 130 moving right - --- 0.318082 (0.650837), N = 85 moving right - --- 0.374027 (0.649608), N = 81 moving right - --- 0.975402 (0.553903), N = 20 moving right - - -- best stat: 0.705365, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 10 1 4 3 - - - -- linear combo weights (showing up to 5) - - 0.1010 -0.3959 0.2355 0.7407 5.6862 - - - -- cutpoint (score) - --- 0.20714 (0.673352), N = 155 moving right - --- 0.249029 (0.678664), N = 152 moving right - --- 0.255622 (0.68687), N = 149 moving right - --- 0.677129 (0.710885), N = 94 moving right - --- 7.21721 (0.553507), N = 12 moving right - - -- best stat: 0.710885, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 293 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 253 -- max leaves: 127 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 12 16 14 2 - - - -- linear combo weights (showing up to 5) - - 3.0406 0.2206 0.3460 0.1652 -0.3720 - - - -- cutpoint (score) - --- -0.81474 (0.547394), N = 246 moving right - --- -0.431847 (0.682936), N = 142 moving right - --- -0.121906 (0.637232), N = 85 moving right - --- -0.0105298 (0.650338), N = 79 moving right - --- 2.96344 (0.560599), N = 10 moving right - - -- best stat: 0.682936, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 5 9 17 2 - - - -- linear combo weights (showing up to 5) - - 1.1570 0.3322 -0.2846 0.4975 -0.6924 - - - -- cutpoint (score) - --- -0.0803891 (0.597638), N = 229 moving right - --- 0.460653 (0.673465), N = 174 moving right - --- 0.971418 (0.740332), N = 125 moving right - --- 1.39865 (0.716026), N = 83 moving right - --- 1.42106 (0.71691), N = 80 moving right - - -- best stat: 0.740332, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 13 6 2 11 - - - -- linear combo weights (showing up to 5) - - -0.1804 0.2779 0.9024 0.4237 0.8148 - - - -- cutpoint (score) - --- -0.491579 (0.55661), N = 237 moving right - --- -0.474934 (0.56948), N = 231 moving right - --- 0.545152 (0.670105), N = 108 moving right - --- 0.674164 (0.675253), N = 93 moving right - --- 1.40533 (0.622868), N = 42 moving right - - -- best stat: 0.675253, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 294 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 253 -- max leaves: 127 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 1 4 13 2 - - - -- linear combo weights (showing up to 5) - - 12.0181 0.4034 0.7994 0.4660 -0.2576 - - - -- cutpoint (score) - --- 0.000451792 (0.676442), N = 161 moving right - --- 0.249287 (0.702546), N = 120 moving right - --- 0.314259 (0.693233), N = 118 moving right - --- 0.534789 (0.711625), N = 92 moving right - --- 11.7379 (0.596216), N = 17 moving right - - -- best stat: 0.711625, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 15 17 11 14 - - - -- linear combo weights (showing up to 5) - - 0.3820 -0.2923 0.3189 1.1540 0.2484 - - - -- cutpoint (score) - --- -0.381076 (0.588738), N = 230 moving right - --- 1.02392 (0.764263), N = 104 moving right - --- 1.23889 (0.751845), N = 93 moving right - --- 3.36814 (0.5788), N = 21 moving right - --- 4.34484 (0.530146), N = 11 moving right - - -- best stat: 0.764263, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 14 9 0 17 - - - -- linear combo weights (showing up to 5) - - 0.9865 0.2343 0.2896 -0.1704 0.4460 - - - -- cutpoint (score) - --- 0.146077 (0.62851), N = 209 moving right - --- 0.794061 (0.714573), N = 150 moving right - --- 0.994212 (0.724277), N = 129 moving right - --- 1.39758 (0.71512), N = 92 moving right - --- 2.29149 (0.645066), N = 46 moving right - - -- best stat: 0.724277, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 4.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8551e-01 1.4493e-02 - 5.1000e+01 9.8188e-01 1.8169e-02 - 7.1000e+01 9.7826e-01 2.1859e-02 - 7.7000e+01 9.7464e-01 2.5563e-02 - 1.3100e+02 9.6739e-01 3.2998e-02 - - ------------- Growing tree 295 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 3 12 17 10 - - - -- linear combo weights (showing up to 5) - - 0.0857 5.8487 0.0502 0.3601 -0.4608 - - - -- cutpoint (score) - --- 0.461482 (0.561198), N = 236 moving right - --- 0.739586 (0.602663), N = 193 moving right - --- 0.963888 (0.663674), N = 156 moving right - --- 1.65956 (0.657895), N = 49 moving right - --- 7.61336 (0.566098), N = 14 moving right - - -- best stat: 0.663674, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 1 3 4 2 - - - -- linear combo weights (showing up to 5) - - 0.3618 0.3619 6.5932 0.7833 -0.5765 - - - -- cutpoint (score) - --- -0.972286 (0.557233), N = 249 moving right - --- -0.84376 (0.576778), N = 238 moving right - --- -0.814079 (0.581323), N = 232 moving right - --- -0.183226 (0.67254), N = 161 moving right - --- -0.157282 (0.681368), N = 158 moving right - - -- best stat: 0.681368, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 5 14 12 10 - - - -- linear combo weights (showing up to 5) - - 0.6519 1.1396 0.1121 -0.1537 -0.6369 - - - -- cutpoint (score) - --- -0.0804872 (0.719841), N = 157 moving right - --- -0.0613806 (0.722796), N = 155 moving right - --- 0.323311 (0.694497), N = 124 moving right - --- 0.646096 (0.711555), N = 97 moving right - --- 2.26061 (0.569708), N = 16 moving right - - -- best stat: 0.722796, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 296 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 2 7 12 14 - - - -- linear combo weights (showing up to 5) - - -0.3322 -0.5754 9.0804 -0.0488 0.3949 - - - -- cutpoint (score) - --- -1.00563 (0.564586), N = 212 moving right - --- -0.888367 (0.585936), N = 185 moving right - --- -0.836044 (0.597675), N = 164 moving right - --- -0.653887 (0.61134), N = 115 moving right - --- -0.646801 (0.623012), N = 109 moving right - - -- best stat: 0.623012, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 11 1 15 0 - - - -- linear combo weights (showing up to 5) - - 0.4698 1.2952 0.3391 -0.0436 -0.0330 - - - -- cutpoint (score) - --- -0.737718 (0.705094), N = 159 moving right - --- -0.704811 (0.713406), N = 154 moving right - --- -0.598133 (0.730835), N = 142 moving right - --- 0.48265 (0.720798), N = 68 moving right - --- 1.4105 (0.620772), N = 32 moving right - - -- best stat: 0.730835, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 4 10 9 15 - - - -- linear combo weights (showing up to 5) - - 1.9988 0.2664 -0.6172 -0.2845 0.0592 - - - -- cutpoint (score) - --- -1.188 (0.587706), N = 204 moving right - --- -1.04072 (0.633295), N = 182 moving right - --- 0.168012 (0.710717), N = 70 moving right - --- 0.729601 (0.698217), N = 53 moving right - --- 3.82202 (0.606882), N = 17 moving right - - -- best stat: 0.710717, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.9800e+02 9.7826e-01 2.1912e-02 - 2.1600e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 297 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 0 17 9 14 - - - -- linear combo weights (showing up to 5) - - 8.7917 0.0820 0.4821 0.3261 0.2363 - - - -- cutpoint (score) - --- 0.756833 (0.572934), N = 242 moving right - --- 1.1796 (0.610237), N = 217 moving right - --- 1.24642 (0.613392), N = 205 moving right - --- 1.27179 (0.635476), N = 194 moving right - --- 1.63747 (0.676082), N = 130 moving right - - -- best stat: 0.676082, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 9 3 0 11 - - - -- linear combo weights (showing up to 5) - - 0.3557 0.3258 3.6577 0.3100 0.7204 - - - -- cutpoint (score) - --- -0.897956 (0.514049), N = 268 moving right - --- -0.264983 (0.696051), N = 170 moving right - --- 1.59351 (0.654072), N = 47 moving right - --- 3.41642 (0.578632), N = 19 moving right - --- 4.30483 (0.541998), N = 13 moving right - - -- best stat: 0.696051, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 5 6 4 13 - - - -- linear combo weights (showing up to 5) - - 4.0553 0.7860 0.3712 0.6406 0.3131 - - - -- cutpoint (score) - --- -0.0947696 (0.584032), N = 236 moving right - --- 0.0763421 (0.642695), N = 211 moving right - --- 0.716916 (0.714535), N = 125 moving right - --- 0.896583 (0.662609), N = 93 moving right - --- 1.41496 (0.663499), N = 54 moving right - - -- best stat: 0.714535, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 298 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 225 -- max leaves: 113 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 2 0 9 13 - - - -- linear combo weights (showing up to 5) - - 0.9606 -0.6741 0.1235 0.4553 0.4512 - - - -- cutpoint (score) - --- -0.711737 (0.616845), N = 202 moving right - --- -0.175315 (0.680014), N = 156 moving right - --- 0.152589 (0.689077), N = 110 moving right - --- 0.432797 (0.674603), N = 75 moving right - --- 1.49007 (0.548891), N = 21 moving right - - -- best stat: 0.689077, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 17 11 13 10 - - - -- linear combo weights (showing up to 5) - - 0.2609 0.5188 1.2040 0.3542 -0.5037 - - - -- cutpoint (score) - --- 0.533278 (0.657024), N = 192 moving right - --- 0.553892 (0.66011), N = 191 moving right - --- 0.980324 (0.70861), N = 162 moving right - --- 1.31397 (0.738378), N = 129 moving right - --- 1.54341 (0.722224), N = 113 moving right - - -- best stat: 0.738378, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 4 10 1 9 - - - -- linear combo weights (showing up to 5) - - 0.4616 0.3943 -0.5894 0.4756 0.6781 - - - -- cutpoint (score) - --- -0.274554 (0.523732), N = 261 moving right - --- 0.964738 (0.658743), N = 194 moving right - --- 0.970428 (0.66138), N = 193 moving right - --- 1.86181 (0.740566), N = 106 moving right - --- 2.37655 (0.710446), N = 69 moving right - - -- best stat: 0.740566, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 299 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 247 -- max leaves: 124 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 2 1 0 16 - - - -- linear combo weights (showing up to 5) - - 0.2325 -0.0854 0.6115 -0.2171 0.4834 - - - -- cutpoint (score) - --- -1.29799 (0.548424), N = 248 moving right - --- -0.591622 (0.657951), N = 180 moving right - --- -0.0807421 (0.707198), N = 128 moving right - --- 0.131108 (0.691576), N = 97 moving right - --- 0.674246 (0.651664), N = 60 moving right - - -- best stat: 0.707198, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 16 6 5 8 - - - -- linear combo weights (showing up to 5) - - 0.1595 0.5222 -0.3771 0.4463 1.5689 - - - -- cutpoint (score) - --- -0.893842 (0.673065), N = 184 moving right - --- -0.855771 (0.683853), N = 179 moving right - --- -0.304951 (0.709124), N = 129 moving right - --- 0.892843 (0.694658), N = 58 moving right - --- 5.99043 (0.529737), N = 5 moving right - - -- best stat: 0.709124, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 11 3 8 1 - - - -- linear combo weights (showing up to 5) - - -0.3541 0.5155 5.0639 0.9748 0.6031 - - - -- cutpoint (score) - --- -2.03056 (0.49725), N = 268 moving right - --- -1.04417 (0.635779), N = 205 moving right - --- -1.02182 (0.638862), N = 204 moving right - --- -0.48068 (0.757513), N = 145 moving right - --- 0.219758 (0.780823), N = 106 moving right - - -- best stat: 0.780823, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 300 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 12 16 15 17 - - - -- linear combo weights (showing up to 5) - - -0.2885 0.1292 0.8074 -0.0822 0.4839 - - - -- cutpoint (score) - --- 0.716874 (0.619168), N = 191 moving right - --- 1.02061 (0.688226), N = 155 moving right - --- 1.83688 (0.680205), N = 98 moving right - --- 2.29474 (0.664184), N = 59 moving right - --- 3.60963 (0.529485), N = 7 moving right - - -- best stat: 0.688226, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 16 17 13 3 - - - -- linear combo weights (showing up to 5) - - -0.0073 0.5664 0.3173 0.4682 4.2112 - - - -- cutpoint (score) - --- 0.036034 (0.559605), N = 240 moving right - --- 0.353075 (0.629215), N = 203 moving right - --- 0.445386 (0.650454), N = 195 moving right - --- 0.848326 (0.709077), N = 145 moving right - --- 1.72479 (0.703736), N = 66 moving right - - -- best stat: 0.709077, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 16 11 12 7 - - - -- linear combo weights (showing up to 5) - - 1.7926 0.5053 0.2645 0.0446 7.0838 - - - -- cutpoint (score) - --- -0.556794 (0.582829), N = 227 moving right - --- -0.213396 (0.68704), N = 160 moving right - --- 0.0583626 (0.711184), N = 112 moving right - --- 0.161611 (0.714806), N = 89 moving right - --- 0.908502 (0.682538), N = 48 moving right - - -- best stat: 0.714806, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.7101e-01 2.9307e-02 - - ------------- Growing tree 301 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 17 7 9 13 - - - -- linear combo weights (showing up to 5) - - -0.3438 0.4489 6.6026 0.2472 0.4875 - - - -- cutpoint (score) - --- 0.155561 (0.540322), N = 253 moving right - --- 0.221266 (0.543172), N = 248 moving right - --- 1.39166 (0.706639), N = 125 moving right - --- 2.26283 (0.694442), N = 57 moving right - --- 2.47565 (0.649405), N = 42 moving right - - -- best stat: 0.706639, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 14 12 11 15 - - - -- linear combo weights (showing up to 5) - - 0.4513 0.1456 0.0122 1.6349 -0.1906 - - - -- cutpoint (score) - --- -1.31935 (0.612583), N = 218 moving right - --- -0.737398 (0.708777), N = 158 moving right - --- -0.736805 (0.711669), N = 156 moving right - --- -0.0422566 (0.77517), N = 97 moving right - --- 3.59042 (0.547825), N = 10 moving right - - -- best stat: 0.77517, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 15 11 1 17 - - - -- linear combo weights (showing up to 5) - - 7.7231 -0.1050 1.4457 0.3703 0.1691 - - - -- cutpoint (score) - --- -0.61255 (0.632199), N = 217 moving right - --- -0.394667 (0.678074), N = 181 moving right - --- 0.133418 (0.757188), N = 127 moving right - --- 0.266788 (0.775002), N = 109 moving right - --- 9.82734 (0.546965), N = 8 moving right - - -- best stat: 0.775002, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 4.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.8913e-01 1.0870e-02 - 1.3100e+02 9.8551e-01 1.4533e-02 - 1.4000e+02 9.8188e-01 1.8209e-02 - 1.7900e+02 9.7826e-01 2.1899e-02 - 1.9800e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 302 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 4 7 12 9 - - - -- linear combo weights (showing up to 5) - - -0.0730 0.4122 1.9542 0.1711 0.5355 - - - -- cutpoint (score) - --- -0.584605 (0.514433), N = 269 moving right - --- -0.224502 (0.61287), N = 206 moving right - --- -0.0371524 (0.635824), N = 186 moving right - --- 0.157584 (0.65882), N = 135 moving right - --- 0.199308 (0.66989), N = 122 moving right - - -- best stat: 0.66989, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 2 12 3 5 - - - -- linear combo weights (showing up to 5) - - 0.2754 -0.9349 0.2600 7.3407 0.7417 - - - -- cutpoint (score) - --- -0.780924 (0.640733), N = 190 moving right - --- -0.685319 (0.685973), N = 145 moving right - --- -0.0256937 (0.646268), N = 69 moving right - --- 0.470132 (0.61498), N = 27 moving right - --- 0.499887 (0.608192), N = 23 moving right - - -- best stat: 0.685973, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 15 12 7 11 - - - -- linear combo weights (showing up to 5) - - 0.5409 0.0113 -0.0234 0.9603 0.9764 - - - -- cutpoint (score) - --- -0.952149 (0.565521), N = 236 moving right - --- -0.347129 (0.717114), N = 130 moving right - --- -0.154912 (0.734784), N = 107 moving right - --- 0.252845 (0.720811), N = 78 moving right - --- 0.57102 (0.69086), N = 57 moving right - - -- best stat: 0.734784, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 303 -------------- - -- N obs inbag: 276 -- N row inbag: 186 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 9 17 10 3 - - - -- linear combo weights (showing up to 5) - - 0.1047 0.2960 0.4068 -0.5191 5.7916 - - - -- cutpoint (score) - --- 0.159806 (0.538498), N = 259 moving right - --- 0.167073 (0.540836), N = 258 moving right - --- 0.424259 (0.568216), N = 241 moving right - --- 0.586984 (0.592988), N = 224 moving right - --- 1.12941 (0.694502), N = 143 moving right - - -- best stat: 0.694502, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 3 6 2 8 - - - -- linear combo weights (showing up to 5) - - 7.0920 2.1036 1.0465 -0.5362 1.2477 - - - -- cutpoint (score) - --- -1.1148 (0.708498), N = 172 moving right - --- -0.708043 (0.754299), N = 141 moving right - --- 1.65115 (0.661492), N = 42 moving right - --- 8.74313 (0.556559), N = 9 moving right - --- 9.54513 (0.548931), N = 8 moving right - - -- best stat: 0.754299, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 0 9 1 13 - - - -- linear combo weights (showing up to 5) - - 9.0087 0.1960 0.0648 0.5908 0.5729 - - - -- cutpoint (score) - --- -0.0439059 (0.68513), N = 158 moving right - --- 0.308452 (0.704433), N = 108 moving right - --- 0.692353 (0.69103), N = 75 moving right - --- 1.18851 (0.643214), N = 45 moving right - --- 1.48839 (0.64683), N = 38 moving right - - -- best stat: 0.704433, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 304 -------------- - -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 197 -- max leaves: 99 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 12 11 3 8 - - - -- linear combo weights (showing up to 5) - - 0.3997 -0.0477 0.8798 5.8759 1.3466 - - - -- cutpoint (score) - --- -1.30988 (0.604624), N = 214 moving right - --- -1.20645 (0.643102), N = 195 moving right - --- -0.119589 (0.760932), N = 102 moving right - --- 1.32608 (0.697422), N = 53 moving right - --- 4.33515 (0.655219), N = 27 moving right - - -- best stat: 0.760932, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 12 5 11 15 - - - -- linear combo weights (showing up to 5) - - 0.1121 -0.0408 1.2233 1.2800 0.0126 - - - -- cutpoint (score) - --- -0.843192 (0.576038), N = 239 moving right - --- 0.935566 (0.700905), N = 72 moving right - --- 1.0585 (0.684338), N = 62 moving right - --- 1.36541 (0.683612), N = 58 moving right - --- 2.0676 (0.614782), N = 33 moving right - - -- best stat: 0.700905, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 15 14 9 10 - - - -- linear combo weights (showing up to 5) - - 0.5387 -0.1806 0.4334 0.1235 -0.7803 - - - -- cutpoint (score) - --- -0.166869 (0.644433), N = 146 moving right - --- 0.263308 (0.651978), N = 100 moving right - --- 0.857384 (0.631711), N = 51 moving right - --- 0.907958 (0.636282), N = 44 moving right - --- 1.08095 (0.642715), N = 38 moving right - - -- best stat: 0.651978, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 - 4.0000e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.9800e+02 9.7464e-01 2.5589e-02 - 2.6400e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 305 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 15 11 10 13 - - - -- linear combo weights (showing up to 5) - - 0.5138 0.0167 0.9591 -0.6215 0.4899 - - - -- cutpoint (score) - --- -0.905384 (0.662991), N = 192 moving right - --- -0.403906 (0.722407), N = 155 moving right - --- 0.788269 (0.747379), N = 87 moving right - --- 1.60991 (0.697136), N = 56 moving right - --- 1.71852 (0.685904), N = 49 moving right - - -- best stat: 0.747379, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 15 17 10 13 - - - -- linear combo weights (showing up to 5) - - 0.4791 -0.1065 0.3968 -0.6403 0.4617 - - - -- cutpoint (score) - --- 0.0897621 (0.568195), N = 238 moving right - --- 0.127816 (0.588637), N = 227 moving right - --- 0.252934 (0.59021), N = 223 moving right - --- 0.946556 (0.678136), N = 158 moving right - --- 2.42322 (0.664452), N = 45 moving right - - -- best stat: 0.678136, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 1 9 4 14 - - - -- linear combo weights (showing up to 5) - - 0.7248 0.4490 0.6183 0.4472 0.2855 - - - -- cutpoint (score) - --- -0.583484 (0.600131), N = 219 moving right - --- 0.0390935 (0.713497), N = 148 moving right - --- 0.289865 (0.741614), N = 122 moving right - --- 0.905371 (0.704137), N = 72 moving right - --- 1.78102 (0.587196), N = 32 moving right - - -- best stat: 0.741614, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - 1.8600e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 306 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 1 12 11 9 - - - -- linear combo weights (showing up to 5) - - -0.2470 0.4354 0.1925 0.8582 0.4126 - - - -- cutpoint (score) - --- -0.728249 (0.65522), N = 199 moving right - --- -0.690671 (0.671857), N = 192 moving right - --- -0.288702 (0.707946), N = 148 moving right - --- -0.224419 (0.721283), N = 135 moving right - --- 2.4284 (0.527318), N = 8 moving right - - -- best stat: 0.721283, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 15 3 13 16 - - - -- linear combo weights (showing up to 5) - - -0.2128 -0.1121 8.1880 0.6148 0.4183 - - - -- cutpoint (score) - --- -1.0535 (0.552022), N = 245 moving right - --- 0.160506 (0.715611), N = 89 moving right - --- 0.310431 (0.726614), N = 76 moving right - --- 0.349275 (0.722873), N = 71 moving right - --- 0.644432 (0.660873), N = 57 moving right - - -- best stat: 0.726614, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 12 11 15 3 - - - -- linear combo weights (showing up to 5) - - 0.5168 0.2223 0.3787 -0.1826 7.7775 - - - -- cutpoint (score) - --- -0.915301 (0.570851), N = 245 moving right - --- -0.529608 (0.642064), N = 202 moving right - --- -0.235185 (0.719352), N = 158 moving right - --- -0.136619 (0.718004), N = 146 moving right - --- 0.947534 (0.642627), N = 45 moving right - - -- best stat: 0.719352, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.7900e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 307 -------------- - -- N obs inbag: 276 -- N row inbag: 165 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 9 6 17 2 - - - -- linear combo weights (showing up to 5) - - 0.4072 0.4172 1.0842 0.6456 -0.4005 - - - -- cutpoint (score) - --- 0.437295 (0.550385), N = 249 moving right - --- 1.11442 (0.616594), N = 200 moving right - --- 1.80259 (0.685016), N = 108 moving right - --- 2.48067 (0.628902), N = 46 moving right - --- 3.11825 (0.601005), N = 29 moving right - - -- best stat: 0.685016, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 7 8 13 17 - - - -- linear combo weights (showing up to 5) - - 0.2439 4.0445 1.4872 -0.1805 0.4670 - - - -- cutpoint (score) - --- 0.680105 (0.6979), N = 161 moving right - --- 0.912544 (0.740129), N = 130 moving right - --- 1.31245 (0.759019), N = 96 moving right - --- 1.63538 (0.754951), N = 83 moving right - --- 2.69977 (0.689531), N = 49 moving right - - -- best stat: 0.759019, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 13 12 3 10 - - - -- linear combo weights (showing up to 5) - - 1.2568 -0.0701 0.2247 5.6034 -0.3174 - - - -- cutpoint (score) - --- -1.24466 (0.529431), N = 262 moving right - --- -0.937427 (0.606734), N = 213 moving right - --- -0.626878 (0.724371), N = 155 moving right - --- -0.221447 (0.737936), N = 98 moving right - --- 2.17665 (0.660995), N = 33 moving right - - -- best stat: 0.737936, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8551e-01 1.4546e-02 - 1.4000e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7464e-01 2.5602e-02 - 1.8600e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 308 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 243 -- max leaves: 122 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 4 5 7 6 - - - -- linear combo weights (showing up to 5) - - 0.3359 0.3125 0.3678 3.6232 0.9929 - - - -- cutpoint (score) - --- -0.363884 (0.5141), N = 254 moving right - --- 0.0730221 (0.585766), N = 185 moving right - --- 0.163839 (0.6019), N = 171 moving right - --- 0.495569 (0.675422), N = 97 moving right - --- 1.7204 (0.618429), N = 25 moving right - - -- best stat: 0.675422, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 11 12 1 4 - - - -- linear combo weights (showing up to 5) - - 0.5085 1.3091 0.0235 0.1801 0.0178 - - - -- cutpoint (score) - --- 0.57238 (0.627138), N = 215 moving right - --- 0.995682 (0.6724), N = 165 moving right - --- 1.34386 (0.728702), N = 123 moving right - --- 1.61535 (0.7414), N = 104 moving right - --- 4.30021 (0.542596), N = 11 moving right - - -- best stat: 0.7414, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 10 1 16 3 - - - -- linear combo weights (showing up to 5) - - -1.2267 -0.4188 0.0687 0.8004 4.6072 - - - -- cutpoint (score) - --- -1.99759 (0.572692), N = 216 moving right - --- -1.61084 (0.630989), N = 171 moving right - --- -1.40544 (0.683064), N = 138 moving right - --- -0.615285 (0.71944), N = 74 moving right - --- -0.560396 (0.715095), N = 63 moving right - - -- best stat: 0.71944, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 309 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 16 10 8 6 - - - -- linear combo weights (showing up to 5) - - 0.2346 0.3431 -0.3617 1.5474 -0.1440 - - - -- cutpoint (score) - --- -1.2562 (0.585368), N = 221 moving right - --- -0.895447 (0.686717), N = 162 moving right - --- -0.390404 (0.7447), N = 117 moving right - --- -0.097021 (0.739279), N = 99 moving right - --- -0.0176599 (0.746005), N = 88 moving right - - -- best stat: 0.746005, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 7 4 2 8 - - - -- linear combo weights (showing up to 5) - - 0.4569 6.2228 0.3538 -0.5043 1.3010 - - - -- cutpoint (score) - --- 0.108198 (0.73171), N = 67 moving right - --- 0.320582 (0.72665), N = 61 moving right - --- 2.01715 (0.643611), N = 28 moving right - --- 2.81334 (0.622651), N = 24 moving right - --- 5.95879 (0.580268), N = 14 moving right - - -- best stat: 0.73171, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 4 1 16 5 - - - -- linear combo weights (showing up to 5) - - 0.1241 0.7053 0.1967 0.4540 0.7118 - - - -- cutpoint (score) - --- -0.159566 (0.599261), N = 213 moving right - --- 0.338745 (0.660818), N = 162 moving right - --- 0.396642 (0.683926), N = 151 moving right - --- 0.579482 (0.684268), N = 136 moving right - --- 0.59109 (0.686034), N = 135 moving right - - -- best stat: 0.686034, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 310 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 16 4 2 6 - - - -- linear combo weights (showing up to 5) - - 0.3990 1.1119 0.5417 -0.0314 1.6383 - - - -- cutpoint (score) - --- -0.453846 (0.62478), N = 187 moving right - --- -0.320909 (0.644573), N = 173 moving right - --- 0.122684 (0.689142), N = 136 moving right - --- 0.59371 (0.706643), N = 84 moving right - --- 3.39079 (0.558389), N = 8 moving right - - -- best stat: 0.706643, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 14 4 12 6 - - - -- linear combo weights (showing up to 5) - - 0.5010 0.2902 0.3462 -0.0632 1.3911 - - - -- cutpoint (score) - --- 1.19252 (0.586823), N = 214 moving right - --- 1.19279 (0.589821), N = 213 moving right - --- 1.52236 (0.641355), N = 161 moving right - --- 1.53649 (0.649224), N = 158 moving right - --- 2.00159 (0.672126), N = 99 moving right - - -- best stat: 0.672126, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 1 15 10 5 - - - -- linear combo weights (showing up to 5) - - 7.8534 0.4945 -0.1594 -0.5869 0.6863 - - - -- cutpoint (score) - --- -0.97925 (0.536876), N = 238 moving right - --- -0.162607 (0.642325), N = 171 moving right - --- -0.0136899 (0.666108), N = 154 moving right - --- 0.532322 (0.696129), N = 82 moving right - --- 0.718473 (0.69657), N = 75 moving right - - -- best stat: 0.69657, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - 1.7900e+02 9.6739e-01 3.3037e-02 - - ------------- Growing tree 311 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 5 9 13 10 - - - -- linear combo weights (showing up to 5) - - -0.1979 0.8363 -0.1259 0.4454 -0.8771 - - - -- cutpoint (score) - --- -1.59624 (0.51717), N = 259 moving right - --- -1.5316 (0.529865), N = 255 moving right - --- -0.882018 (0.575682), N = 214 moving right - --- -0.674494 (0.612527), N = 190 moving right - --- 0.190524 (0.706421), N = 112 moving right - - -- best stat: 0.706421, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 11 5 8 4 - - - -- linear combo weights (showing up to 5) - - 0.4049 0.7383 0.1623 1.6995 0.1035 - - - -- cutpoint (score) - --- -0.773713 (0.530198), N = 260 moving right - --- 0.159152 (0.69716), N = 163 moving right - --- 0.208255 (0.689804), N = 160 moving right - --- 2.02578 (0.716944), N = 46 moving right - --- 2.49924 (0.682537), N = 40 moving right - - -- best stat: 0.716944, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 7 10 1 4 - - - -- linear combo weights (showing up to 5) - - 1.6474 4.9593 -0.5811 0.4701 0.1298 - - - -- cutpoint (score) - --- -1.43197 (0.572669), N = 231 moving right - --- -0.516693 (0.763559), N = 128 moving right - --- -0.443455 (0.764467), N = 124 moving right - --- 0.576127 (0.74681), N = 58 moving right - --- 2.70179 (0.639379), N = 27 moving right - - -- best stat: 0.764467, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 1.1000e+02 9.7826e-01 2.1886e-02 - 1.7900e+02 9.7464e-01 2.5589e-02 - 1.9100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 312 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 15 12 7 13 - - - -- linear combo weights (showing up to 5) - - 0.5291 0.0132 0.0545 9.4861 0.3268 - - - -- cutpoint (score) - --- 1.09467 (0.596406), N = 217 moving right - --- 2.16702 (0.638781), N = 50 moving right - --- 2.16725 (0.626431), N = 47 moving right - --- 2.29028 (0.623927), N = 36 moving right - --- 2.75994 (0.597942), N = 18 moving right - - -- best stat: 0.638781, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 0 11 8 3 - - - -- linear combo weights (showing up to 5) - - 0.5280 -0.1042 0.4989 1.0070 14.0993 - - - -- cutpoint (score) - --- -1.00131 (0.627714), N = 200 moving right - --- -0.747907 (0.686353), N = 169 moving right - --- 0.588055 (0.735104), N = 57 moving right - --- 1.21129 (0.697925), N = 39 moving right - --- 5.70849 (0.618267), N = 17 moving right - - -- best stat: 0.735104, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 8 7 14 6 - - - -- linear combo weights (showing up to 5) - - 0.3893 1.3088 8.3404 0.0085 0.5617 - - - -- cutpoint (score) - --- 0.0505942 (0.586602), N = 237 moving right - --- 0.133852 (0.597753), N = 228 moving right - --- 0.248022 (0.606211), N = 224 moving right - --- 1.84614 (0.699272), N = 50 moving right - --- 2.65427 (0.655929), N = 34 moving right - - -- best stat: 0.699272, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 313 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 189 -- max leaves: 95 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 11 10 17 9 - - - -- linear combo weights (showing up to 5) - - 0.3224 0.8344 -0.8293 0.4350 0.1551 - - - -- cutpoint (score) - --- 0.344866 (0.647676), N = 197 moving right - --- 0.358249 (0.659552), N = 193 moving right - --- 0.715433 (0.707616), N = 163 moving right - --- 0.75714 (0.710679), N = 160 moving right - --- 1.93785 (0.755143), N = 86 moving right - - -- best stat: 0.755143, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 11 1 7 10 - - - -- linear combo weights (showing up to 5) - - 0.0808 0.6421 0.2631 17.6559 -0.6509 - - - -- cutpoint (score) - --- -1.30239 (0.530017), N = 259 moving right - --- -0.372807 (0.683584), N = 166 moving right - --- -0.154455 (0.703385), N = 143 moving right - --- 0.0476334 (0.744693), N = 121 moving right - --- 0.485685 (0.757013), N = 81 moving right - - -- best stat: 0.757013, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 6 11 14 17 - - - -- linear combo weights (showing up to 5) - - 0.3413 0.8385 1.0719 0.1144 0.4292 - - - -- cutpoint (score) - --- 0.841942 (0.645783), N = 189 moving right - --- 1.10497 (0.69387), N = 160 moving right - --- 1.14403 (0.700884), N = 154 moving right - --- 1.17453 (0.700884), N = 150 moving right - --- 1.47429 (0.738966), N = 112 moving right - - -- best stat: 0.738966, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 314 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 1 9 12 15 - - - -- linear combo weights (showing up to 5) - - -0.7281 0.4759 0.3436 -0.1463 -0.2162 - - - -- cutpoint (score) - --- -1.09563 (0.581786), N = 224 moving right - --- -1.04084 (0.591426), N = 221 moving right - --- 0.190053 (0.711193), N = 105 moving right - --- 0.362584 (0.671293), N = 81 moving right - --- 1.15691 (0.622356), N = 44 moving right - - -- best stat: 0.711193, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 5 15 14 0 - - - -- linear combo weights (showing up to 5) - - 0.5715 0.9791 -0.1960 0.2201 -0.2099 - - - -- cutpoint (score) - --- 0.174798 (0.649491), N = 130 moving right - --- 0.531822 (0.694658), N = 85 moving right - --- 0.587967 (0.695461), N = 82 moving right - --- 0.702322 (0.699322), N = 69 moving right - --- 0.827614 (0.686178), N = 60 moving right - - -- best stat: 0.699322, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 0 2 7 13 - - - -- linear combo weights (showing up to 5) - - -0.1153 -0.2237 -0.3982 6.9127 0.1861 - - - -- cutpoint (score) - --- -0.716027 (0.571923), N = 221 moving right - --- -0.551057 (0.602963), N = 172 moving right - --- -0.486102 (0.603878), N = 139 moving right - --- -0.360318 (0.624007), N = 98 moving right - --- -0.214164 (0.5958), N = 67 moving right - - -- best stat: 0.624007, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.3100e+02 9.9638e-01 3.6232e-03 - 1.4000e+02 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8551e-01 1.4559e-02 - 1.8600e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 315 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 3 11 8 7 - - - -- linear combo weights (showing up to 5) - - -0.4505 2.8961 0.6760 1.0635 4.5578 - - - -- cutpoint (score) - --- -1.22773 (0.596718), N = 218 moving right - --- -1.17604 (0.612608), N = 212 moving right - --- -1.0251 (0.64053), N = 199 moving right - --- 0.545937 (0.733371), N = 79 moving right - --- 1.69409 (0.664615), N = 41 moving right - - -- best stat: 0.733371, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 16 7 11 8 - - - -- linear combo weights (showing up to 5) - - 0.2702 0.5968 5.3470 0.6793 0.8693 - - - -- cutpoint (score) - --- 0.290966 (0.732891), N = 145 moving right - --- 0.358678 (0.738347), N = 131 moving right - --- 1.01592 (0.768688), N = 94 moving right - --- 2.23261 (0.693756), N = 51 moving right - --- 8.13906 (0.56174), N = 9 moving right - - -- best stat: 0.768688, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 12 13 2 5 - - - -- linear combo weights (showing up to 5) - - 6.5686 0.2209 0.5699 -0.8275 0.6810 - - - -- cutpoint (score) - --- -0.852396 (0.665374), N = 180 moving right - --- -0.667061 (0.675787), N = 160 moving right - --- -0.603996 (0.676827), N = 156 moving right - --- -0.455886 (0.690418), N = 135 moving right - --- 1.42209 (0.558103), N = 14 moving right - - -- best stat: 0.690418, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.3100e+02 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 316 -------------- - -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 4 13 6 2 - - - -- linear combo weights (showing up to 5) - - -0.6429 0.7767 0.7910 0.8779 -1.0088 - - - -- cutpoint (score) - --- -2.34696 (0.537559), N = 258 moving right - --- -1.60047 (0.591256), N = 222 moving right - --- -0.9989 (0.659948), N = 172 moving right - --- -0.914888 (0.657989), N = 167 moving right - --- -0.803328 (0.681777), N = 153 moving right - - -- best stat: 0.681777, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 3 16 17 5 - - - -- linear combo weights (showing up to 5) - - 0.7416 10.1219 0.3502 0.5380 0.2741 - - - -- cutpoint (score) - --- 0.740862 (0.588216), N = 230 moving right - --- 1.70346 (0.734719), N = 125 moving right - --- 1.82325 (0.749918), N = 101 moving right - --- 3.32259 (0.652726), N = 28 moving right - --- 5.06578 (0.634446), N = 21 moving right - - -- best stat: 0.749918, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 1 14 17 8 - - - -- linear combo weights (showing up to 5) - - 0.0045 0.4647 0.2071 0.4828 2.0210 - - - -- cutpoint (score) - --- -0.423664 (0.56759), N = 243 moving right - --- 0.314332 (0.661825), N = 178 moving right - --- 0.612109 (0.689285), N = 145 moving right - --- 0.65539 (0.709993), N = 134 moving right - --- 0.99136 (0.753366), N = 110 moving right - - -- best stat: 0.753366, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 317 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 8 4 0 5 - - - -- linear combo weights (showing up to 5) - - -0.2210 1.9899 0.0977 -0.1978 0.9568 - - - -- cutpoint (score) - --- -1.35982 (0.522092), N = 264 moving right - --- -1.3218 (0.528838), N = 262 moving right - --- -1.03459 (0.627501), N = 199 moving right - --- -0.0379176 (0.716511), N = 97 moving right - --- 0.572039 (0.736251), N = 70 moving right - - -- best stat: 0.736251, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 10 15 5 6 - - - -- linear combo weights (showing up to 5) - - -0.4216 -0.8049 -0.2478 1.1086 -0.2324 - - - -- cutpoint (score) - --- -0.877987 (0.558068), N = 216 moving right - --- -0.133257 (0.696171), N = 121 moving right - --- 0.265284 (0.677936), N = 94 moving right - --- 0.281995 (0.682949), N = 92 moving right - --- 0.466523 (0.685858), N = 81 moving right - - -- best stat: 0.696171, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 12 7 9 10 - - - -- linear combo weights (showing up to 5) - - 0.1017 0.0313 17.1521 0.5462 -0.4550 - - - -- cutpoint (score) - --- -0.616936 (0.600767), N = 212 moving right - --- -0.433484 (0.605244), N = 188 moving right - --- -0.271076 (0.626511), N = 150 moving right - --- 0.0553716 (0.676451), N = 95 moving right - --- 0.113325 (0.662465), N = 85 moving right - - -- best stat: 0.676451, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8188e-01 1.8208e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.6739e-01 3.3023e-02 - - ------------- Growing tree 318 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 191 -- max leaves: 96 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 15 11 17 5 - - - -- linear combo weights (showing up to 5) - - 0.4998 0.0726 1.3469 0.4843 1.0748 - - - -- cutpoint (score) - --- 0.346476 (0.652786), N = 192 moving right - --- 0.817755 (0.709107), N = 150 moving right - --- 1.25485 (0.740904), N = 128 moving right - --- 1.50186 (0.746789), N = 118 moving right - --- 2.27998 (0.740837), N = 71 moving right - - -- best stat: 0.746789, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 12 7 3 11 - - - -- linear combo weights (showing up to 5) - - 0.2451 0.0401 9.7642 7.7889 1.2103 - - - -- cutpoint (score) - --- -0.729058 (0.550571), N = 245 moving right - --- -0.577091 (0.622757), N = 211 moving right - --- -0.572376 (0.625621), N = 209 moving right - --- -0.511013 (0.633587), N = 205 moving right - --- 0.0144892 (0.750347), N = 105 moving right - - -- best stat: 0.750347, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 15 7 12 6 - - - -- linear combo weights (showing up to 5) - - 1.1652 0.0556 14.3702 0.0447 0.9992 - - - -- cutpoint (score) - --- -1.00937 (0.542023), N = 249 moving right - --- -0.728856 (0.624883), N = 208 moving right - --- 0.282862 (0.752763), N = 81 moving right - --- 0.302399 (0.756456), N = 79 moving right - --- 1.07437 (0.728619), N = 51 moving right - - -- best stat: 0.756456, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 5.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 1.3100e+02 9.6014e-01 4.0404e-02 - 1.4000e+02 9.5652e-01 4.4177e-02 - - ------------- Growing tree 319 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 8 2 16 0 - - - -- linear combo weights (showing up to 5) - - -0.2433 2.0685 0.2066 0.7466 -0.1889 - - - -- cutpoint (score) - --- -1.50879 (0.573435), N = 235 moving right - --- -1.4794 (0.588413), N = 230 moving right - --- -1.33276 (0.607083), N = 208 moving right - --- -1.19709 (0.63425), N = 194 moving right - --- -0.582421 (0.758916), N = 119 moving right - - -- best stat: 0.758916, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 1 6 9 12 - - - -- linear combo weights (showing up to 5) - - 0.5482 0.4001 0.6421 0.0829 0.1521 - - - -- cutpoint (score) - --- -0.493959 (0.626116), N = 210 moving right - --- -0.476927 (0.630625), N = 208 moving right - --- -0.372309 (0.631984), N = 187 moving right - --- -0.283893 (0.642679), N = 171 moving right - --- -0.0781333 (0.653895), N = 128 moving right - - -- best stat: 0.653895, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 5 9 6 17 - - - -- linear combo weights (showing up to 5) - - 12.4082 0.2832 0.2840 1.2416 0.4089 - - - -- cutpoint (score) - --- 1.05812 (0.63058), N = 201 moving right - --- 1.271 (0.653011), N = 156 moving right - --- 1.43442 (0.672158), N = 128 moving right - --- 1.50326 (0.678706), N = 109 moving right - --- 2.97719 (0.617574), N = 23 moving right - - -- best stat: 0.678706, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 1.1000e+02 9.8188e-01 1.8196e-02 - 1.7900e+02 9.6739e-01 3.2956e-02 - 1.8600e+02 9.6377e-01 3.6701e-02 - 2.1600e+02 9.6014e-01 4.0460e-02 - - ------------- Growing tree 320 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 14 16 4 7 - - - -- linear combo weights (showing up to 5) - - -0.1765 0.2722 0.4378 0.8381 9.9872 - - - -- cutpoint (score) - --- -0.705577 (0.504027), N = 269 moving right - --- -0.21743 (0.580088), N = 230 moving right - --- -0.0690105 (0.627123), N = 200 moving right - --- 0.942984 (0.657652), N = 70 moving right - --- 1.02415 (0.664789), N = 62 moving right - - -- best stat: 0.664789, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 8 9 13 15 - - - -- linear combo weights (showing up to 5) - - -0.4469 1.7878 -0.4836 0.1502 -0.0249 - - - -- cutpoint (score) - --- -1.34855 (0.556216), N = 243 moving right - --- -0.922045 (0.638412), N = 193 moving right - --- -0.284188 (0.7382), N = 110 moving right - --- 0.0463712 (0.692646), N = 83 moving right - --- 0.966612 (0.64486), N = 42 moving right - - -- best stat: 0.7382, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 12 14 15 10 - - - -- linear combo weights (showing up to 5) - - 10.0100 0.1120 0.2370 -0.1367 -0.5591 - - - -- cutpoint (score) - --- -0.589765 (0.574893), N = 239 moving right - --- -0.0344328 (0.596803), N = 148 moving right - --- 0.412341 (0.616084), N = 69 moving right - --- 0.771922 (0.596156), N = 30 moving right - --- 0.913579 (0.589312), N = 22 moving right - - -- best stat: 0.616084, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 321 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 10 13 17 2 - - - -- linear combo weights (showing up to 5) - - 0.2842 -0.7336 0.3033 0.4963 -0.9418 - - - -- cutpoint (score) - --- -0.709118 (0.53859), N = 258 moving right - --- -0.00445378 (0.626626), N = 204 moving right - --- 0.121006 (0.649511), N = 190 moving right - --- 1.00272 (0.701825), N = 117 moving right - --- 3.4305 (0.533605), N = 8 moving right - - -- best stat: 0.701825, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 13 2 17 16 - - - -- linear combo weights (showing up to 5) - - 0.2429 0.4713 -0.6616 0.6423 0.4887 - - - -- cutpoint (score) - --- -0.194311 (0.531488), N = 262 moving right - --- 0.159192 (0.573254), N = 239 moving right - --- 0.496016 (0.628243), N = 213 moving right - --- 0.66004 (0.662503), N = 199 moving right - --- 1.91407 (0.702056), N = 87 moving right - - -- best stat: 0.702056, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 8 16 2 0 - - - -- linear combo weights (showing up to 5) - - 0.1567 1.4069 0.4465 -0.4549 -0.4053 - - - -- cutpoint (score) - --- -1.7438 (0.619909), N = 217 moving right - --- -1.67298 (0.630264), N = 207 moving right - --- -0.986667 (0.752675), N = 128 moving right - --- -0.332929 (0.70833), N = 81 moving right - --- 0.236786 (0.648125), N = 52 moving right - - -- best stat: 0.752675, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 322 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 1 14 5 13 - - - -- linear combo weights (showing up to 5) - - 0.2965 0.6509 0.2696 1.2527 0.4470 - - - -- cutpoint (score) - --- -0.675809 (0.603662), N = 226 moving right - --- -0.259618 (0.660254), N = 186 moving right - --- -0.204911 (0.673263), N = 179 moving right - --- 0.203963 (0.699302), N = 128 moving right - --- 0.427076 (0.724986), N = 116 moving right - - -- best stat: 0.724986, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 17 0 14 3 - - - -- linear combo weights (showing up to 5) - - 1.3997 0.4994 -0.4086 -0.0068 3.3745 - - - -- cutpoint (score) - --- 0.248709 (0.629425), N = 215 moving right - --- 0.270018 (0.6339), N = 213 moving right - --- 1.5871 (0.726918), N = 68 moving right - --- 3.85703 (0.635595), N = 31 moving right - --- 5.72756 (0.558957), N = 12 moving right - - -- best stat: 0.726918, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 0 2 15 16 - - - -- linear combo weights (showing up to 5) - - 0.6575 -0.3379 -1.3580 -0.0690 0.4849 - - - -- cutpoint (score) - --- -0.55501 (0.569443), N = 243 moving right - --- -0.197785 (0.628755), N = 211 moving right - --- -0.0123634 (0.64752), N = 185 moving right - --- 0.0669987 (0.667764), N = 174 moving right - --- 0.945288 (0.673874), N = 86 moving right - - -- best stat: 0.673874, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.3100e+02 9.8188e-01 1.8209e-02 - 1.8600e+02 9.7826e-01 2.1899e-02 - 1.9100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 323 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 2 16 12 14 - - - -- linear combo weights (showing up to 5) - - -0.2548 0.2357 0.4427 0.0559 0.6124 - - - -- cutpoint (score) - --- -0.666763 (0.551148), N = 246 moving right - --- -0.438953 (0.575847), N = 216 moving right - --- -0.293188 (0.594041), N = 202 moving right - --- 0.330807 (0.644634), N = 100 moving right - --- 0.884895 (0.596152), N = 45 moving right - - -- best stat: 0.644634, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 0 5 1 11 - - - -- linear combo weights (showing up to 5) - - 0.2100 -0.0560 1.2186 0.4077 0.6455 - - - -- cutpoint (score) - --- 0.343732 (0.728607), N = 110 moving right - --- 0.561435 (0.71229), N = 99 moving right - --- 1.04429 (0.698959), N = 58 moving right - --- 1.72462 (0.590201), N = 26 moving right - --- 2.00683 (0.544216), N = 14 moving right - - -- best stat: 0.728607, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 10 2 16 11 - - - -- linear combo weights (showing up to 5) - - 1.6010 -0.2981 0.1391 0.2424 0.2911 - - - -- cutpoint (score) - --- -1.118 (0.578065), N = 219 moving right - --- -1.01356 (0.615818), N = 199 moving right - --- -0.929677 (0.653976), N = 177 moving right - --- -0.320507 (0.709816), N = 110 moving right - --- -0.0378721 (0.739037), N = 96 moving right - - -- best stat: 0.739037, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 2.2300e+02 9.7826e-01 2.1912e-02 - 2.6400e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 324 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 2 6 11 4 - - - -- linear combo weights (showing up to 5) - - 0.8336 0.4650 0.0981 0.9751 0.7280 - - - -- cutpoint (score) - --- -0.449308 (0.518202), N = 267 moving right - --- -0.294651 (0.5513), N = 252 moving right - --- 0.797863 (0.693629), N = 128 moving right - --- 1.2349 (0.709321), N = 96 moving right - --- 1.284 (0.712545), N = 87 moving right - - -- best stat: 0.712545, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 15 6 7 4 - - - -- linear combo weights (showing up to 5) - - 0.6283 -0.0927 0.1291 9.3336 0.5735 - - - -- cutpoint (score) - --- -0.0739033 (0.523385), N = 251 moving right - --- -0.0191441 (0.575909), N = 216 moving right - --- 0.0107246 (0.60766), N = 200 moving right - --- 0.0366107 (0.634759), N = 186 moving right - --- 1.20565 (0.660531), N = 40 moving right - - -- best stat: 0.660531, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 4 6 15 11 17 - - - -- linear combo weights (showing up to 5) - - 0.3395 0.1583 -0.1307 0.9064 0.5448 - - - -- cutpoint (score) - --- 0.850154 (0.615904), N = 217 moving right - --- 1.15302 (0.631882), N = 199 moving right - --- 1.80062 (0.713566), N = 125 moving right - --- 2.21197 (0.733624), N = 89 moving right - --- 3.53358 (0.581602), N = 24 moving right - - -- best stat: 0.733624, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7101e-01 2.9320e-02 - - ------------- Growing tree 325 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 2 16 1 8 - - - -- linear combo weights (showing up to 5) - - 10.9179 0.0331 0.0436 0.3482 1.2212 - - - -- cutpoint (score) - --- -0.578165 (0.656205), N = 180 moving right - --- -0.523857 (0.689585), N = 163 moving right - --- -0.517779 (0.693396), N = 160 moving right - --- -0.485369 (0.709737), N = 150 moving right - --- -0.395682 (0.743615), N = 133 moving right - - -- best stat: 0.743615, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 13 5 17 0 - - - -- linear combo weights (showing up to 5) - - 0.0654 0.3508 0.5357 0.6801 -0.2037 - - - -- cutpoint (score) - --- 1.30986 (0.597606), N = 228 moving right - --- 1.58111 (0.604868), N = 214 moving right - --- 1.61692 (0.619693), N = 204 moving right - --- 1.86532 (0.650479), N = 178 moving right - --- 2.85142 (0.641381), N = 68 moving right - - -- best stat: 0.650479, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 8 2 5 7 - - - -- linear combo weights (showing up to 5) - - 0.0086 1.2094 -0.2745 0.0449 11.1864 - - - -- cutpoint (score) - --- -1.01068 (0.545311), N = 248 moving right - --- -0.821694 (0.70421), N = 156 moving right - --- -0.617656 (0.739246), N = 127 moving right - --- 0.135984 (0.67919), N = 57 moving right - --- 1.13942 (0.652973), N = 34 moving right - - -- best stat: 0.739246, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7101e-01 2.9265e-02 - 1.8600e+02 9.6739e-01 3.2996e-02 - - ------------- Growing tree 326 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 4 1 8 17 - - - -- linear combo weights (showing up to 5) - - -0.5533 0.2142 0.2791 1.4424 0.5168 - - - -- cutpoint (score) - --- 0.265307 (0.635826), N = 210 moving right - --- 0.811727 (0.700591), N = 152 moving right - --- 1.17784 (0.758368), N = 115 moving right - --- 2.17498 (0.695329), N = 52 moving right - --- 6.43053 (0.534205), N = 6 moving right - - -- best stat: 0.758368, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 0 14 17 3 - - - -- linear combo weights (showing up to 5) - - 1.4359 -0.5472 -0.1530 0.5104 4.4742 - - - -- cutpoint (score) - --- 0.144957 (0.602549), N = 226 moving right - --- 0.756652 (0.701044), N = 158 moving right - --- 0.859184 (0.716874), N = 149 moving right - --- 0.956264 (0.743465), N = 131 moving right - --- 1.45952 (0.739001), N = 78 moving right - - -- best stat: 0.743465, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 2 8 6 16 - - - -- linear combo weights (showing up to 5) - - 0.4829 0.6998 1.3582 0.4390 0.2526 - - - -- cutpoint (score) - --- 0.923724 (0.670204), N = 72 moving right - --- 0.93557 (0.672986), N = 70 moving right - --- 1.09689 (0.680426), N = 60 moving right - --- 1.91379 (0.663647), N = 42 moving right - --- 2.75568 (0.602873), N = 20 moving right - - -- best stat: 0.680426, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.7900e+02 9.8913e-01 1.0909e-02 - 1.8600e+02 9.8551e-01 1.4572e-02 - 1.9800e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 327 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 5 7 11 1 - - - -- linear combo weights (showing up to 5) - - 0.4510 0.4430 9.5859 1.1441 0.5407 - - - -- cutpoint (score) - --- 0.649695 (0.685771), N = 174 moving right - --- 0.940354 (0.732596), N = 151 moving right - --- 1.29971 (0.76263), N = 127 moving right - --- 1.73809 (0.784155), N = 105 moving right - --- 2.3908 (0.749776), N = 59 moving right - - -- best stat: 0.784155, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 12 13 5 14 - - - -- linear combo weights (showing up to 5) - - 0.0400 0.1274 0.3031 1.3930 0.1868 - - - -- cutpoint (score) - --- -0.140367 (0.621787), N = 187 moving right - --- -0.018716 (0.649106), N = 165 moving right - --- 0.0367333 (0.654309), N = 155 moving right - --- 0.20168 (0.643863), N = 116 moving right - --- 0.883804 (0.623031), N = 70 moving right - - -- best stat: 0.654309, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 9 4 17 5 - - - -- linear combo weights (showing up to 5) - - -1.5362 0.3404 0.2473 0.5295 1.0262 - - - -- cutpoint (score) - --- -0.0307588 (0.681099), N = 184 moving right - --- 0.640832 (0.710969), N = 127 moving right - --- 0.837442 (0.700849), N = 107 moving right - --- 1.23291 (0.68977), N = 80 moving right - --- 1.96656 (0.562087), N = 24 moving right - - -- best stat: 0.710969, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8188e-01 1.8169e-02 - 1.8600e+02 9.7826e-01 2.1859e-02 - 1.9100e+02 9.6739e-01 3.2970e-02 - 1.9800e+02 9.6014e-01 4.0460e-02 - - ------------- Growing tree 328 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 1 12 7 4 - - - -- linear combo weights (showing up to 5) - - -0.4254 0.4515 0.2340 5.4871 0.6520 - - - -- cutpoint (score) - --- -1.10678 (0.507363), N = 269 moving right - --- 0.0803287 (0.677381), N = 153 moving right - --- 0.130264 (0.69227), N = 139 moving right - --- 0.6391 (0.631654), N = 77 moving right - --- 0.74188 (0.6165), N = 62 moving right - - -- best stat: 0.69227, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 11 0 1 17 - - - -- linear combo weights (showing up to 5) - - 0.3154 1.0563 -0.3277 0.3881 0.3386 - - - -- cutpoint (score) - --- 0.061142 (0.658515), N = 188 moving right - --- 0.757339 (0.749031), N = 130 moving right - --- 1.19465 (0.761554), N = 98 moving right - --- 1.47124 (0.763635), N = 85 moving right - --- 4.11213 (0.5031), N = 5 moving right - - -- best stat: 0.763635, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 5 8 9 3 - - - -- linear combo weights (showing up to 5) - - -0.1445 0.8768 1.4103 -0.0720 5.5614 - - - -- cutpoint (score) - --- -0.694047 (0.594473), N = 227 moving right - --- -0.34852 (0.710422), N = 157 moving right - --- 0.171188 (0.697532), N = 121 moving right - --- 0.437583 (0.716337), N = 88 moving right - --- 0.838303 (0.715847), N = 63 moving right - - -- best stat: 0.716337, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8188e-01 1.8169e-02 - 7.7000e+01 9.7826e-01 2.1859e-02 - 1.7900e+02 9.7101e-01 2.9266e-02 - 1.8600e+02 9.6739e-01 3.2997e-02 - - ------------- Growing tree 329 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 2 1 14 8 - - - -- linear combo weights (showing up to 5) - - -0.7312 -0.3843 0.2809 0.0685 1.7845 - - - -- cutpoint (score) - --- -2.64722 (0.515862), N = 266 moving right - --- -1.21246 (0.717004), N = 145 moving right - --- -0.917872 (0.738511), N = 127 moving right - --- -0.187624 (0.7415), N = 80 moving right - --- 1.71489 (0.658219), N = 33 moving right - - -- best stat: 0.7415, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 6 12 2 0 - - - -- linear combo weights (showing up to 5) - - 0.2736 0.6253 0.0688 -0.4107 0.0006 - - - -- cutpoint (score) - --- -0.264676 (0.6449), N = 106 moving right - --- -0.225198 (0.604609), N = 94 moving right - --- -0.191201 (0.60423), N = 84 moving right - --- 0.060509 (0.535361), N = 39 moving right - --- 0.123068 (0.553699), N = 33 moving right - - -- best stat: 0.6449, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 2 1 6 8 - - - -- linear combo weights (showing up to 5) - - -0.7242 -0.4141 0.2863 0.0158 1.8243 - - - -- cutpoint (score) - --- -1.85545 (0.585512), N = 226 moving right - --- -0.914248 (0.742861), N = 122 moving right - --- -0.904437 (0.748795), N = 119 moving right - --- 2.34162 (0.632251), N = 29 moving right - --- 3.95697 (0.579221), N = 17 moving right - - -- best stat: 0.748795, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 5.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.8188e-01 1.8209e-02 - 1.3100e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 330 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 2 17 7 9 - - - -- linear combo weights (showing up to 5) - - 0.3289 -0.5932 0.5974 6.6503 0.3064 - - - -- cutpoint (score) - --- 0.898559 (0.60522), N = 191 moving right - --- 0.901944 (0.608505), N = 190 moving right - --- 1.51929 (0.699112), N = 110 moving right - --- 2.07121 (0.660787), N = 56 moving right - --- 2.67264 (0.634965), N = 35 moving right - - -- best stat: 0.699112, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 15 9 11 7 - - - -- linear combo weights (showing up to 5) - - 1.1001 0.1743 0.3045 0.8180 6.2837 - - - -- cutpoint (score) - --- -0.325287 (0.671478), N = 166 moving right - --- -0.307804 (0.685872), N = 157 moving right - --- 0.252208 (0.736502), N = 98 moving right - --- 1.01801 (0.705583), N = 67 moving right - --- 1.14621 (0.694394), N = 59 moving right - - -- best stat: 0.736502, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 14 9 0 3 - - - -- linear combo weights (showing up to 5) - - 0.2351 0.0039 0.3789 0.0014 5.5851 - - - -- cutpoint (score) - --- -0.170638 (0.594091), N = 190 moving right - --- -0.155174 (0.598113), N = 188 moving right - --- -0.0199381 (0.681313), N = 123 moving right - --- -0.00640059 (0.678546), N = 120 moving right - --- 0.00910248 (0.690093), N = 115 moving right - - -- best stat: 0.690093, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8188e-01 1.8195e-02 - 7.7000e+01 9.7101e-01 2.9265e-02 - 1.1000e+02 9.6739e-01 3.2997e-02 - 1.4000e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 331 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 3 16 1 4 - - - -- linear combo weights (showing up to 5) - - 0.1500 5.0679 0.6106 0.1257 0.9606 - - - -- cutpoint (score) - --- -0.798683 (0.523851), N = 263 moving right - --- -0.0957722 (0.641331), N = 184 moving right - --- 0.0652239 (0.662661), N = 173 moving right - --- 0.821052 (0.737944), N = 97 moving right - --- 2.20466 (0.604536), N = 26 moving right - - -- best stat: 0.737944, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 10 2 15 11 - - - -- linear combo weights (showing up to 5) - - 0.1261 -0.7016 -0.0908 -0.3006 0.7177 - - - -- cutpoint (score) - --- -2.00639 (0.512722), N = 269 moving right - --- -1.55775 (0.535867), N = 256 moving right - --- 0.550457 (0.70498), N = 73 moving right - --- 1.26639 (0.637903), N = 36 moving right - --- 1.92133 (0.565786), N = 18 moving right - - -- best stat: 0.70498, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 2 14 16 12 - - - -- linear combo weights (showing up to 5) - - 0.3330 0.3016 0.4742 0.7896 0.1644 - - - -- cutpoint (score) - --- -0.598472 (0.573427), N = 229 moving right - --- 0.171637 (0.727097), N = 122 moving right - --- 0.428727 (0.724819), N = 100 moving right - --- 0.444723 (0.724375), N = 98 moving right - --- 0.519479 (0.720625), N = 90 moving right - - -- best stat: 0.727097, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.8188e-01 1.8196e-02 - 1.1000e+02 9.7464e-01 2.5576e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 332 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 8 15 4 9 - - - -- linear combo weights (showing up to 5) - - -0.0229 1.8320 -0.1652 0.1960 -0.0434 - - - -- cutpoint (score) - --- -1.00114 (0.590224), N = 221 moving right - --- -0.361829 (0.738563), N = 112 moving right - --- 0.792643 (0.653951), N = 53 moving right - --- 0.966879 (0.651335), N = 41 moving right - --- 0.973688 (0.652095), N = 40 moving right - - -- best stat: 0.738563, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 16 9 15 4 2 - - - -- linear combo weights (showing up to 5) - - 0.8164 0.8548 -0.1532 0.3409 -0.4849 - - - -- cutpoint (score) - --- -1.60927 (0.534278), N = 258 moving right - --- -1.55855 (0.54528), N = 253 moving right - --- -1.49523 (0.556236), N = 244 moving right - --- -0.734235 (0.712133), N = 149 moving right - --- -0.594185 (0.709964), N = 135 moving right - - -- best stat: 0.712133, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 6 9 15 1 - - - -- linear combo weights (showing up to 5) - - 0.1740 0.5688 1.0755 -0.2406 0.5512 - - - -- cutpoint (score) - --- -0.496674 (0.616743), N = 203 moving right - --- 0.265992 (0.681208), N = 93 moving right - --- 0.630867 (0.642749), N = 56 moving right - --- 1.01566 (0.642547), N = 37 moving right - --- 1.33191 (0.572962), N = 23 moving right - - -- best stat: 0.681208, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 1.3100e+02 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.8600e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 333 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 2 3 12 14 - - - -- linear combo weights (showing up to 5) - - 8.2379 -0.9539 3.2960 0.0585 0.2825 - - - -- cutpoint (score) - --- -1.13967 (0.584851), N = 211 moving right - --- -1.12478 (0.600676), N = 201 moving right - --- -0.81016 (0.670315), N = 90 moving right - --- 0.012146 (0.597455), N = 33 moving right - --- 4.3915 (0.593524), N = 15 moving right - - -- best stat: 0.670315, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 3 17 9 15 16 - - - -- linear combo weights (showing up to 5) - - 5.2900 0.6603 0.6653 -0.0737 0.4047 - - - -- cutpoint (score) - --- 1.00674 (0.567506), N = 237 moving right - --- 1.28354 (0.636374), N = 200 moving right - --- 1.36958 (0.646193), N = 196 moving right - --- 2.58024 (0.724308), N = 68 moving right - --- 2.8723 (0.664526), N = 42 moving right - - -- best stat: 0.724308, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 13 11 1 8 - - - -- linear combo weights (showing up to 5) - - -0.0393 0.0277 0.9168 0.5062 1.4476 - - - -- cutpoint (score) - --- -1.42381 (0.621143), N = 210 moving right - --- -0.91325 (0.748864), N = 136 moving right - --- 1.07891 (0.683611), N = 48 moving right - --- 1.91233 (0.659904), N = 37 moving right - --- 3.36547 (0.605555), N = 20 moving right - - -- best stat: 0.748864, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 334 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 5 1 16 12 - - - -- linear combo weights (showing up to 5) - - 7.7139 0.8824 0.5657 0.2138 0.0879 - - - -- cutpoint (score) - --- -0.54712 (0.564184), N = 232 moving right - --- -0.455428 (0.590552), N = 220 moving right - --- 0.308552 (0.702075), N = 133 moving right - --- 1.12921 (0.688762), N = 60 moving right - --- 1.33673 (0.66539), N = 42 moving right - - -- best stat: 0.702075, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 7 15 4 17 - - - -- linear combo weights (showing up to 5) - - 0.4863 7.3023 -0.0455 0.5786 0.3583 - - - -- cutpoint (score) - --- 0.793744 (0.633546), N = 215 moving right - --- 0.962039 (0.666561), N = 190 moving right - --- 1.59968 (0.727233), N = 115 moving right - --- 1.84964 (0.750089), N = 86 moving right - --- 9.65332 (0.545851), N = 10 moving right - - -- best stat: 0.750089, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 17 4 1 9 - - - -- linear combo weights (showing up to 5) - - 5.3703 0.3119 0.7847 0.3522 0.1571 - - - -- cutpoint (score) - --- 1.33865 (0.71769), N = 152 moving right - --- 2.05511 (0.681104), N = 67 moving right - --- 2.056 (0.674557), N = 66 moving right - --- 2.35748 (0.666779), N = 43 moving right - --- 2.47333 (0.650966), N = 39 moving right - - -- best stat: 0.71769, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.6377e-01 3.6700e-02 - 1.4000e+02 9.6014e-01 4.0460e-02 - - ------------- Growing tree 335 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 233 -- max leaves: 117 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 8 14 7 6 - - - -- linear combo weights (showing up to 5) - - 0.2820 1.5355 -0.0956 2.4468 0.8762 - - - -- cutpoint (score) - --- -0.667888 (0.633185), N = 199 moving right - --- -0.35833 (0.747569), N = 135 moving right - --- -0.0190781 (0.75312), N = 118 moving right - --- 0.472048 (0.744694), N = 89 moving right - --- 2.82734 (0.641099), N = 32 moving right - - -- best stat: 0.75312, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 7 13 1 12 - - - -- linear combo weights (showing up to 5) - - 0.7688 3.1715 0.4613 0.5342 0.0017 - - - -- cutpoint (score) - --- -0.822638 (0.61586), N = 212 moving right - --- -0.0766039 (0.741485), N = 134 moving right - --- -0.00606165 (0.751939), N = 129 moving right - --- 0.576438 (0.708666), N = 84 moving right - --- 0.964357 (0.702071), N = 69 moving right - - -- best stat: 0.751939, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 7 13 16 12 - - - -- linear combo weights (showing up to 5) - - 0.4922 2.8645 0.4695 0.4952 0.1180 - - - -- cutpoint (score) - --- 0.160073 (0.528921), N = 264 moving right - --- 0.559273 (0.572351), N = 243 moving right - --- 0.692943 (0.592767), N = 223 moving right - --- 0.9892 (0.651219), N = 191 moving right - --- 2.227 (0.703705), N = 79 moving right - - -- best stat: 0.703705, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.6739e-01 3.3037e-02 - - ------------- Growing tree 336 -------------- - -- N obs inbag: 276 -- N row inbag: 188 -- max nodes: 209 -- max leaves: 105 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 11 8 4 17 - - - -- linear combo weights (showing up to 5) - - -0.0649 0.4438 1.9354 0.1249 0.4170 - - - -- cutpoint (score) - --- -0.405845 (0.588739), N = 232 moving right - --- -0.155035 (0.633557), N = 209 moving right - --- 0.377951 (0.715431), N = 164 moving right - --- 0.434727 (0.728108), N = 158 moving right - --- 1.29626 (0.769045), N = 98 moving right - - -- best stat: 0.769045, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 12 14 3 8 - - - -- linear combo weights (showing up to 5) - - 0.0187 0.0347 -0.0651 6.4857 1.8312 - - - -- cutpoint (score) - --- -1.10962 (0.523053), N = 263 moving right - --- -0.985816 (0.602274), N = 223 moving right - --- -0.677774 (0.764462), N = 125 moving right - --- -0.569698 (0.770195), N = 117 moving right - --- -0.466991 (0.783379), N = 109 moving right - - -- best stat: 0.783379, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 1 16 9 8 - - - -- linear combo weights (showing up to 5) - - -0.1314 0.4716 0.2749 -0.5393 2.5280 - - - -- cutpoint (score) - --- -2.06176 (0.527597), N = 254 moving right - --- -1.89117 (0.56044), N = 237 moving right - --- -0.618889 (0.773725), N = 112 moving right - --- 0.80302 (0.704997), N = 49 moving right - --- 8.22993 (0.541483), N = 7 moving right - - -- best stat: 0.773725, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.7826e-01 2.1898e-02 - 1.1000e+02 9.6739e-01 3.3009e-02 - - ------------- Growing tree 337 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 11 0 7 1 - - - -- linear combo weights (showing up to 5) - - 0.9986 0.6458 0.1967 24.2718 0.2565 - - - -- cutpoint (score) - --- -0.139487 (0.671857), N = 180 moving right - --- -0.032769 (0.699573), N = 157 moving right - --- 0.280698 (0.720659), N = 126 moving right - --- 0.828052 (0.735204), N = 84 moving right - --- 24.9227 (0.556697), N = 8 moving right - - -- best stat: 0.735204, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 10 5 1 15 - - - -- linear combo weights (showing up to 5) - - 24.5482 -0.5565 0.9716 0.1606 -0.0819 - - - -- cutpoint (score) - --- -0.648596 (0.53585), N = 255 moving right - --- 0.263002 (0.678377), N = 123 moving right - --- 0.799089 (0.690915), N = 64 moving right - --- 1.62047 (0.628418), N = 20 moving right - --- 2.30721 (0.604649), N = 16 moving right - - -- best stat: 0.690915, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 11 1 2 13 - - - -- linear combo weights (showing up to 5) - - 2.1302 0.3821 0.5736 0.3980 0.0489 - - - -- cutpoint (score) - --- -1.61263 (0.542348), N = 256 moving right - --- -0.501596 (0.762659), N = 138 moving right - --- 1.35792 (0.673296), N = 43 moving right - --- 1.94042 (0.637795), N = 32 moving right - --- 6.9397 (0.563762), N = 10 moving right - - -- best stat: 0.762659, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.7900e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 338 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 9 7 16 17 - - - -- linear combo weights (showing up to 5) - - 0.3003 0.3865 2.6382 0.4475 0.5697 - - - -- cutpoint (score) - --- 1.02877 (0.591148), N = 227 moving right - --- 1.48121 (0.668752), N = 182 moving right - --- 1.90251 (0.720069), N = 126 moving right - --- 2.49749 (0.693886), N = 72 moving right - --- 2.87851 (0.628585), N = 44 moving right - - -- best stat: 0.720069, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 13 15 12 9 - - - -- linear combo weights (showing up to 5) - - 0.4110 0.1145 -0.3508 0.2110 0.2881 - - - -- cutpoint (score) - --- -0.395376 (0.612418), N = 196 moving right - --- -0.26834 (0.631231), N = 183 moving right - --- -0.00728209 (0.690736), N = 131 moving right - --- 0.574879 (0.591946), N = 46 moving right - --- 1.30469 (0.508525), N = 7 moving right - - -- best stat: 0.690736, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 17 13 12 14 - - - -- linear combo weights (showing up to 5) - - 0.2785 0.6299 0.2821 0.1011 0.1679 - - - -- cutpoint (score) - --- 0.86499 (0.552408), N = 250 moving right - --- 1.20268 (0.612481), N = 215 moving right - --- 2.02528 (0.706925), N = 126 moving right - --- 2.74759 (0.584345), N = 28 moving right - --- 2.80225 (0.574014), N = 20 moving right - - -- best stat: 0.706925, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 339 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 17 14 10 4 - - - -- linear combo weights (showing up to 5) - - 7.3419 0.4678 0.3938 -0.5430 0.3100 - - - -- cutpoint (score) - --- 1.07197 (0.660919), N = 188 moving right - --- 1.7312 (0.676301), N = 105 moving right - --- 1.82796 (0.670025), N = 93 moving right - --- 1.93709 (0.651596), N = 80 moving right - --- 2.25648 (0.683209), N = 58 moving right - - -- best stat: 0.683209, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 13 3 16 0 - - - -- linear combo weights (showing up to 5) - - 0.1896 0.2252 14.3340 0.6267 -0.0154 - - - -- cutpoint (score) - --- -0.620507 (0.601136), N = 203 moving right - --- -0.608968 (0.604838), N = 200 moving right - --- -0.370105 (0.645004), N = 174 moving right - --- -0.234561 (0.658841), N = 160 moving right - --- 0.660675 (0.67828), N = 55 moving right - - -- best stat: 0.67828, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 1 0 12 - - - -- linear combo weights (showing up to 5) - - 0.5898 0.6682 0.6357 -0.1590 0.1426 - - - -- cutpoint (score) - --- 0.276346 (0.562594), N = 240 moving right - --- 0.406254 (0.581657), N = 230 moving right - --- 0.52734 (0.599632), N = 222 moving right - --- 0.894534 (0.646706), N = 190 moving right - --- 1.23327 (0.692969), N = 165 moving right - - -- best stat: 0.692969, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 340 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 189 -- max leaves: 95 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 1 14 15 6 7 - - - -- linear combo weights (showing up to 5) - - 0.3589 0.6539 -0.1252 1.9522 8.5551 - - - -- cutpoint (score) - --- -0.565105 (0.619112), N = 205 moving right - --- 0.36569 (0.674662), N = 82 moving right - --- 0.652992 (0.675807), N = 55 moving right - --- 1.89632 (0.642206), N = 31 moving right - --- 2.57442 (0.613092), N = 22 moving right - - -- best stat: 0.675807, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 8 14 9 7 - - - -- linear combo weights (showing up to 5) - - 0.5438 1.8740 0.1990 -0.2145 6.0113 - - - -- cutpoint (score) - --- 0.546198 (0.642916), N = 195 moving right - --- 1.13801 (0.71783), N = 127 moving right - --- 1.63983 (0.744289), N = 73 moving right - --- 2.97454 (0.684619), N = 44 moving right - --- 3.68603 (0.665827), N = 32 moving right - - -- best stat: 0.744289, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 15 1 0 12 - - - -- linear combo weights (showing up to 5) - - 8.2810 -0.1598 0.4541 -0.3118 0.0328 - - - -- cutpoint (score) - --- -0.745204 (0.518723), N = 237 moving right - --- -0.671248 (0.540215), N = 226 moving right - --- -0.223352 (0.621218), N = 133 moving right - --- -0.035229 (0.633028), N = 106 moving right - --- 0.386545 (0.626734), N = 57 moving right - - -- best stat: 0.633028, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 3.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 2.6400e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 341 -------------- - -- N obs inbag: 276 -- N row inbag: 156 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 0 16 14 1 - - - -- linear combo weights (showing up to 5) - - 1.0847 0.2629 0.3991 0.3943 0.2770 - - - -- cutpoint (score) - --- -1.25665 (0.549892), N = 253 moving right - --- -1.07869 (0.598496), N = 228 moving right - --- 0.167459 (0.713438), N = 105 moving right - --- 0.798399 (0.70357), N = 65 moving right - --- 2.48822 (0.568478), N = 16 moving right - - -- best stat: 0.713438, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 8 7 2 16 - - - -- linear combo weights (showing up to 5) - - 0.3698 1.6493 5.2934 -0.5055 0.1651 - - - -- cutpoint (score) - --- -0.203631 (0.706836), N = 158 moving right - --- -0.0130855 (0.725721), N = 137 moving right - --- 1.81042 (0.660533), N = 45 moving right - --- 2.31846 (0.657933), N = 40 moving right - --- 2.67693 (0.657841), N = 35 moving right - - -- best stat: 0.725721, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 7 16 9 14 - - - -- linear combo weights (showing up to 5) - - 0.8365 6.9432 0.3617 0.1858 0.5378 - - - -- cutpoint (score) - --- -0.539226 (0.573561), N = 229 moving right - --- -0.214035 (0.653241), N = 176 moving right - --- 0.0906959 (0.688687), N = 134 moving right - --- 0.203988 (0.698187), N = 124 moving right - --- 7.34613 (0.568846), N = 13 moving right - - -- best stat: 0.698187, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7101e-01 2.9293e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 342 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 211 -- max leaves: 106 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 4 16 6 3 - - - -- linear combo weights (showing up to 5) - - -0.4167 0.4209 0.1457 0.1102 5.3844 - - - -- cutpoint (score) - --- -0.21666 (0.574104), N = 201 moving right - --- 0.218245 (0.660693), N = 126 moving right - --- 0.524934 (0.646351), N = 68 moving right - --- 0.62077 (0.615004), N = 55 moving right - --- 1.1184 (0.60677), N = 17 moving right - - -- best stat: 0.660693, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 13 1 10 3 - - - -- linear combo weights (showing up to 5) - - 1.3276 0.2069 0.5207 -0.1626 5.3995 - - - -- cutpoint (score) - --- -1.09052 (0.635924), N = 206 moving right - --- -0.748368 (0.69459), N = 157 moving right - --- 1.04797 (0.686267), N = 41 moving right - --- 1.07418 (0.689198), N = 39 moving right - --- 2.40958 (0.625073), N = 23 moving right - - -- best stat: 0.69459, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 7 8 15 0 - - - -- linear combo weights (showing up to 5) - - -0.5558 11.6057 2.2490 0.0798 -0.5484 - - - -- cutpoint (score) - --- -1.92614 (0.658948), N = 185 moving right - --- -1.60031 (0.728979), N = 140 moving right - --- -1.57289 (0.737549), N = 134 moving right - --- -1.38418 (0.749139), N = 115 moving right - --- -0.521452 (0.717143), N = 68 moving right - - -- best stat: 0.749139, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8551e-01 1.4532e-02 - 1.3100e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.9800e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 343 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 239 -- max leaves: 120 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 6 4 15 9 - - - -- linear combo weights (showing up to 5) - - -0.5911 0.7977 0.5504 -0.3146 0.1312 - - - -- cutpoint (score) - --- -0.748693 (0.54936), N = 249 moving right - --- 0.104874 (0.678685), N = 156 moving right - --- 0.132167 (0.677677), N = 154 moving right - --- 0.260682 (0.701884), N = 139 moving right - --- 0.578075 (0.716836), N = 115 moving right - - -- best stat: 0.716836, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 17 6 4 11 - - - -- linear combo weights (showing up to 5) - - 0.0990 0.4882 1.2465 0.3006 0.7809 - - - -- cutpoint (score) - --- 0.651901 (0.598145), N = 227 moving right - --- 1.223 (0.674715), N = 184 moving right - --- 1.46725 (0.695652), N = 152 moving right - --- 1.50476 (0.707931), N = 145 moving right - --- 1.76398 (0.746822), N = 126 moving right - - -- best stat: 0.746822, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 5 14 17 8 - - - -- linear combo weights (showing up to 5) - - 3.3674 0.4169 0.0774 0.4575 1.1763 - - - -- cutpoint (score) - --- 0.507337 (0.610382), N = 224 moving right - --- 1.87056 (0.772654), N = 91 moving right - --- 2.67449 (0.694233), N = 53 moving right - --- 3.76031 (0.663527), N = 40 moving right - --- 3.82712 (0.668072), N = 37 moving right - - -- best stat: 0.772654, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.7826e-01 2.1858e-02 - 7.7000e+01 9.7464e-01 2.5562e-02 - 1.1000e+02 9.6377e-01 3.6714e-02 - - ------------- Growing tree 344 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 199 -- max leaves: 100 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 12 11 2 7 - - - -- linear combo weights (showing up to 5) - - 0.1539 -0.0277 0.5227 0.2487 4.0459 - - - -- cutpoint (score) - --- -0.0430641 (0.616826), N = 181 moving right - --- 0.260667 (0.66521), N = 99 moving right - --- 0.303468 (0.660518), N = 95 moving right - --- 0.359354 (0.662082), N = 83 moving right - --- 1.46179 (0.556005), N = 15 moving right - - -- best stat: 0.66521, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 1 13 16 11 7 - - - -- linear combo weights (showing up to 5) - - 0.6512 0.3683 0.5297 0.3504 3.4148 - - - -- cutpoint (score) - --- -0.79513 (0.610099), N = 210 moving right - --- -0.756158 (0.607219), N = 207 moving right - --- -0.717717 (0.621667), N = 200 moving right - --- -0.101937 (0.683184), N = 118 moving right - --- 0.0128972 (0.701703), N = 97 moving right - - -- best stat: 0.701703, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 1 6 7 13 17 - - - -- linear combo weights (showing up to 5) - - 0.5253 0.3810 3.9558 0.1910 0.6945 - - - -- cutpoint (score) - --- 1.07818 (0.576709), N = 237 moving right - --- 1.83347 (0.65883), N = 181 moving right - --- 2.1553 (0.720148), N = 125 moving right - --- 2.5941 (0.727595), N = 84 moving right - --- 3.19177 (0.65034), N = 45 moving right - - -- best stat: 0.727595, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 345 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 16 0 2 9 - - - -- linear combo weights (showing up to 5) - - 0.1087 0.7535 -0.1176 -0.1620 0.3309 - - - -- cutpoint (score) - --- -0.916857 (0.603966), N = 221 moving right - --- -0.775483 (0.616135), N = 208 moving right - --- -0.360686 (0.672648), N = 150 moving right - --- 0.395734 (0.636236), N = 49 moving right - --- 0.523048 (0.598503), N = 38 moving right - - -- best stat: 0.672648, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 7 17 15 2 - - - -- linear combo weights (showing up to 5) - - 0.6485 6.0125 0.4618 0.0365 -0.5856 - - - -- cutpoint (score) - --- 0.761754 (0.614561), N = 221 moving right - --- 0.825164 (0.671384), N = 180 moving right - --- 1.4768 (0.692535), N = 107 moving right - --- 1.53003 (0.689016), N = 100 moving right - --- 1.97947 (0.605482), N = 28 moving right - - -- best stat: 0.692535, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 12 16 7 5 - - - -- linear combo weights (showing up to 5) - - -0.1027 0.1952 0.5555 5.2976 0.7333 - - - -- cutpoint (score) - --- -0.306129 (0.595859), N = 198 moving right - --- -0.285175 (0.594635), N = 192 moving right - --- 0.697206 (0.663453), N = 73 moving right - --- 5.48536 (0.573736), N = 15 moving right - --- 6.62764 (0.53297), N = 7 moving right - - -- best stat: 0.663453, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 346 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 6 8 15 5 - - - -- linear combo weights (showing up to 5) - - -0.0631 0.8997 1.5909 -0.3430 0.6557 - - - -- cutpoint (score) - --- -0.916681 (0.592349), N = 226 moving right - --- -0.273569 (0.721332), N = 134 moving right - --- -0.162128 (0.712601), N = 115 moving right - --- 2.1078 (0.606661), N = 25 moving right - --- 4.86331 (0.535911), N = 6 moving right - - -- best stat: 0.721332, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 15 6 16 3 - - - -- linear combo weights (showing up to 5) - - -0.2715 -0.1902 0.5130 0.5760 10.1145 - - - -- cutpoint (score) - --- -0.861617 (0.545496), N = 244 moving right - --- -0.616735 (0.571232), N = 202 moving right - --- 0.160726 (0.700959), N = 68 moving right - --- 0.592345 (0.681876), N = 41 moving right - --- 11.1136 (0.557379), N = 9 moving right - - -- best stat: 0.700959, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 15 7 17 6 - - - -- linear combo weights (showing up to 5) - - 0.2974 -0.0335 12.2099 0.6707 1.9501 - - - -- cutpoint (score) - --- 1.84938 (0.650166), N = 170 moving right - --- 2.5365 (0.723608), N = 99 moving right - --- 2.64872 (0.752582), N = 82 moving right - --- 2.83382 (0.68947), N = 60 moving right - --- 4.94448 (0.616662), N = 16 moving right - - -- best stat: 0.752582, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 347 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 2 9 13 14 - - - -- linear combo weights (showing up to 5) - - 0.8275 -0.1945 0.3182 0.6822 0.3115 - - - -- cutpoint (score) - --- -0.883393 (0.575101), N = 224 moving right - --- -0.872751 (0.578138), N = 221 moving right - --- -0.41807 (0.667881), N = 161 moving right - --- 0.969221 (0.612152), N = 44 moving right - --- 1.07603 (0.621133), N = 40 moving right - - -- best stat: 0.667881, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 13 4 6 5 - - - -- linear combo weights (showing up to 5) - - 0.3679 0.6958 0.8188 0.3942 0.8861 - - - -- cutpoint (score) - --- -0.949384 (0.521715), N = 263 moving right - --- -0.371215 (0.614408), N = 216 moving right - --- 0.601164 (0.703132), N = 139 moving right - --- 1.01205 (0.711788), N = 100 moving right - --- 1.02734 (0.702286), N = 98 moving right - - -- best stat: 0.711788, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 0 16 10 14 1 - - - -- linear combo weights (showing up to 5) - - 0.0550 0.4953 -1.0864 0.5178 0.1599 - - - -- cutpoint (score) - --- -0.82554 (0.644757), N = 206 moving right - --- -0.733828 (0.652089), N = 196 moving right - --- -0.434201 (0.673977), N = 172 moving right - --- 0.344789 (0.735889), N = 99 moving right - --- 1.00418 (0.710378), N = 68 moving right - - -- best stat: 0.735889, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7826e-01 2.1899e-02 - 1.7900e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 348 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 185 -- max leaves: 93 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 17 15 3 14 - - - -- linear combo weights (showing up to 5) - - 0.4384 0.3736 -0.1307 4.1186 0.1157 - - - -- cutpoint (score) - --- 0.498231 (0.530402), N = 257 moving right - --- 0.759128 (0.569589), N = 236 moving right - --- 0.94458 (0.59707), N = 204 moving right - --- 1.15033 (0.643223), N = 155 moving right - --- 2.0808 (0.602552), N = 23 moving right - - -- best stat: 0.643223, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 3 9 4 10 - - - -- linear combo weights (showing up to 5) - - -0.3928 3.9083 0.4352 0.9813 -0.4994 - - - -- cutpoint (score) - --- -1.08978 (0.534735), N = 257 moving right - --- -0.615633 (0.620338), N = 209 moving right - --- -0.371668 (0.681165), N = 179 moving right - --- -0.0824343 (0.700124), N = 162 moving right - --- 0.282116 (0.710083), N = 138 moving right - - -- best stat: 0.710083, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 9 4 11 3 - - - -- linear combo weights (showing up to 5) - - -0.0250 0.4352 1.0656 0.3737 4.0641 - - - -- cutpoint (score) - --- -0.59179 (0.533083), N = 261 moving right - --- -0.360551 (0.595705), N = 229 moving right - --- 0.501331 (0.689639), N = 150 moving right - --- 0.895912 (0.740173), N = 110 moving right - --- 1.68763 (0.632642), N = 32 moving right - - -- best stat: 0.740173, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.8913e-01 1.0870e-02 - 1.1000e+02 9.8551e-01 1.4533e-02 - 1.3100e+02 9.8188e-01 1.8209e-02 - 1.8600e+02 9.7826e-01 2.1899e-02 - 1.9100e+02 9.7464e-01 2.5603e-02 - - ------------- Growing tree 349 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 15 10 9 4 - - - -- linear combo weights (showing up to 5) - - 7.1952 -0.1650 -0.2568 0.5381 0.7514 - - - -- cutpoint (score) - --- -0.604391 (0.533466), N = 254 moving right - --- -0.425244 (0.578165), N = 233 moving right - --- 0.98284 (0.704466), N = 54 moving right - --- 1.42817 (0.667603), N = 39 moving right - --- 7.95011 (0.575985), N = 14 moving right - - -- best stat: 0.704466, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 7 13 5 14 - - - -- linear combo weights (showing up to 5) - - 1.1233 11.8660 0.2548 0.4508 0.0258 - - - -- cutpoint (score) - --- -0.346984 (0.726757), N = 138 moving right - --- -0.316897 (0.73202), N = 136 moving right - --- -0.294283 (0.727208), N = 135 moving right - --- 0.200243 (0.756118), N = 92 moving right - --- 0.511237 (0.716191), N = 67 moving right - - -- best stat: 0.756118, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 15 11 8 9 - - - -- linear combo weights (showing up to 5) - - 0.0201 -0.2227 0.3693 2.0438 -0.4210 - - - -- cutpoint (score) - --- -1.1322 (0.642327), N = 190 moving right - --- -1.07516 (0.649574), N = 182 moving right - --- -1.07094 (0.655701), N = 179 moving right - --- -0.846144 (0.727366), N = 143 moving right - --- 2.02091 (0.64215), N = 34 moving right - - -- best stat: 0.727366, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 350 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 9 5 7 1 - - - -- linear combo weights (showing up to 5) - - -0.1943 0.3810 0.6294 6.3111 0.4640 - - - -- cutpoint (score) - --- -0.600525 (0.547507), N = 249 moving right - --- -0.111778 (0.636468), N = 190 moving right - --- 0.0275848 (0.645031), N = 172 moving right - --- 1.05879 (0.658129), N = 42 moving right - --- 2.92237 (0.600736), N = 20 moving right - - -- best stat: 0.658129, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 4 1 6 15 3 - - - -- linear combo weights (showing up to 5) - - 0.6793 0.3266 -0.5240 -0.1590 8.7226 - - - -- cutpoint (score) - --- -0.50081 (0.515901), N = 264 moving right - --- 0.277702 (0.641995), N = 154 moving right - --- 0.443078 (0.654801), N = 121 moving right - --- 0.500477 (0.658168), N = 110 moving right - --- 1.06672 (0.641509), N = 37 moving right - - -- best stat: 0.658168, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 5 8 1 7 - - - -- linear combo weights (showing up to 5) - - 0.0221 0.2428 2.0749 0.4854 5.1290 - - - -- cutpoint (score) - --- -1.15511 (0.592211), N = 218 moving right - --- -1.04074 (0.622961), N = 202 moving right - --- -0.85576 (0.683235), N = 169 moving right - --- -0.822839 (0.691954), N = 164 moving right - --- -0.458014 (0.736581), N = 131 moving right - - -- best stat: 0.736581, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7101e-01 2.9265e-02 - 1.3100e+02 9.6739e-01 3.2997e-02 - 1.4000e+02 9.6014e-01 4.0487e-02 - - ------------- Growing tree 351 -------------- - -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 3 2 11 0 - - - -- linear combo weights (showing up to 5) - - 0.5707 3.9239 0.1717 0.6866 -0.0681 - - - -- cutpoint (score) - --- 0.186138 (0.671132), N = 156 moving right - --- 0.347606 (0.703153), N = 125 moving right - --- 0.45837 (0.686665), N = 110 moving right - --- 1.67703 (0.632643), N = 27 moving right - --- 5.04935 (0.518219), N = 6 moving right - - -- best stat: 0.703153, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 7 9 14 13 - - - -- linear combo weights (showing up to 5) - - 0.1045 5.0971 0.3054 0.2629 0.3696 - - - -- cutpoint (score) - --- -0.762922 (0.539655), N = 247 moving right - --- -0.463866 (0.596823), N = 217 moving right - --- -0.217226 (0.656853), N = 170 moving right - --- -0.197682 (0.661271), N = 165 moving right - --- 0.220073 (0.672492), N = 95 moving right - - -- best stat: 0.672492, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 10 5 8 12 - - - -- linear combo weights (showing up to 5) - - 0.2350 -0.4781 0.1083 1.3506 0.0554 - - - -- cutpoint (score) - --- -1.71068 (0.491447), N = 270 moving right - --- -0.260593 (0.708595), N = 119 moving right - --- -0.0735808 (0.725207), N = 102 moving right - --- 0.834119 (0.671026), N = 48 moving right - --- 5.48963 (0.539443), N = 7 moving right - - -- best stat: 0.725207, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 352 -------------- - -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 219 -- max leaves: 110 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 3 17 7 15 - - - -- linear combo weights (showing up to 5) - - 0.0727 4.5867 0.6098 5.4469 0.0013 - - - -- cutpoint (score) - --- 1.22471 (0.615474), N = 211 moving right - --- 1.27154 (0.618573), N = 210 moving right - --- 1.81704 (0.717831), N = 141 moving right - --- 2.16156 (0.713771), N = 99 moving right - --- 2.42291 (0.665605), N = 62 moving right - - -- best stat: 0.717831, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 13 1 12 6 - - - -- linear combo weights (showing up to 5) - - 0.1687 0.8442 0.4965 -0.0198 0.6081 - - - -- cutpoint (score) - --- -0.506663 (0.653055), N = 179 moving right - --- -0.386179 (0.664622), N = 161 moving right - --- 0.180192 (0.698778), N = 97 moving right - --- 0.193746 (0.698232), N = 95 moving right - --- 1.38049 (0.57045), N = 22 moving right - - -- best stat: 0.698778, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 5 6 16 14 - - - -- linear combo weights (showing up to 5) - - -0.3238 1.2663 0.4250 0.4040 0.2877 - - - -- cutpoint (score) - --- -0.607143 (0.584941), N = 208 moving right - --- -0.549846 (0.588455), N = 190 moving right - --- -0.357533 (0.662178), N = 141 moving right - --- 0.422866 (0.660279), N = 93 moving right - --- 1.18506 (0.648865), N = 35 moving right - - -- best stat: 0.662178, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 353 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 7 3 5 17 0 - - - -- linear combo weights (showing up to 5) - - 19.8499 0.7003 0.6664 0.3895 -0.2306 - - - -- cutpoint (score) - --- 0.937989 (0.646741), N = 153 moving right - --- 1.16859 (0.67592), N = 120 moving right - --- 1.21487 (0.682418), N = 117 moving right - --- 1.6044 (0.668188), N = 71 moving right - --- 2.92481 (0.595065), N = 15 moving right - - -- best stat: 0.682418, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 10 11 14 13 - - - -- linear combo weights (showing up to 5) - - 0.1867 -0.5919 0.6827 0.2864 0.3712 - - - -- cutpoint (score) - --- -1.02934 (0.587744), N = 214 moving right - --- -0.859401 (0.599774), N = 208 moving right - --- -0.544766 (0.667448), N = 156 moving right - --- 0.148651 (0.707012), N = 105 moving right - --- 0.373755 (0.70111), N = 88 moving right - - -- best stat: 0.707012, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 9 10 17 0 - - - -- linear combo weights (showing up to 5) - - 0.6618 0.2741 -0.5399 0.4236 -0.1366 - - - -- cutpoint (score) - --- 0.603274 (0.598828), N = 211 moving right - --- 0.624033 (0.607773), N = 207 moving right - --- 1.27474 (0.694859), N = 134 moving right - --- 1.57537 (0.693173), N = 113 moving right - --- 2.43257 (0.636377), N = 40 moving right - - -- best stat: 0.694859, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.7826e-01 2.1899e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 - 1.3100e+02 9.6739e-01 3.3037e-02 - - ------------- Growing tree 354 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 17 2 3 11 - - - -- linear combo weights (showing up to 5) - - 0.0529 0.2229 0.7417 8.8985 1.2390 - - - -- cutpoint (score) - --- 0.680897 (0.637425), N = 200 moving right - --- 0.910132 (0.689992), N = 166 moving right - --- 1.36986 (0.739812), N = 110 moving right - --- 2.76188 (0.642615), N = 37 moving right - --- 3.53749 (0.623652), N = 26 moving right - - -- best stat: 0.739812, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 5 7 8 3 - - - -- linear combo weights (showing up to 5) - - 0.1970 0.8115 1.0778 1.2993 7.8452 - - - -- cutpoint (score) - --- -0.955435 (0.540995), N = 254 moving right - --- -0.780433 (0.610748), N = 214 moving right - --- -0.621761 (0.663112), N = 182 moving right - --- 0.0557711 (0.701381), N = 115 moving right - --- 1.86324 (0.662668), N = 37 moving right - - -- best stat: 0.701381, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 13 0 17 5 - - - -- linear combo weights (showing up to 5) - - 0.3966 0.3021 -0.6006 0.3891 1.1700 - - - -- cutpoint (score) - --- 0.406581 (0.606789), N = 214 moving right - --- 1.02192 (0.661436), N = 142 moving right - --- 1.08916 (0.646613), N = 136 moving right - --- 1.48434 (0.644897), N = 104 moving right - --- 2.01636 (0.628903), N = 54 moving right - - -- best stat: 0.661436, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 5.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.7464e-01 2.5508e-02 - 1.4000e+02 9.7101e-01 2.9225e-02 - 1.7900e+02 9.6739e-01 3.2957e-02 - - ------------- Growing tree 355 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 251 -- max leaves: 126 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 8 13 5 12 - - - -- linear combo weights (showing up to 5) - - -0.0969 1.6092 -0.0033 0.2708 0.0513 - - - -- cutpoint (score) - --- -0.934561 (0.553643), N = 249 moving right - --- -0.901552 (0.594165), N = 232 moving right - --- 0.172668 (0.701469), N = 84 moving right - --- 0.234866 (0.694815), N = 75 moving right - --- 0.356625 (0.684292), N = 64 moving right - - -- best stat: 0.701469, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 10 11 4 3 1 - - - -- linear combo weights (showing up to 5) - - -0.3444 0.7180 0.5911 4.7908 0.2859 - - - -- cutpoint (score) - --- 0.12414 (0.693619), N = 148 moving right - --- 0.564807 (0.750869), N = 103 moving right - --- 1.15911 (0.717749), N = 65 moving right - --- 6.01958 (0.57824), N = 17 moving right - --- 6.85479 (0.529737), N = 7 moving right - - -- best stat: 0.750869, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 9 12 7 - - - -- linear combo weights (showing up to 5) - - 0.4123 0.5342 0.5960 0.0742 5.2049 - - - -- cutpoint (score) - --- 0.613706 (0.614986), N = 211 moving right - --- 1.16034 (0.682722), N = 158 moving right - --- 1.34671 (0.69003), N = 123 moving right - --- 1.48319 (0.694105), N = 106 moving right - --- 3.48696 (0.595903), N = 22 moving right - - -- best stat: 0.694105, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 4.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 356 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 247 -- max leaves: 124 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 14 16 0 4 - - - -- linear combo weights (showing up to 5) - - 0.2408 0.4275 0.8725 -0.3868 0.4978 - - - -- cutpoint (score) - --- -1.05678 (0.542992), N = 247 moving right - --- -0.81254 (0.572899), N = 231 moving right - --- -0.732756 (0.579254), N = 226 moving right - --- -0.613679 (0.609122), N = 211 moving right - --- -0.476141 (0.645541), N = 193 moving right - - -- best stat: 0.645541, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 0 3 16 7 - - - -- linear combo weights (showing up to 5) - - 0.5015 -0.2759 2.5969 0.6815 5.1229 - - - -- cutpoint (score) - --- -0.752728 (0.574197), N = 228 moving right - --- -0.607589 (0.598398), N = 204 moving right - --- -0.35936 (0.63106), N = 149 moving right - --- 0.100423 (0.669487), N = 100 moving right - --- 0.172797 (0.66929), N = 89 moving right - - -- best stat: 0.669487, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 1 2 15 8 - - - -- linear combo weights (showing up to 5) - - -0.1273 0.4487 -0.3743 -0.0293 2.4208 - - - -- cutpoint (score) - --- -1.79684 (0.577424), N = 226 moving right - --- -1.59501 (0.605364), N = 206 moving right - --- -1.50332 (0.633933), N = 186 moving right - --- -1.14748 (0.715823), N = 148 moving right - --- -0.870976 (0.758815), N = 120 moving right - - -- best stat: 0.758815, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 1.3100e+02 9.8913e-01 1.0896e-02 - 1.4000e+02 9.7826e-01 2.1885e-02 - 1.7900e+02 9.6739e-01 3.2996e-02 - 1.8600e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 357 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 9 3 16 7 - - - -- linear combo weights (showing up to 5) - - 0.2118 0.4007 7.3644 0.2078 4.9603 - - - -- cutpoint (score) - --- -0.522166 (0.526409), N = 261 moving right - --- -0.393998 (0.584871), N = 217 moving right - --- -0.341859 (0.590516), N = 207 moving right - --- 0.182155 (0.661462), N = 79 moving right - --- 1.45724 (0.60166), N = 23 moving right - - -- best stat: 0.661462, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 16 13 8 6 - - - -- linear combo weights (showing up to 5) - - 0.6288 0.1382 0.1089 1.4609 1.3793 - - - -- cutpoint (score) - --- -0.987365 (0.556876), N = 243 moving right - --- -0.578876 (0.700684), N = 168 moving right - --- -0.469406 (0.689148), N = 158 moving right - --- 0.775005 (0.71739), N = 69 moving right - --- 1.75631 (0.627472), N = 32 moving right - - -- best stat: 0.71739, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 1 15 6 17 - - - -- linear combo weights (showing up to 5) - - -0.2083 0.2288 -0.1260 1.4496 0.4935 - - - -- cutpoint (score) - --- 0.579729 (0.556073), N = 247 moving right - --- 1.15355 (0.624835), N = 167 moving right - --- 1.45215 (0.648628), N = 119 moving right - --- 1.73209 (0.669455), N = 84 moving right - --- 2.84252 (0.55768), N = 18 moving right - - -- best stat: 0.669455, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 358 -------------- - -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 8 7 5 15 - - - -- linear combo weights (showing up to 5) - - 1.6245 1.1250 6.6313 0.2115 0.0044 - - - -- cutpoint (score) - --- -0.591155 (0.629949), N = 210 moving right - --- -0.51465 (0.659595), N = 188 moving right - --- -0.405248 (0.685813), N = 163 moving right - --- -0.329058 (0.704192), N = 150 moving right - --- 1.10045 (0.734488), N = 56 moving right - - -- best stat: 0.734488, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 5 2 3 16 - - - -- linear combo weights (showing up to 5) - - 0.1175 0.5058 -0.9879 4.2118 0.7175 - - - -- cutpoint (score) - --- -0.991582 (0.611787), N = 193 moving right - --- -0.849274 (0.650475), N = 179 moving right - --- -0.329613 (0.693358), N = 121 moving right - --- -0.0588257 (0.696234), N = 98 moving right - --- -0.0124568 (0.697613), N = 96 moving right - - -- best stat: 0.697613, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 4 14 11 9 - - - -- linear combo weights (showing up to 5) - - 1.1957 0.2799 -0.0104 0.7574 -0.2765 - - - -- cutpoint (score) - --- -1.22496 (0.527597), N = 262 moving right - --- -1.10036 (0.556987), N = 250 moving right - --- 0.520779 (0.726155), N = 83 moving right - --- 1.08608 (0.676142), N = 50 moving right - --- 3.82466 (0.570677), N = 15 moving right - - -- best stat: 0.726155, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 359 -------------- - -- N obs inbag: 276 -- N row inbag: 163 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 9 17 6 8 - - - -- linear combo weights (showing up to 5) - - -0.5920 -0.0894 0.3793 -0.8439 1.4918 - - - -- cutpoint (score) - --- 0.317289 (0.662449), N = 178 moving right - --- 1.06035 (0.772865), N = 107 moving right - --- 1.34256 (0.769956), N = 88 moving right - --- 2.8527 (0.666045), N = 34 moving right - --- 2.91834 (0.657055), N = 31 moving right - - -- best stat: 0.772865, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 9 7 0 3 - - - -- linear combo weights (showing up to 5) - - 0.5576 0.5204 7.3202 0.0545 4.3114 - - - -- cutpoint (score) - --- -0.437209 (0.513097), N = 270 moving right - --- -0.220892 (0.567595), N = 227 moving right - --- -0.118047 (0.616587), N = 202 moving right - --- -0.0191998 (0.68336), N = 152 moving right - --- 0.094727 (0.688244), N = 130 moving right - - -- best stat: 0.688244, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 15 13 7 12 - - - -- linear combo weights (showing up to 5) - - 0.6601 0.0671 0.4906 9.8249 0.0399 - - - -- cutpoint (score) - --- -0.470918 (0.599183), N = 229 moving right - --- -0.184205 (0.671328), N = 188 moving right - --- 0.117096 (0.697523), N = 118 moving right - --- 0.364542 (0.655079), N = 83 moving right - --- 0.395485 (0.661073), N = 78 moving right - - -- best stat: 0.697523, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.7900e+02 9.8188e-01 1.8222e-02 - 1.8600e+02 9.7826e-01 2.1912e-02 - 1.9100e+02 9.7101e-01 2.9319e-02 - - ------------- Growing tree 360 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 16 3 7 4 8 - - - -- linear combo weights (showing up to 5) - - 0.2731 4.3279 3.6653 -0.0267 1.1158 - - - -- cutpoint (score) - --- -0.883577 (0.522804), N = 258 moving right - --- -0.529879 (0.713954), N = 148 moving right - --- -0.232771 (0.75312), N = 113 moving right - --- -0.0494773 (0.742139), N = 103 moving right - --- 0.283465 (0.738698), N = 78 moving right - - -- best stat: 0.75312, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 11 15 8 14 4 - - - -- linear combo weights (showing up to 5) - - 0.4076 -0.1653 1.3393 -0.0610 0.0566 - - - -- cutpoint (score) - --- -1.11075 (0.539226), N = 254 moving right - --- -0.69712 (0.706673), N = 158 moving right - --- -0.508999 (0.739818), N = 142 moving right - --- -0.14436 (0.738098), N = 121 moving right - --- 2.70769 (0.611358), N = 21 moving right - - -- best stat: 0.739818, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 8 17 2 1 - - - -- linear combo weights (showing up to 5) - - 0.1370 1.3468 0.4268 -0.4870 0.2347 - - - -- cutpoint (score) - --- -0.302937 (0.586734), N = 233 moving right - --- 0.13075 (0.651564), N = 181 moving right - --- 0.140327 (0.654425), N = 180 moving right - --- 0.23479 (0.696311), N = 160 moving right - --- 3.27517 (0.607337), N = 25 moving right - - -- best stat: 0.696311, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.6739e-01 3.3037e-02 - - ------------- Growing tree 361 -------------- - -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 229 -- max leaves: 115 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 5 12 8 11 - - - -- linear combo weights (showing up to 5) - - 5.5665 0.8149 0.0475 1.3451 0.5089 - - - -- cutpoint (score) - --- -1.11188 (0.581108), N = 235 moving right - --- -0.168681 (0.724848), N = 133 moving right - --- 0.141484 (0.764043), N = 109 moving right - --- 1.26553 (0.730087), N = 58 moving right - --- 2.14731 (0.671), N = 39 moving right - - -- best stat: 0.764043, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 6 13 7 14 - - - -- linear combo weights (showing up to 5) - - 1.3374 0.3568 -0.0302 15.8549 0.1925 - - - -- cutpoint (score) - --- -0.398031 (0.73832), N = 135 moving right - --- -0.152483 (0.726562), N = 99 moving right - --- -0.048516 (0.730147), N = 82 moving right - --- 0.0113298 (0.722091), N = 76 moving right - --- 0.636989 (0.708836), N = 52 moving right - - -- best stat: 0.73832, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 15 5 1 14 - - - -- linear combo weights (showing up to 5) - - -0.0904 -0.1781 1.1120 0.5878 0.5292 - - - -- cutpoint (score) - --- -0.529774 (0.586918), N = 214 moving right - --- -0.093749 (0.635606), N = 176 moving right - --- 0.162026 (0.667376), N = 148 moving right - --- 1.07892 (0.672792), N = 58 moving right - --- 1.31294 (0.641692), N = 40 moving right - - -- best stat: 0.672792, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 362 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 6 10 9 13 - - - -- linear combo weights (showing up to 5) - - 1.7874 0.0538 -0.6237 -0.5195 0.1019 - - - -- cutpoint (score) - --- -1.51684 (0.528734), N = 245 moving right - --- -1.06979 (0.595666), N = 208 moving right - --- -0.874654 (0.639767), N = 184 moving right - --- -0.307276 (0.734743), N = 123 moving right - --- 6.15895 (0.555834), N = 10 moving right - - -- best stat: 0.734743, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 8 15 10 12 - - - -- linear combo weights (showing up to 5) - - 12.9432 1.0310 -0.2195 -0.3888 0.2527 - - - -- cutpoint (score) - --- -0.888391 (0.587002), N = 223 moving right - --- -0.788875 (0.620241), N = 209 moving right - --- -0.384545 (0.70461), N = 158 moving right - --- 0.382637 (0.706063), N = 74 moving right - --- 1.89605 (0.646451), N = 30 moving right - - -- best stat: 0.706063, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 2 6 3 13 - - - -- linear combo weights (showing up to 5) - - 0.1456 -0.7855 0.7129 5.1215 0.2875 - - - -- cutpoint (score) - --- -1.20842 (0.526573), N = 262 moving right - --- -1.10609 (0.555108), N = 248 moving right - --- -0.669058 (0.651755), N = 133 moving right - --- -0.294458 (0.667121), N = 82 moving right - --- 0.547458 (0.604112), N = 29 moving right - - -- best stat: 0.667121, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 363 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 5 15 7 16 - - - -- linear combo weights (showing up to 5) - - 0.4864 0.7423 -0.0807 7.1645 0.7280 - - - -- cutpoint (score) - --- -0.763181 (0.555396), N = 245 moving right - --- 0.0267076 (0.699547), N = 143 moving right - --- 0.059414 (0.694844), N = 140 moving right - --- 0.534221 (0.70351), N = 104 moving right - --- 0.571545 (0.703837), N = 103 moving right - - -- best stat: 0.703837, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 13 3 4 9 - - - -- linear combo weights (showing up to 5) - - 1.9072 0.1195 4.4313 0.4149 -0.0215 - - - -- cutpoint (score) - --- -1.24803 (0.537802), N = 256 moving right - --- -1.24379 (0.542636), N = 254 moving right - --- -0.926751 (0.647178), N = 206 moving right - --- -0.392104 (0.75932), N = 128 moving right - --- 1.77209 (0.641342), N = 31 moving right - - -- best stat: 0.75932, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 6 2 4 1 - - - -- linear combo weights (showing up to 5) - - 0.8043 -0.3521 0.4904 0.7524 0.3767 - - - -- cutpoint (score) - --- 0.235195 (0.661658), N = 185 moving right - --- 1.5037 (0.678883), N = 66 moving right - --- 1.65324 (0.657194), N = 55 moving right - --- 1.76868 (0.629867), N = 47 moving right - --- 1.84337 (0.624423), N = 36 moving right - - -- best stat: 0.678883, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 364 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 193 -- max leaves: 97 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 5 10 6 8 - - - -- linear combo weights (showing up to 5) - - 0.0648 0.8180 -0.2457 0.8679 1.2611 - - - -- cutpoint (score) - --- -0.956368 (0.547986), N = 240 moving right - --- -0.711463 (0.644861), N = 192 moving right - --- -0.570817 (0.702544), N = 159 moving right - --- 0.314942 (0.736955), N = 98 moving right - --- 0.664166 (0.741758), N = 81 moving right - - -- best stat: 0.741758, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 12 16 5 8 - - - -- linear combo weights (showing up to 5) - - -0.1822 0.0630 0.4980 0.6687 1.4293 - - - -- cutpoint (score) - --- -1.03048 (0.607135), N = 211 moving right - --- -0.563908 (0.7133), N = 149 moving right - --- 0.771205 (0.745975), N = 71 moving right - --- 1.10788 (0.7324), N = 59 moving right - --- 1.82903 (0.693298), N = 44 moving right - - -- best stat: 0.745975, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 11 9 15 4 - - - -- linear combo weights (showing up to 5) - - 1.8494 1.1298 0.2633 -0.0217 0.4536 - - - -- cutpoint (score) - --- -1.17528 (0.521242), N = 264 moving right - --- -0.923245 (0.540748), N = 247 moving right - --- -0.63381 (0.611284), N = 210 moving right - --- -0.403503 (0.685045), N = 174 moving right - --- 1.05819 (0.7041), N = 67 moving right - - -- best stat: 0.7041, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7464e-01 2.5548e-02 - 1.4000e+02 9.6377e-01 3.6700e-02 - 1.8600e+02 9.6014e-01 4.0460e-02 - - ------------- Growing tree 365 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 247 -- max leaves: 124 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 1 13 16 14 - - - -- linear combo weights (showing up to 5) - - 0.0797 0.6545 0.5746 0.5315 0.5737 - - - -- cutpoint (score) - --- -0.600449 (0.640719), N = 186 moving right - --- 0.0112522 (0.704797), N = 111 moving right - --- 0.0240568 (0.695059), N = 108 moving right - --- 0.986707 (0.685501), N = 59 moving right - --- 1.52938 (0.605374), N = 29 moving right - - -- best stat: 0.704797, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 9 4 12 16 - - - -- linear combo weights (showing up to 5) - - -0.1527 0.3880 0.5924 0.1869 0.4546 - - - -- cutpoint (score) - --- -0.710826 (0.521299), N = 254 moving right - --- -0.314493 (0.588202), N = 214 moving right - --- 0.483863 (0.675904), N = 114 moving right - --- 0.88162 (0.628817), N = 67 moving right - --- 1.28652 (0.548609), N = 25 moving right - - -- best stat: 0.675904, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 15 11 7 10 - - - -- linear combo weights (showing up to 5) - - 0.2719 -0.0922 0.8650 2.6220 -0.4908 - - - -- cutpoint (score) - --- -1.2796 (0.535305), N = 246 moving right - --- -0.590739 (0.670033), N = 170 moving right - --- -0.450538 (0.700108), N = 155 moving right - --- -0.317989 (0.704436), N = 144 moving right - --- 3.71018 (0.560171), N = 18 moving right - - -- best stat: 0.704436, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 366 -------------- - -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 245 -- max leaves: 123 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 11 2 12 15 - - - -- linear combo weights (showing up to 5) - - -0.0157 1.4275 0.5722 -0.1513 -0.2786 - - - -- cutpoint (score) - --- -0.944918 (0.534603), N = 253 moving right - --- -0.661937 (0.55893), N = 238 moving right - --- -0.140049 (0.660868), N = 181 moving right - --- 0.466604 (0.703045), N = 120 moving right - --- 2.11966 (0.640167), N = 38 moving right - - -- best stat: 0.703045, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 17 0 5 1 - - - -- linear combo weights (showing up to 5) - - 0.5941 0.3446 -0.0453 1.4735 0.4156 - - - -- cutpoint (score) - --- 0.123501 (0.533885), N = 258 moving right - --- 0.277819 (0.567807), N = 242 moving right - --- 0.316125 (0.575646), N = 239 moving right - --- 1.43292 (0.716852), N = 114 moving right - --- 1.51709 (0.705783), N = 109 moving right - - -- best stat: 0.716852, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 13 17 3 15 0 - - - -- linear combo weights (showing up to 5) - - 0.7296 0.3248 8.2235 -0.1189 -0.2033 - - - -- cutpoint (score) - --- 0.247464 (0.598972), N = 224 moving right - --- 1.21463 (0.712016), N = 95 moving right - --- 1.41952 (0.671672), N = 65 moving right - --- 10.3057 (0.53362), N = 6 moving right - --- 10.4533 (0.526009), N = 5 moving right - - -- best stat: 0.712016, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.7826e-01 2.1886e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 367 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 4 2 17 0 - - - -- linear combo weights (showing up to 5) - - -0.7278 0.1548 -0.8929 0.5312 -0.0793 - - - -- cutpoint (score) - --- -0.159884 (0.598752), N = 218 moving right - --- -0.0594252 (0.607843), N = 215 moving right - --- 0.676977 (0.660707), N = 158 moving right - --- 0.723496 (0.663427), N = 148 moving right - --- 1.46107 (0.647815), N = 64 moving right - - -- best stat: 0.663427, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 10 13 16 7 - - - -- linear combo weights (showing up to 5) - - 1.3030 -0.6812 -0.1013 0.2603 3.2431 - - - -- cutpoint (score) - --- -0.517967 (0.693984), N = 140 moving right - --- 0.0586261 (0.692515), N = 93 moving right - --- 0.0616543 (0.694567), N = 92 moving right - --- 0.439712 (0.705558), N = 59 moving right - --- 0.441827 (0.700052), N = 58 moving right - - -- best stat: 0.705558, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 15 14 2 3 - - - -- linear combo weights (showing up to 5) - - 0.0951 0.0068 0.2195 -0.5778 14.0828 - - - -- cutpoint (score) - --- -0.816975 (0.533256), N = 239 moving right - --- -0.799017 (0.528116), N = 236 moving right - --- -0.765543 (0.571823), N = 218 moving right - --- -0.700365 (0.590222), N = 185 moving right - --- -0.599101 (0.633713), N = 145 moving right - - -- best stat: 0.633713, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8551e-01 1.4493e-02 - 7.1000e+01 9.8188e-01 1.8169e-02 - 7.7000e+01 9.7826e-01 2.1859e-02 - 1.1000e+02 9.7464e-01 2.5563e-02 - 1.7900e+02 9.7101e-01 2.9280e-02 - - ------------- Growing tree 368 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 7 5 1 6 - - - -- linear combo weights (showing up to 5) - - 0.6264 2.8187 0.7803 0.3653 2.0621 - - - -- cutpoint (score) - --- -0.612878 (0.571736), N = 230 moving right - --- -0.553523 (0.578761), N = 227 moving right - --- -0.482869 (0.613908), N = 211 moving right - --- 0.631956 (0.689784), N = 80 moving right - --- 0.863199 (0.666513), N = 59 moving right - - -- best stat: 0.689784, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 12 7 15 13 - - - -- linear combo weights (showing up to 5) - - -0.2362 0.0829 2.6645 -0.1179 0.2118 - - - -- cutpoint (score) - --- -0.630542 (0.512963), N = 266 moving right - --- -0.525724 (0.535293), N = 253 moving right - --- -0.40696 (0.600903), N = 213 moving right - --- -0.245016 (0.667977), N = 151 moving right - --- 0.00689135 (0.619595), N = 71 moving right - - -- best stat: 0.667977, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 2 11 3 13 - - - -- linear combo weights (showing up to 5) - - 0.2989 0.2968 0.5869 7.3609 0.0132 - - - -- cutpoint (score) - --- -0.521851 (0.520427), N = 268 moving right - --- -0.46391 (0.53615), N = 261 moving right - --- 0.599316 (0.698649), N = 63 moving right - --- 1.10764 (0.63996), N = 36 moving right - --- 7.90549 (0.538555), N = 8 moving right - - -- best stat: 0.698649, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 369 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 17 15 7 2 - - - -- linear combo weights (showing up to 5) - - 0.5816 0.4885 -0.0466 3.2806 0.2496 - - - -- cutpoint (score) - --- 0.760863 (0.549903), N = 252 moving right - --- 1.25344 (0.606839), N = 213 moving right - --- 1.32355 (0.648479), N = 193 moving right - --- 1.3957 (0.678706), N = 173 moving right - --- 2.04668 (0.728414), N = 89 moving right - - -- best stat: 0.728414, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 3 9 17 8 - - - -- linear combo weights (showing up to 5) - - -0.1750 2.3525 -0.3665 0.4138 1.8068 - - - -- cutpoint (score) - --- -0.150044 (0.530227), N = 255 moving right - --- 0.0272802 (0.575016), N = 229 moving right - --- 0.808287 (0.698921), N = 132 moving right - --- 0.880546 (0.715922), N = 118 moving right - --- 0.910779 (0.725523), N = 112 moving right - - -- best stat: 0.725523, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 3 10 15 5 - - - -- linear combo weights (showing up to 5) - - 0.5643 2.2697 -0.4869 -0.0408 0.5146 - - - -- cutpoint (score) - --- -0.699746 (0.543279), N = 236 moving right - --- -0.574728 (0.581251), N = 217 moving right - --- -0.460288 (0.612082), N = 199 moving right - --- -0.285517 (0.672643), N = 167 moving right - --- 3.77018 (0.543301), N = 11 moving right - - -- best stat: 0.672643, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.8600e+02 9.7101e-01 2.9292e-02 - 1.9100e+02 9.6377e-01 3.6755e-02 - - ------------- Growing tree 370 -------------- - -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 191 -- max leaves: 96 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 0 5 1 13 4 - - - -- linear combo weights (showing up to 5) - - -0.2487 1.7992 0.6626 0.4272 0.0646 - - - -- cutpoint (score) - --- -0.47542 (0.630416), N = 208 moving right - --- -0.263294 (0.644209), N = 193 moving right - --- 0.796419 (0.738972), N = 95 moving right - --- 0.838812 (0.733288), N = 90 moving right - --- 2.74707 (0.536725), N = 8 moving right - - -- best stat: 0.738972, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 2 15 9 0 - - - -- linear combo weights (showing up to 5) - - 0.4465 -0.6803 -0.1726 0.3114 -0.2401 - - - -- cutpoint (score) - --- -1.31 (0.509356), N = 270 moving right - --- -0.853405 (0.616688), N = 153 moving right - --- -0.801353 (0.634198), N = 139 moving right - --- -0.316731 (0.586456), N = 50 moving right - --- -0.313317 (0.5811), N = 48 moving right - - -- best stat: 0.634198, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 13 5 4 3 - - - -- linear combo weights (showing up to 5) - - 0.5061 0.3220 1.1946 0.1170 7.5025 - - - -- cutpoint (score) - --- -0.285165 (0.664167), N = 191 moving right - --- 0.00373535 (0.72402), N = 151 moving right - --- 0.205081 (0.729791), N = 135 moving right - --- 0.795305 (0.71556), N = 96 moving right - --- 1.7508 (0.680409), N = 46 moving right - - -- best stat: 0.729791, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.6739e-01 3.2982e-02 - 1.1000e+02 9.6377e-01 3.6728e-02 - - ------------- Growing tree 371 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 6 15 9 3 17 - - - -- linear combo weights (showing up to 5) - - 0.4583 -0.2740 0.3483 6.1882 0.4830 - - - -- cutpoint (score) - --- 0.587575 (0.542348), N = 247 moving right - --- 0.631562 (0.551852), N = 243 moving right - --- 1.86053 (0.678698), N = 71 moving right - --- 2.32012 (0.62784), N = 31 moving right - --- 2.57924 (0.590067), N = 23 moving right - - -- best stat: 0.678698, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 1 16 14 13 - - - -- linear combo weights (showing up to 5) - - 0.7945 0.5867 0.5240 0.4394 0.3558 - - - -- cutpoint (score) - --- -0.530086 (0.626514), N = 205 moving right - --- -0.178204 (0.685992), N = 151 moving right - --- 1.11363 (0.676709), N = 54 moving right - --- 1.14842 (0.667094), N = 46 moving right - --- 1.32182 (0.644616), N = 40 moving right - - -- best stat: 0.685992, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 11 7 17 0 - - - -- linear combo weights (showing up to 5) - - 0.2160 0.8797 8.5689 0.4316 -0.1592 - - - -- cutpoint (score) - --- 1.18755 (0.736783), N = 114 moving right - --- 2.09428 (0.672885), N = 50 moving right - --- 2.81507 (0.618314), N = 25 moving right - --- 9.8631 (0.561157), N = 11 moving right - --- 10.786 (0.529993), N = 7 moving right - - -- best stat: 0.736783, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.7826e-01 2.1885e-02 - 1.8600e+02 9.7464e-01 2.5589e-02 - 1.9100e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 372 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 249 -- max leaves: 125 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 7 9 14 13 - - - -- linear combo weights (showing up to 5) - - 1.2294 6.6923 -0.1013 0.1157 0.0173 - - - -- cutpoint (score) - --- -0.513694 (0.711065), N = 158 moving right - --- -0.505595 (0.722268), N = 153 moving right - --- -0.316838 (0.742933), N = 128 moving right - --- 0.0174255 (0.705839), N = 85 moving right - --- 0.342313 (0.686302), N = 68 moving right - - -- best stat: 0.742933, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 7 12 3 6 - - - -- linear combo weights (showing up to 5) - - 0.3231 5.9061 0.2411 4.8375 1.3534 - - - -- cutpoint (score) - --- -0.334017 (0.536203), N = 249 moving right - --- -0.171156 (0.635273), N = 179 moving right - --- 0.135059 (0.68947), N = 97 moving right - --- 0.157307 (0.681849), N = 94 moving right - --- 1.23766 (0.650297), N = 37 moving right - - -- best stat: 0.68947, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 0 7 3 9 - - - -- linear combo weights (showing up to 5) - - -0.4346 -0.2764 5.9386 4.9307 0.3126 - - - -- cutpoint (score) - --- -0.840514 (0.534105), N = 240 moving right - --- -0.741998 (0.589667), N = 207 moving right - --- -0.435797 (0.663599), N = 106 moving right - --- -0.351089 (0.667439), N = 87 moving right - --- 10.1899 (0.543211), N = 8 moving right - - -- best stat: 0.667439, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 373 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 195 -- max leaves: 98 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 7 14 15 5 - - - -- linear combo weights (showing up to 5) - - 0.5982 32.5569 0.2078 0.0155 0.7195 - - - -- cutpoint (score) - --- -0.102791 (0.583396), N = 227 moving right - --- -0.0867247 (0.592794), N = 221 moving right - --- 0.536621 (0.693774), N = 129 moving right - --- 1.28671 (0.598178), N = 28 moving right - --- 33.3405 (0.538918), N = 6 moving right - - -- best stat: 0.693774, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 4 12 9 14 - - - -- linear combo weights (showing up to 5) - - 33.1771 0.6992 0.1396 0.4391 0.1187 - - - -- cutpoint (score) - --- -0.216181 (0.575718), N = 216 moving right - --- -0.0448025 (0.615519), N = 196 moving right - --- 0.328121 (0.670653), N = 147 moving right - --- 0.42358 (0.688391), N = 122 moving right - --- 2.3062 (0.580241), N = 14 moving right - - -- best stat: 0.688391, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 7 10 1 4 - - - -- linear combo weights (showing up to 5) - - 1.4357 29.5081 -0.4241 0.2576 0.2099 - - - -- cutpoint (score) - --- -1.33213 (0.542095), N = 256 moving right - --- -1.27151 (0.550435), N = 252 moving right - --- -0.962226 (0.638155), N = 215 moving right - --- -0.5225 (0.716873), N = 169 moving right - --- 0.875746 (0.701739), N = 49 moving right - - -- best stat: 0.716873, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 374 -------------- - -- N obs inbag: 276 -- N row inbag: 163 -- max nodes: 203 -- max leaves: 102 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 9 11 2 5 0 - - - -- linear combo weights (showing up to 5) - - 0.0294 1.0887 0.1015 0.9948 0.1468 - - - -- cutpoint (score) - --- 0.0496497 (0.707076), N = 146 moving right - --- 0.684339 (0.737733), N = 100 moving right - --- 1.33242 (0.661308), N = 53 moving right - --- 2.43874 (0.606984), N = 26 moving right - --- 3.31443 (0.532103), N = 13 moving right - - -- best stat: 0.737733, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 16 4 11 10 - - - -- linear combo weights (showing up to 5) - - 1.0992 0.7632 0.0687 0.6840 -0.5315 - - - -- cutpoint (score) - --- -2.31627 (0.50993), N = 266 moving right - --- -2.2606 (0.513087), N = 265 moving right - --- -1.57605 (0.593657), N = 223 moving right - --- 0.983493 (0.775668), N = 71 moving right - --- 6.0551 (0.577798), N = 14 moving right - - -- best stat: 0.775668, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 6 12 17 16 9 - - - -- linear combo weights (showing up to 5) - - 1.3956 0.1456 0.6972 0.8284 0.2627 - - - -- cutpoint (score) - --- 1.11747 (0.591343), N = 229 moving right - --- 1.79525 (0.677118), N = 170 moving right - --- 3.22046 (0.703726), N = 66 moving right - --- 3.70692 (0.651379), N = 37 moving right - --- 4.50647 (0.587752), N = 21 moving right - - -- best stat: 0.703726, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 5.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.9100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 375 -------------- - -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 15 9 1 11 - - - -- linear combo weights (showing up to 5) - - -0.6821 -0.0222 0.2828 0.5344 0.9393 - - - -- cutpoint (score) - --- -0.59706 (0.695943), N = 166 moving right - --- -0.510248 (0.708528), N = 160 moving right - --- -0.311543 (0.729755), N = 140 moving right - --- 0.456682 (0.748247), N = 86 moving right - --- 1.40581 (0.662193), N = 49 moving right - - -- best stat: 0.748247, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 9 1 2 10 3 - - - -- linear combo weights (showing up to 5) - - 0.4802 0.3841 -0.4472 -0.4311 6.6174 - - - -- cutpoint (score) - --- -0.855157 (0.643325), N = 194 moving right - --- -0.595812 (0.700639), N = 159 moving right - --- -0.391082 (0.722116), N = 130 moving right - --- -0.316862 (0.734847), N = 116 moving right - --- 0.124725 (0.685382), N = 62 moving right - - -- best stat: 0.734847, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 3 4 1 16 - - - -- linear combo weights (showing up to 5) - - 1.7461 4.8864 0.1692 0.5171 0.0444 - - - -- cutpoint (score) - --- -1.09637 (0.589664), N = 225 moving right - --- -0.840808 (0.629237), N = 186 moving right - --- -0.832756 (0.634392), N = 183 moving right - --- 0.548269 (0.752192), N = 66 moving right - --- 2.2514 (0.667474), N = 32 moving right - - -- best stat: 0.752192, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 376 -------------- - -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 17 3 10 9 4 - - - -- linear combo weights (showing up to 5) - - 0.2745 3.2055 -0.4009 0.3936 0.7112 - - - -- cutpoint (score) - --- 0.0338293 (0.549403), N = 254 moving right - --- 0.957022 (0.682874), N = 172 moving right - --- 1.58136 (0.69474), N = 102 moving right - --- 2.4107 (0.606945), N = 34 moving right - --- 5.62552 (0.53362), N = 9 moving right - - -- best stat: 0.69474, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 14 7 9 4 12 - - - -- linear combo weights (showing up to 5) - - 0.2860 8.7863 0.2814 0.9399 0.0519 - - - -- cutpoint (score) - --- -0.177488 (0.607154), N = 222 moving right - --- 0.516719 (0.696604), N = 159 moving right - --- 0.764685 (0.679908), N = 104 moving right - --- 0.905834 (0.647505), N = 88 moving right - --- 1.40957 (0.627558), N = 41 moving right - - -- best stat: 0.696604, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 9 16 14 17 - - - -- linear combo weights (showing up to 5) - - 7.8133 0.3167 0.4012 0.2740 0.6087 - - - -- cutpoint (score) - --- 1.44686 (0.659941), N = 197 moving right - --- 2.01556 (0.713014), N = 130 moving right - --- 2.17819 (0.723378), N = 106 moving right - --- 2.47865 (0.680859), N = 65 moving right - --- 3.56443 (0.58848), N = 19 moving right - - -- best stat: 0.723378, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 4.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.7464e-01 2.5522e-02 - 1.4000e+02 9.7101e-01 2.9239e-02 - 1.7900e+02 9.6377e-01 3.6702e-02 - 1.8600e+02 9.5652e-01 4.4221e-02 - - ------------- Growing tree 377 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 241 -- max leaves: 121 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 0 4 10 6 - - - -- linear combo weights (showing up to 5) - - -0.9615 -0.0228 0.9911 -0.7017 0.5326 - - - -- cutpoint (score) - --- -2.02451 (0.509937), N = 268 moving right - --- -1.24993 (0.59367), N = 218 moving right - --- -1.22709 (0.601094), N = 216 moving right - --- 0.642587 (0.621085), N = 42 moving right - --- 1.83498 (0.529754), N = 7 moving right - - -- best stat: 0.621085, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 7 5 3 13 - - - -- linear combo weights (showing up to 5) - - 0.3832 7.0331 0.4167 5.2570 0.3613 - - - -- cutpoint (score) - --- -0.296974 (0.576928), N = 239 moving right - --- 0.0387356 (0.696369), N = 154 moving right - --- 0.0803967 (0.692754), N = 145 moving right - --- 0.524144 (0.605889), N = 57 moving right - --- 1.30258 (0.598581), N = 28 moving right - - -- best stat: 0.696369, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 16 17 12 14 8 - - - -- linear combo weights (showing up to 5) - - 0.2379 0.4169 0.0987 -0.0103 1.2657 - - - -- cutpoint (score) - --- 0.0181723 (0.56786), N = 242 moving right - --- 0.15978 (0.577102), N = 234 moving right - --- 0.210895 (0.59048), N = 228 moving right - --- 0.584449 (0.698341), N = 170 moving right - --- 1.24503 (0.739908), N = 99 moving right - - -- best stat: 0.739908, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.8600e+02 9.8551e-01 1.4559e-02 - 1.9100e+02 9.8188e-01 1.8235e-02 - 2.2300e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 378 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 201 -- max leaves: 101 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 2 9 14 6 8 - - - -- linear combo weights (showing up to 5) - - -0.1188 -0.2468 -0.1857 -0.2758 2.2079 - - - -- cutpoint (score) - --- -1.20391 (0.629037), N = 206 moving right - --- -1.15326 (0.626915), N = 190 moving right - --- -1.04053 (0.669391), N = 160 moving right - --- -0.763708 (0.75488), N = 113 moving right - --- 0.889613 (0.633012), N = 34 moving right - - -- best stat: 0.75488, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 8 1 9 14 7 - - - -- linear combo weights (showing up to 5) - - 1.6976 0.4257 -0.0980 -0.1495 5.2340 - - - -- cutpoint (score) - --- -0.90517 (0.598106), N = 205 moving right - --- -0.831483 (0.615838), N = 193 moving right - --- -0.658477 (0.692059), N = 155 moving right - --- 0.3687 (0.748135), N = 57 moving right - --- 1.42891 (0.65789), N = 33 moving right - - -- best stat: 0.748135, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 9 13 14 0 17 - - - -- linear combo weights (showing up to 5) - - 0.2413 0.3203 0.0858 0.0558 0.4869 - - - -- cutpoint (score) - --- 0.923875 (0.606503), N = 217 moving right - --- 1.31346 (0.648265), N = 156 moving right - --- 1.91596 (0.628121), N = 67 moving right - --- 1.97883 (0.620952), N = 52 moving right - --- 2.55067 (0.547367), N = 17 moving right - - -- best stat: 0.648265, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 1.1000e+02 9.9638e-01 3.6232e-03 - 1.4000e+02 9.8551e-01 1.4532e-02 - 1.9100e+02 9.8188e-01 1.8209e-02 - 1.9800e+02 9.7826e-01 2.1899e-02 - 2.2300e+02 9.7101e-01 2.9306e-02 - - ------------- Growing tree 379 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 235 -- max leaves: 118 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 11 14 7 16 - - - -- linear combo weights (showing up to 5) - - -0.0560 0.6563 0.3841 10.2177 0.4807 - - - -- cutpoint (score) - --- -0.72254 (0.619958), N = 215 moving right - --- -0.717507 (0.632248), N = 207 moving right - --- 0.0543662 (0.726408), N = 106 moving right - --- 0.205723 (0.731155), N = 100 moving right - --- 0.97028 (0.673151), N = 45 moving right - - -- best stat: 0.731155, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 12 16 10 6 7 - - - -- linear combo weights (showing up to 5) - - 0.0650 0.5969 -0.8349 -0.4714 10.2036 - - - -- cutpoint (score) - --- -1.10936 (0.556071), N = 243 moving right - --- -0.950974 (0.581261), N = 227 moving right - --- -0.502458 (0.632836), N = 187 moving right - --- -0.473944 (0.634664), N = 186 moving right - --- 1.35224 (0.643929), N = 32 moving right - - -- best stat: 0.643929, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 17 4 8 1 - - - -- linear combo weights (showing up to 5) - - 0.0381 0.1610 0.5257 2.0872 0.3388 - - - -- cutpoint (score) - --- -0.316246 (0.667857), N = 189 moving right - --- -0.246291 (0.693382), N = 175 moving right - --- 1.23082 (0.713866), N = 53 moving right - --- 4.4367 (0.610021), N = 20 moving right - --- 9.63035 (0.530189), N = 7 moving right - - -- best stat: 0.713866, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 4.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 380 -------------- - -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 8 13 15 16 - - - -- linear combo weights (showing up to 5) - - 5.1868 1.5659 0.0681 -0.0847 0.1216 - - - -- cutpoint (score) - --- -0.939486 (0.635911), N = 205 moving right - --- -0.905499 (0.655494), N = 195 moving right - --- -0.81949 (0.70025), N = 166 moving right - --- -0.413521 (0.737697), N = 124 moving right - --- -0.123798 (0.74442), N = 99 moving right - - -- best stat: 0.74442, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 5 1 17 14 11 - - - -- linear combo weights (showing up to 5) - - 0.7218 0.3361 0.2700 0.1931 1.0868 - - - -- cutpoint (score) - --- -0.499075 (0.550444), N = 253 moving right - --- 0.554886 (0.693644), N = 163 moving right - --- 0.61683 (0.698804), N = 158 moving right - --- 1.0589 (0.744049), N = 121 moving right - --- 2.90729 (0.604757), N = 28 moving right - - -- best stat: 0.744049, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 12 7 1 11 - - - -- linear combo weights (showing up to 5) - - 0.3152 -0.0152 6.9237 0.4009 1.0205 - - - -- cutpoint (score) - --- 0.659918 (0.7393), N = 135 moving right - --- 0.865649 (0.753117), N = 119 moving right - --- 1.09694 (0.750792), N = 101 moving right - --- 3.30658 (0.597936), N = 24 moving right - --- 5.58741 (0.586952), N = 16 moving right - - -- best stat: 0.753117, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7101e-01 2.9293e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 381 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 7 17 3 8 - - - -- linear combo weights (showing up to 5) - - 0.1516 1.5935 0.5052 11.8738 1.0958 - - - -- cutpoint (score) - --- 1.03492 (0.703018), N = 170 moving right - --- 1.12315 (0.694681), N = 155 moving right - --- 1.27239 (0.71086), N = 137 moving right - --- 2.7708 (0.678996), N = 45 moving right - --- 14.7505 (0.600161), N = 16 moving right - - -- best stat: 0.71086, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 10 11 6 12 - - - -- linear combo weights (showing up to 5) - - 5.5219 -0.7487 0.7440 1.6609 0.0617 - - - -- cutpoint (score) - --- -1.39643 (0.550245), N = 254 moving right - --- -1.09553 (0.566239), N = 245 moving right - --- -1.07378 (0.572455), N = 242 moving right - --- -0.905423 (0.601004), N = 228 moving right - --- 0.983465 (0.729509), N = 67 moving right - - -- best stat: 0.729509, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 5 15 17 16 - - - -- linear combo weights (showing up to 5) - - -0.5750 0.8991 -0.1371 0.6849 0.6985 - - - -- cutpoint (score) - --- 0.99062 (0.65337), N = 184 moving right - --- 1.54765 (0.697501), N = 139 moving right - --- 1.61833 (0.705796), N = 133 moving right - --- 2.15599 (0.703059), N = 104 moving right - --- 2.30826 (0.721234), N = 94 moving right - - -- best stat: 0.721234, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 5.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 - - ------------- Growing tree 382 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 15 7 2 9 16 - - - -- linear combo weights (showing up to 5) - - -0.0828 7.1586 -0.6007 0.5994 0.2465 - - - -- cutpoint (score) - --- -1.15078 (0.547741), N = 251 moving right - --- -0.880188 (0.666207), N = 183 moving right - --- -0.719923 (0.696874), N = 144 moving right - --- -0.550958 (0.724245), N = 110 moving right - --- 0.213777 (0.606376), N = 37 moving right - - -- best stat: 0.724245, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 17 14 4 11 - - - -- linear combo weights (showing up to 5) - - -0.2137 0.5582 0.1073 0.1034 1.3382 - - - -- cutpoint (score) - --- 0.130949 (0.592392), N = 234 moving right - --- 1.15703 (0.718293), N = 144 moving right - --- 1.51455 (0.720888), N = 111 moving right - --- 1.93485 (0.710014), N = 75 moving right - --- 2.89495 (0.664518), N = 42 moving right - - -- best stat: 0.720888, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 2 1 10 9 7 - - - -- linear combo weights (showing up to 5) - - -0.7208 0.5194 -0.7812 0.6255 6.6031 - - - -- cutpoint (score) - --- -2.01661 (0.541356), N = 250 moving right - --- -0.886688 (0.715327), N = 147 moving right - --- -0.834086 (0.715018), N = 143 moving right - --- -0.680616 (0.735655), N = 132 moving right - --- 1.74792 (0.598241), N = 22 moving right - - -- best stat: 0.735655, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 - - ------------- Growing tree 383 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 217 -- max leaves: 109 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 1 3 5 0 - - - -- linear combo weights (showing up to 5) - - 0.1304 0.4892 5.9073 1.0863 0.1243 - - - -- cutpoint (score) - --- -0.698937 (0.522986), N = 266 moving right - --- -0.106055 (0.60545), N = 203 moving right - --- 1.15019 (0.681785), N = 56 moving right - --- 1.25015 (0.664949), N = 46 moving right - --- 1.53754 (0.643299), N = 34 moving right - - -- best stat: 0.681785, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 7 16 10 1 - - - -- linear combo weights (showing up to 5) - - -0.6724 10.1585 0.3362 -0.5244 0.3490 - - - -- cutpoint (score) - --- -1.76198 (0.520038), N = 260 moving right - --- -1.14431 (0.613974), N = 203 moving right - --- -0.838084 (0.68821), N = 155 moving right - --- -0.680145 (0.696183), N = 137 moving right - --- -0.171122 (0.746544), N = 88 moving right - - -- best stat: 0.746544, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 12 11 17 10 - - - -- linear combo weights (showing up to 5) - - -0.0331 -0.1315 0.6628 0.4693 -0.5381 - - - -- cutpoint (score) - --- 0.560857 (0.589334), N = 218 moving right - --- 0.968629 (0.670759), N = 172 moving right - --- 1.62068 (0.724067), N = 103 moving right - --- 1.75617 (0.727205), N = 94 moving right - --- 2.52582 (0.677884), N = 44 moving right - - -- best stat: 0.727205, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 - - ------------- Growing tree 384 -------------- - -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 14 1 3 9 4 - - - -- linear combo weights (showing up to 5) - - 0.0119 0.2362 5.0621 0.8769 0.4217 - - - -- cutpoint (score) - --- -0.810574 (0.516746), N = 269 moving right - --- -0.192705 (0.619234), N = 186 moving right - --- 0.103686 (0.660957), N = 136 moving right - --- 0.600902 (0.702319), N = 62 moving right - --- 4.77642 (0.573303), N = 16 moving right - - -- best stat: 0.702319, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 0 7 5 14 1 - - - -- linear combo weights (showing up to 5) - - -0.0937 8.8861 0.5768 0.3155 0.2604 - - - -- cutpoint (score) - --- -0.0175916 (0.619093), N = 173 moving right - --- 0.217693 (0.674865), N = 101 moving right - --- 0.339369 (0.666532), N = 81 moving right - --- 0.57075 (0.649384), N = 48 moving right - --- 9.23752 (0.5759), N = 15 moving right - - -- best stat: 0.674865, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 11 15 14 1 16 - - - -- linear combo weights (showing up to 5) - - 0.7185 -0.1969 0.1078 0.1730 0.3787 - - - -- cutpoint (score) - --- -0.725057 (0.604339), N = 211 moving right - --- -0.687776 (0.618127), N = 205 moving right - --- -0.271295 (0.719205), N = 149 moving right - --- 0.813272 (0.654215), N = 54 moving right - --- 1.22601 (0.594215), N = 32 moving right - - -- best stat: 0.719205, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 - - ------------- Growing tree 385 -------------- - -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 215 -- max leaves: 108 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 8 5 1 14 11 - - - -- linear combo weights (showing up to 5) - - 1.2691 0.7610 0.4500 -0.1962 0.7005 - - - -- cutpoint (score) - --- -1.02901 (0.622838), N = 210 moving right - --- -0.227935 (0.764129), N = 119 moving right - --- 0.14624 (0.769567), N = 103 moving right - --- 1.08478 (0.740322), N = 70 moving right - --- 5.62312 (0.547405), N = 10 moving right - - -- best stat: 0.769567, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 15 10 11 13 4 - - - -- linear combo weights (showing up to 5) - - -0.1942 -0.7296 0.9927 0.1551 0.2436 - - - -- cutpoint (score) - --- -1.60188 (0.544088), N = 248 moving right - --- -1.55369 (0.548749), N = 245 moving right - --- -0.66688 (0.686177), N = 179 moving right - --- -0.270557 (0.719642), N = 148 moving right - --- -0.182098 (0.720986), N = 138 moving right - - -- best stat: 0.720986, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 12 11 17 5 15 - - - -- linear combo weights (showing up to 5) - - -0.0791 1.0322 0.2876 1.2139 -0.1978 - - - -- cutpoint (score) - --- 0.0729281 (0.608331), N = 221 moving right - --- 0.329215 (0.657373), N = 186 moving right - --- 0.420172 (0.684288), N = 164 moving right - --- 0.525255 (0.704211), N = 147 moving right - --- 0.904324 (0.741035), N = 112 moving right - - -- best stat: 0.741035, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.3100e+02 9.6739e-01 3.3010e-02 - 1.4000e+02 9.5290e-01 4.7991e-02 - - ------------- Growing tree 386 -------------- - -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 207 -- max leaves: 104 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 12 11 13 1 10 - - - -- linear combo weights (showing up to 5) - - -0.1134 0.7249 0.2230 0.4536 -0.8186 - - - -- cutpoint (score) - --- -0.707612 (0.667732), N = 186 moving right - --- -0.676263 (0.660703), N = 176 moving right - --- -0.595719 (0.672245), N = 166 moving right - --- 1.32274 (0.668367), N = 47 moving right - --- 1.47058 (0.665556), N = 33 moving right - - -- best stat: 0.672245, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 2 5 11 8 6 - - - -- linear combo weights (showing up to 5) - - -0.0906 0.9284 0.3421 1.7448 0.1588 - - - -- cutpoint (score) - --- -1.41153 (0.540862), N = 254 moving right - --- -1.40546 (0.550363), N = 249 moving right - --- -0.503183 (0.73288), N = 126 moving right - --- 0.180971 (0.718549), N = 73 moving right - --- 2.12301 (0.622698), N = 25 moving right - - -- best stat: 0.73288, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 5 0 9 13 16 - - - -- linear combo weights (showing up to 5) - - 1.3258 0.0511 0.0186 0.4376 0.7755 - - - -- cutpoint (score) - --- -0.337383 (0.643061), N = 179 moving right - --- -0.0426082 (0.667823), N = 148 moving right - --- 0.239537 (0.67737), N = 121 moving right - --- 0.505883 (0.661927), N = 95 moving right - --- 1.94843 (0.613469), N = 19 moving right - - -- best stat: 0.67737, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.8913e-01 1.0870e-02 - 1.1000e+02 9.7464e-01 2.5522e-02 - 1.3100e+02 9.7101e-01 2.9239e-02 - 1.7900e+02 9.6014e-01 4.0433e-02 - 1.9100e+02 9.5290e-01 4.7980e-02 - - ------------- Growing tree 387 -------------- - -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 213 -- max leaves: 107 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 17 1 0 8 - - - -- linear combo weights (showing up to 5) - - -0.2699 0.3704 0.4159 -0.0625 2.0475 - - - -- cutpoint (score) - --- -0.962639 (0.522257), N = 256 moving right - --- -0.414355 (0.617426), N = 204 moving right - --- 0.342214 (0.735979), N = 138 moving right - --- 1.3695 (0.758404), N = 78 moving right - --- 5.23487 (0.564831), N = 10 moving right - - -- best stat: 0.758404, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 13 8 17 1 2 - - - -- linear combo weights (showing up to 5) - - 0.0402 2.0441 0.4804 0.3789 -0.9725 - - - -- cutpoint (score) - --- -1.07255 (0.596254), N = 227 moving right - --- -0.875195 (0.627678), N = 203 moving right - --- -0.325926 (0.721886), N = 144 moving right - --- 1.41284 (0.685764), N = 47 moving right - --- 6.30497 (0.546958), N = 7 moving right - - -- best stat: 0.721886, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 14 12 16 0 10 - - - -- linear combo weights (showing up to 5) - - 0.3971 0.1198 0.6678 -0.0706 -0.4926 - - - -- cutpoint (score) - --- -1.42825 (0.505804), N = 265 moving right - --- -1.04971 (0.537249), N = 242 moving right - --- -0.161934 (0.682507), N = 114 moving right - --- -0.0260749 (0.671295), N = 104 moving right - --- 1.34741 (0.59805), N = 24 moving right - - -- best stat: 0.682507, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.9800e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 388 -------------- - -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 205 -- max leaves: 103 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 5 1 2 16 0 - - - -- linear combo weights (showing up to 5) - - 1.3174 0.2607 -2.1192 0.3539 0.2695 - - - -- cutpoint (score) - --- -2.14582 (0.622636), N = 194 moving right - --- -1.84842 (0.665786), N = 141 moving right - --- -1.35304 (0.674231), N = 109 moving right - --- -0.506627 (0.692066), N = 63 moving right - --- -0.307372 (0.671072), N = 56 moving right - - -- best stat: 0.692066, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 17 11 12 15 5 - - - -- linear combo weights (showing up to 5) - - 0.3048 1.4835 -0.0761 0.0116 0.5426 - - - -- cutpoint (score) - --- -0.455013 (0.551831), N = 251 moving right - --- -0.355804 (0.570376), N = 240 moving right - --- 0.323121 (0.701994), N = 163 moving right - --- 0.38106 (0.698491), N = 157 moving right - --- 0.635242 (0.696858), N = 135 moving right - - -- best stat: 0.701994, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 8 15 13 9 12 - - - -- linear combo weights (showing up to 5) - - 2.2389 -0.1593 0.0644 -0.4217 0.1566 - - - -- cutpoint (score) - --- -1.32464 (0.599321), N = 228 moving right - --- -1.19806 (0.61952), N = 204 moving right - --- -0.97076 (0.688435), N = 159 moving right - --- -0.939128 (0.709451), N = 147 moving right - --- -0.381221 (0.734764), N = 95 moving right - - -- best stat: 0.734764, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7464e-01 2.5588e-02 - 1.4000e+02 9.6377e-01 3.6741e-02 - - ------------- Growing tree 389 -------------- - -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 221 -- max leaves: 111 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 11 3 8 4 6 - - - -- linear combo weights (showing up to 5) - - 0.4372 4.0514 1.3069 0.2456 0.0100 - - - -- cutpoint (score) - --- -1.21122 (0.517058), N = 267 moving right - --- -0.812621 (0.669795), N = 192 moving right - --- -0.762086 (0.680526), N = 177 moving right - --- -0.712232 (0.699969), N = 164 moving right - --- -0.573649 (0.719893), N = 143 moving right - - -- best stat: 0.719893, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 2 0 11 3 - - - -- linear combo weights (showing up to 5) - - 0.6789 0.1984 0.1131 0.8908 5.0920 - - - -- cutpoint (score) - --- -0.180733 (0.668891), N = 187 moving right - --- 0.162388 (0.725086), N = 118 moving right - --- 1.05318 (0.7117), N = 62 moving right - --- 1.98163 (0.633851), N = 36 moving right - --- 3.33926 (0.613716), N = 24 moving right - - -- best stat: 0.725086, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 7 17 10 13 14 - - - -- linear combo weights (showing up to 5) - - 8.4198 0.5507 -0.4579 0.4061 0.2312 - - - -- cutpoint (score) - --- 0.750389 (0.592984), N = 226 moving right - --- 1.02489 (0.62587), N = 208 moving right - --- 2.0029 (0.655487), N = 85 moving right - --- 2.78736 (0.661141), N = 37 moving right - --- 2.88716 (0.658968), N = 34 moving right - - -- best stat: 0.661141, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1926e-02 - - ------------- Growing tree 390 -------------- - -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 231 -- max leaves: 116 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 4 2 8 15 1 - - - -- linear combo weights (showing up to 5) - - 0.4440 -0.2877 1.5576 -0.2966 0.4133 - - - -- cutpoint (score) - --- -1.53126 (0.542311), N = 247 moving right - --- -0.519342 (0.733431), N = 152 moving right - --- -0.275332 (0.753005), N = 130 moving right - --- -0.152783 (0.766062), N = 121 moving right - --- 0.349857 (0.794887), N = 79 moving right - - -- best stat: 0.794887, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 5 1 6 13 - - - -- linear combo weights (showing up to 5) - - 19.4542 0.7214 0.4640 1.2393 0.4786 - - - -- cutpoint (score) - --- 0.18978 (0.696429), N = 143 moving right - --- 0.413345 (0.734934), N = 114 moving right - --- 0.530318 (0.731069), N = 101 moving right - --- 0.822825 (0.703669), N = 72 moving right - --- 1.13063 (0.69475), N = 62 moving right - - -- best stat: 0.734934, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 15 10 17 14 1 - - - -- linear combo weights (showing up to 5) - - -0.0735 -0.8155 0.4867 0.2360 0.2691 - - - -- cutpoint (score) - --- 0.594005 (0.622853), N = 209 moving right - --- 1.25694 (0.715105), N = 142 moving right - --- 1.2654 (0.719926), N = 140 moving right - --- 1.38519 (0.738193), N = 129 moving right - --- 1.46819 (0.734934), N = 123 moving right - - -- best stat: 0.738193, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.1000e+02 9.8188e-01 1.8249e-02 - - ------------- Growing tree 391 -------------- - -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 237 -- max leaves: 119 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 13 15 12 7 14 - - - -- linear combo weights (showing up to 5) - - 0.2782 -0.2320 0.2552 4.9305 0.4332 - - - -- cutpoint (score) - --- -0.413628 (0.610568), N = 216 moving right - --- -0.379937 (0.624064), N = 209 moving right - --- -0.362236 (0.621787), N = 199 moving right - --- 0.433849 (0.669415), N = 72 moving right - --- 5.12299 (0.537805), N = 6 moving right - - -- best stat: 0.669415, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 7 10 14 16 17 - - - -- linear combo weights (showing up to 5) - - 4.2783 -0.6489 0.4883 0.3243 0.4352 - - - -- cutpoint (score) - --- 0.0448951 (0.564667), N = 237 moving right - --- 0.500774 (0.614112), N = 206 moving right - --- 0.544569 (0.623862), N = 201 moving right - --- 1.15552 (0.709423), N = 145 moving right - --- 1.26774 (0.701913), N = 131 moving right - - -- best stat: 0.709423, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 3 14 12 13 4 - - - -- linear combo weights (showing up to 5) - - 9.2520 0.1201 0.1774 0.3091 0.6644 - - - -- cutpoint (score) - --- -0.198352 (0.612992), N = 212 moving right - --- -0.176133 (0.608292), N = 209 moving right - --- 0.477723 (0.709331), N = 122 moving right - --- 0.515585 (0.713407), N = 114 moving right - --- 1.73421 (0.590298), N = 24 moving right - - -- best stat: 0.713407, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 7.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.7826e-01 2.1845e-02 - 1.1000e+02 9.7101e-01 2.9252e-02 - 1.3100e+02 9.6739e-01 3.2984e-02 - 1.4000e+02 9.6377e-01 3.6729e-02 - - ------------- Growing tree 392 -------------- - -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 223 -- max leaves: 112 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 10 17 12 16 9 - - - -- linear combo weights (showing up to 5) - - -0.6192 0.3631 0.0430 0.8958 0.2803 - - - -- cutpoint (score) - --- -0.401829 (0.553116), N = 247 moving right - --- -0.381071 (0.558601), N = 245 moving right - --- 0.520647 (0.700786), N = 164 moving right - --- 0.526045 (0.696532), N = 161 moving right - --- 3.09335 (0.642831), N = 36 moving right - - -- best stat: 0.700786, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 10 8 7 11 - - - -- linear combo weights (showing up to 5) - - 0.7943 -0.5034 1.2957 5.0736 0.2536 - - - -- cutpoint (score) - --- -1.33474 (0.564771), N = 243 moving right - --- -1.08599 (0.602763), N = 225 moving right - --- -0.898957 (0.647328), N = 202 moving right - --- -0.294508 (0.733958), N = 138 moving right - --- 0.676825 (0.729603), N = 74 moving right - - -- best stat: 0.733958, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 10 0 14 13 3 - - - -- linear combo weights (showing up to 5) - - -0.4922 0.0240 0.2973 0.7277 7.3039 - - - -- cutpoint (score) - --- -1.64533 (0.517362), N = 266 moving right - --- -0.498789 (0.649889), N = 196 moving right - --- -0.176341 (0.673583), N = 155 moving right - --- -0.0971856 (0.697399), N = 142 moving right - --- 0.195595 (0.724521), N = 105 moving right - - -- best stat: 0.724521, min to split: 0.999 - --- sprouting node 0 into a leaf (N = 276) - - -- time & status & weights in this node - - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - - - -- leaf_data (showing up to 5 rows) - - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - - ------------- Growing tree 393 -------------- - -- N obs inbag: 276 -- N row inbag: 164 -- max nodes: 227 -- max leaves: 114 - --- attempting to split node 0 (N = 276, try number 1) - - -- columns sampled (showing up to 5) - - 3 16 1 7 9 - - - -- linear combo weights (showing up to 5) - - 4.2379 0.1147 0.3075 4.6657 0.6408 - - - -- cutpoint (score) - --- -0.364286 (0.597514), N = 204 moving right - --- -0.108259 (0.675283), N = 147 moving right - --- 0.021502 (0.707097), N = 117 moving right - --- 0.103639 (0.708335), N = 102 moving right - --- 0.712562 (0.660918), N = 48 moving right - - -- best stat: 0.708335, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 2) - - -- columns sampled (showing up to 5) - - 6 5 11 15 0 - - - -- linear combo weights (showing up to 5) - - 1.0280 0.6894 0.6510 -0.0383 -0.0841 - - - -- cutpoint (score) - --- -0.58014 (0.559171), N = 242 moving right - --- -0.51223 (0.581979), N = 230 moving right - --- -0.477635 (0.598527), N = 222 moving right - --- -0.2663 (0.618836), N = 171 moving right - --- 1.1161 (0.609695), N = 38 moving right - - -- best stat: 0.618836, min to split: 0.999 - --- attempting to split node 0 (N = 276, try number 3) - - -- columns sampled (showing up to 5) - - 17 16 3 15 13 - + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 86 --- - 0.5130 0.2174 5.4541 0.1647 0.2511 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 87 --- - -- cutpoint (score) - --- 0.745919 (0.548791), N = 249 moving right - --- 1.06893 (0.594452), N = 222 moving right - --- 1.21316 (0.636894), N = 196 moving right - --- 1.27898 (0.647273), N = 182 moving right - --- 1.8817 (0.692057), N = 88 moving right + -- N preds expected: 94 + -- N preds made: 94 - -- best stat: 0.692057, min to split: 0.999 +--- Computing oobag predictions: tree 88 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 89 --- - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 90 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 1.1000e+02 9.8913e-01 1.0870e-02 - 1.3100e+02 9.8551e-01 1.4533e-02 - 1.7900e+02 9.7826e-01 2.1886e-02 - 1.8600e+02 9.7101e-01 2.9293e-02 - 1.9800e+02 9.6014e-01 4.0487e-02 +--- Computing oobag predictions: tree 91 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 394 -------------- +--- Computing oobag predictions: tree 92 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 243 -- max leaves: 122 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 93 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0 5 14 4 17 +--- Computing oobag predictions: tree 94 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 95 --- - -0.0625 1.1061 0.3257 0.7852 0.3055 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 96 --- - -- cutpoint (score) - --- 0.52622 (0.592229), N = 232 moving right - --- 2.27656 (0.613876), N = 62 moving right - --- 2.76794 (0.61113), N = 47 moving right - --- 2.79902 (0.613989), N = 46 moving right - --- 3.4077 (0.52727), N = 8 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.613989, min to split: 0.999 +--- Computing oobag predictions: tree 97 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 97 + -- N preds made: 97 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 98 --- - 15 16 14 10 4 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 99 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - -0.0547 0.2656 0.4484 -0.5793 0.9059 +--- Computing oobag predictions: tree 100 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -1.0386 (0.511585), N = 265 moving right - --- -0.0297867 (0.650549), N = 180 moving right - --- 0.32664 (0.67009), N = 153 moving right - --- 0.508425 (0.678026), N = 132 moving right - --- 1.77246 (0.616527), N = 34 moving right +--- Computing oobag predictions: tree 101 --- - -- best stat: 0.678026, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 102 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 4 10 14 12 15 +--- Computing oobag predictions: tree 103 --- + -- N preds expected: 110 + -- N preds made: 110 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 104 --- - 1.0146 -0.6192 0.4490 -0.0827 -0.0581 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 105 --- - -- cutpoint (score) - --- 0.673308 (0.654141), N = 122 moving right - --- 1.12066 (0.676766), N = 75 moving right - --- 1.33135 (0.654179), N = 59 moving right - --- 1.42182 (0.657056), N = 56 moving right - --- 2.09209 (0.594373), N = 23 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.676766, min to split: 0.999 +--- Computing oobag predictions: tree 106 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 113 + -- N preds made: 113 - -- time & status & weights in this node +--- Computing oobag predictions: tree 107 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 108 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 100 + -- N preds made: 100 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.8600e+02 9.7826e-01 2.1899e-02 - 1.9100e+02 9.7464e-01 2.5602e-02 +--- Computing oobag predictions: tree 109 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 395 -------------- +--- Computing oobag predictions: tree 110 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 111 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 10 6 2 13 4 +--- Computing oobag predictions: tree 112 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 113 --- - -0.4904 1.8479 -1.1817 0.3531 0.8807 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 114 --- - -- cutpoint (score) - --- -2.17482 (0.515318), N = 267 moving right - --- -1.55058 (0.584573), N = 228 moving right - --- -1.44683 (0.599002), N = 216 moving right - --- -1.14369 (0.651685), N = 186 moving right - --- -0.67903 (0.674561), N = 145 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.674561, min to split: 0.999 +--- Computing oobag predictions: tree 115 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 116 --- - 3 16 0 15 11 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 117 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 4.7794 0.5284 -0.0478 -0.2237 0.5623 +--- Computing oobag predictions: tree 118 --- + -- N preds expected: 106 + -- N preds made: 106 - -- cutpoint (score) - --- -0.463183 (0.644471), N = 184 moving right - --- 0.927124 (0.655768), N = 48 moving right - --- 1.43892 (0.622646), N = 31 moving right - --- 5.41483 (0.550845), N = 12 moving right - --- 6.13951 (0.522027), N = 5 moving right +--- Computing oobag predictions: tree 119 --- - -- best stat: 0.655768, min to split: 0.999 + -- N preds expected: 111 + -- N preds made: 111 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 120 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 3 7 5 8 6 +--- Computing oobag predictions: tree 121 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 122 --- - 4.5660 2.5809 0.0925 1.8122 1.7855 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 123 --- - -- cutpoint (score) - --- -0.919145 (0.664114), N = 193 moving right - --- 0.630635 (0.706511), N = 75 moving right - --- 1.08953 (0.705743), N = 58 moving right - --- 3.16442 (0.628708), N = 30 moving right - --- 6.38521 (0.581582), N = 13 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.706511, min to split: 0.999 +--- Computing oobag predictions: tree 124 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 125 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 126 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 88 + -- N preds made: 88 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8188e-01 1.8208e-02 - 1.3100e+02 9.7826e-01 2.1898e-02 - 1.8600e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 127 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 396 -------------- +--- Computing oobag predictions: tree 128 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 129 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0 1 8 5 10 +--- Computing oobag predictions: tree 130 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 131 --- - -0.0621 0.2660 2.2832 0.9448 -0.4287 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 132 --- - -- cutpoint (score) - --- -2.10624 (0.507439), N = 271 moving right - --- -1.32352 (0.65578), N = 201 moving right - --- -1.13024 (0.709803), N = 172 moving right - --- -0.943829 (0.727131), N = 163 moving right - --- -0.00819883 (0.759922), N = 98 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.759922, min to split: 0.999 +--- Computing oobag predictions: tree 133 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 134 --- - 9 11 12 2 0 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 135 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 0.2787 1.2421 -0.0266 -0.2678 0.1092 +--- Computing oobag predictions: tree 136 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -1.03743 (0.621709), N = 201 moving right - --- -0.801714 (0.666537), N = 161 moving right - --- -0.680769 (0.694405), N = 147 moving right - --- 0.111822 (0.662264), N = 82 moving right - --- 0.24932 (0.654348), N = 73 moving right +--- Computing oobag predictions: tree 137 --- - -- best stat: 0.694405, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 138 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 15 3 2 10 17 +--- Computing oobag predictions: tree 139 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 140 --- - -0.0075 7.6699 -1.1823 -0.5049 0.4415 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 141 --- - -- cutpoint (score) - --- -0.133415 (0.647994), N = 195 moving right - --- 0.453405 (0.684971), N = 114 moving right - --- 0.632608 (0.658924), N = 84 moving right - --- 1.20547 (0.640382), N = 39 moving right - --- 8.62093 (0.524658), N = 5 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.684971, min to split: 0.999 +--- Computing oobag predictions: tree 142 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 143 --- - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 144 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 109 + -- N preds made: 109 - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8188e-01 1.8208e-02 - 1.8600e+02 9.7464e-01 2.5589e-02 - 3.0400e+02 9.6739e-01 3.3023e-02 +--- Computing oobag predictions: tree 145 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 397 -------------- +--- Computing oobag predictions: tree 146 --- -- N obs inbag: 276 -- N row inbag: 183 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 147 --- - -- columns sampled (showing up to 5) + -- N preds expected: 113 + -- N preds made: 113 - 12 2 10 14 5 +--- Computing oobag predictions: tree 148 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 149 --- - 0.1520 -0.8176 -0.6296 0.2351 1.0640 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 150 --- - -- cutpoint (score) - --- -1.76716 (0.513757), N = 259 moving right - --- -1.64733 (0.526333), N = 254 moving right - --- -1.45613 (0.541652), N = 246 moving right - --- -0.124692 (0.642125), N = 99 moving right - --- 0.294306 (0.639743), N = 57 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.642125, min to split: 0.999 +--- Computing oobag predictions: tree 151 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 111 + -- N preds made: 111 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 152 --- - 15 12 17 0 10 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 153 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 0.0397 0.0914 0.6174 0.0332 -0.5917 +--- Computing oobag predictions: tree 154 --- + -- N preds expected: 109 + -- N preds made: 109 - -- cutpoint (score) - --- 1.16328 (0.579303), N = 220 moving right - --- 1.46674 (0.630845), N = 175 moving right - --- 2.08741 (0.682177), N = 102 moving right - --- 2.34761 (0.660474), N = 87 moving right - --- 2.88593 (0.636923), N = 37 moving right +--- Computing oobag predictions: tree 155 --- - -- best stat: 0.682177, min to split: 0.999 + -- N preds expected: 111 + -- N preds made: 111 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 156 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 13 4 10 14 0 +--- Computing oobag predictions: tree 157 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 158 --- - 0.2304 0.9299 -0.5489 0.2895 0.0480 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 159 --- - -- cutpoint (score) - --- -1.07519 (0.507793), N = 268 moving right - --- 0.652331 (0.68372), N = 117 moving right - --- 0.952982 (0.69138), N = 86 moving right - --- 1.01506 (0.689646), N = 83 moving right - --- 1.17531 (0.671754), N = 64 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.69138, min to split: 0.999 +--- Computing oobag predictions: tree 160 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 91 + -- N preds made: 91 - -- time & status & weights in this node +--- Computing oobag predictions: tree 161 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 162 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 116 + -- N preds made: 116 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 163 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 398 -------------- +--- Computing oobag predictions: tree 164 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 205 -- max leaves: 103 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 165 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 14 8 10 15 17 +--- Computing oobag predictions: tree 166 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 167 --- - 0.0233 2.3852 -0.6557 -0.1819 0.2842 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 168 --- - -- cutpoint (score) - --- -1.16224 (0.57504), N = 225 moving right - --- -1.11789 (0.582481), N = 220 moving right - --- 0.475612 (0.733998), N = 94 moving right - --- 1.21453 (0.737131), N = 63 moving right - --- 7.97011 (0.559158), N = 9 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.737131, min to split: 0.999 +--- Computing oobag predictions: tree 169 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 95 + -- N preds made: 95 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 170 --- - 5 6 12 14 10 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 171 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 0.8846 -1.1338 0.1902 0.4298 -0.9513 +--- Computing oobag predictions: tree 172 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -1.81573 (0.534333), N = 258 moving right - --- -0.743136 (0.618641), N = 201 moving right - --- 0.0285632 (0.672099), N = 115 moving right - --- 0.0301587 (0.673861), N = 114 moving right - --- 2.21482 (0.611092), N = 17 moving right +--- Computing oobag predictions: tree 173 --- - -- best stat: 0.673861, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 174 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 9 3 8 14 12 +--- Computing oobag predictions: tree 175 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 176 --- - 0.0606 6.3767 2.1725 -0.0602 0.1855 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 177 --- - -- cutpoint (score) - --- -1.04381 (0.68376), N = 153 moving right - --- -0.0832821 (0.724055), N = 80 moving right - --- 1.11661 (0.686806), N = 48 moving right - --- 5.8935 (0.613093), N = 19 moving right - --- 11.8187 (0.537596), N = 5 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.724055, min to split: 0.999 +--- Computing oobag predictions: tree 178 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 179 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 180 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 109 + -- N preds made: 109 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.7826e-01 2.1845e-02 - 7.1000e+01 9.7464e-01 2.5549e-02 - 1.1000e+02 9.7101e-01 2.9266e-02 - 1.3100e+02 9.6377e-01 3.6729e-02 +--- Computing oobag predictions: tree 181 --- + -- N preds expected: 109 + -- N preds made: 109 ------------- Growing tree 399 -------------- +--- Computing oobag predictions: tree 182 --- -- N obs inbag: 276 -- N row inbag: 185 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 183 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 15 13 17 10 9 +--- Computing oobag predictions: tree 184 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 185 --- - -0.0266 0.2891 0.3179 -0.7292 0.3553 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 186 --- - -- cutpoint (score) - --- -0.39264 (0.569665), N = 239 moving right - --- 1.02754 (0.707172), N = 114 moving right - --- 1.26237 (0.695726), N = 81 moving right - --- 1.77643 (0.687752), N = 56 moving right - --- 2.27808 (0.594765), N = 22 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.707172, min to split: 0.999 +--- Computing oobag predictions: tree 187 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 188 --- - 15 10 13 11 5 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 189 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 0.0243 -0.6687 0.2990 0.7492 0.6639 +--- Computing oobag predictions: tree 190 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -1.24033 (0.554767), N = 242 moving right - --- -0.77424 (0.628055), N = 204 moving right - --- -0.137901 (0.733066), N = 145 moving right - --- 0.70965 (0.707901), N = 76 moving right - --- 1.88175 (0.578796), N = 17 moving right +--- Computing oobag predictions: tree 191 --- - -- best stat: 0.733066, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 192 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 10 14 8 5 11 +--- Computing oobag predictions: tree 193 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 194 --- - -0.5168 0.0673 1.7945 0.5279 0.3155 + -- N preds expected: 112 + -- N preds made: 112 +--- Computing oobag predictions: tree 195 --- - -- cutpoint (score) - --- -1.34305 (0.62186), N = 210 moving right - --- -1.31566 (0.626768), N = 208 moving right - --- -0.135131 (0.73581), N = 97 moving right - --- 0.653501 (0.759153), N = 63 moving right - --- 1.67739 (0.666059), N = 37 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.759153, min to split: 0.999 +--- Computing oobag predictions: tree 196 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 94 + -- N preds made: 94 - -- time & status & weights in this node +--- Computing oobag predictions: tree 197 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 3.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 198 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 108 + -- N preds made: 108 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.9100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 199 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 400 -------------- +--- Computing oobag predictions: tree 200 --- -- N obs inbag: 276 -- N row inbag: 163 -- max nodes: 197 -- max leaves: 99 + -- N preds expected: 108 + -- N preds made: 108 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 201 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 7 2 12 11 4 +--- Computing oobag predictions: tree 202 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 203 --- - 18.0276 0.5206 0.1129 0.8617 0.1912 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 204 --- - -- cutpoint (score) - --- -0.182156 (0.566927), N = 246 moving right - --- -0.169644 (0.567463), N = 242 moving right - --- -0.0219213 (0.617061), N = 203 moving right - --- 0.610916 (0.715964), N = 102 moving right - --- 18.8737 (0.566342), N = 11 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.715964, min to split: 0.999 +--- Computing oobag predictions: tree 205 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 206 --- - 4 12 10 1 15 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 207 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.0273 0.1871 -0.9569 0.4849 -0.0608 +--- Computing oobag predictions: tree 208 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- -0.221141 (0.683207), N = 139 moving right - --- -0.200502 (0.681379), N = 136 moving right - --- 0.00189334 (0.680575), N = 117 moving right - --- 1.65592 (0.624299), N = 28 moving right - --- 1.77494 (0.617841), N = 26 moving right +--- Computing oobag predictions: tree 209 --- - -- best stat: 0.683207, min to split: 0.999 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 210 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 6 1 15 9 13 +--- Computing oobag predictions: tree 211 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 212 --- - 0.3936 0.6653 -0.0532 0.4960 0.1115 + -- N preds expected: 115 + -- N preds made: 115 +--- Computing oobag predictions: tree 213 --- - -- cutpoint (score) - --- -0.713179 (0.599732), N = 218 moving right - --- -0.179884 (0.648111), N = 153 moving right - --- -0.0761885 (0.677529), N = 134 moving right - --- 0.0763153 (0.691275), N = 116 moving right - --- 1.04478 (0.609627), N = 35 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.691275, min to split: 0.999 +--- Computing oobag predictions: tree 214 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 104 + -- N preds made: 104 - -- time & status & weights in this node +--- Computing oobag predictions: tree 215 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 216 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 217 --- + -- N preds expected: 99 + -- N preds made: 99 ------------- Growing tree 401 -------------- +--- Computing oobag predictions: tree 218 --- -- N obs inbag: 276 -- N row inbag: 164 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 219 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 8 14 12 0 1 +--- Computing oobag predictions: tree 220 --- + -- N preds expected: 114 + -- N preds made: 114 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 221 --- - 2.6140 -0.1947 0.0436 -0.0527 0.6115 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 222 --- - -- cutpoint (score) - --- -1.52047 (0.594857), N = 217 moving right - --- -1.41857 (0.619254), N = 202 moving right - --- -1.36228 (0.638422), N = 189 moving right - --- -0.894893 (0.721332), N = 135 moving right - --- 0.479361 (0.728121), N = 56 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.728121, min to split: 0.999 +--- Computing oobag predictions: tree 223 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 224 --- - 9 14 13 17 12 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 225 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - -0.2892 0.3223 0.3027 0.8747 0.1462 +--- Computing oobag predictions: tree 226 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- 1.39835 (0.556233), N = 247 moving right - --- 2.03402 (0.597735), N = 204 moving right - --- 2.72711 (0.680213), N = 145 moving right - --- 2.84828 (0.693911), N = 134 moving right - --- 4.21025 (0.561295), N = 11 moving right +--- Computing oobag predictions: tree 227 --- - -- best stat: 0.693911, min to split: 0.999 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 228 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 5 16 7 3 9 +--- Computing oobag predictions: tree 229 --- + -- N preds expected: 90 + -- N preds made: 90 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 230 --- - 0.6432 0.2176 3.1317 8.9218 0.4052 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 231 --- - -- cutpoint (score) - --- -0.405146 (0.522359), N = 259 moving right - --- -0.311065 (0.56211), N = 239 moving right - --- -0.00538431 (0.68386), N = 131 moving right - --- 0.329566 (0.720756), N = 94 moving right - --- 1.02795 (0.653224), N = 36 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.720756, min to split: 0.999 +--- Computing oobag predictions: tree 232 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 233 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 5.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 234 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8188e-01 1.8208e-02 - 1.1000e+02 9.7826e-01 2.1898e-02 - 1.3100e+02 9.6014e-01 4.0417e-02 +--- Computing oobag predictions: tree 235 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 402 -------------- +--- Computing oobag predictions: tree 236 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 235 -- max leaves: 118 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 237 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 16 15 5 0 2 +--- Computing oobag predictions: tree 238 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 239 --- - 0.5478 -0.0114 1.2453 -0.1915 -0.7231 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 240 --- - -- cutpoint (score) - --- -0.986071 (0.610236), N = 189 moving right - --- -0.500046 (0.648674), N = 137 moving right - --- 0.435455 (0.64534), N = 60 moving right - --- 0.477383 (0.638863), N = 53 moving right - --- 0.626348 (0.641009), N = 43 moving right + -- N preds expected: 108 + -- N preds made: 108 - -- best stat: 0.648674, min to split: 0.999 +--- Computing oobag predictions: tree 241 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 242 --- - 11 7 9 3 15 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 243 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 0.9868 3.8531 0.3832 4.8145 -0.0692 +--- Computing oobag predictions: tree 244 --- + -- N preds expected: 93 + -- N preds made: 93 - -- cutpoint (score) - --- -1.08213 (0.531559), N = 261 moving right - --- -0.955601 (0.578294), N = 236 moving right - --- -0.739103 (0.636832), N = 207 moving right - --- -0.193735 (0.72007), N = 132 moving right - --- -0.0572459 (0.708994), N = 116 moving right +--- Computing oobag predictions: tree 245 --- - -- best stat: 0.72007, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 246 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 11 2 9 5 0 +--- Computing oobag predictions: tree 247 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 248 --- - 1.1291 0.1181 0.3163 0.8067 -0.0677 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 249 --- - -- cutpoint (score) - --- -0.696324 (0.627903), N = 207 moving right - --- -0.627501 (0.64032), N = 201 moving right - --- -0.588539 (0.648693), N = 197 moving right - --- 1.37885 (0.653982), N = 50 moving right - --- 2.25066 (0.578064), N = 23 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.653982, min to split: 0.999 +--- Computing oobag predictions: tree 250 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 251 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 252 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.8600e+02 9.8188e-01 1.8235e-02 - 1.9800e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 253 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 403 -------------- +--- Computing oobag predictions: tree 254 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 225 -- max leaves: 113 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 255 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 1 11 5 16 17 +--- Computing oobag predictions: tree 256 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 257 --- - 0.3933 0.7320 0.6460 0.2646 0.3077 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 258 --- - -- cutpoint (score) - --- -0.163508 (0.5486), N = 252 moving right - --- 0.975648 (0.726067), N = 129 moving right - --- 2.04449 (0.695456), N = 55 moving right - --- 2.72358 (0.609728), N = 28 moving right - --- 3.18637 (0.550899), N = 14 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.726067, min to split: 0.999 +--- Computing oobag predictions: tree 259 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 260 --- - 9 17 16 11 6 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 261 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.2897 0.4484 0.3254 0.7433 0.3747 +--- Computing oobag predictions: tree 262 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- 0.547002 (0.630015), N = 210 moving right - --- 1.49829 (0.7453), N = 119 moving right - --- 1.72927 (0.734582), N = 94 moving right - --- 2.15956 (0.695306), N = 64 moving right - --- 2.66094 (0.627209), N = 37 moving right +--- Computing oobag predictions: tree 263 --- - -- best stat: 0.7453, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 264 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 6 10 17 4 1 +--- Computing oobag predictions: tree 265 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 266 --- - -0.1424 -0.5707 0.2648 0.6329 0.3223 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 267 --- - -- cutpoint (score) - --- -0.373967 (0.518932), N = 264 moving right - --- 1.21502 (0.715179), N = 128 moving right - --- 1.31305 (0.722714), N = 117 moving right - --- 2.06977 (0.651415), N = 57 moving right - --- 2.47414 (0.597163), N = 33 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.722714, min to split: 0.999 +--- Computing oobag predictions: tree 268 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 93 + -- N preds made: 93 - -- time & status & weights in this node +--- Computing oobag predictions: tree 269 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 270 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 271 --- + -- N preds expected: 99 + -- N preds made: 99 ------------- Growing tree 404 -------------- +--- Computing oobag predictions: tree 272 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 273 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 14 4 10 13 5 +--- Computing oobag predictions: tree 274 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 275 --- - 0.2175 0.4177 -0.7303 0.6786 0.2271 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 276 --- - -- cutpoint (score) - --- -1.1515 (0.558187), N = 248 moving right - --- -0.579632 (0.574234), N = 220 moving right - --- -0.515395 (0.588193), N = 214 moving right - --- 0.322762 (0.661165), N = 128 moving right - --- 0.867808 (0.687258), N = 82 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.687258, min to split: 0.999 +--- Computing oobag predictions: tree 277 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 106 + -- N preds made: 106 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 278 --- - 1 12 17 9 15 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 279 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.3533 -0.0090 0.6558 0.4804 -0.1435 +--- Computing oobag predictions: tree 280 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- 1.33192 (0.59252), N = 217 moving right - --- 1.58895 (0.632529), N = 188 moving right - --- 2.14128 (0.70374), N = 120 moving right - --- 2.6325 (0.652011), N = 75 moving right - --- 2.77486 (0.636334), N = 61 moving right +--- Computing oobag predictions: tree 281 --- - -- best stat: 0.70374, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 282 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 16 7 10 5 3 +--- Computing oobag predictions: tree 283 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 284 --- - 0.1565 6.3974 -0.4509 0.0599 3.5654 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 285 --- - -- cutpoint (score) - --- -0.260908 (0.568015), N = 201 moving right - --- -0.0799019 (0.625875), N = 155 moving right - --- 0.0251218 (0.639378), N = 134 moving right - --- 0.0593958 (0.654425), N = 125 moving right - --- 0.0804411 (0.652403), N = 111 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.654425, min to split: 0.999 +--- Computing oobag predictions: tree 286 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 287 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 116 + -- N preds made: 116 +--- Computing oobag predictions: tree 288 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8188e-01 1.8196e-02 - 1.3100e+02 9.7464e-01 2.5576e-02 - 1.4000e+02 9.7101e-01 2.9293e-02 - 1.9800e+02 9.6014e-01 4.0487e-02 +--- Computing oobag predictions: tree 289 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 405 -------------- +--- Computing oobag predictions: tree 290 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 235 -- max leaves: 118 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 291 --- - -- columns sampled (showing up to 5) + -- N preds expected: 110 + -- N preds made: 110 - 1 13 8 16 4 +--- Computing oobag predictions: tree 292 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 293 --- - 0.3571 -0.0146 1.8871 0.5925 0.3931 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 294 --- - -- cutpoint (score) - --- -1.68916 (0.516813), N = 254 moving right - --- -1.5724 (0.531903), N = 247 moving right - --- -1.34657 (0.564956), N = 222 moving right - --- -0.0642883 (0.749043), N = 106 moving right - --- 6.1341 (0.564439), N = 12 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.749043, min to split: 0.999 +--- Computing oobag predictions: tree 295 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 111 + -- N preds made: 111 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 296 --- - 0 16 10 9 6 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 297 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - -0.1740 1.0817 -0.4904 0.3396 -0.2425 +--- Computing oobag predictions: tree 298 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -1.32189 (0.552375), N = 235 moving right - --- -1.22377 (0.562792), N = 229 moving right - --- 0.0571625 (0.691383), N = 103 moving right - --- 0.351674 (0.699923), N = 74 moving right - --- 1.10115 (0.661126), N = 43 moving right +--- Computing oobag predictions: tree 299 --- - -- best stat: 0.699923, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 300 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 17 1 9 0 3 +--- Computing oobag predictions: tree 301 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 302 --- - 0.4706 0.3634 0.2790 -0.0762 6.0085 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 303 --- - -- cutpoint (score) - --- 1.12509 (0.646304), N = 194 moving right - --- 1.18547 (0.644408), N = 184 moving right - --- 1.63878 (0.681559), N = 116 moving right - --- 1.72951 (0.692819), N = 106 moving right - --- 7.56815 (0.589927), N = 19 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.692819, min to split: 0.999 +--- Computing oobag predictions: tree 304 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 305 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 113 + -- N preds made: 113 +--- Computing oobag predictions: tree 306 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 307 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 406 -------------- +--- Computing oobag predictions: tree 308 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 241 -- max leaves: 121 + -- N preds expected: 111 + -- N preds made: 111 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 309 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 14 6 12 8 13 +--- Computing oobag predictions: tree 310 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 311 --- - -0.1014 0.2227 -0.0811 1.1831 0.3527 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 312 --- - -- cutpoint (score) - --- -1.11821 (0.517411), N = 261 moving right - --- -1.11368 (0.523855), N = 259 moving right - --- -1.0128 (0.539265), N = 248 moving right - --- -0.38044 (0.701729), N = 141 moving right - --- -0.0789256 (0.71828), N = 113 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.71828, min to split: 0.999 +--- Computing oobag predictions: tree 313 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 90 + -- N preds made: 90 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 314 --- - 12 6 16 10 15 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 315 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 0.0374 1.0861 0.7032 -0.8819 -0.2311 +--- Computing oobag predictions: tree 316 --- + -- N preds expected: 106 + -- N preds made: 106 - -- cutpoint (score) - --- -1.22144 (0.543408), N = 240 moving right - --- 0.519859 (0.731148), N = 89 moving right - --- 0.739037 (0.723123), N = 77 moving right - --- 2.47999 (0.596302), N = 19 moving right - --- 2.67793 (0.557757), N = 11 moving right +--- Computing oobag predictions: tree 317 --- - -- best stat: 0.731148, min to split: 0.999 + -- N preds expected: 93 + -- N preds made: 93 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 318 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 4 8 2 0 10 +--- Computing oobag predictions: tree 319 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 320 --- - 0.2725 1.1257 -0.2708 -0.0406 -0.7521 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 321 --- - -- cutpoint (score) - --- -1.40087 (0.572787), N = 230 moving right - --- -0.957339 (0.642311), N = 193 moving right - --- -0.74707 (0.674612), N = 176 moving right - --- 0.361922 (0.748699), N = 84 moving right - --- 4.65499 (0.548211), N = 10 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.748699, min to split: 0.999 +--- Computing oobag predictions: tree 322 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 95 + -- N preds made: 95 - -- time & status & weights in this node +--- Computing oobag predictions: tree 323 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 324 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 325 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 407 -------------- +--- Computing oobag predictions: tree 326 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 247 -- max leaves: 124 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 327 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 5 3 2 17 16 +--- Computing oobag predictions: tree 328 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 329 --- - 0.8608 3.8288 -0.5778 0.4836 0.1886 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 330 --- - -- cutpoint (score) - --- 1.21888 (0.663602), N = 120 moving right - --- 1.49943 (0.667828), N = 107 moving right - --- 2.04226 (0.672985), N = 54 moving right - --- 2.52855 (0.621826), N = 28 moving right - --- 6.22395 (0.529291), N = 7 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.672985, min to split: 0.999 +--- Computing oobag predictions: tree 331 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 92 + -- N preds made: 92 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 332 --- - 7 15 14 0 4 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 333 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 5.7182 -0.0628 0.3122 -0.0356 0.6736 +--- Computing oobag predictions: tree 334 --- + -- N preds expected: 100 + -- N preds made: 100 - -- cutpoint (score) - --- -0.37821 (0.491397), N = 267 moving right - --- -0.264514 (0.538712), N = 245 moving right - --- -0.105828 (0.592954), N = 218 moving right - --- -0.0252365 (0.595067), N = 194 moving right - --- 0.0311956 (0.605363), N = 185 moving right +--- Computing oobag predictions: tree 335 --- - -- best stat: 0.605363, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 336 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 9 11 12 4 7 +--- Computing oobag predictions: tree 337 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 338 --- - 0.2920 0.9275 -0.1017 0.5372 4.6585 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 339 --- - -- cutpoint (score) - --- -0.952979 (0.530471), N = 262 moving right - --- -0.135037 (0.675288), N = 154 moving right - --- -0.109627 (0.681816), N = 147 moving right - --- 0.160276 (0.706007), N = 120 moving right - --- 5.46749 (0.553538), N = 14 moving right + -- N preds expected: 92 + -- N preds made: 92 - -- best stat: 0.706007, min to split: 0.999 +--- Computing oobag predictions: tree 340 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 95 + -- N preds made: 95 - -- time & status & weights in this node +--- Computing oobag predictions: tree 341 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 342 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 343 --- + -- N preds expected: 99 + -- N preds made: 99 ------------- Growing tree 408 -------------- +--- Computing oobag predictions: tree 344 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 345 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 5 1 14 12 7 +--- Computing oobag predictions: tree 346 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 347 --- - 1.1164 0.5301 0.5163 0.0048 7.5255 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 348 --- - -- cutpoint (score) - --- -0.444184 (0.590347), N = 221 moving right - --- 0.263043 (0.688158), N = 132 moving right - --- 0.98032 (0.681381), N = 54 moving right - --- 1.10814 (0.66757), N = 48 moving right - --- 2.04398 (0.604412), N = 21 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.688158, min to split: 0.999 +--- Computing oobag predictions: tree 349 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 350 --- - 5 16 8 11 13 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 351 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 1.3078 0.2449 1.3624 1.1660 -0.0536 +--- Computing oobag predictions: tree 352 --- + -- N preds expected: 113 + -- N preds made: 113 - -- cutpoint (score) - --- -1.37153 (0.641777), N = 204 moving right - --- -1.13267 (0.67643), N = 180 moving right - --- -1.04333 (0.685152), N = 177 moving right - --- 0.783923 (0.743124), N = 81 moving right - --- 5.3009 (0.602762), N = 18 moving right +--- Computing oobag predictions: tree 353 --- - -- best stat: 0.743124, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 354 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 9 5 0 14 10 +--- Computing oobag predictions: tree 355 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 356 --- - 0.1117 1.6320 -0.3734 0.4611 -0.6774 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 357 --- - -- cutpoint (score) - --- -0.184927 (0.671656), N = 153 moving right - --- 0.132574 (0.703186), N = 107 moving right - --- 0.211639 (0.680556), N = 99 moving right - --- 0.469413 (0.684426), N = 89 moving right - --- 1.10354 (0.633997), N = 48 moving right + -- N preds expected: 108 + -- N preds made: 108 - -- best stat: 0.703186, min to split: 0.999 +--- Computing oobag predictions: tree 358 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 359 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 2.0000e+00 - 3.8800e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 360 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7101e-01 2.9292e-02 - 1.4000e+02 9.6377e-01 3.6755e-02 +--- Computing oobag predictions: tree 361 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 409 -------------- +--- Computing oobag predictions: tree 362 --- -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 363 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 1 8 12 3 9 +--- Computing oobag predictions: tree 364 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 365 --- - 0.3041 1.4767 0.1098 5.6072 -0.1576 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 366 --- - -- cutpoint (score) - --- -1.22385 (0.525719), N = 264 moving right - --- -0.960898 (0.564721), N = 232 moving right - --- -0.708306 (0.665768), N = 183 moving right - --- -0.653801 (0.689616), N = 166 moving right - --- -0.365623 (0.77573), N = 113 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.77573, min to split: 0.999 +--- Computing oobag predictions: tree 367 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 368 --- - 13 1 3 17 0 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 369 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 0.7681 0.3839 6.9514 0.4061 -0.0190 +--- Computing oobag predictions: tree 370 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- 0.689153 (0.659589), N = 190 moving right - --- 0.790398 (0.698128), N = 168 moving right - --- 1.0555 (0.705313), N = 141 moving right - --- 1.11158 (0.712779), N = 134 moving right - --- 1.58237 (0.698028), N = 88 moving right +--- Computing oobag predictions: tree 371 --- - -- best stat: 0.712779, min to split: 0.999 + -- N preds expected: 108 + -- N preds made: 108 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 372 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 12 17 9 8 11 +--- Computing oobag predictions: tree 373 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 374 --- - 0.0192 0.3566 -0.3147 1.4009 0.8649 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 375 --- - -- cutpoint (score) - --- -0.674801 (0.53705), N = 261 moving right - --- 0.10088 (0.681686), N = 176 moving right - --- 1.43181 (0.727309), N = 71 moving right - --- 1.7184 (0.706561), N = 58 moving right - --- 5.21192 (0.592393), N = 17 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.727309, min to split: 0.999 +--- Computing oobag predictions: tree 376 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 377 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 378 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 379 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 410 -------------- +--- Computing oobag predictions: tree 380 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 209 -- max leaves: 105 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 381 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 12 14 9 8 4 +--- Computing oobag predictions: tree 382 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 383 --- - 0.0191 0.0712 -0.0797 2.2884 0.3910 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 384 --- - -- cutpoint (score) - --- -1.08312 (0.641025), N = 191 moving right - --- -1.04948 (0.654493), N = 186 moving right - --- -0.962651 (0.68083), N = 166 moving right - --- -0.913277 (0.692856), N = 158 moving right - --- -0.670033 (0.722454), N = 124 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.722454, min to split: 0.999 +--- Computing oobag predictions: tree 385 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 111 + -- N preds made: 111 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 386 --- - 1 13 8 2 12 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 387 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.4726 -0.1710 2.4536 -0.1405 0.0445 +--- Computing oobag predictions: tree 388 --- + -- N preds expected: 97 + -- N preds made: 97 - -- cutpoint (score) - --- -1.7871 (0.563723), N = 241 moving right - --- -0.85096 (0.75041), N = 122 moving right - --- -0.826996 (0.751808), N = 121 moving right - --- -0.625119 (0.774196), N = 95 moving right - --- -0.0674344 (0.756645), N = 61 moving right +--- Computing oobag predictions: tree 389 --- - -- best stat: 0.774196, min to split: 0.999 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 390 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 10 0 17 12 3 +--- Computing oobag predictions: tree 391 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 392 --- - -0.4960 -0.1501 0.3873 0.1377 4.5343 + -- N preds expected: 118 + -- N preds made: 118 +--- Computing oobag predictions: tree 393 --- - -- cutpoint (score) - --- 0.671531 (0.611116), N = 185 moving right - --- 0.762763 (0.632638), N = 166 moving right - --- 0.931821 (0.673929), N = 146 moving right - --- 0.960607 (0.703395), N = 131 moving right - --- 1.26449 (0.676614), N = 87 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.703395, min to split: 0.999 +--- Computing oobag predictions: tree 394 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 93 + -- N preds made: 93 - -- time & status & weights in this node +--- Computing oobag predictions: tree 395 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 396 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 91 + -- N preds made: 91 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7464e-01 2.5548e-02 - 1.8600e+02 9.7101e-01 2.9265e-02 - 1.9100e+02 9.6739e-01 3.2997e-02 +--- Computing oobag predictions: tree 397 --- + -- N preds expected: 94 + -- N preds made: 94 ------------- Growing tree 411 -------------- +--- Computing oobag predictions: tree 398 --- -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 399 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 3 9 12 1 14 +--- Computing oobag predictions: tree 400 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 401 --- - 4.1556 0.4186 0.1233 0.2643 0.1599 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 402 --- - -- cutpoint (score) - --- -0.257519 (0.613363), N = 201 moving right - --- -0.043522 (0.650006), N = 138 moving right - --- -0.0366828 (0.652593), N = 136 moving right - --- 0.0211938 (0.663655), N = 126 moving right - --- 1.35662 (0.61931), N = 32 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.663655, min to split: 0.999 +--- Computing oobag predictions: tree 403 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 404 --- - 2 1 16 10 12 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 405 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - -0.8114 0.1302 0.2292 -0.8076 0.1363 +--- Computing oobag predictions: tree 406 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- -2.28579 (0.506622), N = 265 moving right - --- -1.34537 (0.594753), N = 213 moving right - --- -1.09117 (0.607996), N = 196 moving right - --- -0.585862 (0.675818), N = 131 moving right - --- 0.0828405 (0.670122), N = 70 moving right +--- Computing oobag predictions: tree 407 --- - -- best stat: 0.675818, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 408 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 7 3 1 14 0 +--- Computing oobag predictions: tree 409 --- + -- N preds expected: 110 + -- N preds made: 110 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 410 --- - 6.0831 2.5013 0.3281 0.4004 -0.2171 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 411 --- - -- cutpoint (score) - --- -0.584498 (0.572532), N = 235 moving right - --- -0.562426 (0.570447), N = 230 moving right - --- -0.183344 (0.641994), N = 159 moving right - --- 0.0185172 (0.68047), N = 116 moving right - --- 0.173801 (0.68242), N = 95 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.68242, min to split: 0.999 +--- Computing oobag predictions: tree 412 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 109 + -- N preds made: 109 - -- time & status & weights in this node +--- Computing oobag predictions: tree 413 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 414 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 415 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 412 -------------- +--- Computing oobag predictions: tree 416 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 417 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 7 11 13 10 6 +--- Computing oobag predictions: tree 418 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 419 --- - 4.0330 0.6292 0.2019 -0.6374 2.0565 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 420 --- - -- cutpoint (score) - --- -0.912301 (0.593221), N = 227 moving right - --- -0.0928593 (0.712326), N = 151 moving right - --- 1.02857 (0.74369), N = 72 moving right - --- 1.22486 (0.742984), N = 64 moving right - --- 1.48795 (0.70751), N = 53 moving right + -- N preds expected: 112 + -- N preds made: 112 - -- best stat: 0.74369, min to split: 0.999 +--- Computing oobag predictions: tree 421 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 422 --- - 3 5 0 6 2 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 423 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 7.8792 1.1724 -0.4489 -0.2523 -0.8832 +--- Computing oobag predictions: tree 424 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -0.883152 (0.70093), N = 117 moving right - --- -0.448881 (0.711994), N = 106 moving right - --- -0.411933 (0.698501), N = 103 moving right - --- -0.252305 (0.692482), N = 102 moving right - --- 0 (0.707012), N = 56 moving right +--- Computing oobag predictions: tree 425 --- - -- best stat: 0.711994, min to split: 0.999 + -- N preds expected: 93 + -- N preds made: 93 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 426 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 16 3 6 7 12 +--- Computing oobag predictions: tree 427 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 428 --- - 0.1733 6.9577 0.8168 3.5731 0.1469 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 429 --- - -- cutpoint (score) - --- -0.275796 (0.507888), N = 268 moving right - --- -0.226329 (0.547098), N = 245 moving right - --- -0.18613 (0.580663), N = 219 moving right - --- 0.0345807 (0.676063), N = 118 moving right - --- 0.114842 (0.686504), N = 88 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.686504, min to split: 0.999 +--- Computing oobag predictions: tree 430 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 94 + -- N preds made: 94 - -- time & status & weights in this node +--- Computing oobag predictions: tree 431 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 432 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 93 + -- N preds made: 93 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7464e-01 2.5575e-02 - 1.3100e+02 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6014e-01 4.0487e-02 +--- Computing oobag predictions: tree 433 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 413 -------------- +--- Computing oobag predictions: tree 434 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 435 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 16 7 8 15 13 +--- Computing oobag predictions: tree 436 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 437 --- - 0.5618 2.2372 1.7541 -0.2035 -0.0757 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 438 --- - -- cutpoint (score) - --- -1.36737 (0.574273), N = 227 moving right - --- -0.880635 (0.671343), N = 162 moving right - --- -0.773069 (0.69012), N = 146 moving right - --- -0.174968 (0.733105), N = 101 moving right - --- 5.33188 (0.565441), N = 9 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.733105, min to split: 0.999 +--- Computing oobag predictions: tree 439 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 440 --- - 1 16 17 9 11 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 441 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0.3255 0.8120 0.1924 0.3544 0.5862 +--- Computing oobag predictions: tree 442 --- + -- N preds expected: 100 + -- N preds made: 100 - -- cutpoint (score) - --- -0.477591 (0.590462), N = 230 moving right - --- 0.557858 (0.713837), N = 119 moving right - --- 0.626816 (0.720595), N = 116 moving right - --- 2.09849 (0.611719), N = 29 moving right - --- 2.25962 (0.615291), N = 27 moving right +--- Computing oobag predictions: tree 443 --- - -- best stat: 0.720595, min to split: 0.999 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 444 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 14 1 16 9 5 +--- Computing oobag predictions: tree 445 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 446 --- - 0.5618 0.3578 0.9628 0.3394 0.9114 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 447 --- - -- cutpoint (score) - --- -1.07473 (0.56358), N = 242 moving right - --- -0.1608 (0.702032), N = 161 moving right - --- -0.0907058 (0.697861), N = 157 moving right - --- -0.028491 (0.705967), N = 150 moving right - --- 1.00287 (0.699636), N = 66 moving right + -- N preds expected: 113 + -- N preds made: 113 - -- best stat: 0.705967, min to split: 0.999 +--- Computing oobag predictions: tree 448 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 449 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 450 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 451 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 414 -------------- +--- Computing oobag predictions: tree 452 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 251 -- max leaves: 126 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 453 --- - -- columns sampled (showing up to 5) + -- N preds expected: 91 + -- N preds made: 91 - 17 14 2 1 12 +--- Computing oobag predictions: tree 454 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 455 --- - 0.6065 0.2962 -0.0512 0.2099 0.0515 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 456 --- - -- cutpoint (score) - --- 1.53572 (0.646755), N = 198 moving right - --- 1.73378 (0.649214), N = 166 moving right - --- 1.77601 (0.638858), N = 161 moving right - --- 2.52993 (0.606771), N = 38 moving right - --- 2.79162 (0.528513), N = 10 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.649214, min to split: 0.999 +--- Computing oobag predictions: tree 457 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 458 --- - 4 2 8 6 9 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 459 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0.4681 -0.1543 2.0462 0.7561 0.0082 +--- Computing oobag predictions: tree 460 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- -1.46278 (0.51149), N = 270 moving right - --- -1.33103 (0.548765), N = 249 moving right - --- -1.28443 (0.567863), N = 240 moving right - --- -0.681966 (0.698152), N = 148 moving right - --- -0.680518 (0.691408), N = 145 moving right +--- Computing oobag predictions: tree 461 --- - -- best stat: 0.698152, min to split: 0.999 + -- N preds expected: 108 + -- N preds made: 108 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 462 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 7 5 0 15 16 +--- Computing oobag predictions: tree 463 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 464 --- - 3.8799 1.1767 0.1867 -0.0720 0.2866 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 465 --- - -- cutpoint (score) - --- -0.141643 (0.569708), N = 232 moving right - --- -0.0208182 (0.625235), N = 186 moving right - --- 0.0196542 (0.65054), N = 157 moving right - --- 0.360501 (0.685125), N = 105 moving right - --- 0.754991 (0.672002), N = 87 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.685125, min to split: 0.999 +--- Computing oobag predictions: tree 466 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 467 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 468 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 107 + -- N preds made: 107 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 469 --- + -- N preds expected: 106 + -- N preds made: 106 ------------- Growing tree 415 -------------- +--- Computing oobag predictions: tree 470 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 199 -- max leaves: 100 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 471 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 9 4 12 14 15 +--- Computing oobag predictions: tree 472 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 473 --- - 0.3614 0.8552 0.0896 0.2366 -0.0843 + -- N preds expected: 88 + -- N preds made: 88 +--- Computing oobag predictions: tree 474 --- - -- cutpoint (score) - --- -0.241291 (0.580745), N = 208 moving right - --- -0.234593 (0.591106), N = 202 moving right - --- 0.377706 (0.660522), N = 149 moving right - --- 0.401184 (0.644614), N = 146 moving right - --- 0.888273 (0.609446), N = 76 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.660522, min to split: 0.999 +--- Computing oobag predictions: tree 475 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 476 --- - 4 12 6 7 0 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 477 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.7786 0.0943 1.4544 18.6756 -0.0144 +--- Computing oobag predictions: tree 478 --- + -- N preds expected: 82 + -- N preds made: 82 - -- cutpoint (score) - --- -0.0688337 (0.529433), N = 254 moving right - --- -0.049971 (0.593018), N = 223 moving right - --- -0.00698373 (0.632836), N = 176 moving right - --- 0.104002 (0.642938), N = 164 moving right - --- 0.769586 (0.687028), N = 90 moving right +--- Computing oobag predictions: tree 479 --- - -- best stat: 0.687028, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 480 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 5 3 4 2 8 +--- Computing oobag predictions: tree 481 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 482 --- - 1.0936 6.3054 0.1138 0.3230 1.5045 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 483 --- - -- cutpoint (score) - --- -0.66904 (0.512085), N = 270 moving right - --- 0.621991 (0.728876), N = 118 moving right - --- 1.40678 (0.73015), N = 70 moving right - --- 3.59765 (0.639586), N = 25 moving right - --- 8.50259 (0.557591), N = 10 moving right + -- N preds expected: 93 + -- N preds made: 93 - -- best stat: 0.73015, min to split: 0.999 +--- Computing oobag predictions: tree 484 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 485 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 486 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 2.1600e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 487 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 416 -------------- +--- Computing oobag predictions: tree 488 --- -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 237 -- max leaves: 119 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 489 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 9 16 17 10 2 +--- Computing oobag predictions: tree 490 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 491 --- - 0.3259 0.8538 0.4483 -0.7797 -1.2248 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 492 --- - -- cutpoint (score) - --- -0.562202 (0.662461), N = 186 moving right - --- -0.373175 (0.686388), N = 169 moving right - --- -0.0683626 (0.723264), N = 150 moving right - --- 0.0289943 (0.724848), N = 145 moving right - --- 2.68155 (0.596869), N = 19 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.724848, min to split: 0.999 +--- Computing oobag predictions: tree 493 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 97 + -- N preds made: 97 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 494 --- - 0 11 9 8 13 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 495 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - -0.0137 0.5097 -0.3166 1.7616 0.0718 +--- Computing oobag predictions: tree 496 --- + -- N preds expected: 106 + -- N preds made: 106 - -- cutpoint (score) - --- -1.1863 (0.643912), N = 191 moving right - --- -1.16261 (0.644833), N = 190 moving right - --- -0.783925 (0.711936), N = 146 moving right - --- 0.178425 (0.695985), N = 83 moving right - --- 3.09569 (0.585154), N = 19 moving right +--- Computing oobag predictions: tree 497 --- - -- best stat: 0.711936, min to split: 0.999 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 498 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 10 1 16 6 5 +--- Computing oobag predictions: tree 499 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 0 --- - -0.7704 0.4804 0.9379 -0.7133 0.8850 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 1 --- - -- cutpoint (score) - --- -1.67643 (0.549641), N = 251 moving right - --- 0.402066 (0.726598), N = 99 moving right - --- 0.894322 (0.696721), N = 68 moving right - --- 1.16121 (0.710775), N = 62 moving right - --- 2.47431 (0.634445), N = 27 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.726598, min to split: 0.999 +--- Computing oobag predictions: tree 2 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 3 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 4 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 100 + -- N preds made: 100 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 5 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 417 -------------- +--- Computing oobag predictions: tree 6 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 231 -- max leaves: 116 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 7 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 17 7 3 9 13 +--- Computing oobag predictions: tree 8 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 9 --- - 0.5089 4.4760 3.8301 0.2940 0.0780 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 10 --- - -- cutpoint (score) - --- 1.095 (0.597766), N = 219 moving right - --- 1.44709 (0.678387), N = 165 moving right - --- 1.95347 (0.651396), N = 76 moving right - --- 2.00083 (0.63758), N = 62 moving right - --- 5.66805 (0.61092), N = 25 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.678387, min to split: 0.999 +--- Computing oobag predictions: tree 11 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 96 + -- N preds made: 96 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 12 --- - 1 14 17 7 8 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 13 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0.4792 0.0575 0.3808 4.0378 1.6644 +--- Computing oobag predictions: tree 14 --- + -- N preds expected: 93 + -- N preds made: 93 - -- cutpoint (score) - --- 0.104333 (0.63334), N = 211 moving right - --- 0.568848 (0.695264), N = 164 moving right - --- 0.877716 (0.7612), N = 129 moving right - --- 1.16439 (0.790858), N = 109 moving right - --- 1.21443 (0.784881), N = 102 moving right +--- Computing oobag predictions: tree 15 --- - -- best stat: 0.790858, min to split: 0.999 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 16 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 16 1 2 6 4 +--- Computing oobag predictions: tree 17 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 18 --- - 0.6170 0.3784 0.3983 2.1223 0.9489 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 19 --- - -- cutpoint (score) - --- 0.304665 (0.631789), N = 189 moving right - --- 0.92607 (0.712699), N = 139 moving right - --- 0.998489 (0.721634), N = 136 moving right - --- 1.36711 (0.726867), N = 95 moving right - --- 1.58531 (0.717291), N = 77 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.726867, min to split: 0.999 +--- Computing oobag predictions: tree 20 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 21 --- - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 5.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 22 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8913e-01 1.0909e-02 - 1.7900e+02 9.8551e-01 1.4572e-02 - 1.8600e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 23 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 418 -------------- +--- Computing oobag predictions: tree 24 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 249 -- max leaves: 125 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 25 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 12 0 15 11 7 +--- Computing oobag predictions: tree 26 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 27 --- - -0.1634 -0.0404 0.0207 1.0213 5.0825 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 28 --- - -- cutpoint (score) - --- -0.416688 (0.683397), N = 158 moving right - --- -0.304915 (0.700462), N = 134 moving right - --- -0.0612952 (0.718332), N = 101 moving right - --- -0.0508038 (0.712161), N = 95 moving right - --- 0.884085 (0.665869), N = 47 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.718332, min to split: 0.999 +--- Computing oobag predictions: tree 29 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 30 --- - 2 5 10 3 1 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 31 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 92 + -- N preds made: 92 - -0.3707 0.5992 -0.4972 1.3782 0.2405 +--- Computing oobag predictions: tree 32 --- + -- N preds expected: 89 + -- N preds made: 89 - -- cutpoint (score) - --- -0.819656 (0.568543), N = 225 moving right - --- -0.77264 (0.583216), N = 219 moving right - --- -0.460151 (0.640422), N = 170 moving right - --- -0.404373 (0.655698), N = 163 moving right - --- 0.804474 (0.638693), N = 36 moving right +--- Computing oobag predictions: tree 33 --- - -- best stat: 0.655698, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 34 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 4 0 13 8 5 +--- Computing oobag predictions: tree 35 --- + -- N preds expected: 88 + -- N preds made: 88 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 36 --- - -0.0112 -0.0971 -0.0921 2.0025 0.3215 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 37 --- - -- cutpoint (score) - --- -1.3029 (0.520985), N = 267 moving right - --- -1.01219 (0.634854), N = 193 moving right - --- -0.712381 (0.690734), N = 140 moving right - --- 0.355577 (0.664884), N = 62 moving right - --- 2.57079 (0.607015), N = 19 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.690734, min to split: 0.999 +--- Computing oobag predictions: tree 38 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 92 + -- N preds made: 92 - -- time & status & weights in this node +--- Computing oobag predictions: tree 39 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 40 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 41 --- + -- N preds expected: 94 + -- N preds made: 94 ------------- Growing tree 419 -------------- +--- Computing oobag predictions: tree 42 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 195 -- max leaves: 98 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 43 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 7 8 16 3 11 +--- Computing oobag predictions: tree 44 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 45 --- - 6.5859 1.1750 0.2309 7.3575 0.0214 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 46 --- - -- cutpoint (score) - --- -0.904187 (0.51473), N = 259 moving right - --- -0.816362 (0.568741), N = 226 moving right - --- -0.683244 (0.673286), N = 164 moving right - --- -0.330189 (0.758234), N = 90 moving right - --- 0.145883 (0.710111), N = 53 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.758234, min to split: 0.999 +--- Computing oobag predictions: tree 47 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 48 --- - 0 5 17 2 14 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 49 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - -0.4933 1.1237 0.5455 -0.1257 0.3109 +--- Computing oobag predictions: tree 50 --- + -- N preds expected: 110 + -- N preds made: 110 - -- cutpoint (score) - --- 0.93207 (0.622447), N = 194 moving right - --- 1.71555 (0.668745), N = 105 moving right - --- 2.08891 (0.633506), N = 69 moving right - --- 2.92293 (0.544734), N = 18 moving right - --- 3.13941 (0.513014), N = 6 moving right +--- Computing oobag predictions: tree 51 --- - -- best stat: 0.668745, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 52 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 1 15 12 11 3 +--- Computing oobag predictions: tree 53 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 54 --- - 0.2599 0.0253 0.1689 0.1087 11.1194 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 55 --- - -- cutpoint (score) - --- -0.392214 (0.569892), N = 239 moving right - --- -0.34076 (0.582754), N = 226 moving right - --- -0.0278072 (0.717107), N = 110 moving right - --- -0.00215519 (0.733662), N = 99 moving right - --- 0.154334 (0.671656), N = 67 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.733662, min to split: 0.999 +--- Computing oobag predictions: tree 56 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 57 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 58 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.9100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 59 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 420 -------------- +--- Computing oobag predictions: tree 60 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 61 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 3 2 7 16 0 +--- Computing oobag predictions: tree 62 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 63 --- - 5.1621 -0.8369 3.0278 0.1928 -0.1060 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 64 --- - -- cutpoint (score) - --- -1.0836 (0.545889), N = 224 moving right - --- -0.977558 (0.603072), N = 176 moving right - --- -0.939307 (0.644115), N = 145 moving right - --- -0.862805 (0.659887), N = 106 moving right - --- -0.0172027 (0.650844), N = 39 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.659887, min to split: 0.999 +--- Computing oobag predictions: tree 65 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 102 + -- N preds made: 102 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 66 --- - 0 2 17 12 6 + -- N preds expected: 115 + -- N preds made: 115 +--- Computing oobag predictions: tree 67 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - -0.0466 -1.0811 0.5424 0.0973 2.1396 +--- Computing oobag predictions: tree 68 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- -0.0497538 (0.571765), N = 239 moving right - --- 0.500428 (0.694851), N = 162 moving right - --- 0.502543 (0.688317), N = 160 moving right - --- 1.00668 (0.692254), N = 109 moving right - --- 1.05038 (0.643185), N = 76 moving right +--- Computing oobag predictions: tree 69 --- - -- best stat: 0.694851, min to split: 0.999 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 70 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 15 16 13 12 7 +--- Computing oobag predictions: tree 71 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 72 --- - -0.0046 0.4982 0.4288 0.1406 3.5775 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 73 --- - -- cutpoint (score) - --- -0.424283 (0.647079), N = 181 moving right - --- 0.117862 (0.715924), N = 118 moving right - --- 1.31583 (0.599589), N = 19 moving right - --- 3.55805 (0.58241), N = 15 moving right - --- 3.68096 (0.569645), N = 13 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.715924, min to split: 0.999 +--- Computing oobag predictions: tree 74 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 75 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 76 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 110 + -- N preds made: 110 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7464e-01 2.5548e-02 - 1.1000e+02 9.6739e-01 3.2983e-02 - 1.4000e+02 9.6377e-01 3.6728e-02 +--- Computing oobag predictions: tree 77 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 421 -------------- +--- Computing oobag predictions: tree 78 --- -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 79 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 13 17 5 15 10 +--- Computing oobag predictions: tree 80 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 81 --- - 0.1659 0.4271 1.1631 -0.0436 -0.6740 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 82 --- - -- cutpoint (score) - --- 0.767554 (0.608), N = 204 moving right - --- 1.39498 (0.696898), N = 152 moving right - --- 1.70848 (0.694719), N = 118 moving right - --- 2.66277 (0.671259), N = 66 moving right - --- 3.50386 (0.622363), N = 29 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.696898, min to split: 0.999 +--- Computing oobag predictions: tree 83 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 93 + -- N preds made: 93 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 84 --- - 7 5 8 2 10 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 85 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 4.0637 0.7733 1.3510 -0.7248 -0.5094 +--- Computing oobag predictions: tree 86 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -1.93415 (0.56219), N = 242 moving right - --- -1.10362 (0.721507), N = 161 moving right - --- -0.401619 (0.745088), N = 115 moving right - --- -0.397433 (0.738573), N = 112 moving right - --- 0.0513664 (0.724654), N = 81 moving right +--- Computing oobag predictions: tree 87 --- - -- best stat: 0.745088, min to split: 0.999 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 88 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 10 5 0 12 4 +--- Computing oobag predictions: tree 89 --- + -- N preds expected: 110 + -- N preds made: 110 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 90 --- - -0.7163 1.2288 -0.1322 0.1532 0.5265 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 91 --- - -- cutpoint (score) - --- -1.10911 (0.53526), N = 255 moving right - --- -0.739664 (0.558398), N = 236 moving right - --- 0.693343 (0.689777), N = 124 moving right - --- 1.08963 (0.681567), N = 98 moving right - --- 2.19256 (0.615968), N = 30 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.689777, min to split: 0.999 +--- Computing oobag predictions: tree 92 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 109 + -- N preds made: 109 - -- time & status & weights in this node +--- Computing oobag predictions: tree 93 --- - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 94 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 5.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.7101e-01 2.9238e-02 - 1.4000e+02 9.6739e-01 3.2970e-02 - 1.7900e+02 9.5652e-01 4.4206e-02 +--- Computing oobag predictions: tree 95 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 422 -------------- +--- Computing oobag predictions: tree 96 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 225 -- max leaves: 113 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 97 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 14 13 8 10 6 +--- Computing oobag predictions: tree 98 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 99 --- - -0.0142 -0.1388 1.7910 -0.8944 -0.0927 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 100 --- - -- cutpoint (score) - --- -1.13711 (0.623823), N = 211 moving right - --- -0.611268 (0.696542), N = 145 moving right - --- -0.570785 (0.703454), N = 142 moving right - --- -0.433194 (0.723956), N = 122 moving right - --- 0.78369 (0.686055), N = 57 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.723956, min to split: 0.999 +--- Computing oobag predictions: tree 101 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 102 --- - 5 12 0 13 4 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 103 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 110 + -- N preds made: 110 - 1.0965 0.0159 -0.1534 0.4446 0.3944 +--- Computing oobag predictions: tree 104 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -0.551528 (0.519089), N = 261 moving right - --- 0.256521 (0.693588), N = 140 moving right - --- 0.362414 (0.702983), N = 131 moving right - --- 0.985833 (0.658599), N = 72 moving right - --- 1.59714 (0.582263), N = 20 moving right +--- Computing oobag predictions: tree 105 --- - -- best stat: 0.702983, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 106 --- - -- columns sampled (showing up to 5) + -- N preds expected: 113 + -- N preds made: 113 - 6 4 11 5 14 +--- Computing oobag predictions: tree 107 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 108 --- - 0.3439 0.3797 0.9791 0.9542 0.3594 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 109 --- - -- cutpoint (score) - --- -1.1489 (0.513076), N = 267 moving right - --- -0.931648 (0.543657), N = 247 moving right - --- 0.185661 (0.697248), N = 142 moving right - --- 0.714069 (0.743195), N = 100 moving right - --- 1.13845 (0.700693), N = 67 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.743195, min to split: 0.999 +--- Computing oobag predictions: tree 110 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 111 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 112 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 94 + -- N preds made: 94 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.7101e-01 2.9320e-02 +--- Computing oobag predictions: tree 113 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 423 -------------- +--- Computing oobag predictions: tree 114 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 115 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 13 6 7 9 11 +--- Computing oobag predictions: tree 116 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 117 --- - 0.3503 0.6102 8.3741 0.4679 0.7314 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 118 --- - -- cutpoint (score) - --- -0.960951 (0.595735), N = 230 moving right - --- -0.472517 (0.69446), N = 168 moving right - --- -0.459886 (0.693702), N = 165 moving right - --- 0.127266 (0.739107), N = 99 moving right - --- 0.7977 (0.723046), N = 60 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.739107, min to split: 0.999 +--- Computing oobag predictions: tree 119 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 111 + -- N preds made: 111 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 120 --- - 9 10 17 4 16 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 121 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.6464 -0.8436 -0.0483 0.4709 0.7764 +--- Computing oobag predictions: tree 122 --- + -- N preds expected: 96 + -- N preds made: 96 - -- cutpoint (score) - --- -1.99861 (0.491685), N = 271 moving right - --- -1.23756 (0.556856), N = 235 moving right - --- -0.0526525 (0.70709), N = 122 moving right - --- 0.0113949 (0.701785), N = 117 moving right - --- 1.54245 (0.672084), N = 44 moving right +--- Computing oobag predictions: tree 123 --- - -- best stat: 0.70709, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 124 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 8 1 4 0 14 +--- Computing oobag predictions: tree 125 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 126 --- - 1.5417 0.3827 0.5096 0.1153 -0.0902 + -- N preds expected: 88 + -- N preds made: 88 +--- Computing oobag predictions: tree 127 --- - -- cutpoint (score) - --- -0.16834 (0.714541), N = 140 moving right - --- -0.057042 (0.72353), N = 127 moving right - --- -0.0506831 (0.733486), N = 124 moving right - --- 0.675836 (0.72894), N = 61 moving right - --- 4.49179 (0.569339), N = 13 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.733486, min to split: 0.999 +--- Computing oobag predictions: tree 128 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 96 + -- N preds made: 96 - -- time & status & weights in this node +--- Computing oobag predictions: tree 129 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 4.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 130 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 109 + -- N preds made: 109 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 131 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 424 -------------- +--- Computing oobag predictions: tree 132 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 213 -- max leaves: 107 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 133 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 3 17 14 7 13 +--- Computing oobag predictions: tree 134 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 135 --- - 3.8878 0.3088 0.4940 1.6465 0.3208 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 136 --- - -- cutpoint (score) - --- 0.149459 (0.566457), N = 244 moving right - --- 0.937111 (0.708373), N = 135 moving right - --- 1.37095 (0.645198), N = 79 moving right - --- 2.74603 (0.587788), N = 18 moving right - --- 5.53478 (0.553372), N = 7 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.708373, min to split: 0.999 +--- Computing oobag predictions: tree 137 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 138 --- - 5 2 6 17 8 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 139 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0.1064 -0.1295 0.3093 0.3925 2.0633 +--- Computing oobag predictions: tree 140 --- + -- N preds expected: 94 + -- N preds made: 94 - -- cutpoint (score) - --- -0.16678 (0.623478), N = 213 moving right - --- 0.136052 (0.668106), N = 171 moving right - --- 0.349197 (0.709021), N = 146 moving right - --- 2.60346 (0.638052), N = 30 moving right - --- 3.86372 (0.602923), N = 17 moving right +--- Computing oobag predictions: tree 141 --- - -- best stat: 0.709021, min to split: 0.999 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 142 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 2 11 12 8 5 +--- Computing oobag predictions: tree 143 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 144 --- - 0.0561 0.4021 0.0534 1.9008 0.1789 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 145 --- - -- cutpoint (score) - --- -1.43939 (0.536661), N = 257 moving right - --- -1.17567 (0.63749), N = 204 moving right - --- -1.09602 (0.670913), N = 187 moving right - --- -0.327056 (0.743285), N = 102 moving right - --- 0.190305 (0.707013), N = 75 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.743285, min to split: 0.999 +--- Computing oobag predictions: tree 146 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 105 + -- N preds made: 105 - -- time & status & weights in this node +--- Computing oobag predictions: tree 147 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 113 + -- N preds made: 113 +--- Computing oobag predictions: tree 148 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 149 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 425 -------------- +--- Computing oobag predictions: tree 150 --- -- N obs inbag: 276 -- N row inbag: 194 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 151 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 12 16 0 17 3 +--- Computing oobag predictions: tree 152 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 153 --- - 0.0434 0.5768 -0.0470 0.4484 11.4146 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 154 --- - -- cutpoint (score) - --- 0.889818 (0.649014), N = 178 moving right - --- 0.916576 (0.639055), N = 174 moving right - --- 1.01599 (0.633047), N = 162 moving right - --- 2.1269 (0.65346), N = 39 moving right - --- 2.14949 (0.656879), N = 37 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.656879, min to split: 0.999 +--- Computing oobag predictions: tree 155 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 111 + -- N preds made: 111 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 156 --- - 3 12 7 6 15 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 157 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 10.7056 0.1043 3.7476 0.0424 0.0915 +--- Computing oobag predictions: tree 158 --- + -- N preds expected: 95 + -- N preds made: 95 - -- cutpoint (score) - --- -0.0776326 (0.534601), N = 213 moving right - --- -0.0420716 (0.584437), N = 171 moving right - --- 0.168389 (0.634925), N = 51 moving right - --- 0.367103 (0.617615), N = 30 moving right - --- 10.9264 (0.57011), N = 11 moving right +--- Computing oobag predictions: tree 159 --- - -- best stat: 0.634925, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 160 --- - -- columns sampled (showing up to 5) + -- N preds expected: 91 + -- N preds made: 91 - 12 3 10 1 16 +--- Computing oobag predictions: tree 161 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 162 --- - -0.0023 11.0775 -0.4328 0.1500 0.7479 + -- N preds expected: 116 + -- N preds made: 116 +--- Computing oobag predictions: tree 163 --- - -- cutpoint (score) - --- -1.27438 (0.512212), N = 263 moving right - --- -0.299504 (0.642355), N = 160 moving right - --- -0.222587 (0.644864), N = 142 moving right - --- 0.304212 (0.717326), N = 73 moving right - --- 0.52417 (0.722424), N = 49 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.722424, min to split: 0.999 +--- Computing oobag predictions: tree 164 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 104 + -- N preds made: 104 - -- time & status & weights in this node +--- Computing oobag predictions: tree 165 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 166 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 93 + -- N preds made: 93 - 5.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8551e-01 1.4546e-02 - 1.3100e+02 9.7826e-01 2.1899e-02 - 1.4000e+02 9.7464e-01 2.5602e-02 - 1.8600e+02 9.7101e-01 2.9320e-02 +--- Computing oobag predictions: tree 167 --- + -- N preds expected: 111 + -- N preds made: 111 ------------- Growing tree 426 -------------- +--- Computing oobag predictions: tree 168 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 169 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 13 9 10 5 4 +--- Computing oobag predictions: tree 170 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 171 --- - 0.1684 0.1647 -0.8494 1.0151 0.0443 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 172 --- - -- cutpoint (score) - --- -0.0895704 (0.705456), N = 169 moving right - --- 0.0555478 (0.728592), N = 151 moving right - --- 0.396985 (0.727988), N = 124 moving right - --- 0.853031 (0.653665), N = 73 moving right - --- 1.16786 (0.658184), N = 51 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.728592, min to split: 0.999 +--- Computing oobag predictions: tree 173 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 174 --- - 1 14 3 12 15 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 175 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.2124 0.1702 6.8674 0.1936 -0.1014 +--- Computing oobag predictions: tree 176 --- + -- N preds expected: 91 + -- N preds made: 91 - -- cutpoint (score) - --- -0.370369 (0.588505), N = 236 moving right - --- -0.020819 (0.676197), N = 143 moving right - --- -0.020329 (0.678551), N = 142 moving right - --- 0.110359 (0.69419), N = 110 moving right - --- 0.335805 (0.656622), N = 72 moving right +--- Computing oobag predictions: tree 177 --- - -- best stat: 0.69419, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 178 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 2 12 14 16 7 +--- Computing oobag predictions: tree 179 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 180 --- - 0.5504 0.1263 0.5797 0.2685 6.2302 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 181 --- - -- cutpoint (score) - --- 0.0441123 (0.585173), N = 224 moving right - --- 0.245446 (0.608892), N = 185 moving right - --- 0.257477 (0.618721), N = 181 moving right - --- 0.853584 (0.700479), N = 80 moving right - --- 1.37066 (0.628051), N = 37 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.700479, min to split: 0.999 +--- Computing oobag predictions: tree 182 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 183 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 184 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 185 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 427 -------------- +--- Computing oobag predictions: tree 186 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 199 -- max leaves: 100 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 187 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0 6 17 14 5 +--- Computing oobag predictions: tree 188 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 189 --- - 0.1671 -0.3994 0.4960 0.1566 1.5151 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 190 --- - -- cutpoint (score) - --- 0.547982 (0.527353), N = 264 moving right - --- 1.36812 (0.631923), N = 188 moving right - --- 1.78223 (0.675732), N = 131 moving right - --- 1.93368 (0.68271), N = 113 moving right - --- 3.3312 (0.62195), N = 31 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.68271, min to split: 0.999 +--- Computing oobag predictions: tree 191 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 192 --- - 1 0 13 6 11 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 193 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 0.6342 0.1516 0.1556 0.2603 1.2872 +--- Computing oobag predictions: tree 194 --- + -- N preds expected: 112 + -- N preds made: 112 - -- cutpoint (score) - --- -0.493644 (0.67348), N = 163 moving right - --- -0.297425 (0.713665), N = 132 moving right - --- -0.270017 (0.724629), N = 127 moving right - --- 0.675458 (0.709635), N = 66 moving right - --- 1.45027 (0.675124), N = 40 moving right +--- Computing oobag predictions: tree 195 --- - -- best stat: 0.724629, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 196 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 1 0 9 3 4 +--- Computing oobag predictions: tree 197 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 198 --- - 0.4079 0.1008 0.3234 4.5276 1.1045 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 199 --- - -- cutpoint (score) - --- -0.519114 (0.530684), N = 253 moving right - --- 0.55637 (0.675934), N = 144 moving right - --- 0.572236 (0.677443), N = 143 moving right - --- 1.02766 (0.677015), N = 92 moving right - --- 2.181 (0.579063), N = 22 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.677443, min to split: 0.999 +--- Computing oobag predictions: tree 200 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 108 + -- N preds made: 108 - -- time & status & weights in this node +--- Computing oobag predictions: tree 201 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 202 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.4000e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 203 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 428 -------------- +--- Computing oobag predictions: tree 204 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 205 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 11 1 17 13 15 +--- Computing oobag predictions: tree 206 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 207 --- - 0.9204 0.3883 0.4600 0.2648 0.1995 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 208 --- - -- cutpoint (score) - --- 0.208277 (0.568298), N = 246 moving right - --- 1.39566 (0.729585), N = 120 moving right - --- 1.50464 (0.732523), N = 105 moving right - --- 2.69343 (0.663823), N = 42 moving right - --- 2.76892 (0.638367), N = 35 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.732523, min to split: 0.999 +--- Computing oobag predictions: tree 209 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 102 + -- N preds made: 102 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 210 --- - 8 13 6 14 3 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 211 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 1.7083 0.0558 0.3336 -0.1215 6.9277 +--- Computing oobag predictions: tree 212 --- + -- N preds expected: 115 + -- N preds made: 115 - -- cutpoint (score) - --- -1.15826 (0.510987), N = 265 moving right - --- -0.754717 (0.693907), N = 159 moving right - --- -0.749508 (0.694812), N = 158 moving right - --- -0.147034 (0.738359), N = 99 moving right - --- 0.151689 (0.732141), N = 68 moving right +--- Computing oobag predictions: tree 213 --- - -- best stat: 0.738359, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 214 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 8 7 13 11 6 +--- Computing oobag predictions: tree 215 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 216 --- - 1.3068 12.6750 0.0105 0.5341 0.4401 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 217 --- - -- cutpoint (score) - --- -0.681315 (0.722924), N = 145 moving right - --- -0.619772 (0.723769), N = 139 moving right - --- 0.0695639 (0.752103), N = 93 moving right - --- 3.02595 (0.65684), N = 26 moving right - --- 13.8246 (0.56214), N = 10 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.752103, min to split: 0.999 +--- Computing oobag predictions: tree 218 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 105 + -- N preds made: 105 - -- time & status & weights in this node +--- Computing oobag predictions: tree 219 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 220 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 114 + -- N preds made: 114 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 221 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 429 -------------- +--- Computing oobag predictions: tree 222 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 195 -- max leaves: 98 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 223 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 1 8 3 6 4 +--- Computing oobag predictions: tree 224 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 225 --- - 0.4697 2.2523 7.0053 0.6441 0.1235 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 226 --- - -- cutpoint (score) - --- -1.62244 (0.541048), N = 248 moving right - --- -1.1394 (0.62789), N = 196 moving right - --- -0.99199 (0.678138), N = 161 moving right - --- -0.43995 (0.780747), N = 100 moving right - --- 0.237417 (0.775461), N = 78 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.780747, min to split: 0.999 +--- Computing oobag predictions: tree 227 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 96 + -- N preds made: 96 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 228 --- - 9 1 3 10 7 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 229 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 90 + -- N preds made: 90 - 0.5629 0.5647 5.9403 -0.4298 4.7662 +--- Computing oobag predictions: tree 230 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -0.524357 (0.612798), N = 209 moving right - --- -0.312742 (0.676091), N = 173 moving right - --- -0.286508 (0.674651), N = 171 moving right - --- 0.0590603 (0.730139), N = 115 moving right - --- 6.34534 (0.612551), N = 19 moving right +--- Computing oobag predictions: tree 231 --- - -- best stat: 0.730139, min to split: 0.999 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 232 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 16 8 13 10 15 +--- Computing oobag predictions: tree 233 --- + -- N preds expected: 91 + -- N preds made: 91 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 234 --- - 0.7651 2.4236 -0.0299 -0.7526 -0.0835 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 235 --- - -- cutpoint (score) - --- -2.55039 (0.523482), N = 250 moving right - --- -1.92285 (0.592285), N = 214 moving right - --- -1.8195 (0.618916), N = 197 moving right - --- -1.28002 (0.690598), N = 154 moving right - --- 3.99928 (0.588169), N = 16 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.690598, min to split: 0.999 +--- Computing oobag predictions: tree 236 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 237 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 238 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8188e-01 1.8195e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.4000e+02 9.7101e-01 2.9293e-02 - 1.8600e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 239 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 430 -------------- +--- Computing oobag predictions: tree 240 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 108 + -- N preds made: 108 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 241 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 17 13 9 5 16 +--- Computing oobag predictions: tree 242 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 243 --- - 0.6687 0.3060 0.1859 0.3934 0.5517 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 244 --- - -- cutpoint (score) - --- 0.891974 (0.574718), N = 232 moving right - --- 1.05569 (0.578775), N = 222 moving right - --- 2.21545 (0.677464), N = 118 moving right - --- 3.07975 (0.679943), N = 56 moving right - --- 3.44465 (0.618295), N = 32 moving right + -- N preds expected: 93 + -- N preds made: 93 - -- best stat: 0.679943, min to split: 0.999 +--- Computing oobag predictions: tree 245 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 246 --- - 17 2 11 7 8 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 247 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0.4529 -0.4081 0.4112 6.8160 1.1463 +--- Computing oobag predictions: tree 248 --- + -- N preds expected: 100 + -- N preds made: 100 - -- cutpoint (score) - --- -0.34976 (0.597009), N = 229 moving right - --- 1.76028 (0.71721), N = 69 moving right - --- 1.83886 (0.698771), N = 61 moving right - --- 1.88101 (0.694919), N = 56 moving right - --- 3.55875 (0.639582), N = 29 moving right +--- Computing oobag predictions: tree 249 --- - -- best stat: 0.71721, min to split: 0.999 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 250 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 5 10 14 16 4 +--- Computing oobag predictions: tree 251 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 252 --- - 0.2131 -0.7181 0.4774 0.6068 0.5693 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 253 --- - -- cutpoint (score) - --- 0.0357073 (0.684511), N = 135 moving right - --- 0.226696 (0.704548), N = 122 moving right - --- 0.94469 (0.708195), N = 68 moving right - --- 1.10044 (0.715734), N = 62 moving right - --- 1.80259 (0.632391), N = 30 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.715734, min to split: 0.999 +--- Computing oobag predictions: tree 254 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 255 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 5.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 256 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 108 + -- N preds made: 108 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.7101e-01 2.9211e-02 - 1.3100e+02 9.6739e-01 3.2942e-02 - 1.7900e+02 9.6377e-01 3.6688e-02 +--- Computing oobag predictions: tree 257 --- + -- N preds expected: 97 + -- N preds made: 97 ------------- Growing tree 431 -------------- +--- Computing oobag predictions: tree 258 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 209 -- max leaves: 105 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 259 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 11 4 12 2 6 +--- Computing oobag predictions: tree 260 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 261 --- - 1.0041 0.4208 -0.0035 -0.5687 1.3668 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 262 --- - -- cutpoint (score) - --- -1.31579 (0.567406), N = 242 moving right - --- -0.973405 (0.647001), N = 198 moving right - --- 0.400711 (0.68753), N = 64 moving right - --- 0.844575 (0.673411), N = 44 moving right - --- 1.51256 (0.567467), N = 23 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.68753, min to split: 0.999 +--- Computing oobag predictions: tree 263 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 264 --- - 11 5 17 9 16 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 265 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.8030 0.4250 0.2435 0.2951 0.6305 +--- Computing oobag predictions: tree 266 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- -0.719555 (0.548493), N = 250 moving right - --- -0.0218476 (0.679039), N = 179 moving right - --- 0.232103 (0.711218), N = 156 moving right - --- 1.12102 (0.70553), N = 101 moving right - --- 1.99007 (0.719507), N = 56 moving right +--- Computing oobag predictions: tree 267 --- - -- best stat: 0.719507, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 268 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 17 15 11 13 4 +--- Computing oobag predictions: tree 269 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 270 --- - 0.3100 -0.0398 0.8889 0.3818 0.2487 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 271 --- - -- cutpoint (score) - --- -0.0722231 (0.604258), N = 221 moving right - --- 0.647433 (0.699395), N = 153 moving right - --- 0.69875 (0.716358), N = 143 moving right - --- 1.66732 (0.702259), N = 68 moving right - --- 1.77014 (0.692691), N = 64 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.716358, min to split: 0.999 +--- Computing oobag predictions: tree 272 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 273 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 274 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 275 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 432 -------------- +--- Computing oobag predictions: tree 276 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 221 -- max leaves: 111 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 277 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 5 1 16 14 7 +--- Computing oobag predictions: tree 278 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 279 --- - 0.5115 0.5459 0.3262 0.4322 5.2568 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 280 --- - -- cutpoint (score) - --- -0.717199 (0.574401), N = 237 moving right - --- -0.353631 (0.619768), N = 202 moving right - --- -0.251689 (0.618448), N = 188 moving right - --- -0.17211 (0.632792), N = 177 moving right - --- 0.358897 (0.707436), N = 109 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.707436, min to split: 0.999 +--- Computing oobag predictions: tree 281 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 282 --- - 5 3 16 17 1 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 283 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.4721 6.2552 0.3627 0.3530 0.3432 +--- Computing oobag predictions: tree 284 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- 0.404559 (0.579805), N = 238 moving right - --- 0.532609 (0.612861), N = 223 moving right - --- 0.873528 (0.657111), N = 184 moving right - --- 0.879053 (0.642198), N = 177 moving right - --- 1.04506 (0.681816), N = 143 moving right +--- Computing oobag predictions: tree 285 --- - -- best stat: 0.681816, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 286 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 3 5 10 12 17 +--- Computing oobag predictions: tree 287 --- + -- N preds expected: 116 + -- N preds made: 116 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 288 --- - 6.0450 0.3856 -0.6096 0.0371 0.2519 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 289 --- - -- cutpoint (score) - --- -0.128112 (0.544149), N = 245 moving right - --- 0.0419274 (0.55772), N = 236 moving right - --- 1.06251 (0.675376), N = 118 moving right - --- 1.25723 (0.684011), N = 97 moving right - --- 1.53825 (0.688582), N = 65 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.688582, min to split: 0.999 +--- Computing oobag predictions: tree 290 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 291 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 292 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7101e-01 2.9305e-02 +--- Computing oobag predictions: tree 293 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 433 -------------- +--- Computing oobag predictions: tree 294 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 201 -- max leaves: 101 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 295 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 7 12 0 6 16 +--- Computing oobag predictions: tree 296 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 297 --- - 7.4319 0.0570 0.0145 1.2826 0.8385 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 298 --- - -- cutpoint (score) - --- -0.813586 (0.540701), N = 253 moving right - --- -0.646887 (0.602407), N = 212 moving right - --- -0.452969 (0.667435), N = 165 moving right - --- 0.304257 (0.720109), N = 86 moving right - --- 2.91785 (0.620261), N = 25 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.720109, min to split: 0.999 +--- Computing oobag predictions: tree 299 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 300 --- - 16 13 17 10 4 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 301 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 1.2707 0.4465 0.2215 -0.7959 0.3961 +--- Computing oobag predictions: tree 302 --- + -- N preds expected: 95 + -- N preds made: 95 - -- cutpoint (score) - --- -0.50604 (0.617427), N = 221 moving right - --- -0.321014 (0.66496), N = 190 moving right - --- -0.00114736 (0.691763), N = 165 moving right - --- 0.2804 (0.727471), N = 136 moving right - --- 5.19258 (0.531689), N = 5 moving right +--- Computing oobag predictions: tree 303 --- - -- best stat: 0.727471, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 304 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 6 0 15 1 14 +--- Computing oobag predictions: tree 305 --- + -- N preds expected: 113 + -- N preds made: 113 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 306 --- - 1.1276 0.2423 -0.3598 0.4237 0.4312 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 307 --- - -- cutpoint (score) - --- -0.296762 (0.618358), N = 194 moving right - --- -0.0792326 (0.617871), N = 172 moving right - --- -0.0545046 (0.620917), N = 170 moving right - --- 0.424848 (0.717232), N = 109 moving right - --- 1.78306 (0.555847), N = 16 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.717232, min to split: 0.999 +--- Computing oobag predictions: tree 308 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 111 + -- N preds made: 111 - -- time & status & weights in this node +--- Computing oobag predictions: tree 309 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 310 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 311 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 434 -------------- +--- Computing oobag predictions: tree 312 --- -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 213 -- max leaves: 107 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 313 --- - -- columns sampled (showing up to 5) + -- N preds expected: 90 + -- N preds made: 90 - 3 13 9 15 17 +--- Computing oobag predictions: tree 314 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 315 --- - 4.6212 0.2947 0.3496 -0.0906 0.4071 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 316 --- - -- cutpoint (score) - --- 0.811144 (0.610405), N = 202 moving right - --- 1.03349 (0.660249), N = 173 moving right - --- 1.55143 (0.689249), N = 68 moving right - --- 2.77798 (0.570734), N = 17 moving right - --- 5.99813 (0.545694), N = 7 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.689249, min to split: 0.999 +--- Computing oobag predictions: tree 317 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 93 + -- N preds made: 93 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 318 --- - 14 8 1 7 13 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 319 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 0.1942 1.5440 0.3745 3.6957 -0.0350 +--- Computing oobag predictions: tree 320 --- + -- N preds expected: 110 + -- N preds made: 110 - -- cutpoint (score) - --- -0.879018 (0.641492), N = 190 moving right - --- -0.425023 (0.767832), N = 111 moving right - --- -0.114927 (0.770606), N = 85 moving right - --- 0.290134 (0.714194), N = 65 moving right - --- 0.559702 (0.688063), N = 56 moving right +--- Computing oobag predictions: tree 321 --- - -- best stat: 0.770606, min to split: 0.999 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 322 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 13 2 0 4 3 +--- Computing oobag predictions: tree 323 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 324 --- - 0.3766 -0.9224 -0.3757 0.7100 5.1569 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 325 --- - -- cutpoint (score) - --- -1.44782 (0.551195), N = 254 moving right - --- -0.964399 (0.662122), N = 169 moving right - --- -0.282809 (0.668192), N = 81 moving right - --- -0.150667 (0.662288), N = 68 moving right - --- -0.128619 (0.660818), N = 66 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.668192, min to split: 0.999 +--- Computing oobag predictions: tree 326 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 96 + -- N preds made: 96 - -- time & status & weights in this node +--- Computing oobag predictions: tree 327 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 328 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 95 + -- N preds made: 95 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.7000e+01 9.8551e-01 1.4546e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 329 --- + -- N preds expected: 106 + -- N preds made: 106 ------------- Growing tree 435 -------------- +--- Computing oobag predictions: tree 330 --- -- N obs inbag: 276 -- N row inbag: 186 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 331 --- - -- columns sampled (showing up to 5) + -- N preds expected: 92 + -- N preds made: 92 - 2 17 3 4 8 +--- Computing oobag predictions: tree 332 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 333 --- - -0.5639 0.2403 3.0626 0.0597 1.7586 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 334 --- - -- cutpoint (score) - --- -1.20453 (0.530207), N = 263 moving right - --- -0.866301 (0.613541), N = 217 moving right - --- -0.473086 (0.712607), N = 159 moving right - --- -0.358424 (0.731066), N = 149 moving right - --- 0.795008 (0.695202), N = 68 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.731066, min to split: 0.999 +--- Computing oobag predictions: tree 335 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 336 --- - 7 15 8 12 11 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 337 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 4.0941 -0.0666 1.6157 0.1241 0.3893 +--- Computing oobag predictions: tree 338 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -1.19642 (0.610898), N = 220 moving right - --- -0.982354 (0.680728), N = 184 moving right - --- -0.62771 (0.736579), N = 139 moving right - --- 1.44123 (0.660039), N = 42 moving right - --- 2.13598 (0.642757), N = 28 moving right +--- Computing oobag predictions: tree 339 --- - -- best stat: 0.736579, min to split: 0.999 + -- N preds expected: 92 + -- N preds made: 92 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 340 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 12 3 6 4 9 +--- Computing oobag predictions: tree 341 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 342 --- - 0.2551 4.8298 0.1535 0.6756 0.6080 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 343 --- - -- cutpoint (score) - --- 0.157465 (0.632412), N = 175 moving right - --- 0.51304 (0.722725), N = 97 moving right - --- 0.678724 (0.728733), N = 81 moving right - --- 1.86197 (0.645668), N = 38 moving right - --- 2.24737 (0.611579), N = 27 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.728733, min to split: 0.999 +--- Computing oobag predictions: tree 344 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 105 + -- N preds made: 105 - -- time & status & weights in this node +--- Computing oobag predictions: tree 345 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 346 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.6739e-01 3.3023e-02 +--- Computing oobag predictions: tree 347 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 436 -------------- +--- Computing oobag predictions: tree 348 --- -- N obs inbag: 276 -- N row inbag: 180 -- max nodes: 231 -- max leaves: 116 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 349 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 14 8 5 3 10 +--- Computing oobag predictions: tree 350 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 351 --- - 0.0776 1.5069 0.1685 3.7045 -0.4455 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 352 --- - -- cutpoint (score) - --- -1.57445 (0.510281), N = 271 moving right - --- -1.54299 (0.517046), N = 268 moving right - --- -1.36423 (0.514253), N = 260 moving right - --- -1.05489 (0.582437), N = 226 moving right - --- 0.995751 (0.688495), N = 51 moving right + -- N preds expected: 113 + -- N preds made: 113 - -- best stat: 0.688495, min to split: 0.999 +--- Computing oobag predictions: tree 353 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 354 --- - 13 12 9 3 6 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 355 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.3950 0.0282 0.4038 6.3073 1.0824 +--- Computing oobag predictions: tree 356 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -0.526338 (0.575539), N = 236 moving right - --- -0.486926 (0.58582), N = 231 moving right - --- -0.137567 (0.650488), N = 157 moving right - --- 0.857564 (0.629319), N = 45 moving right - --- 1.33841 (0.586485), N = 27 moving right +--- Computing oobag predictions: tree 357 --- - -- best stat: 0.650488, min to split: 0.999 + -- N preds expected: 108 + -- N preds made: 108 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 358 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 0 17 11 15 3 +--- Computing oobag predictions: tree 359 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 360 --- - 0.2045 0.4274 0.4032 0.0489 5.2914 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 361 --- - -- cutpoint (score) - --- 0.621067 (0.564745), N = 242 moving right - --- 0.674054 (0.573277), N = 237 moving right - --- 1.29976 (0.699916), N = 145 moving right - --- 1.35277 (0.684106), N = 134 moving right - --- 1.66189 (0.722378), N = 99 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.722378, min to split: 0.999 +--- Computing oobag predictions: tree 362 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 96 + -- N preds made: 96 - -- time & status & weights in this node +--- Computing oobag predictions: tree 363 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 364 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 107 + -- N preds made: 107 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 365 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 437 -------------- +--- Computing oobag predictions: tree 366 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 257 -- max leaves: 129 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 367 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 3 2 13 5 4 +--- Computing oobag predictions: tree 368 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 369 --- - 5.8830 -0.1807 0.4466 0.3933 0.5008 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 370 --- - -- cutpoint (score) - --- 0.111629 (0.683477), N = 163 moving right - --- 0.306162 (0.689249), N = 134 moving right - --- 0.428949 (0.685065), N = 112 moving right - --- 0.660837 (0.658579), N = 73 moving right - --- 5.77264 (0.56812), N = 16 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.689249, min to split: 0.999 +--- Computing oobag predictions: tree 371 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 372 --- - 10 17 5 16 8 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 373 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - -0.4902 0.3443 -0.0665 0.3043 1.4665 +--- Computing oobag predictions: tree 374 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -0.664469 (0.514868), N = 258 moving right - --- 1.11844 (0.744873), N = 93 moving right - --- 1.1195 (0.738298), N = 92 moving right - --- 2.54879 (0.635437), N = 39 moving right - --- 3.20655 (0.602675), N = 30 moving right +--- Computing oobag predictions: tree 375 --- - -- best stat: 0.744873, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 376 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 13 10 8 12 0 +--- Computing oobag predictions: tree 377 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 378 --- - 0.0877 -0.5624 1.5492 -0.0233 -0.0846 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 379 --- - -- cutpoint (score) - --- -1.15572 (0.594157), N = 214 moving right - --- -0.639084 (0.712914), N = 146 moving right - --- -0.550689 (0.723785), N = 136 moving right - --- -0.539756 (0.721189), N = 135 moving right - --- 0.697111 (0.672718), N = 54 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.723785, min to split: 0.999 +--- Computing oobag predictions: tree 380 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 381 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 4.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 382 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.4000e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 383 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 438 -------------- +--- Computing oobag predictions: tree 384 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 385 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 14 15 4 6 13 +--- Computing oobag predictions: tree 386 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 387 --- - 0.4290 -0.0502 1.1781 0.8909 0.2913 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 388 --- - -- cutpoint (score) - --- -0.369974 (0.570647), N = 230 moving right - --- -0.335123 (0.573312), N = 227 moving right - --- 0.159457 (0.625504), N = 172 moving right - --- 0.252157 (0.62762), N = 162 moving right - --- 0.922679 (0.676372), N = 105 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.676372, min to split: 0.999 +--- Computing oobag predictions: tree 389 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 390 --- - 5 15 17 12 8 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 391 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.4736 -0.1022 0.4308 -0.0335 1.9372 +--- Computing oobag predictions: tree 392 --- + -- N preds expected: 118 + -- N preds made: 118 - -- cutpoint (score) - --- 0.100281 (0.622838), N = 209 moving right - --- 0.117729 (0.63405), N = 203 moving right - --- 0.270357 (0.657673), N = 187 moving right - --- 0.658884 (0.680829), N = 151 moving right - --- 1.05405 (0.694177), N = 111 moving right +--- Computing oobag predictions: tree 393 --- - -- best stat: 0.694177, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 394 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 1 3 16 12 10 +--- Computing oobag predictions: tree 395 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 396 --- - 0.3056 6.2531 0.2203 0.1220 -0.6169 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 397 --- - -- cutpoint (score) - --- -1.35289 (0.501526), N = 267 moving right - --- -0.950076 (0.560859), N = 235 moving right - --- -0.081147 (0.693383), N = 119 moving right - --- 0.645931 (0.670411), N = 47 moving right - --- 7.75669 (0.540227), N = 9 moving right + -- N preds expected: 94 + -- N preds made: 94 - -- best stat: 0.693383, min to split: 0.999 +--- Computing oobag predictions: tree 398 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 399 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 400 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 401 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 439 -------------- +--- Computing oobag predictions: tree 402 --- -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 205 -- max leaves: 103 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 403 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 15 12 6 17 1 +--- Computing oobag predictions: tree 404 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 405 --- - -0.1654 0.3384 -0.1566 0.6861 0.5181 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 406 --- - -- cutpoint (score) - --- 1.35485 (0.622295), N = 197 moving right - --- 1.47896 (0.643688), N = 189 moving right - --- 1.92205 (0.667719), N = 148 moving right - --- 2.82765 (0.687872), N = 58 moving right - --- 3.03533 (0.65913), N = 49 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.687872, min to split: 0.999 +--- Computing oobag predictions: tree 407 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 408 --- - 3 15 0 10 4 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 409 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 110 + -- N preds made: 110 - 5.0171 -0.1324 -0.3820 -0.4882 0.7943 +--- Computing oobag predictions: tree 410 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.855083 (0.515893), N = 262 moving right - --- -0.157389 (0.661001), N = 169 moving right - --- 0.201845 (0.659671), N = 133 moving right - --- 0.445521 (0.648625), N = 96 moving right - --- 6.0256 (0.572295), N = 13 moving right +--- Computing oobag predictions: tree 411 --- - -- best stat: 0.661001, min to split: 0.999 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 412 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 12 2 3 4 13 +--- Computing oobag predictions: tree 413 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 414 --- - 0.2848 -0.7895 6.2043 0.7734 0.4181 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 415 --- - -- cutpoint (score) - --- -1.17532 (0.564179), N = 230 moving right - --- -1.12834 (0.579125), N = 220 moving right - --- -0.395236 (0.691005), N = 149 moving right - --- -0.131275 (0.729306), N = 108 moving right - --- 0.389973 (0.686069), N = 60 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.729306, min to split: 0.999 +--- Computing oobag predictions: tree 416 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 417 --- - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 418 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.3100e+02 9.7464e-01 2.5548e-02 - 1.4000e+02 9.6739e-01 3.2983e-02 - 1.7900e+02 9.5652e-01 4.4219e-02 +--- Computing oobag predictions: tree 419 --- + -- N preds expected: 97 + -- N preds made: 97 ------------- Growing tree 440 -------------- +--- Computing oobag predictions: tree 420 --- -- N obs inbag: 276 -- N row inbag: 171 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 112 + -- N preds made: 112 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 421 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 1 3 0 15 12 +--- Computing oobag predictions: tree 422 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 423 --- - 0.3678 8.6471 -0.1191 -0.1704 0.1674 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 424 --- - -- cutpoint (score) - --- -0.432261 (0.583057), N = 218 moving right - --- -0.155545 (0.627587), N = 172 moving right - --- 0.0392156 (0.634528), N = 112 moving right - --- 0.330555 (0.635358), N = 64 moving right - --- 8.51605 (0.607199), N = 16 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.635358, min to split: 0.999 +--- Computing oobag predictions: tree 425 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 93 + -- N preds made: 93 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 426 --- - 11 4 8 5 15 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 427 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 1.0382 -0.2090 1.3146 0.9448 -0.1681 +--- Computing oobag predictions: tree 428 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -1.94647 (0.515236), N = 265 moving right - --- -1.86407 (0.52364), N = 260 moving right - --- -1.80796 (0.539793), N = 253 moving right - --- -1.33041 (0.637169), N = 206 moving right - --- 1.32969 (0.696259), N = 50 moving right +--- Computing oobag predictions: tree 429 --- - -- best stat: 0.696259, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 430 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 12 6 2 4 14 +--- Computing oobag predictions: tree 431 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 432 --- - 0.0883 0.1680 -0.9676 0.9545 0.3555 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 433 --- - -- cutpoint (score) - --- -1.10323 (0.577884), N = 209 moving right - --- -1.05802 (0.57354), N = 204 moving right - --- -0.461789 (0.638741), N = 160 moving right - --- -0.23421 (0.659674), N = 124 moving right - --- -0.185005 (0.644285), N = 108 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.659674, min to split: 0.999 +--- Computing oobag predictions: tree 434 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 435 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 436 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.3100e+02 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 437 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 441 -------------- +--- Computing oobag predictions: tree 438 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 439 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 4 9 10 8 5 +--- Computing oobag predictions: tree 440 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 441 --- - 0.4854 -0.1012 -0.5858 1.4680 0.4488 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 442 --- - -- cutpoint (score) - --- -0.806396 (0.663847), N = 186 moving right - --- -0.286189 (0.73512), N = 152 moving right - --- -0.276931 (0.739605), N = 150 moving right - --- 0.368663 (0.766368), N = 102 moving right - --- 1.13411 (0.687293), N = 52 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.766368, min to split: 0.999 +--- Computing oobag predictions: tree 443 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 106 + -- N preds made: 106 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 444 --- - 17 15 6 3 1 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 445 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 0.6211 0.0005 0.4688 3.7321 0.2515 +--- Computing oobag predictions: tree 446 --- + -- N preds expected: 94 + -- N preds made: 94 - -- cutpoint (score) - --- 1.01526 (0.544937), N = 249 moving right - --- 1.52657 (0.634895), N = 189 moving right - --- 1.91738 (0.656768), N = 122 moving right - --- 2.28261 (0.704681), N = 84 moving right - --- 2.77524 (0.610088), N = 29 moving right +--- Computing oobag predictions: tree 447 --- - -- best stat: 0.704681, min to split: 0.999 + -- N preds expected: 113 + -- N preds made: 113 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 448 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 10 2 7 12 3 +--- Computing oobag predictions: tree 449 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 450 --- - -0.6729 -0.9992 2.5320 0.2359 2.6186 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 451 --- - -- cutpoint (score) - --- -0.754867 (0.702555), N = 93 moving right - --- -0.737581 (0.705233), N = 92 moving right - --- -0.367183 (0.655982), N = 70 moving right - --- 0.177121 (0.619675), N = 34 moving right - --- 0.632283 (0.608175), N = 26 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.705233, min to split: 0.999 +--- Computing oobag predictions: tree 452 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 453 --- - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 454 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 7.1000e+01 9.9275e-01 7.2464e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.8188e-01 1.8235e-02 - 1.8600e+02 9.7826e-01 2.1926e-02 +--- Computing oobag predictions: tree 455 --- + -- N preds expected: 109 + -- N preds made: 109 ------------- Growing tree 442 -------------- +--- Computing oobag predictions: tree 456 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 457 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 12 9 5 11 15 +--- Computing oobag predictions: tree 458 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 459 --- - -0.0076 0.0422 0.9856 1.1246 -0.2128 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 460 --- - -- cutpoint (score) - --- -0.386883 (0.667816), N = 167 moving right - --- 0.36296 (0.725689), N = 112 moving right - --- 0.600092 (0.7322), N = 100 moving right - --- 1.35644 (0.65027), N = 47 moving right - --- 3.65539 (0.51566), N = 7 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.7322, min to split: 0.999 +--- Computing oobag predictions: tree 461 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 462 --- - 15 4 2 1 13 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 463 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - -0.1263 0.7591 0.1238 0.7004 0.5027 +--- Computing oobag predictions: tree 464 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- -0.468271 (0.574689), N = 234 moving right - --- 0.482765 (0.694815), N = 136 moving right - --- 0.589834 (0.719806), N = 120 moving right - --- 0.662746 (0.705708), N = 116 moving right - --- 1.86921 (0.599619), N = 28 moving right +--- Computing oobag predictions: tree 465 --- - -- best stat: 0.719806, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 466 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 8 5 13 7 12 +--- Computing oobag predictions: tree 467 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 468 --- - 1.5780 0.2941 0.1358 4.4470 0.0678 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 469 --- - -- cutpoint (score) - --- -1.17258 (0.517607), N = 265 moving right - --- -0.86759 (0.64177), N = 206 moving right - --- -0.792561 (0.678932), N = 187 moving right - --- -0.740591 (0.689521), N = 176 moving right - --- 4.4205 (0.615644), N = 23 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.689521, min to split: 0.999 +--- Computing oobag predictions: tree 470 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 471 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 472 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.7464e-01 2.5562e-02 - 1.1000e+02 9.6739e-01 3.2997e-02 - 1.3100e+02 9.6014e-01 4.0488e-02 +--- Computing oobag predictions: tree 473 --- + -- N preds expected: 88 + -- N preds made: 88 ------------- Growing tree 443 -------------- +--- Computing oobag predictions: tree 474 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 199 -- max leaves: 100 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 475 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 14 16 8 2 12 +--- Computing oobag predictions: tree 476 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 477 --- - 0.0267 0.3934 1.7645 -0.3044 0.2428 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 478 --- - -- cutpoint (score) - --- -1.78295 (0.533843), N = 250 moving right - --- -0.105499 (0.706537), N = 73 moving right - --- 0.227618 (0.70035), N = 56 moving right - --- 0.287193 (0.694512), N = 53 moving right - --- 0.955743 (0.659488), N = 38 moving right + -- N preds expected: 82 + -- N preds made: 82 - -- best stat: 0.706537, min to split: 0.999 +--- Computing oobag predictions: tree 479 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 480 --- - 14 15 9 10 3 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 481 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 0.3505 -0.3240 0.1273 -0.2648 6.0043 +--- Computing oobag predictions: tree 482 --- + -- N preds expected: 95 + -- N preds made: 95 - -- cutpoint (score) - --- -0.334433 (0.623721), N = 192 moving right - --- -0.2105 (0.65422), N = 159 moving right - --- 0.0826725 (0.708308), N = 126 moving right - --- 0.213266 (0.747551), N = 97 moving right - --- 0.292825 (0.725186), N = 86 moving right +--- Computing oobag predictions: tree 483 --- - -- best stat: 0.747551, min to split: 0.999 + -- N preds expected: 93 + -- N preds made: 93 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 484 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0 9 7 10 11 +--- Computing oobag predictions: tree 485 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 486 --- - -0.3548 0.1351 6.3090 -0.5109 0.5436 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 487 --- - -- cutpoint (score) - --- -1.16603 (0.556952), N = 237 moving right - --- -1.1003 (0.567162), N = 234 moving right - --- -0.560275 (0.665479), N = 173 moving right - --- 0.361712 (0.735942), N = 70 moving right - --- 1.36174 (0.61913), N = 28 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.735942, min to split: 0.999 +--- Computing oobag predictions: tree 488 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 104 + -- N preds made: 104 - -- time & status & weights in this node +--- Computing oobag predictions: tree 489 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 490 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.7464e-01 2.5548e-02 - 1.4000e+02 9.7101e-01 2.9265e-02 - 1.7900e+02 9.6377e-01 3.6728e-02 +--- Computing oobag predictions: tree 491 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 444 -------------- +--- Computing oobag predictions: tree 492 --- -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 255 -- max leaves: 128 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 493 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 11 9 10 4 12 +--- Computing oobag predictions: tree 494 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 495 --- - 0.7932 0.2636 -0.7329 0.3439 -0.0453 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 496 --- - -- cutpoint (score) - --- -0.817916 (0.591956), N = 228 moving right - --- 1.89072e-05 (0.69267), N = 143 moving right - --- 0.713505 (0.720245), N = 86 moving right - --- 1.32949 (0.678173), N = 54 moving right - --- 2.03341 (0.605132), N = 26 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.720245, min to split: 0.999 +--- Computing oobag predictions: tree 497 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 94 + -- N preds made: 94 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 498 --- - 8 17 0 4 14 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 499 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 1.7752 0.2813 -0.5839 -0.0536 -0.1602 +--- Computing oobag predictions: tree 0 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.580769 (0.621326), N = 216 moving right - --- -0.326459 (0.688213), N = 185 moving right - --- -0.221002 (0.714663), N = 171 moving right - --- -0.0625368 (0.747051), N = 152 moving right - --- 0.606318 (0.691152), N = 80 moving right +--- Computing oobag predictions: tree 1 --- - -- best stat: 0.747051, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 2 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 3 5 6 15 16 +--- Computing oobag predictions: tree 3 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 4 --- - 5.4435 0.5162 0.6378 -0.2757 0.1430 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 5 --- - -- cutpoint (score) - --- -0.102028 (0.587854), N = 205 moving right - --- -0.0524557 (0.615448), N = 185 moving right - --- 0.142872 (0.637757), N = 134 moving right - --- 0.191424 (0.642668), N = 126 moving right - --- 6.0958 (0.569273), N = 13 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.642668, min to split: 0.999 +--- Computing oobag predictions: tree 6 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 7 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 8 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7101e-01 2.9292e-02 - 1.7900e+02 9.6377e-01 3.6755e-02 +--- Computing oobag predictions: tree 9 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 445 -------------- +--- Computing oobag predictions: tree 10 --- -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 235 -- max leaves: 118 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 11 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 8 11 16 0 12 +--- Computing oobag predictions: tree 12 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 13 --- - 1.5607 0.5504 0.6350 -0.6081 -0.1353 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 14 --- - -- cutpoint (score) - --- -1.96259 (0.588528), N = 228 moving right - --- -1.94572 (0.594476), N = 225 moving right - --- -1.54866 (0.665034), N = 185 moving right - --- 0.749104 (0.683425), N = 48 moving right - --- 3.33006 (0.567027), N = 16 moving right + -- N preds expected: 93 + -- N preds made: 93 - -- best stat: 0.683425, min to split: 0.999 +--- Computing oobag predictions: tree 15 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 95 + -- N preds made: 95 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 16 --- - 7 6 15 13 17 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 17 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 3.0458 1.3145 0.0144 0.2452 0.7430 +--- Computing oobag predictions: tree 18 --- + -- N preds expected: 95 + -- N preds made: 95 - -- cutpoint (score) - --- 1.57088 (0.597272), N = 220 moving right - --- 2.05817 (0.638783), N = 189 moving right - --- 2.50513 (0.715583), N = 122 moving right - --- 3.0274 (0.675711), N = 70 moving right - --- 6.12388 (0.519295), N = 7 moving right +--- Computing oobag predictions: tree 19 --- - -- best stat: 0.715583, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 20 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 11 17 10 0 15 +--- Computing oobag predictions: tree 21 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 22 --- - 0.6579 0.7675 -0.7603 -0.8741 0.1091 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 23 --- - -- cutpoint (score) - --- 0.609233 (0.606835), N = 224 moving right - --- 1.3074 (0.664488), N = 170 moving right - --- 1.61648 (0.705095), N = 146 moving right - --- 1.61973 (0.707617), N = 143 moving right - --- 2.33731 (0.765501), N = 88 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.765501, min to split: 0.999 +--- Computing oobag predictions: tree 24 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 25 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 26 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 106 + -- N preds made: 106 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8188e-01 1.8169e-02 - 7.7000e+01 9.7826e-01 2.1859e-02 - 1.4000e+02 9.7101e-01 2.9266e-02 - 1.7900e+02 9.6377e-01 3.6729e-02 +--- Computing oobag predictions: tree 27 --- + -- N preds expected: 110 + -- N preds made: 110 ------------- Growing tree 446 -------------- +--- Computing oobag predictions: tree 28 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 199 -- max leaves: 100 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 29 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 15 6 1 4 14 +--- Computing oobag predictions: tree 30 --- + -- N preds expected: 92 + -- N preds made: 92 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 31 --- - -0.0579 1.0090 0.1843 0.9124 0.6641 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 32 --- - -- cutpoint (score) - --- 0.0394755 (0.620188), N = 177 moving right - --- 0.383727 (0.633149), N = 154 moving right - --- 0.39928 (0.639595), N = 150 moving right - --- 0.838876 (0.657561), N = 81 moving right - --- 0.889687 (0.645264), N = 78 moving right + -- N preds expected: 89 + -- N preds made: 89 - -- best stat: 0.657561, min to split: 0.999 +--- Computing oobag predictions: tree 33 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 34 --- - 7 4 10 13 11 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 35 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 88 + -- N preds made: 88 - 2.3071 0.6843 -0.3079 0.0407 1.0305 +--- Computing oobag predictions: tree 36 --- + -- N preds expected: 98 + -- N preds made: 98 - -- cutpoint (score) - --- -0.904859 (0.548779), N = 238 moving right - --- -0.724382 (0.594907), N = 216 moving right - --- -0.593976 (0.617217), N = 203 moving right - --- -0.295236 (0.671734), N = 178 moving right - --- 2.26772 (0.613491), N = 25 moving right +--- Computing oobag predictions: tree 37 --- - -- best stat: 0.671734, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 38 --- - -- columns sampled (showing up to 5) + -- N preds expected: 92 + -- N preds made: 92 - 12 8 3 5 17 +--- Computing oobag predictions: tree 39 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 40 --- - 0.0570 1.7844 6.9298 0.6963 0.3166 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 41 --- - -- cutpoint (score) - --- -0.186392 (0.617125), N = 220 moving right - --- 0.0350671 (0.689906), N = 184 moving right - --- 0.296166 (0.695712), N = 155 moving right - --- 2.42163 (0.655253), N = 38 moving right - --- 4.7393 (0.612897), N = 17 moving right + -- N preds expected: 94 + -- N preds made: 94 - -- best stat: 0.695712, min to split: 0.999 +--- Computing oobag predictions: tree 42 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 43 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 44 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 109 + -- N preds made: 109 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.4000e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 45 --- + -- N preds expected: 109 + -- N preds made: 109 ------------- Growing tree 447 -------------- +--- Computing oobag predictions: tree 46 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 47 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 14 13 6 10 7 +--- Computing oobag predictions: tree 48 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 49 --- - 0.4896 0.3964 1.0222 -0.3627 13.1986 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 50 --- - -- cutpoint (score) - --- -0.734224 (0.584003), N = 236 moving right - --- -0.485817 (0.628483), N = 194 moving right - --- -0.266279 (0.662092), N = 171 moving right - --- 0.257917 (0.710554), N = 91 moving right - --- 12.8556 (0.58073), N = 13 moving right + -- N preds expected: 110 + -- N preds made: 110 - -- best stat: 0.710554, min to split: 0.999 +--- Computing oobag predictions: tree 51 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 52 --- - 1 7 10 2 5 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 53 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 0.3637 12.9921 -0.4330 -1.0250 0.4711 +--- Computing oobag predictions: tree 54 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -1.0995 (0.643049), N = 171 moving right - --- -0.98678 (0.656197), N = 154 moving right - --- -0.726922 (0.697596), N = 122 moving right - --- -0.522566 (0.690266), N = 98 moving right - --- -0.311126 (0.684103), N = 73 moving right +--- Computing oobag predictions: tree 55 --- - -- best stat: 0.697596, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 56 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 8 16 0 11 14 +--- Computing oobag predictions: tree 57 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 58 --- - 1.2698 0.6144 -0.3519 0.7865 -0.0446 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 59 --- - -- cutpoint (score) - --- -2.02709 (0.523388), N = 258 moving right - --- -0.637235 (0.743914), N = 130 moving right - --- -0.439642 (0.757369), N = 124 moving right - --- -0.39624 (0.75312), N = 115 moving right - --- 0.297022 (0.726554), N = 81 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.757369, min to split: 0.999 +--- Computing oobag predictions: tree 60 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 61 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 62 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8551e-01 1.4532e-02 - 7.1000e+01 9.8188e-01 1.8209e-02 - 7.7000e+01 9.7464e-01 2.5589e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 63 --- + -- N preds expected: 95 + -- N preds made: 95 ------------- Growing tree 448 -------------- +--- Computing oobag predictions: tree 64 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 201 -- max leaves: 101 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 65 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 15 2 17 13 1 +--- Computing oobag predictions: tree 66 --- + -- N preds expected: 115 + -- N preds made: 115 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 67 --- - 0.0343 -0.6696 0.5262 0.2556 0.4726 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 68 --- - -- cutpoint (score) - --- -0.168695 (0.531372), N = 254 moving right - --- -0.0444335 (0.555442), N = 242 moving right - --- 0.990193 (0.707209), N = 117 moving right - --- 1.02177 (0.69086), N = 111 moving right - --- 2.14763 (0.587186), N = 19 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.707209, min to split: 0.999 +--- Computing oobag predictions: tree 69 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 94 + -- N preds made: 94 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 70 --- - 6 17 8 4 15 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 71 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 0.1771 0.2707 2.0164 0.3580 -0.0243 +--- Computing oobag predictions: tree 72 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -0.245583 (0.652698), N = 191 moving right - --- -0.12324 (0.666512), N = 179 moving right - --- -0.0621456 (0.672465), N = 170 moving right - --- 1.70798 (0.667977), N = 45 moving right - --- 6.17258 (0.565791), N = 11 moving right +--- Computing oobag predictions: tree 73 --- - -- best stat: 0.672465, min to split: 0.999 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 74 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 6 16 10 15 17 +--- Computing oobag predictions: tree 75 --- + -- N preds expected: 92 + -- N preds made: 92 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 76 --- - 0.3272 0.4531 -0.6387 -0.0246 0.4532 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 77 --- - -- cutpoint (score) - --- -0.104105 (0.530256), N = 262 moving right - --- 0.466397 (0.58), N = 217 moving right - --- 0.66668 (0.613233), N = 190 moving right - --- 0.711299 (0.623326), N = 176 moving right - --- 1.59769 (0.694791), N = 89 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.694791, min to split: 0.999 +--- Computing oobag predictions: tree 78 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 79 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 80 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 108 + -- N preds made: 108 - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.3100e+02 9.9275e-01 7.2596e-03 - 1.4000e+02 9.8913e-01 1.0909e-02 - 1.8600e+02 9.8188e-01 1.8235e-02 - 1.9100e+02 9.7101e-01 2.9305e-02 +--- Computing oobag predictions: tree 81 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 449 -------------- +--- Computing oobag predictions: tree 82 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 83 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 14 7 5 1 15 +--- Computing oobag predictions: tree 84 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 85 --- - 0.4737 4.9966 0.6226 0.2217 -0.2687 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 86 --- - -- cutpoint (score) - --- -0.803134 (0.510796), N = 266 moving right - --- -0.0182201 (0.612718), N = 172 moving right - --- -0.0132237 (0.615497), N = 170 moving right - --- 0.231697 (0.650233), N = 114 moving right - --- 0.377508 (0.683869), N = 92 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.683869, min to split: 0.999 +--- Computing oobag predictions: tree 87 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 94 + -- N preds made: 94 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 88 --- - 1 10 6 14 11 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 89 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 110 + -- N preds made: 110 - 0.2207 -0.5284 -0.3216 0.2434 0.8383 +--- Computing oobag predictions: tree 90 --- + -- N preds expected: 96 + -- N preds made: 96 - -- cutpoint (score) - --- -1.63719 (0.509309), N = 265 moving right - --- -1.2777 (0.527969), N = 252 moving right - --- -0.711899 (0.655383), N = 177 moving right - --- 0.326689 (0.699535), N = 74 moving right - --- 1.14213 (0.626013), N = 34 moving right +--- Computing oobag predictions: tree 91 --- - -- best stat: 0.699535, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 92 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 5 3 15 6 11 +--- Computing oobag predictions: tree 93 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 94 --- - 1.0490 3.4566 -0.1826 0.1208 0.6491 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 95 --- - -- cutpoint (score) - --- -0.497285 (0.569988), N = 232 moving right - --- -0.365909 (0.644027), N = 194 moving right - --- -0.138941 (0.704275), N = 140 moving right - --- 0.224298 (0.715609), N = 112 moving right - --- 1.1682 (0.675918), N = 55 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.715609, min to split: 0.999 +--- Computing oobag predictions: tree 96 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 97 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 98 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 106 + -- N preds made: 106 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8188e-01 1.8169e-02 - 1.1000e+02 9.7101e-01 2.9239e-02 - 1.4000e+02 9.6739e-01 3.2970e-02 - 1.7900e+02 9.6377e-01 3.6715e-02 +--- Computing oobag predictions: tree 99 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 450 -------------- +--- Computing oobag predictions: tree 100 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 241 -- max leaves: 121 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 101 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0 17 7 2 6 +--- Computing oobag predictions: tree 102 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 103 --- - 0.0870 0.4686 11.3270 -1.1611 0.7762 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 104 --- - -- cutpoint (score) - --- 1.02073 (0.667848), N = 54 moving right - --- 1.02413 (0.675428), N = 51 moving right - --- 1.10774 (0.669738), N = 47 moving right - --- 1.49269 (0.632467), N = 30 moving right - --- 1.87424 (0.62343), N = 25 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.675428, min to split: 0.999 +--- Computing oobag predictions: tree 105 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 106 --- - 7 13 0 9 12 + -- N preds expected: 113 + -- N preds made: 113 +--- Computing oobag predictions: tree 107 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 11.6923 0.0901 0.0136 0.2884 0.1170 +--- Computing oobag predictions: tree 108 --- + -- N preds expected: 100 + -- N preds made: 100 - -- cutpoint (score) - --- -0.255103 (0.557826), N = 228 moving right - --- -0.233282 (0.567809), N = 222 moving right - --- -0.226026 (0.581512), N = 213 moving right - --- -0.0399666 (0.634889), N = 117 moving right - --- 0.224938 (0.648888), N = 64 moving right +--- Computing oobag predictions: tree 109 --- - -- best stat: 0.648888, min to split: 0.999 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 110 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 16 11 3 1 6 +--- Computing oobag predictions: tree 111 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 112 --- - 0.3639 0.9726 2.4659 0.2503 0.3601 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 113 --- - -- cutpoint (score) - --- -0.545287 (0.676157), N = 168 moving right - --- -0.482867 (0.690549), N = 160 moving right - --- -0.432313 (0.708978), N = 148 moving right - --- -0.302898 (0.718586), N = 135 moving right - --- 0.835799 (0.699882), N = 61 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.718586, min to split: 0.999 +--- Computing oobag predictions: tree 114 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 115 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 116 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 117 --- + -- N preds expected: 109 + -- N preds made: 109 ------------- Growing tree 451 -------------- +--- Computing oobag predictions: tree 118 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 119 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 15 13 16 9 6 +--- Computing oobag predictions: tree 120 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 121 --- - -0.0011 0.4747 0.9068 0.1234 0.3197 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 122 --- - -- cutpoint (score) - --- -0.468423 (0.670078), N = 169 moving right - --- -0.156886 (0.689545), N = 141 moving right - --- 0.414453 (0.703489), N = 93 moving right - --- 0.698871 (0.663575), N = 68 moving right - --- 0.79068 (0.6449), N = 58 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.703489, min to split: 0.999 +--- Computing oobag predictions: tree 123 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 124 --- - 13 12 16 6 1 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 125 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.5722 0.0712 0.8622 0.0728 0.5220 +--- Computing oobag predictions: tree 126 --- + -- N preds expected: 88 + -- N preds made: 88 - -- cutpoint (score) - --- -0.692552 (0.642211), N = 185 moving right - --- -0.653354 (0.650611), N = 181 moving right - --- 0.580842 (0.691484), N = 80 moving right - --- 0.737094 (0.690087), N = 71 moving right - --- 2.19828 (0.564488), N = 10 moving right +--- Computing oobag predictions: tree 127 --- - -- best stat: 0.691484, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 128 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 6 9 11 13 12 +--- Computing oobag predictions: tree 129 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 130 --- - 0.7423 0.1900 1.0229 0.2235 -0.0474 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 131 --- - -- cutpoint (score) - --- -1.06051 (0.55119), N = 254 moving right - --- -0.74529 (0.61226), N = 206 moving right - --- 1.03288 (0.649027), N = 46 moving right - --- 1.77856 (0.565926), N = 25 moving right - --- 1.96433 (0.559381), N = 23 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.649027, min to split: 0.999 +--- Computing oobag predictions: tree 132 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 133 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 134 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.7826e-01 2.1898e-02 - 1.4000e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 135 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 452 -------------- +--- Computing oobag predictions: tree 136 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 137 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 8 3 15 6 12 +--- Computing oobag predictions: tree 138 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 139 --- - 1.1950 6.0489 -0.2265 0.1691 0.1597 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 140 --- - -- cutpoint (score) - --- -1.05944 (0.527575), N = 263 moving right - --- -0.916283 (0.546538), N = 249 moving right - --- -0.706404 (0.625789), N = 205 moving right - --- -0.615242 (0.65273), N = 184 moving right - --- -0.302815 (0.72873), N = 140 moving right + -- N preds expected: 94 + -- N preds made: 94 - -- best stat: 0.72873, min to split: 0.999 +--- Computing oobag predictions: tree 141 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 95 + -- N preds made: 95 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 142 --- - 17 11 3 8 14 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 143 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.1825 0.4889 6.1287 1.2300 -0.3816 +--- Computing oobag predictions: tree 144 --- + -- N preds expected: 109 + -- N preds made: 109 - -- cutpoint (score) - --- -0.634513 (0.550349), N = 250 moving right - --- -0.377852 (0.613534), N = 218 moving right - --- -0.309133 (0.648358), N = 203 moving right - --- 0.128201 (0.731495), N = 144 moving right - --- 0.880537 (0.711224), N = 93 moving right +--- Computing oobag predictions: tree 145 --- - -- best stat: 0.731495, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 146 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 7 13 1 8 6 +--- Computing oobag predictions: tree 147 --- + -- N preds expected: 113 + -- N preds made: 113 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 148 --- - 3.9363 0.2335 0.6553 1.2519 0.4545 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 149 --- - -- cutpoint (score) - --- -0.671336 (0.672365), N = 187 moving right - --- -0.665196 (0.677446), N = 184 moving right - --- -0.327083 (0.752326), N = 133 moving right - --- 0.248289 (0.778706), N = 98 moving right - --- 1.16899 (0.675279), N = 50 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.778706, min to split: 0.999 +--- Computing oobag predictions: tree 150 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 151 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 152 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 94 + -- N preds made: 94 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 153 --- + -- N preds expected: 95 + -- N preds made: 95 ------------- Growing tree 453 -------------- +--- Computing oobag predictions: tree 154 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 205 -- max leaves: 103 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 155 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 8 17 0 1 7 +--- Computing oobag predictions: tree 156 --- + -- N preds expected: 111 + -- N preds made: 111 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 157 --- - 1.8549 0.3456 -0.5408 0.3040 3.0266 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 158 --- - -- cutpoint (score) - --- -0.512061 (0.611676), N = 225 moving right - --- -0.511955 (0.615496), N = 224 moving right - --- -0.256378 (0.660208), N = 196 moving right - --- -0.0323121 (0.68154), N = 175 moving right - --- 0.0431921 (0.696106), N = 164 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.696106, min to split: 0.999 +--- Computing oobag predictions: tree 159 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 160 --- - 3 2 10 14 7 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 161 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 2.1868 -0.6266 -0.5060 0.1892 5.0831 +--- Computing oobag predictions: tree 162 --- + -- N preds expected: 116 + -- N preds made: 116 - -- cutpoint (score) - --- -0.839945 (0.600999), N = 197 moving right - --- -0.490488 (0.692655), N = 122 moving right - --- -0.270765 (0.700847), N = 93 moving right - --- -0.213144 (0.675051), N = 86 moving right - --- -0.156805 (0.669068), N = 77 moving right +--- Computing oobag predictions: tree 163 --- - -- best stat: 0.700847, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 164 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 7 16 11 14 1 +--- Computing oobag predictions: tree 165 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 166 --- - 4.8956 0.1711 0.6723 0.2091 0.3081 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 167 --- - -- cutpoint (score) - --- -0.837035 (0.568644), N = 239 moving right - --- -0.438889 (0.667342), N = 167 moving right - --- -0.254449 (0.702895), N = 123 moving right - --- 0.040796 (0.713895), N = 99 moving right - --- 2.06159 (0.597409), N = 21 moving right + -- N preds expected: 111 + -- N preds made: 111 - -- best stat: 0.713895, min to split: 0.999 +--- Computing oobag predictions: tree 168 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 104 + -- N preds made: 104 - -- time & status & weights in this node +--- Computing oobag predictions: tree 169 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 170 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 171 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 454 -------------- +--- Computing oobag predictions: tree 172 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 241 -- max leaves: 121 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 173 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 5 17 16 10 11 +--- Computing oobag predictions: tree 174 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 175 --- - 0.3164 0.3373 0.5055 -0.6724 0.5386 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 176 --- - -- cutpoint (score) - --- -0.22442 (0.564474), N = 240 moving right - --- 1.98769 (0.705113), N = 62 moving right - --- 2.05743 (0.697425), N = 60 moving right - --- 2.49187 (0.650752), N = 35 moving right - --- 3.57866 (0.53985), N = 12 moving right + -- N preds expected: 91 + -- N preds made: 91 - -- best stat: 0.705113, min to split: 0.999 +--- Computing oobag predictions: tree 177 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 178 --- - 8 0 7 4 10 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 179 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 1.2201 0.2146 4.2271 0.3960 -0.6565 +--- Computing oobag predictions: tree 180 --- + -- N preds expected: 109 + -- N preds made: 109 - -- cutpoint (score) - --- -0.574476 (0.657801), N = 184 moving right - --- -0.341789 (0.689812), N = 168 moving right - --- -0.173676 (0.708102), N = 154 moving right - --- -0.0217824 (0.721955), N = 138 moving right - --- 0.156233 (0.73782), N = 113 moving right +--- Computing oobag predictions: tree 181 --- - -- best stat: 0.73782, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 182 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 14 10 7 8 13 +--- Computing oobag predictions: tree 183 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 184 --- - 0.1760 -0.6915 4.6295 1.1422 0.1488 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 185 --- - -- cutpoint (score) - --- -1.57203 (0.529041), N = 258 moving right - --- -1.09637 (0.587387), N = 220 moving right - --- -0.635789 (0.666241), N = 171 moving right - --- -0.427397 (0.700808), N = 139 moving right - --- 0.227786 (0.747726), N = 87 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.747726, min to split: 0.999 +--- Computing oobag predictions: tree 186 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 96 + -- N preds made: 96 - -- time & status & weights in this node +--- Computing oobag predictions: tree 187 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 188 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.7464e-01 2.5602e-02 - 1.7900e+02 9.7101e-01 2.9320e-02 +--- Computing oobag predictions: tree 189 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 455 -------------- +--- Computing oobag predictions: tree 190 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 183 -- max leaves: 92 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 191 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 1 13 7 10 11 +--- Computing oobag predictions: tree 192 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 193 --- - 0.7277 0.2425 5.6060 -0.6314 0.7444 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 194 --- - -- cutpoint (score) - --- -0.984691 (0.634634), N = 194 moving right - --- -0.430854 (0.703806), N = 141 moving right - --- 0.031901 (0.737536), N = 113 moving right - --- 0.499691 (0.746337), N = 76 moving right - --- 1.80616 (0.662964), N = 27 moving right + -- N preds expected: 112 + -- N preds made: 112 - -- best stat: 0.746337, min to split: 0.999 +--- Computing oobag predictions: tree 195 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 196 --- - 5 15 10 4 13 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 197 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 0.9860 0.0322 -0.7918 0.0699 0.2757 +--- Computing oobag predictions: tree 198 --- + -- N preds expected: 108 + -- N preds made: 108 - -- cutpoint (score) - --- -0.815223 (0.537155), N = 242 moving right - --- -0.0785261 (0.655352), N = 160 moving right - --- 0.597019 (0.649786), N = 85 moving right - --- 1.67485 (0.610395), N = 29 moving right - --- 2.89156 (0.538606), N = 5 moving right +--- Computing oobag predictions: tree 199 --- - -- best stat: 0.655352, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 200 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 9 13 17 10 4 +--- Computing oobag predictions: tree 201 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 202 --- - 0.3499 0.1367 0.6396 -0.7856 -0.3054 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 203 --- - -- cutpoint (score) - --- 1.46692 (0.659634), N = 172 moving right - --- 1.53037 (0.650928), N = 158 moving right - --- 1.72192 (0.665105), N = 133 moving right - --- 2.27121 (0.643673), N = 72 moving right - --- 2.50336 (0.652331), N = 50 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.665105, min to split: 0.999 +--- Computing oobag predictions: tree 204 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 205 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 - 5.3300e+02 0 4.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 206 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.9638e-01 3.6232e-03 - 1.4000e+02 9.8913e-01 1.0896e-02 - 1.7900e+02 9.8188e-01 1.8222e-02 - 1.9800e+02 9.7464e-01 2.5602e-02 - 2.6400e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 207 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 456 -------------- +--- Computing oobag predictions: tree 208 --- -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 235 -- max leaves: 118 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 209 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 3 10 5 7 0 +--- Computing oobag predictions: tree 210 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 211 --- - 2.7159 -0.2456 0.6063 8.5630 0.0849 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 212 --- - -- cutpoint (score) - --- 0.0587319 (0.620011), N = 169 moving right - --- 0.392083 (0.653432), N = 87 moving right - --- 0.440614 (0.643597), N = 80 moving right - --- 0.665074 (0.641047), N = 53 moving right - --- 0.786404 (0.631029), N = 40 moving right + -- N preds expected: 115 + -- N preds made: 115 - -- best stat: 0.653432, min to split: 0.999 +--- Computing oobag predictions: tree 213 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 214 --- - 13 8 0 9 10 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 215 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - -0.1506 1.6175 -0.0740 -0.0888 -0.4266 +--- Computing oobag predictions: tree 216 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -1.17194 (0.554456), N = 240 moving right - --- -1.15731 (0.567779), N = 234 moving right - --- -0.78056 (0.687628), N = 179 moving right - --- 0.346564 (0.672958), N = 53 moving right - --- 0.978479 (0.638905), N = 40 moving right +--- Computing oobag predictions: tree 217 --- - -- best stat: 0.687628, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 218 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 14 11 15 3 10 +--- Computing oobag predictions: tree 219 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 220 --- - 0.2849 0.3828 0.1254 4.6896 -0.3119 + -- N preds expected: 114 + -- N preds made: 114 +--- Computing oobag predictions: tree 221 --- - -- cutpoint (score) - --- -0.583684 (0.548641), N = 243 moving right - --- -0.385432 (0.595548), N = 210 moving right - --- -0.0322586 (0.69383), N = 123 moving right - --- 0.719459 (0.653024), N = 44 moving right - --- 0.765586 (0.644128), N = 43 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.69383, min to split: 0.999 +--- Computing oobag predictions: tree 222 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 223 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 224 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 1.1000e+02 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7101e-01 2.9292e-02 - 1.7900e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 225 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 457 -------------- +--- Computing oobag predictions: tree 226 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 211 -- max leaves: 106 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 227 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 14 2 6 9 15 +--- Computing oobag predictions: tree 228 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 229 --- - 0.2033 -0.2568 2.7510 0.4566 -0.2322 + -- N preds expected: 90 + -- N preds made: 90 +--- Computing oobag predictions: tree 230 --- - -- cutpoint (score) - --- -0.614491 (0.584839), N = 229 moving right - --- -0.521034 (0.598168), N = 208 moving right - --- -0.474328 (0.634549), N = 189 moving right - --- -0.25319 (0.670491), N = 133 moving right - --- -0.185809 (0.698757), N = 114 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.698757, min to split: 0.999 +--- Computing oobag predictions: tree 231 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 106 + -- N preds made: 106 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 232 --- - 5 7 6 11 0 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 233 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 91 + -- N preds made: 91 - 0.0824 4.3506 2.9076 1.1610 0.0026 +--- Computing oobag predictions: tree 234 --- + -- N preds expected: 96 + -- N preds made: 96 - -- cutpoint (score) - --- -0.0101027 (0.734386), N = 117 moving right - --- 0.0319584 (0.727899), N = 112 moving right - --- 1.09822 (0.71386), N = 70 moving right - --- 1.45594 (0.709729), N = 60 moving right - --- 2.07149 (0.677271), N = 49 moving right +--- Computing oobag predictions: tree 235 --- - -- best stat: 0.734386, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 236 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 6 11 10 14 2 +--- Computing oobag predictions: tree 237 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 238 --- - 2.6207 1.2945 -0.3857 0.0348 0.1342 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 239 --- - -- cutpoint (score) - --- -0.53714 (0.659769), N = 176 moving right - --- -0.254381 (0.688535), N = 150 moving right - --- 0.230671 (0.706913), N = 101 moving right - --- 0.497832 (0.709249), N = 86 moving right - --- 1.73057 (0.686741), N = 56 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.709249, min to split: 0.999 +--- Computing oobag predictions: tree 240 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 108 + -- N preds made: 108 - -- time & status & weights in this node +--- Computing oobag predictions: tree 241 --- - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 242 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.8913e-01 1.0896e-02 - 1.3100e+02 9.8188e-01 1.8222e-02 - 1.4000e+02 9.7826e-01 2.1912e-02 - 1.9800e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 243 --- + -- N preds expected: 97 + -- N preds made: 97 ------------- Growing tree 458 -------------- +--- Computing oobag predictions: tree 244 --- -- N obs inbag: 276 -- N row inbag: 184 -- max nodes: 219 -- max leaves: 110 + -- N preds expected: 93 + -- N preds made: 93 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 245 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 15 12 0 7 2 +--- Computing oobag predictions: tree 246 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 247 --- - -0.1181 0.1282 -0.2141 7.0093 -0.5907 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 248 --- - -- cutpoint (score) - --- -0.9331 (0.519297), N = 258 moving right - --- -0.854081 (0.546323), N = 222 moving right - --- -0.751157 (0.593387), N = 174 moving right - --- -0.655095 (0.612189), N = 130 moving right - --- -0.0719866 (0.592475), N = 34 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.612189, min to split: 0.999 +--- Computing oobag predictions: tree 249 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 102 + -- N preds made: 102 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 250 --- - 11 12 10 9 8 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 251 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 0.4565 -0.0362 -0.4720 -0.3187 1.8069 +--- Computing oobag predictions: tree 252 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -1.60059 (0.544937), N = 245 moving right - --- -0.895141 (0.700353), N = 155 moving right - --- -0.845836 (0.718548), N = 143 moving right - --- -0.479105 (0.728823), N = 118 moving right - --- -0.401876 (0.723144), N = 107 moving right +--- Computing oobag predictions: tree 253 --- - -- best stat: 0.728823, min to split: 0.999 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 254 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 7 15 17 3 0 +--- Computing oobag predictions: tree 255 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 256 --- - 4.6436 -0.0532 0.4671 3.9445 -0.0984 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 257 --- - -- cutpoint (score) - --- 0.472722 (0.517416), N = 267 moving right - --- 1.30754 (0.592076), N = 180 moving right - --- 1.36927 (0.640166), N = 138 moving right - --- 1.37486 (0.644838), N = 136 moving right - --- 1.77226 (0.656917), N = 69 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.656917, min to split: 0.999 +--- Computing oobag predictions: tree 258 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 109 + -- N preds made: 109 - -- time & status & weights in this node +--- Computing oobag predictions: tree 259 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 260 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 261 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 459 -------------- +--- Computing oobag predictions: tree 262 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 173 -- max leaves: 87 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 263 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0 12 7 2 1 +--- Computing oobag predictions: tree 264 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 265 --- - 0.1632 0.2111 12.0703 -1.1873 0.4129 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 266 --- - -- cutpoint (score) - --- -1.38954 (0.579313), N = 195 moving right - --- -1.22024 (0.640204), N = 160 moving right - --- -1.05937 (0.635365), N = 126 moving right - --- -0.857765 (0.661623), N = 101 moving right - --- 10.8154 (0.577225), N = 10 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.661623, min to split: 0.999 +--- Computing oobag predictions: tree 267 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 268 --- - 4 0 5 8 16 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 269 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 0.2974 -0.3667 0.4707 2.0504 0.5729 +--- Computing oobag predictions: tree 270 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -1.21964 (0.682305), N = 178 moving right - --- -0.414079 (0.78429), N = 110 moving right - --- 0.168469 (0.753316), N = 82 moving right - --- 2.46808 (0.629569), N = 26 moving right - --- 5.24545 (0.543083), N = 7 moving right +--- Computing oobag predictions: tree 271 --- - -- best stat: 0.78429, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 272 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 7 2 3 17 12 +--- Computing oobag predictions: tree 273 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 274 --- - 10.0201 -1.4666 1.3150 0.6885 0.2220 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 275 --- - -- cutpoint (score) - --- 0.489535 (0.671915), N = 188 moving right - --- 0.54768 (0.709545), N = 154 moving right - --- 0.565312 (0.743466), N = 137 moving right - --- 0.569406 (0.751769), N = 133 moving right - --- 1.26567 (0.699253), N = 75 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.751769, min to split: 0.999 +--- Computing oobag predictions: tree 276 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 277 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 278 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 5.1000e+01 9.9638e-01 3.6232e-03 - 1.7900e+02 9.8913e-01 1.0896e-02 - 1.9800e+02 9.8551e-01 1.4559e-02 - 3.0400e+02 9.7826e-01 2.1912e-02 - 3.2100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 279 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 460 -------------- +--- Computing oobag predictions: tree 280 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 241 -- max leaves: 121 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 281 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 0 17 1 9 8 +--- Computing oobag predictions: tree 282 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 283 --- - 0.0497 0.2395 0.4539 -0.2294 1.8229 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 284 --- - -- cutpoint (score) - --- -0.420482 (0.559321), N = 236 moving right - --- -0.312835 (0.597064), N = 220 moving right - --- -0.145001 (0.634961), N = 203 moving right - --- 0.305814 (0.721467), N = 137 moving right - --- 0.714959 (0.763679), N = 100 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.763679, min to split: 0.999 +--- Computing oobag predictions: tree 285 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 286 --- - 2 16 10 17 14 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 287 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 116 + -- N preds made: 116 - -0.6598 0.3282 -0.7790 0.4260 0.2903 +--- Computing oobag predictions: tree 288 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -0.0211941 (0.593654), N = 222 moving right - --- 0.907522 (0.683184), N = 127 moving right - --- 0.967657 (0.693261), N = 120 moving right - --- 2.86803 (0.577605), N = 15 moving right - --- 3.09685 (0.565159), N = 12 moving right +--- Computing oobag predictions: tree 289 --- - -- best stat: 0.693261, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 290 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 6 1 17 3 10 +--- Computing oobag predictions: tree 291 --- + -- N preds expected: 110 + -- N preds made: 110 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 292 --- - -0.6012 0.3379 0.3794 6.3481 -0.5350 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 293 --- - -- cutpoint (score) - --- 0.427288 (0.569975), N = 230 moving right - --- 1.59516 (0.685978), N = 84 moving right - --- 1.9042 (0.68723), N = 51 moving right - --- 2.46453 (0.636945), N = 24 moving right - --- 2.53837 (0.629373), N = 23 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.68723, min to split: 0.999 +--- Computing oobag predictions: tree 294 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 295 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 296 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.4000e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 297 --- + -- N preds expected: 97 + -- N preds made: 97 ------------- Growing tree 461 -------------- +--- Computing oobag predictions: tree 298 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 299 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 16 6 0 4 10 +--- Computing oobag predictions: tree 300 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 301 --- - 0.5607 -0.7635 -0.2885 0.4714 -0.6129 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 302 --- - -- cutpoint (score) - --- -0.418752 (0.634485), N = 164 moving right - --- -0.408276 (0.637676), N = 163 moving right - --- -0.290434 (0.640325), N = 152 moving right - --- 0.222382 (0.654507), N = 84 moving right - --- 0.308979 (0.653798), N = 80 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.654507, min to split: 0.999 +--- Computing oobag predictions: tree 303 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 304 --- - 9 7 4 0 8 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 305 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 113 + -- N preds made: 113 - -0.3058 11.5796 0.0126 -0.2862 2.2816 +--- Computing oobag predictions: tree 306 --- + -- N preds expected: 96 + -- N preds made: 96 - -- cutpoint (score) - --- -1.37437 (0.589142), N = 222 moving right - --- -1.07344 (0.680974), N = 150 moving right - --- -0.984687 (0.706691), N = 139 moving right - --- -0.837914 (0.734264), N = 122 moving right - --- -0.54405 (0.744692), N = 98 moving right +--- Computing oobag predictions: tree 307 --- - -- best stat: 0.744692, min to split: 0.999 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 308 --- - -- columns sampled (showing up to 5) + -- N preds expected: 111 + -- N preds made: 111 - 8 6 7 0 1 +--- Computing oobag predictions: tree 309 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 310 --- - 1.9769 -0.1786 11.7969 -0.2290 0.4059 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 311 --- - -- cutpoint (score) - --- -1.46172 (0.583365), N = 235 moving right - --- -0.816657 (0.717036), N = 135 moving right - --- -0.400728 (0.764965), N = 96 moving right - --- -0.239786 (0.767801), N = 92 moving right - --- 8.97695 (0.578672), N = 12 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.767801, min to split: 0.999 +--- Computing oobag predictions: tree 312 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 313 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 90 + -- N preds made: 90 +--- Computing oobag predictions: tree 314 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 100 + -- N preds made: 100 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 315 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 462 -------------- +--- Computing oobag predictions: tree 316 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 317 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 7 13 17 12 16 +--- Computing oobag predictions: tree 318 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 319 --- - 16.5460 0.1802 0.6492 0.0805 0.4011 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 320 --- - -- cutpoint (score) - --- 0.797122 (0.543297), N = 247 moving right - --- 1.76629 (0.700439), N = 140 moving right - --- 2.02308 (0.715224), N = 107 moving right - --- 2.7028 (0.700419), N = 56 moving right - --- 2.71739 (0.692406), N = 54 moving right + -- N preds expected: 110 + -- N preds made: 110 - -- best stat: 0.715224, min to split: 0.999 +--- Computing oobag predictions: tree 321 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 322 --- - 13 6 16 3 9 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 323 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 0.1968 1.9891 0.4470 8.1939 0.3159 +--- Computing oobag predictions: tree 324 --- + -- N preds expected: 98 + -- N preds made: 98 - -- cutpoint (score) - --- -0.602541 (0.568596), N = 240 moving right - --- -0.433541 (0.633328), N = 208 moving right - --- -0.37436 (0.659542), N = 194 moving right - --- 0.0293667 (0.749146), N = 125 moving right - --- 2.18975 (0.629708), N = 25 moving right +--- Computing oobag predictions: tree 325 --- - -- best stat: 0.749146, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 326 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 11 6 15 12 14 +--- Computing oobag predictions: tree 327 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 328 --- - 1.1131 1.9486 -0.3600 0.1399 0.0817 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 329 --- - -- cutpoint (score) - --- -1.45043 (0.518445), N = 267 moving right - --- -0.763059 (0.656268), N = 190 moving right - --- -0.183634 (0.751037), N = 115 moving right - --- 0.111149 (0.731331), N = 90 moving right - --- 2.97687 (0.542626), N = 14 moving right + -- N preds expected: 106 + -- N preds made: 106 - -- best stat: 0.751037, min to split: 0.999 +--- Computing oobag predictions: tree 330 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 331 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 3.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 332 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 105 + -- N preds made: 105 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8188e-01 1.8208e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 333 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 463 -------------- +--- Computing oobag predictions: tree 334 --- -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 213 -- max leaves: 107 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 335 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 15 12 8 7 13 +--- Computing oobag predictions: tree 336 --- + -- N preds expected: 96 + -- N preds made: 96 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 337 --- - -0.1347 0.1699 1.7752 2.2624 -0.0201 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 338 --- - -- cutpoint (score) - --- -0.897449 (0.677547), N = 171 moving right - --- -0.888249 (0.673318), N = 166 moving right - --- -0.825817 (0.687069), N = 158 moving right - --- -0.155813 (0.733852), N = 98 moving right - --- 1.30531 (0.673166), N = 39 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.733852, min to split: 0.999 +--- Computing oobag predictions: tree 339 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 92 + -- N preds made: 92 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 340 --- - 15 6 10 9 8 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 341 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - -0.1111 1.6616 -0.6861 -0.3818 2.0284 +--- Computing oobag predictions: tree 342 --- + -- N preds expected: 97 + -- N preds made: 97 - -- cutpoint (score) - --- -1.66038 (0.540364), N = 239 moving right - --- -1.28211 (0.601505), N = 206 moving right - --- -1.08415 (0.670911), N = 171 moving right - --- -0.557206 (0.730642), N = 128 moving right - --- 0.273595 (0.739774), N = 84 moving right +--- Computing oobag predictions: tree 343 --- - -- best stat: 0.739774, min to split: 0.999 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 344 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0 6 4 10 15 +--- Computing oobag predictions: tree 345 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 346 --- - -0.0601 1.9285 0.6728 -0.9889 -0.1252 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 347 --- - -- cutpoint (score) - --- -0.686035 (0.573743), N = 226 moving right - --- 0.103062 (0.669653), N = 163 moving right - --- 1.283 (0.695202), N = 64 moving right - --- 1.41519 (0.703444), N = 61 moving right - --- 1.43203 (0.706372), N = 60 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.706372, min to split: 0.999 +--- Computing oobag predictions: tree 348 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 349 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 4.0000e+00 - 2.6400e+02 1.0000e+00 7.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 350 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 95 + -- N preds made: 95 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.8188e-01 1.8235e-02 - 1.1000e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 351 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 464 -------------- +--- Computing oobag predictions: tree 352 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 113 + -- N preds made: 113 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 353 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 1 4 6 8 11 +--- Computing oobag predictions: tree 354 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 355 --- - 0.2547 0.4520 0.6031 1.4417 0.5050 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 356 --- - -- cutpoint (score) - --- -1.3262 (0.543536), N = 256 moving right - --- -0.99582 (0.629516), N = 201 moving right - --- -0.0650013 (0.748095), N = 114 moving right - --- 0.129597 (0.766824), N = 98 moving right - --- 0.756161 (0.696789), N = 56 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.766824, min to split: 0.999 +--- Computing oobag predictions: tree 357 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 108 + -- N preds made: 108 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 358 --- - 2 13 17 11 7 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 359 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0.6334 0.2763 0.4538 0.7729 3.6173 +--- Computing oobag predictions: tree 360 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- 0.678019 (0.540668), N = 255 moving right - --- 1.55392 (0.653446), N = 159 moving right - --- 1.58726 (0.676798), N = 148 moving right - --- 2.64487 (0.725107), N = 59 moving right - --- 4.39662 (0.586558), N = 19 moving right +--- Computing oobag predictions: tree 361 --- - -- best stat: 0.725107, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 362 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 14 15 6 17 9 +--- Computing oobag predictions: tree 363 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 364 --- - 0.3167 -0.0999 1.8685 0.6492 0.3835 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 365 --- - -- cutpoint (score) - --- 0.640424 (0.523223), N = 265 moving right - --- 1.41223 (0.602911), N = 210 moving right - --- 1.82894 (0.681699), N = 157 moving right - --- 1.94117 (0.694499), N = 144 moving right - --- 2.19455 (0.716246), N = 115 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.716246, min to split: 0.999 +--- Computing oobag predictions: tree 366 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 367 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 368 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 94 + -- N preds made: 94 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.7464e-01 2.5575e-02 - 1.1000e+02 9.7101e-01 2.9293e-02 - 1.8600e+02 9.6014e-01 4.0487e-02 +--- Computing oobag predictions: tree 369 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 465 -------------- +--- Computing oobag predictions: tree 370 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 253 -- max leaves: 127 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 371 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 0 12 10 3 16 +--- Computing oobag predictions: tree 372 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 373 --- - 0.1427 0.0275 -0.6357 3.7194 0.6744 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 374 --- - -- cutpoint (score) - --- -0.575726 (0.625956), N = 202 moving right - --- -0.555506 (0.634318), N = 197 moving right - --- -0.481739 (0.636144), N = 194 moving right - --- -0.280829 (0.659403), N = 169 moving right - --- 3.85597 (0.589024), N = 22 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.659403, min to split: 0.999 +--- Computing oobag predictions: tree 375 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 376 --- - 4 17 10 14 13 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 377 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 0.4375 0.2081 -0.7511 0.2407 0.3850 +--- Computing oobag predictions: tree 378 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- -0.11395 (0.599363), N = 233 moving right - --- 1.09662 (0.715036), N = 127 moving right - --- 1.28199 (0.695714), N = 107 moving right - --- 1.94208 (0.659931), N = 62 moving right - --- 2.86831 (0.574918), N = 18 moving right +--- Computing oobag predictions: tree 379 --- - -- best stat: 0.715036, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 380 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 17 1 0 12 4 +--- Computing oobag predictions: tree 381 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 382 --- - 0.3679 0.3815 -0.1132 0.1339 0.6449 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 383 --- - -- cutpoint (score) - --- 0.248021 (0.524106), N = 263 moving right - --- 0.661046 (0.593695), N = 231 moving right - --- 0.912237 (0.64396), N = 203 moving right - --- 1.64338 (0.68722), N = 111 moving right - --- 1.7908 (0.695337), N = 95 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.695337, min to split: 0.999 +--- Computing oobag predictions: tree 384 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 385 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 386 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 108 + -- N preds made: 108 - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.8188e-01 1.8196e-02 - 1.1000e+02 9.7464e-01 2.5576e-02 - 1.4000e+02 9.7101e-01 2.9293e-02 - 1.7900e+02 9.6377e-01 3.6756e-02 +--- Computing oobag predictions: tree 387 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 466 -------------- +--- Computing oobag predictions: tree 388 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 389 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0 6 12 17 13 +--- Computing oobag predictions: tree 390 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 391 --- - -0.0569 1.0614 -0.0438 0.7813 0.6338 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 392 --- - -- cutpoint (score) - --- 2.15572 (0.717676), N = 157 moving right - --- 2.25329 (0.706257), N = 143 moving right - --- 3.1484 (0.654693), N = 59 moving right - --- 3.46456 (0.633956), N = 44 moving right - --- 4.52895 (0.529737), N = 10 moving right + -- N preds expected: 118 + -- N preds made: 118 - -- best stat: 0.717676, min to split: 0.999 +--- Computing oobag predictions: tree 393 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 394 --- - 17 7 16 1 9 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 395 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.5975 6.9908 0.4011 0.3080 0.3586 +--- Computing oobag predictions: tree 396 --- + -- N preds expected: 91 + -- N preds made: 91 - -- cutpoint (score) - --- 0.817825 (0.562289), N = 246 moving right - --- 1.51079 (0.702074), N = 155 moving right - --- 1.79164 (0.72063), N = 130 moving right - --- 2.77796 (0.668689), N = 51 moving right - --- 4.07748 (0.613358), N = 22 moving right +--- Computing oobag predictions: tree 397 --- - -- best stat: 0.72063, min to split: 0.999 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 398 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 14 4 13 12 8 +--- Computing oobag predictions: tree 399 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 400 --- - 0.0930 0.5309 0.2101 -0.1115 1.3699 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 401 --- - -- cutpoint (score) - --- -1.02088 (0.537112), N = 259 moving right - --- -0.756694 (0.64593), N = 201 moving right - --- -0.499709 (0.711074), N = 163 moving right - --- 0.188795 (0.725566), N = 87 moving right - --- 0.58429 (0.699615), N = 62 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.725566, min to split: 0.999 +--- Computing oobag predictions: tree 402 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 403 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 4.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 5.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 404 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.7464e-01 2.5548e-02 - 7.7000e+01 9.7101e-01 2.9265e-02 - 1.1000e+02 9.6739e-01 3.2997e-02 +--- Computing oobag predictions: tree 405 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 467 -------------- +--- Computing oobag predictions: tree 406 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 241 -- max leaves: 121 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 407 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 17 1 8 5 0 +--- Computing oobag predictions: tree 408 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 409 --- - 0.3685 0.4539 1.4355 0.5630 -0.0920 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 410 --- - -- cutpoint (score) - --- 0.0221543 (0.609924), N = 221 moving right - --- 0.537524 (0.703174), N = 172 moving right - --- 0.544448 (0.705412), N = 171 moving right - --- 2.9561 (0.66291), N = 36 moving right - --- 4.01212 (0.622384), N = 25 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.705412, min to split: 0.999 +--- Computing oobag predictions: tree 411 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 97 + -- N preds made: 97 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 412 --- - 10 4 12 13 2 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 413 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - -0.9712 0.8730 -0.1673 0.4511 -1.3511 +--- Computing oobag predictions: tree 414 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -2.40648 (0.535384), N = 255 moving right - --- -2.0041 (0.581031), N = 233 moving right - --- -0.15034 (0.743094), N = 91 moving right - --- 0.419521 (0.695774), N = 53 moving right - --- 0.57852 (0.672164), N = 48 moving right +--- Computing oobag predictions: tree 415 --- - -- best stat: 0.743094, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 416 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 3 5 2 16 13 +--- Computing oobag predictions: tree 417 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 418 --- - 5.8655 1.0678 -1.0674 0.5758 0.5027 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 419 --- - -- cutpoint (score) - --- -1.77894 (0.561716), N = 244 moving right - --- -1.74437 (0.571213), N = 239 moving right - --- -1.36448 (0.651821), N = 198 moving right - --- -0.023488 (0.721823), N = 95 moving right - --- 0.266829 (0.705089), N = 75 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.721823, min to split: 0.999 +--- Computing oobag predictions: tree 420 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 112 + -- N preds made: 112 - -- time & status & weights in this node +--- Computing oobag predictions: tree 421 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 422 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 423 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 468 -------------- +--- Computing oobag predictions: tree 424 --- -- N obs inbag: 276 -- N row inbag: 173 -- max nodes: 239 -- max leaves: 120 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 425 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 17 10 7 16 11 +--- Computing oobag predictions: tree 426 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 427 --- - 0.1695 -0.3123 5.1973 0.2026 1.2547 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 428 --- - -- cutpoint (score) - --- -1.03223 (0.519166), N = 264 moving right - --- -0.562856 (0.610005), N = 213 moving right - --- -0.422942 (0.622585), N = 201 moving right - --- 0.206764 (0.722139), N = 127 moving right - --- 1.27224 (0.714114), N = 63 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.722139, min to split: 0.999 +--- Computing oobag predictions: tree 429 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 430 --- - 0 14 9 6 13 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 431 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - -0.4420 0.3210 0.1619 1.0592 0.3303 +--- Computing oobag predictions: tree 432 --- + -- N preds expected: 93 + -- N preds made: 93 - -- cutpoint (score) - --- -0.778136 (0.570353), N = 234 moving right - --- -0.451978 (0.626627), N = 176 moving right - --- -0.0643766 (0.647685), N = 120 moving right - --- 0.63139 (0.57331), N = 41 moving right - --- 1.40348 (0.5307), N = 9 moving right +--- Computing oobag predictions: tree 433 --- - -- best stat: 0.647685, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 434 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 1 14 12 0 7 +--- Computing oobag predictions: tree 435 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 436 --- - 0.5239 0.5637 0.0238 -0.4856 7.3184 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 437 --- - -- cutpoint (score) - --- -0.899105 (0.570353), N = 228 moving right - --- -0.555088 (0.624951), N = 177 moving right - --- -0.256935 (0.624458), N = 148 moving right - --- -0.163648 (0.646285), N = 139 moving right - --- -0.0302861 (0.647311), N = 119 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.647311, min to split: 0.999 +--- Computing oobag predictions: tree 438 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 439 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 440 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 441 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 469 -------------- +--- Computing oobag predictions: tree 442 --- -- N obs inbag: 276 -- N row inbag: 168 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 443 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 7 8 14 11 16 +--- Computing oobag predictions: tree 444 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 445 --- - 4.3551 1.8068 0.1795 0.1544 0.4264 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 446 --- - -- cutpoint (score) - --- -1.58605 (0.531717), N = 257 moving right - --- -0.849708 (0.711839), N = 146 moving right - --- 0.0829573 (0.727414), N = 91 moving right - --- 0.408783 (0.715659), N = 71 moving right - --- 3.95046 (0.63157), N = 23 moving right + -- N preds expected: 94 + -- N preds made: 94 - -- best stat: 0.727414, min to split: 0.999 +--- Computing oobag predictions: tree 447 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 113 + -- N preds made: 113 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 448 --- - 4 9 12 7 3 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 449 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 0.7131 0.5467 -0.0659 3.0508 6.5424 +--- Computing oobag predictions: tree 450 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -0.23178 (0.57225), N = 232 moving right - --- -0.0495306 (0.636461), N = 187 moving right - --- 0.568189 (0.69471), N = 97 moving right - --- 0.682301 (0.69872), N = 72 moving right - --- 1.40509 (0.632767), N = 31 moving right +--- Computing oobag predictions: tree 451 --- - -- best stat: 0.69872, min to split: 0.999 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 452 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 2 12 4 0 8 +--- Computing oobag predictions: tree 453 --- + -- N preds expected: 91 + -- N preds made: 91 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 454 --- - -0.4718 -0.0543 0.4735 -0.4398 2.2353 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 455 --- - -- cutpoint (score) - --- -1.55348 (0.625378), N = 189 moving right - --- -0.66182 (0.683417), N = 100 moving right - --- 0.291129 (0.714106), N = 57 moving right - --- 1.39301 (0.654303), N = 37 moving right - --- 3.48598 (0.587531), N = 14 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.714106, min to split: 0.999 +--- Computing oobag predictions: tree 456 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 95 + -- N preds made: 95 - -- time & status & weights in this node +--- Computing oobag predictions: tree 457 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 458 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 95 + -- N preds made: 95 - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.1000e+02 9.7826e-01 2.1899e-02 - 1.7900e+02 9.7464e-01 2.5603e-02 +--- Computing oobag predictions: tree 459 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 470 -------------- +--- Computing oobag predictions: tree 460 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 217 -- max leaves: 109 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 461 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 2 17 16 14 3 +--- Computing oobag predictions: tree 462 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 463 --- - -0.2390 0.3893 0.3127 0.2354 9.4460 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 464 --- - -- cutpoint (score) - --- 0.228758 (0.551606), N = 251 moving right - --- 0.39306 (0.58574), N = 224 moving right - --- 0.648351 (0.645062), N = 179 moving right - --- 0.711083 (0.649263), N = 169 moving right - --- 0.748592 (0.641992), N = 162 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.649263, min to split: 0.999 +--- Computing oobag predictions: tree 465 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 466 --- - 17 3 10 4 7 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 467 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 0.3025 8.4149 -0.2439 0.5232 3.3055 +--- Computing oobag predictions: tree 468 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- 0.375223 (0.523975), N = 255 moving right - --- 0.851319 (0.631913), N = 175 moving right - --- 1.52515 (0.661099), N = 81 moving right - --- 1.72519 (0.652636), N = 63 moving right - --- 1.76135 (0.641891), N = 53 moving right +--- Computing oobag predictions: tree 469 --- - -- best stat: 0.661099, min to split: 0.999 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 470 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 17 16 13 10 2 +--- Computing oobag predictions: tree 471 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 472 --- - 0.4648 0.4338 0.4527 -0.6548 -0.4346 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 473 --- - -- cutpoint (score) - --- -0.295414 (0.561159), N = 241 moving right - --- 0.453195 (0.653262), N = 169 moving right - --- 1.96144 (0.675439), N = 52 moving right - --- 2.12849 (0.65514), N = 40 moving right - --- 2.20984 (0.646738), N = 38 moving right + -- N preds expected: 88 + -- N preds made: 88 - -- best stat: 0.675439, min to split: 0.999 +--- Computing oobag predictions: tree 474 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 475 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 476 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.7826e-01 2.1898e-02 - 1.8600e+02 9.7464e-01 2.5602e-02 +--- Computing oobag predictions: tree 477 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 471 -------------- +--- Computing oobag predictions: tree 478 --- -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 219 -- max leaves: 110 + -- N preds expected: 82 + -- N preds made: 82 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 479 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 6 15 12 9 4 +--- Computing oobag predictions: tree 480 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 481 --- - 1.6289 0.0051 0.0697 0.2451 1.1454 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 482 --- - -- cutpoint (score) - --- -0.0823693 (0.568918), N = 212 moving right - --- -0.0634397 (0.574492), N = 205 moving right - --- 0.203746 (0.656639), N = 155 moving right - --- 0.972086 (0.611559), N = 127 moving right - --- 2.60663 (0.566546), N = 18 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.656639, min to split: 0.999 +--- Computing oobag predictions: tree 483 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 93 + -- N preds made: 93 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 484 --- - 5 2 9 15 6 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 485 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 1.3058 -0.4044 0.3094 -0.0433 1.8657 +--- Computing oobag predictions: tree 486 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -0.602864 (0.549311), N = 255 moving right - --- -0.527552 (0.593652), N = 217 moving right - --- -0.442488 (0.638553), N = 176 moving right - --- -0.265754 (0.66886), N = 133 moving right - --- 0.790406 (0.58772), N = 70 moving right +--- Computing oobag predictions: tree 487 --- - -- best stat: 0.66886, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 488 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 16 7 4 2 0 +--- Computing oobag predictions: tree 489 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 490 --- - 0.5917 2.2887 1.0702 -0.0069 -0.7578 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 491 --- - -- cutpoint (score) - --- -1.13767 (0.546938), N = 254 moving right - --- -0.844256 (0.568538), N = 241 moving right - --- -0.492164 (0.60171), N = 210 moving right - --- 0.514291 (0.71826), N = 101 moving right - --- 0.983746 (0.705099), N = 66 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.71826, min to split: 0.999 +--- Computing oobag predictions: tree 492 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 493 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 494 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 94 + -- N preds made: 94 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 495 --- + -- N preds expected: 108 + -- N preds made: 108 ------------- Growing tree 472 -------------- +--- Computing oobag predictions: tree 496 --- -- N obs inbag: 276 -- N row inbag: 170 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 497 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 4 17 9 8 2 +--- Computing oobag predictions: tree 498 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 499 --- - 0.0982 0.3045 -0.5046 1.9729 -1.0348 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 0 --- - -- cutpoint (score) - --- -1.55776 (0.527539), N = 259 moving right - --- -0.900969 (0.663498), N = 175 moving right - --- -0.306467 (0.745905), N = 124 moving right - --- 0.0381364 (0.769076), N = 108 moving right - --- 0.19522 (0.767196), N = 96 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.769076, min to split: 0.999 +--- Computing oobag predictions: tree 1 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 2 --- - 9 17 13 12 10 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 3 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - -0.3285 0.3950 0.6549 -0.1107 -0.6546 +--- Computing oobag predictions: tree 4 --- + -- N preds expected: 100 + -- N preds made: 100 - -- cutpoint (score) - --- 0.148859 (0.573046), N = 231 moving right - --- 1.13922 (0.668387), N = 136 moving right - --- 1.72758 (0.685186), N = 83 moving right - --- 2.00969 (0.64018), N = 63 moving right - --- 3.44942 (0.530568), N = 6 moving right +--- Computing oobag predictions: tree 5 --- - -- best stat: 0.685186, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 6 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 1 8 6 17 7 +--- Computing oobag predictions: tree 7 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 8 --- - 0.3440 1.5559 0.8180 0.2988 3.3462 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 9 --- - -- cutpoint (score) - --- -0.665833 (0.525198), N = 261 moving right - --- -0.537022 (0.539031), N = 256 moving right - --- -0.249408 (0.560656), N = 240 moving right - --- -0.239173 (0.562599), N = 238 moving right - --- 9.07165 (0.530735), N = 5 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.562599, min to split: 0.999 +--- Computing oobag predictions: tree 10 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 11 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 12 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.7000e+01 9.8551e-01 1.4533e-02 - 1.3100e+02 9.8188e-01 1.8209e-02 - 1.4000e+02 9.7464e-01 2.5589e-02 - 1.8600e+02 9.7101e-01 2.9307e-02 +--- Computing oobag predictions: tree 13 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 473 -------------- +--- Computing oobag predictions: tree 14 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 225 -- max leaves: 113 + -- N preds expected: 93 + -- N preds made: 93 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 15 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 1 11 3 12 7 +--- Computing oobag predictions: tree 16 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 17 --- - 0.4756 0.8676 6.3421 0.2308 2.9021 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 18 --- - -- cutpoint (score) - --- -0.529029 (0.684528), N = 184 moving right - --- -0.464393 (0.70609), N = 171 moving right - --- 0.537338 (0.725239), N = 86 moving right - --- 1.4539 (0.657412), N = 44 moving right - --- 10.0864 (0.550228), N = 10 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.725239, min to split: 0.999 +--- Computing oobag predictions: tree 19 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 20 --- - 15 10 8 17 6 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 21 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - -0.1333 -0.4635 1.8540 0.2422 1.8272 +--- Computing oobag predictions: tree 22 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -0.598663 (0.623136), N = 205 moving right - --- -0.541415 (0.639048), N = 198 moving right - --- -0.0310273 (0.708072), N = 158 moving right - --- 0.676992 (0.762832), N = 106 moving right - --- 2.76981 (0.678053), N = 39 moving right +--- Computing oobag predictions: tree 23 --- - -- best stat: 0.762832, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 24 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 12 4 7 13 14 +--- Computing oobag predictions: tree 25 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 26 --- - 0.1449 0.5946 4.2241 0.4490 0.4391 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 27 --- - -- cutpoint (score) - --- -0.803788 (0.53304), N = 253 moving right - --- -0.661187 (0.556506), N = 236 moving right - --- -0.449447 (0.599003), N = 212 moving right - --- 0.412306 (0.686038), N = 118 moving right - --- 1.56487 (0.61982), N = 35 moving right + -- N preds expected: 110 + -- N preds made: 110 - -- best stat: 0.686038, min to split: 0.999 +--- Computing oobag predictions: tree 28 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 105 + -- N preds made: 105 - -- time & status & weights in this node +--- Computing oobag predictions: tree 29 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 30 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 92 + -- N preds made: 92 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.1000e+01 9.7464e-01 2.5575e-02 - 7.7000e+01 9.7101e-01 2.9293e-02 - 1.4000e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 31 --- + -- N preds expected: 92 + -- N preds made: 92 ------------- Growing tree 474 -------------- +--- Computing oobag predictions: tree 32 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 237 -- max leaves: 119 + -- N preds expected: 89 + -- N preds made: 89 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 33 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 8 2 3 13 5 +--- Computing oobag predictions: tree 34 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 35 --- - 1.1139 -0.9142 9.4864 0.1817 0.4654 + -- N preds expected: 88 + -- N preds made: 88 +--- Computing oobag predictions: tree 36 --- - -- cutpoint (score) - --- -1.68311 (0.571287), N = 241 moving right - --- -1.25675 (0.709504), N = 173 moving right - --- -1.17477 (0.715039), N = 166 moving right - --- -0.550573 (0.74468), N = 104 moving right - --- -0.393462 (0.719359), N = 84 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.74468, min to split: 0.999 +--- Computing oobag predictions: tree 37 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 38 --- - 12 10 7 15 14 + -- N preds expected: 92 + -- N preds made: 92 +--- Computing oobag predictions: tree 39 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 0.1170 -0.3890 5.0249 -0.1563 0.4175 +--- Computing oobag predictions: tree 40 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- -1.34206 (0.499158), N = 269 moving right - --- -0.87554 (0.531791), N = 256 moving right - --- -0.308147 (0.602199), N = 191 moving right - --- 0.305061 (0.648222), N = 81 moving right - --- 0.523242 (0.638535), N = 56 moving right +--- Computing oobag predictions: tree 41 --- - -- best stat: 0.648222, min to split: 0.999 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 42 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 16 3 12 15 4 +--- Computing oobag predictions: tree 43 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 44 --- - 0.3043 10.2174 0.0854 0.0187 0.8942 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 45 --- - -- cutpoint (score) - --- -0.255806 (0.549314), N = 249 moving right - --- -0.0619037 (0.636908), N = 196 moving right - --- -0.00421503 (0.632139), N = 192 moving right - --- 0.407601 (0.657965), N = 153 moving right - --- 1.00279 (0.655216), N = 67 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.657965, min to split: 0.999 +--- Computing oobag predictions: tree 46 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 96 + -- N preds made: 96 - -- time & status & weights in this node +--- Computing oobag predictions: tree 47 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 48 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 49 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 475 -------------- +--- Computing oobag predictions: tree 50 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 227 -- max leaves: 114 + -- N preds expected: 110 + -- N preds made: 110 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 51 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 3 2 12 1 17 +--- Computing oobag predictions: tree 52 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 53 --- - 2.4587 -0.5955 0.2010 0.0382 0.6575 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 54 --- - -- cutpoint (score) - --- 1.29325 (0.668261), N = 156 moving right - --- 1.2964 (0.670865), N = 155 moving right - --- 1.37919 (0.674274), N = 127 moving right - --- 1.98535 (0.641164), N = 65 moving right - --- 2.04493 (0.620247), N = 46 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.674274, min to split: 0.999 +--- Computing oobag predictions: tree 55 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 56 --- - 2 16 1 17 8 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 57 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - -0.3533 0.3047 0.1484 0.4257 1.5737 +--- Computing oobag predictions: tree 58 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.377223 (0.595669), N = 228 moving right - --- 0.212537 (0.707215), N = 146 moving right - --- 0.709356 (0.744919), N = 106 moving right - --- 1.09518 (0.747057), N = 83 moving right - --- 1.55227 (0.73444), N = 59 moving right +--- Computing oobag predictions: tree 59 --- - -- best stat: 0.747057, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 60 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 0 17 12 6 2 +--- Computing oobag predictions: tree 61 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 62 --- - 0.1274 0.6693 0.1566 1.5068 -0.7191 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 63 --- - -- cutpoint (score) - --- 0.627836 (0.577039), N = 230 moving right - --- 0.643469 (0.584237), N = 227 moving right - --- 1.34486 (0.677725), N = 156 moving right - --- 2.07037 (0.624248), N = 52 moving right - --- 3.54871 (0.532264), N = 9 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.677725, min to split: 0.999 +--- Computing oobag predictions: tree 64 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 65 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 5.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 66 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 115 + -- N preds made: 115 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8551e-01 1.4532e-02 - 7.7000e+01 9.8188e-01 1.8209e-02 - 1.8600e+02 9.6377e-01 3.6659e-02 - 1.9800e+02 9.5652e-01 4.4178e-02 +--- Computing oobag predictions: tree 67 --- + -- N preds expected: 97 + -- N preds made: 97 ------------- Growing tree 476 -------------- +--- Computing oobag predictions: tree 68 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 213 -- max leaves: 107 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 69 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 16 6 13 0 5 +--- Computing oobag predictions: tree 70 --- + -- N preds expected: 100 + -- N preds made: 100 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 71 --- - 0.7336 1.2303 0.4638 -0.2590 1.3278 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 72 --- - -- cutpoint (score) - --- -0.514933 (0.652339), N = 201 moving right - --- -0.174478 (0.674824), N = 166 moving right - --- 1.77185 (0.648143), N = 35 moving right - --- 3.43962 (0.546055), N = 10 moving right - --- 3.74931 (0.519454), N = 5 moving right + -- N preds expected: 99 + -- N preds made: 99 - -- best stat: 0.674824, min to split: 0.999 +--- Computing oobag predictions: tree 73 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 97 + -- N preds made: 97 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 74 --- - 15 7 5 17 9 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 75 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 92 + -- N preds made: 92 - -0.1241 8.0343 0.7337 0.5136 0.1973 +--- Computing oobag predictions: tree 76 --- + -- N preds expected: 110 + -- N preds made: 110 - -- cutpoint (score) - --- 0.996869 (0.593395), N = 231 moving right - --- 1.89165 (0.690564), N = 142 moving right - --- 2.18183 (0.700723), N = 90 moving right - --- 2.36463 (0.696627), N = 70 moving right - --- 10.343 (0.560911), N = 12 moving right +--- Computing oobag predictions: tree 77 --- - -- best stat: 0.700723, min to split: 0.999 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 78 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 11 8 14 9 3 +--- Computing oobag predictions: tree 79 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 80 --- - 0.9564 1.6689 -0.2220 -0.3488 3.4413 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 81 --- - -- cutpoint (score) - --- -1.76373 (0.524915), N = 264 moving right - --- -1.58961 (0.554527), N = 248 moving right - --- -1.57536 (0.559205), N = 243 moving right - --- -1.27013 (0.642361), N = 204 moving right - --- -0.626664 (0.751998), N = 121 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.751998, min to split: 0.999 +--- Computing oobag predictions: tree 82 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 98 + -- N preds made: 98 - -- time & status & weights in this node +--- Computing oobag predictions: tree 83 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 3.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 84 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8551e-01 1.4559e-02 - 7.7000e+01 9.7464e-01 2.5588e-02 - 1.1000e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 85 --- + -- N preds expected: 96 + -- N preds made: 96 ------------- Growing tree 477 -------------- +--- Computing oobag predictions: tree 86 --- -- N obs inbag: 276 -- N row inbag: 182 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 87 --- - -- columns sampled (showing up to 5) + -- N preds expected: 94 + -- N preds made: 94 - 12 3 6 1 8 +--- Computing oobag predictions: tree 88 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 89 --- - 0.0223 5.2863 0.1960 0.3357 1.3943 + -- N preds expected: 110 + -- N preds made: 110 +--- Computing oobag predictions: tree 90 --- - -- cutpoint (score) - --- -0.711666 (0.645305), N = 187 moving right - --- -0.438493 (0.725874), N = 135 moving right - --- -0.0676393 (0.777712), N = 87 moving right - --- 0.474331 (0.736062), N = 64 moving right - --- 8.74525 (0.563086), N = 10 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.777712, min to split: 0.999 +--- Computing oobag predictions: tree 91 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 92 --- - 1 7 4 5 9 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 93 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.4858 9.4309 0.6285 0.5026 0.6099 +--- Computing oobag predictions: tree 94 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.210567 (0.604899), N = 217 moving right - --- -0.141851 (0.626212), N = 207 moving right - --- -0.0695428 (0.644062), N = 200 moving right - --- 0.52902 (0.720311), N = 133 moving right - --- 1.90638 (0.623625), N = 29 moving right +--- Computing oobag predictions: tree 95 --- - -- best stat: 0.720311, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 96 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 11 6 2 9 8 +--- Computing oobag predictions: tree 97 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 98 --- - 0.8741 0.3400 0.7193 -0.3836 1.4447 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 99 --- - -- cutpoint (score) - --- -0.660942 (0.57957), N = 236 moving right - --- -0.302915 (0.676441), N = 179 moving right - --- -0.0531421 (0.703929), N = 137 moving right - --- 2.45025 (0.661056), N = 35 moving right - --- 3.19657 (0.644083), N = 30 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.703929, min to split: 0.999 +--- Computing oobag predictions: tree 100 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 103 + -- N preds made: 103 - -- time & status & weights in this node +--- Computing oobag predictions: tree 101 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 102 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 7.1000e+01 9.8913e-01 1.0909e-02 - 7.7000e+01 9.8551e-01 1.4572e-02 - 1.3100e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 103 --- + -- N preds expected: 110 + -- N preds made: 110 ------------- Growing tree 478 -------------- +--- Computing oobag predictions: tree 104 --- -- N obs inbag: 276 -- N row inbag: 166 -- max nodes: 231 -- max leaves: 116 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 105 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 4 1 0 16 6 +--- Computing oobag predictions: tree 106 --- + -- N preds expected: 113 + -- N preds made: 113 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 107 --- - 1.0136 0.2375 -0.1713 0.2853 0.3024 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 108 --- - -- cutpoint (score) - --- -0.437182 (0.545783), N = 248 moving right - --- -0.285949 (0.577668), N = 225 moving right - --- -0.0990832 (0.601214), N = 209 moving right - --- 0.498241 (0.667784), N = 139 moving right - --- 1.39049 (0.582982), N = 23 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.667784, min to split: 0.999 +--- Computing oobag predictions: tree 109 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 96 + -- N preds made: 96 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 110 --- - 3 14 17 0 8 + -- N preds expected: 97 + -- N preds made: 97 +--- Computing oobag predictions: tree 111 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 4.7443 0.2797 0.4874 -0.2628 1.4877 +--- Computing oobag predictions: tree 112 --- + -- N preds expected: 94 + -- N preds made: 94 - -- cutpoint (score) - --- 0.289886 (0.651739), N = 210 moving right - --- 1.03812 (0.73603), N = 117 moving right - --- 1.14065 (0.752545), N = 98 moving right - --- 4.26491 (0.660242), N = 32 moving right - --- 7.88171 (0.562503), N = 10 moving right +--- Computing oobag predictions: tree 113 --- - -- best stat: 0.752545, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 114 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 1 0 8 14 13 +--- Computing oobag predictions: tree 115 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 116 --- - 0.4305 -0.1649 1.8351 0.3116 -0.0492 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 117 --- - -- cutpoint (score) - --- -1.52914 (0.559641), N = 245 moving right - --- -1.21478 (0.611066), N = 203 moving right - --- -1.07996 (0.640968), N = 184 moving right - --- 0.0851984 (0.739668), N = 63 moving right - --- 6.8308 (0.528512), N = 5 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.739668, min to split: 0.999 +--- Computing oobag predictions: tree 118 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 119 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 3.0000e+00 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 120 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7464e-01 2.5588e-02 - 1.3100e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 121 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 479 -------------- +--- Computing oobag predictions: tree 122 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 123 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 4 16 9 6 0 +--- Computing oobag predictions: tree 124 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 125 --- - 0.5780 0.5747 0.4480 0.1069 -0.1070 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 126 --- - -- cutpoint (score) - --- -0.702123 (0.544752), N = 253 moving right - --- -0.535563 (0.572622), N = 231 moving right - --- 0.152951 (0.715425), N = 138 moving right - --- 0.62506 (0.678169), N = 69 moving right - --- 0.70671 (0.672275), N = 66 moving right + -- N preds expected: 88 + -- N preds made: 88 - -- best stat: 0.715425, min to split: 0.999 +--- Computing oobag predictions: tree 127 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 128 --- - 15 3 12 14 13 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 129 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - -0.0689 9.1981 0.0572 0.0606 0.5679 +--- Computing oobag predictions: tree 130 --- + -- N preds expected: 109 + -- N preds made: 109 - -- cutpoint (score) - --- -0.657219 (0.548682), N = 250 moving right - --- -0.595194 (0.571649), N = 240 moving right - --- -0.215568 (0.665141), N = 174 moving right - --- -0.137109 (0.681565), N = 157 moving right - --- 0.372662 (0.67155), N = 68 moving right +--- Computing oobag predictions: tree 131 --- - -- best stat: 0.681565, min to split: 0.999 + -- N preds expected: 96 + -- N preds made: 96 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 132 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 15 14 10 7 11 +--- Computing oobag predictions: tree 133 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 134 --- - -0.0954 0.3184 -0.6607 4.2054 0.6271 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 135 --- - -- cutpoint (score) - --- -0.276722 (0.687154), N = 172 moving right - --- 0.0314515 (0.721186), N = 136 moving right - --- 0.340114 (0.74877), N = 102 moving right - --- 1.01521 (0.696692), N = 64 moving right - --- 2.74866 (0.610221), N = 22 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.74877, min to split: 0.999 +--- Computing oobag predictions: tree 136 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 137 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 138 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.7826e-01 2.1912e-02 - 1.3100e+02 9.7101e-01 2.9319e-02 +--- Computing oobag predictions: tree 139 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 480 -------------- +--- Computing oobag predictions: tree 140 --- -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 229 -- max leaves: 115 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 141 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 11 0 7 12 8 +--- Computing oobag predictions: tree 142 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 143 --- - 0.4908 -0.3239 4.8329 -0.0382 1.5165 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 144 --- - -- cutpoint (score) - --- -1.64285 (0.515846), N = 269 moving right - --- -1.41724 (0.592381), N = 228 moving right - --- -1.1224 (0.680224), N = 175 moving right - --- -1.10392 (0.686237), N = 172 moving right - --- -0.344616 (0.762093), N = 104 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.762093, min to split: 0.999 +--- Computing oobag predictions: tree 145 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 146 --- - 10 12 14 11 7 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 147 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 113 + -- N preds made: 113 - -0.6647 -0.0630 0.3581 0.7189 5.7820 +--- Computing oobag predictions: tree 148 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -1.34557 (0.545638), N = 247 moving right - --- -0.908346 (0.60365), N = 218 moving right - --- -0.114034 (0.704217), N = 137 moving right - --- -0.0112978 (0.72431), N = 124 moving right - --- 0.306134 (0.741728), N = 94 moving right +--- Computing oobag predictions: tree 149 --- - -- best stat: 0.741728, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 150 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 12 13 7 3 17 +--- Computing oobag predictions: tree 151 --- + -- N preds expected: 111 + -- N preds made: 111 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 152 --- - 0.1215 0.2824 3.8427 12.5458 0.4604 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 153 --- - -- cutpoint (score) - --- 1.04738 (0.635556), N = 194 moving right - --- 1.04929 (0.632298), N = 193 moving right - --- 1.21625 (0.678944), N = 160 moving right - --- 1.65957 (0.696575), N = 96 moving right - --- 14.3744 (0.581268), N = 13 moving right + -- N preds expected: 95 + -- N preds made: 95 - -- best stat: 0.696575, min to split: 0.999 +--- Computing oobag predictions: tree 154 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 109 + -- N preds made: 109 - -- time & status & weights in this node +--- Computing oobag predictions: tree 155 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 156 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 111 + -- N preds made: 111 - 4.1000e+01 9.8913e-01 1.0870e-02 - 5.1000e+01 9.8551e-01 1.4533e-02 - 7.1000e+01 9.7826e-01 2.1886e-02 - 7.7000e+01 9.6739e-01 3.2997e-02 - 1.1000e+02 9.6377e-01 3.6742e-02 +--- Computing oobag predictions: tree 157 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 481 -------------- +--- Computing oobag predictions: tree 158 --- -- N obs inbag: 276 -- N row inbag: 174 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 159 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 15 14 17 11 10 +--- Computing oobag predictions: tree 160 --- + -- N preds expected: 91 + -- N preds made: 91 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 161 --- - 0.0404 0.1195 0.7251 1.0084 -0.5817 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 162 --- - -- cutpoint (score) - --- 1.75648 (0.710413), N = 157 moving right - --- 2.44764 (0.767772), N = 94 moving right - --- 2.45436 (0.771621), N = 92 moving right - --- 2.84845 (0.736682), N = 73 moving right - --- 3.42747 (0.695689), N = 51 moving right + -- N preds expected: 116 + -- N preds made: 116 - -- best stat: 0.771621, min to split: 0.999 +--- Computing oobag predictions: tree 163 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 164 --- - 5 7 3 16 8 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 165 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.5725 0.9853 0.5332 0.5924 1.7980 +--- Computing oobag predictions: tree 166 --- + -- N preds expected: 93 + -- N preds made: 93 - -- cutpoint (score) - --- -1.40229 (0.561381), N = 240 moving right - --- -0.367158 (0.765005), N = 107 moving right - --- 0.324748 (0.737914), N = 76 moving right - --- 1.78376 (0.660036), N = 35 moving right - --- 6.1612 (0.551673), N = 8 moving right +--- Computing oobag predictions: tree 167 --- - -- best stat: 0.765005, min to split: 0.999 + -- N preds expected: 111 + -- N preds made: 111 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 168 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 5 9 17 4 2 +--- Computing oobag predictions: tree 169 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 170 --- - 0.8173 0.2320 0.7124 0.3865 -1.0340 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 171 --- - -- cutpoint (score) - --- 0.286805 (0.537144), N = 259 moving right - --- 1.443 (0.697808), N = 153 moving right - --- 2.16333 (0.688684), N = 80 moving right - --- 2.8759 (0.611282), N = 40 moving right - --- 3.07948 (0.535523), N = 12 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.697808, min to split: 0.999 +--- Computing oobag predictions: tree 172 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 173 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 - 4.0000e+02 1.0000e+00 1.0000e+00 - 4.6000e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 174 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 2.1600e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 175 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 482 -------------- +--- Computing oobag predictions: tree 176 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 215 -- max leaves: 108 + -- N preds expected: 91 + -- N preds made: 91 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 177 --- - -- columns sampled (showing up to 5) + -- N preds expected: 107 + -- N preds made: 107 - 12 2 14 10 1 +--- Computing oobag predictions: tree 178 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 179 --- - -0.0074 -0.6809 0.4612 -0.7609 0.3982 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 180 --- - -- cutpoint (score) - --- -1.82789 (0.553537), N = 241 moving right - --- -0.631473 (0.681578), N = 137 moving right - --- -0.583545 (0.687162), N = 131 moving right - --- 0.313363 (0.648649), N = 51 moving right - --- 1.07461 (0.564289), N = 19 moving right + -- N preds expected: 109 + -- N preds made: 109 - -- best stat: 0.687162, min to split: 0.999 +--- Computing oobag predictions: tree 181 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 109 + -- N preds made: 109 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 182 --- - 15 6 0 2 4 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 183 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - -0.2149 0.8210 0.0096 -0.4940 0.7567 +--- Computing oobag predictions: tree 184 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.482649 (0.59839), N = 206 moving right - --- 0.331685 (0.636129), N = 79 moving right - --- 0.405517 (0.616514), N = 67 moving right - --- 0.596683 (0.58587), N = 42 moving right - --- 1.00962 (0.555882), N = 21 moving right +--- Computing oobag predictions: tree 185 --- - -- best stat: 0.636129, min to split: 0.999 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 186 --- - -- columns sampled (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - 12 11 2 7 10 +--- Computing oobag predictions: tree 187 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 188 --- - -0.2204 1.0742 -0.3244 10.3892 -0.6069 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 189 --- - -- cutpoint (score) - --- -1.49445 (0.561208), N = 237 moving right - --- -1.22832 (0.602762), N = 213 moving right - --- 0.00578611 (0.725238), N = 95 moving right - --- 0.100054 (0.728478), N = 92 moving right - --- 1.68484 (0.632631), N = 28 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.728478, min to split: 0.999 +--- Computing oobag predictions: tree 190 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 191 --- - 4.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 192 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 98 + -- N preds made: 98 - 4.1000e+01 9.8913e-01 1.0870e-02 - 7.1000e+01 9.8551e-01 1.4533e-02 - 7.7000e+01 9.7826e-01 2.1886e-02 - 1.1000e+02 9.7464e-01 2.5589e-02 - 1.3100e+02 9.7101e-01 2.9307e-02 +--- Computing oobag predictions: tree 193 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 483 -------------- +--- Computing oobag predictions: tree 194 --- -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 231 -- max leaves: 116 + -- N preds expected: 112 + -- N preds made: 112 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 195 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 10 15 0 9 7 +--- Computing oobag predictions: tree 196 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 197 --- - -0.7672 -0.0879 -0.3006 0.3436 10.7156 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 198 --- - -- cutpoint (score) - --- -0.995925 (0.576396), N = 236 moving right - --- -0.576302 (0.626423), N = 189 moving right - --- -0.356012 (0.664621), N = 161 moving right - --- 0.261278 (0.700004), N = 82 moving right - --- 1.20289 (0.630402), N = 37 moving right + -- N preds expected: 108 + -- N preds made: 108 - -- best stat: 0.700004, min to split: 0.999 +--- Computing oobag predictions: tree 199 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 100 + -- N preds made: 100 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 200 --- - 11 17 14 13 7 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 201 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.9262 0.5106 0.2205 0.3277 10.7650 +--- Computing oobag predictions: tree 202 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- 0.351845 (0.576904), N = 234 moving right - --- 0.407023 (0.588458), N = 230 moving right - --- 0.7407 (0.624921), N = 203 moving right - --- 1.78325 (0.739112), N = 99 moving right - --- 4.01895 (0.608372), N = 22 moving right +--- Computing oobag predictions: tree 203 --- - -- best stat: 0.739112, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 204 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 11 7 16 17 13 +--- Computing oobag predictions: tree 205 --- + -- N preds expected: 108 + -- N preds made: 108 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 206 --- - 0.9270 10.2487 0.4089 0.4171 0.3688 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 207 --- - -- cutpoint (score) - --- 0.0993887 (0.591463), N = 231 moving right - --- 0.458798 (0.642993), N = 204 moving right - --- 0.785291 (0.715791), N = 154 moving right - --- 1.25461 (0.712236), N = 115 moving right - --- 1.73893 (0.72815), N = 84 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.72815, min to split: 0.999 +--- Computing oobag predictions: tree 208 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 209 --- - 4.1000e+01 1.0000e+00 6.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 3.0000e+00 - 3.4800e+02 1.0000e+00 1.0000e+00 - 3.8800e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 210 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 94 + -- N preds made: 94 - 4.1000e+01 9.7826e-01 2.1739e-02 - 7.7000e+01 9.7464e-01 2.5443e-02 - 1.1000e+02 9.7101e-01 2.9160e-02 - 1.4000e+02 9.6739e-01 3.2892e-02 - 1.7900e+02 9.6377e-01 3.6637e-02 +--- Computing oobag predictions: tree 211 --- + -- N preds expected: 105 + -- N preds made: 105 ------------- Growing tree 484 -------------- +--- Computing oobag predictions: tree 212 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 243 -- max leaves: 122 + -- N preds expected: 115 + -- N preds made: 115 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 213 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 6 17 8 1 13 +--- Computing oobag predictions: tree 214 --- + -- N preds expected: 104 + -- N preds made: 104 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 215 --- - -0.0423 0.4624 1.4925 0.3555 0.1115 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 216 --- - -- cutpoint (score) - --- 0.280491 (0.637386), N = 205 moving right - --- 1.26618 (0.759139), N = 115 moving right - --- 1.33317 (0.766266), N = 111 moving right - --- 2.47948 (0.659418), N = 47 moving right - --- 3.85193 (0.622998), N = 30 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.766266, min to split: 0.999 +--- Computing oobag predictions: tree 217 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 218 --- - 5 1 10 4 7 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 219 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 0.6527 0.4092 -0.4957 0.2604 6.4187 +--- Computing oobag predictions: tree 220 --- + -- N preds expected: 114 + -- N preds made: 114 - -- cutpoint (score) - --- -0.33079 (0.625239), N = 203 moving right - --- -0.02199 (0.66028), N = 166 moving right - --- 0.275181 (0.721454), N = 123 moving right - --- 0.290443 (0.715151), N = 120 moving right - --- 0.476762 (0.734884), N = 105 moving right +--- Computing oobag predictions: tree 221 --- - -- best stat: 0.734884, min to split: 0.999 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 222 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 14 11 4 17 16 +--- Computing oobag predictions: tree 223 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 224 --- - 0.3976 0.7417 -0.0233 0.6381 0.4542 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 225 --- - -- cutpoint (score) - --- 2.09656 (0.72519), N = 110 moving right - --- 2.20908 (0.730037), N = 98 moving right - --- 2.39219 (0.719921), N = 85 moving right - --- 2.41965 (0.714059), N = 83 moving right - --- 3.76252 (0.570025), N = 21 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.730037, min to split: 0.999 +--- Computing oobag predictions: tree 226 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 227 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 4.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 228 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8188e-01 1.8169e-02 - 7.1000e+01 9.7826e-01 2.1859e-02 - 1.1000e+02 9.7464e-01 2.5562e-02 - 1.3100e+02 9.6739e-01 3.2997e-02 +--- Computing oobag predictions: tree 229 --- + -- N preds expected: 90 + -- N preds made: 90 ------------- Growing tree 485 -------------- +--- Computing oobag predictions: tree 230 --- -- N obs inbag: 276 -- N row inbag: 172 -- max nodes: 223 -- max leaves: 112 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 231 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 6 2 8 12 15 +--- Computing oobag predictions: tree 232 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 233 --- - -0.2772 0.2333 2.4010 0.1792 -0.2588 + -- N preds expected: 91 + -- N preds made: 91 +--- Computing oobag predictions: tree 234 --- - -- cutpoint (score) - --- -1.12831 (0.639991), N = 196 moving right - --- -1.05491 (0.659032), N = 186 moving right - --- -0.47392 (0.747876), N = 120 moving right - --- -0.195217 (0.761623), N = 96 moving right - --- 8.05094 (0.541199), N = 7 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.761623, min to split: 0.999 +--- Computing oobag predictions: tree 235 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 107 + -- N preds made: 107 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 236 --- - 10 3 4 12 7 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 237 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 96 + -- N preds made: 96 - -0.3735 1.7359 0.5377 0.2073 17.3823 +--- Computing oobag predictions: tree 238 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- 0.0767333 (0.646928), N = 170 moving right - --- 0.198321 (0.659352), N = 152 moving right - --- 0.259646 (0.65235), N = 138 moving right - --- 0.703424 (0.654592), N = 54 moving right - --- 2.09869 (0.611685), N = 18 moving right +--- Computing oobag predictions: tree 239 --- - -- best stat: 0.659352, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 240 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 16 5 6 0 8 +--- Computing oobag predictions: tree 241 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 242 --- - 0.3360 0.7881 -0.3886 -0.1870 2.2691 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 243 --- - -- cutpoint (score) - --- -1.59932 (0.567519), N = 240 moving right - --- -1.5586 (0.575759), N = 235 moving right - --- -1.43372 (0.647462), N = 198 moving right - --- -0.723862 (0.727682), N = 135 moving right - --- -0.558589 (0.738185), N = 125 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.738185, min to split: 0.999 +--- Computing oobag predictions: tree 244 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 93 + -- N preds made: 93 - -- time & status & weights in this node +--- Computing oobag predictions: tree 245 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 3.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 2.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 246 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8188e-01 1.8195e-02 - 1.3100e+02 9.7464e-01 2.5575e-02 - 1.7900e+02 9.6377e-01 3.6728e-02 - 2.1600e+02 9.5652e-01 4.4247e-02 +--- Computing oobag predictions: tree 247 --- + -- N preds expected: 107 + -- N preds made: 107 ------------- Growing tree 486 -------------- +--- Computing oobag predictions: tree 248 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 249 --- - -- columns sampled (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 3 8 14 11 10 +--- Computing oobag predictions: tree 250 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 251 --- - 1.8833 1.4149 -0.1235 0.3821 -0.2454 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 252 --- - -- cutpoint (score) - --- -1.39999 (0.530334), N = 259 moving right - --- 0.192617 (0.722899), N = 89 moving right - --- 0.199442 (0.722559), N = 88 moving right - --- 0.249979 (0.720144), N = 83 moving right - --- 4.88231 (0.575357), N = 13 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.722899, min to split: 0.999 +--- Computing oobag predictions: tree 253 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 102 + -- N preds made: 102 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 254 --- - 10 7 8 13 11 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 255 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - -0.3263 3.2259 1.4369 -0.1290 0.3328 +--- Computing oobag predictions: tree 256 --- + -- N preds expected: 108 + -- N preds made: 108 - -- cutpoint (score) - --- -1.11818 (0.59709), N = 231 moving right - --- -0.917055 (0.637623), N = 201 moving right - --- -0.908613 (0.650794), N = 193 moving right - --- 0.117319 (0.765726), N = 94 moving right - --- 0.392935 (0.719646), N = 70 moving right +--- Computing oobag predictions: tree 257 --- - -- best stat: 0.765726, min to split: 0.999 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 258 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 5 1 17 2 13 +--- Computing oobag predictions: tree 259 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 260 --- - 0.7507 0.2818 0.5214 -0.6249 0.2429 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 261 --- - -- cutpoint (score) - --- 1.15409 (0.673844), N = 161 moving right - --- 1.44802 (0.702263), N = 117 moving right - --- 1.61859 (0.706514), N = 105 moving right - --- 1.89421 (0.672368), N = 75 moving right - --- 2.18574 (0.632614), N = 40 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.706514, min to split: 0.999 +--- Computing oobag predictions: tree 262 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 102 + -- N preds made: 102 - -- time & status & weights in this node +--- Computing oobag predictions: tree 263 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 264 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.1000e+02 9.6739e-01 3.2982e-02 - 1.3100e+02 9.6377e-01 3.6728e-02 +--- Computing oobag predictions: tree 265 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 487 -------------- +--- Computing oobag predictions: tree 266 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 245 -- max leaves: 123 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 267 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 9 10 7 2 12 +--- Computing oobag predictions: tree 268 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 269 --- - 0.2590 -0.6022 4.1755 -1.0851 0.0902 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 270 --- - -- cutpoint (score) - --- -1.91097 (0.528648), N = 251 moving right - --- -1.59412 (0.562749), N = 231 moving right - --- -1.01984 (0.671592), N = 133 moving right - --- -0.43566 (0.650276), N = 79 moving right - --- -0.266835 (0.636127), N = 64 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.671592, min to split: 0.999 +--- Computing oobag predictions: tree 271 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 272 --- - 6 2 5 14 16 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 273 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.0921 -1.0232 1.0098 0.4223 0.9606 +--- Computing oobag predictions: tree 274 --- + -- N preds expected: 103 + -- N preds made: 103 - -- cutpoint (score) - --- -1.97843 (0.534948), N = 257 moving right - --- -1.74732 (0.563246), N = 243 moving right - --- -1.0869 (0.68399), N = 149 moving right - --- -0.564638 (0.717078), N = 117 moving right - --- 0.230292 (0.674797), N = 74 moving right +--- Computing oobag predictions: tree 275 --- - -- best stat: 0.717078, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 276 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 7 2 15 9 12 +--- Computing oobag predictions: tree 277 --- + -- N preds expected: 106 + -- N preds made: 106 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 278 --- - 4.3897 -0.9241 -0.1691 0.3150 0.1726 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 279 --- - -- cutpoint (score) - --- -1.39821 (0.527266), N = 264 moving right - --- -0.97582 (0.649926), N = 155 moving right - --- -0.68915 (0.637859), N = 87 moving right - --- -0.654248 (0.630195), N = 82 moving right - --- -0.57622 (0.632277), N = 73 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.649926, min to split: 0.999 +--- Computing oobag predictions: tree 280 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 281 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 2.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 282 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 104 + -- N preds made: 104 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 283 --- + -- N preds expected: 98 + -- N preds made: 98 ------------- Growing tree 488 -------------- +--- Computing oobag predictions: tree 284 --- -- N obs inbag: 276 -- N row inbag: 167 -- max nodes: 211 -- max leaves: 106 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 285 --- - -- columns sampled (showing up to 5) + -- N preds expected: 109 + -- N preds made: 109 - 9 17 12 10 8 +--- Computing oobag predictions: tree 286 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 287 --- - -0.4794 0.3813 0.0897 -0.7397 2.1458 + -- N preds expected: 116 + -- N preds made: 116 +--- Computing oobag predictions: tree 288 --- - -- cutpoint (score) - --- -0.51615 (0.609094), N = 216 moving right - --- 0.0697811 (0.700927), N = 157 moving right - --- 0.460887 (0.746354), N = 129 moving right - --- 0.887773 (0.763985), N = 107 moving right - --- 3.69177 (0.677158), N = 35 moving right + -- N preds expected: 104 + -- N preds made: 104 - -- best stat: 0.763985, min to split: 0.999 +--- Computing oobag predictions: tree 289 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 290 --- - 1 16 4 5 6 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 291 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 110 + -- N preds made: 110 - 0.2923 0.6936 0.9007 0.0002 1.5642 +--- Computing oobag predictions: tree 292 --- + -- N preds expected: 102 + -- N preds made: 102 - -- cutpoint (score) - --- -0.284955 (0.608681), N = 206 moving right - --- -0.0803729 (0.639437), N = 172 moving right - --- 0.20702 (0.672391), N = 145 moving right - --- 1.05935 (0.683057), N = 79 moving right - --- 1.94749 (0.585325), N = 18 moving right +--- Computing oobag predictions: tree 293 --- - -- best stat: 0.683057, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 294 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 9 7 10 8 14 +--- Computing oobag predictions: tree 295 --- + -- N preds expected: 111 + -- N preds made: 111 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 296 --- - -0.3888 5.6987 -0.7039 1.8481 0.1284 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 297 --- - -- cutpoint (score) - --- -1.45286 (0.59081), N = 225 moving right - --- -0.645394 (0.734078), N = 134 moving right - --- -0.598599 (0.747355), N = 128 moving right - --- -0.302594 (0.763746), N = 105 moving right - --- 1.22845 (0.697118), N = 46 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.763746, min to split: 0.999 +--- Computing oobag predictions: tree 298 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 99 + -- N preds made: 99 - -- time & status & weights in this node +--- Computing oobag predictions: tree 299 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 4.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 - 3.3400e+02 1.0000e+00 2.0000e+00 - 4.6000e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 300 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7826e-01 2.1912e-02 - 1.7900e+02 9.7464e-01 2.5616e-02 +--- Computing oobag predictions: tree 301 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 489 -------------- +--- Computing oobag predictions: tree 302 --- -- N obs inbag: 276 -- N row inbag: 181 -- max nodes: 225 -- max leaves: 113 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 303 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 1 14 11 2 16 +--- Computing oobag predictions: tree 304 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 305 --- - 0.2832 0.3238 1.0769 0.6488 0.6237 + -- N preds expected: 113 + -- N preds made: 113 +--- Computing oobag predictions: tree 306 --- - -- cutpoint (score) - --- -0.856036 (0.561023), N = 244 moving right - --- -0.769003 (0.575724), N = 237 moving right - --- -0.558583 (0.612762), N = 221 moving right - --- -0.246649 (0.688251), N = 179 moving right - --- 0.475702 (0.733002), N = 111 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.733002, min to split: 0.999 +--- Computing oobag predictions: tree 307 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 102 + -- N preds made: 102 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 308 --- - 2 12 13 15 1 + -- N preds expected: 111 + -- N preds made: 111 +--- Computing oobag predictions: tree 309 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 0.1220 0.1361 0.4848 -0.2520 0.5544 +--- Computing oobag predictions: tree 310 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -0.795599 (0.565989), N = 240 moving right - --- -0.417023 (0.597079), N = 216 moving right - --- -0.0868288 (0.67667), N = 143 moving right - --- 0.614671 (0.650389), N = 61 moving right - --- 1.12152 (0.535821), N = 23 moving right +--- Computing oobag predictions: tree 311 --- - -- best stat: 0.67667, min to split: 0.999 + -- N preds expected: 103 + -- N preds made: 103 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 312 --- - -- columns sampled (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 6 14 12 0 11 +--- Computing oobag predictions: tree 313 --- + -- N preds expected: 90 + -- N preds made: 90 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 314 --- - 1.0022 0.2218 -0.2322 -0.0768 1.2600 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 315 --- - -- cutpoint (score) - --- -1.08802 (0.559021), N = 248 moving right - --- -0.739429 (0.650624), N = 203 moving right - --- 0.115549 (0.702187), N = 101 moving right - --- 0.316163 (0.722776), N = 84 moving right - --- 2.48617 (0.573879), N = 16 moving right + -- N preds expected: 100 + -- N preds made: 100 - -- best stat: 0.722776, min to split: 0.999 +--- Computing oobag predictions: tree 316 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 317 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 318 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 102 + -- N preds made: 102 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.8913e-01 1.0896e-02 - 7.1000e+01 9.8188e-01 1.8222e-02 - 7.7000e+01 9.7101e-01 2.9292e-02 - 1.1000e+02 9.6739e-01 3.3023e-02 +--- Computing oobag predictions: tree 319 --- + -- N preds expected: 95 + -- N preds made: 95 ------------- Growing tree 490 -------------- +--- Computing oobag predictions: tree 320 --- -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 219 -- max leaves: 110 + -- N preds expected: 110 + -- N preds made: 110 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 321 --- - -- columns sampled (showing up to 5) + -- N preds expected: 105 + -- N preds made: 105 - 16 8 4 9 6 +--- Computing oobag predictions: tree 322 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 323 --- - 0.2310 1.8052 0.0660 -0.1805 1.2319 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 324 --- - -- cutpoint (score) - --- -1.1174 (0.556507), N = 241 moving right - --- -0.890234 (0.657223), N = 177 moving right - --- -0.415571 (0.726683), N = 121 moving right - --- 0.329321 (0.676401), N = 78 moving right - --- 0.694243 (0.686471), N = 64 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.726683, min to split: 0.999 +--- Computing oobag predictions: tree 325 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 104 + -- N preds made: 104 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 326 --- - 2 0 17 8 9 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 327 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - -0.0539 -0.3207 0.1883 1.8554 -0.2741 +--- Computing oobag predictions: tree 328 --- + -- N preds expected: 95 + -- N preds made: 95 - -- cutpoint (score) - --- -0.762314 (0.571709), N = 233 moving right - --- -0.592586 (0.640863), N = 197 moving right - --- 0.863737 (0.65102), N = 60 moving right - --- 0.899225 (0.647329), N = 53 moving right - --- 5.07236 (0.568433), N = 11 moving right +--- Computing oobag predictions: tree 329 --- - -- best stat: 0.65102, min to split: 0.999 + -- N preds expected: 106 + -- N preds made: 106 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 330 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 9 10 2 13 3 +--- Computing oobag predictions: tree 331 --- + -- N preds expected: 92 + -- N preds made: 92 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 332 --- - 0.4043 -0.2144 0.1523 0.3228 5.6365 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 333 --- - -- cutpoint (score) - --- -0.389236 (0.532655), N = 227 moving right - --- 0.10418 (0.634507), N = 126 moving right - --- 0.176651 (0.628369), N = 113 moving right - --- 0.386395 (0.645669), N = 72 moving right - --- 0.826181 (0.665786), N = 40 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.665786, min to split: 0.999 +--- Computing oobag predictions: tree 334 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 335 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 336 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 96 + -- N preds made: 96 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 7.1000e+01 9.7826e-01 2.1885e-02 - 1.3100e+02 9.7464e-01 2.5589e-02 - 1.7900e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 337 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 491 -------------- +--- Computing oobag predictions: tree 338 --- -- N obs inbag: 276 -- N row inbag: 177 -- max nodes: 245 -- max leaves: 123 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 339 --- - -- columns sampled (showing up to 5) + -- N preds expected: 92 + -- N preds made: 92 - 11 6 13 5 0 +--- Computing oobag predictions: tree 340 --- + -- N preds expected: 95 + -- N preds made: 95 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 341 --- - 1.0004 0.8033 0.2528 1.2053 0.2162 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 342 --- - -- cutpoint (score) - --- -0.731233 (0.571107), N = 234 moving right - --- -0.698561 (0.586583), N = 227 moving right - --- 0.0335778 (0.67416), N = 150 moving right - --- 0.653354 (0.698013), N = 119 moving right - --- 2.80717 (0.564289), N = 19 moving right + -- N preds expected: 97 + -- N preds made: 97 - -- best stat: 0.698013, min to split: 0.999 +--- Computing oobag predictions: tree 343 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 99 + -- N preds made: 99 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 344 --- - 14 13 11 5 6 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 345 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 0.2576 0.2409 0.9487 1.1832 0.6693 +--- Computing oobag predictions: tree 346 --- + -- N preds expected: 98 + -- N preds made: 98 - -- cutpoint (score) - --- -0.482602 (0.626155), N = 198 moving right - --- -0.0629538 (0.657126), N = 147 moving right - --- 0.654041 (0.700924), N = 111 moving right - --- 1.3309 (0.698351), N = 55 moving right - --- 3.91405 (0.520829), N = 9 moving right +--- Computing oobag predictions: tree 347 --- - -- best stat: 0.700924, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 348 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 13 12 5 9 10 +--- Computing oobag predictions: tree 349 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 350 --- - 0.3016 0.0933 1.3781 0.1008 -0.5608 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 351 --- - -- cutpoint (score) - --- -1.04372 (0.546897), N = 252 moving right - --- -0.622704 (0.575746), N = 229 moving right - --- 0.0510224 (0.656262), N = 155 moving right - --- 0.0881979 (0.651491), N = 147 moving right - --- 2.13649 (0.592311), N = 25 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.656262, min to split: 0.999 +--- Computing oobag predictions: tree 352 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 113 + -- N preds made: 113 - -- time & status & weights in this node +--- Computing oobag predictions: tree 353 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 4.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 2.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 354 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 106 + -- N preds made: 106 - 4.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.8551e-01 1.4559e-02 - 1.1000e+02 9.8188e-01 1.8235e-02 - 1.3100e+02 9.6739e-01 3.2996e-02 +--- Computing oobag predictions: tree 355 --- + -- N preds expected: 101 + -- N preds made: 101 ------------- Growing tree 492 -------------- +--- Computing oobag predictions: tree 356 --- -- N obs inbag: 276 -- N row inbag: 187 -- max nodes: 249 -- max leaves: 125 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 357 --- - -- columns sampled (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 8 13 5 9 16 +--- Computing oobag predictions: tree 358 --- + -- N preds expected: 102 + -- N preds made: 102 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 359 --- - 1.6467 -0.0207 0.3471 -0.1753 0.5932 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 360 --- - -- cutpoint (score) - --- -1.35613 (0.52762), N = 256 moving right - --- -0.341732 (0.740268), N = 137 moving right - --- -0.259202 (0.728198), N = 124 moving right - --- 0.325501 (0.714674), N = 90 moving right - --- 0.540526 (0.709652), N = 82 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.740268, min to split: 0.999 +--- Computing oobag predictions: tree 361 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 362 --- - 3 6 14 5 1 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 363 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 102 + -- N preds made: 102 - 6.4992 -0.3150 0.3913 1.2727 0.5669 +--- Computing oobag predictions: tree 364 --- + -- N preds expected: 107 + -- N preds made: 107 - -- cutpoint (score) - --- -0.556665 (0.556989), N = 235 moving right - --- 0.0598719 (0.664923), N = 150 moving right - --- 0.28695 (0.668248), N = 133 moving right - --- 0.351789 (0.679262), N = 126 moving right - --- 7.00892 (0.587172), N = 16 moving right +--- Computing oobag predictions: tree 365 --- - -- best stat: 0.679262, min to split: 0.999 + -- N preds expected: 100 + -- N preds made: 100 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 366 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 6 15 3 9 7 +--- Computing oobag predictions: tree 367 --- + -- N preds expected: 105 + -- N preds made: 105 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 368 --- - 0.6778 -0.1223 4.0733 0.3090 8.2857 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 369 --- - -- cutpoint (score) - --- -0.292543 (0.521299), N = 263 moving right - --- -0.190685 (0.56208), N = 243 moving right - --- -0.165337 (0.574565), N = 232 moving right - --- 0.023053 (0.67095), N = 135 moving right - --- 0.224491 (0.665807), N = 79 moving right + -- N preds expected: 102 + -- N preds made: 102 - -- best stat: 0.67095, min to split: 0.999 +--- Computing oobag predictions: tree 370 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 371 --- - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 3.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 372 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 97 + -- N preds made: 97 - 7.7000e+01 9.9638e-01 3.6232e-03 - 1.1000e+02 9.9275e-01 7.2596e-03 - 1.3100e+02 9.8551e-01 1.4559e-02 - 1.7900e+02 9.7826e-01 2.1912e-02 - 1.8600e+02 9.6739e-01 3.3023e-02 +--- Computing oobag predictions: tree 373 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 493 -------------- +--- Computing oobag predictions: tree 374 --- -- N obs inbag: 276 -- N row inbag: 175 -- max nodes: 213 -- max leaves: 107 + -- N preds expected: 99 + -- N preds made: 99 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 375 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 1 3 17 9 11 +--- Computing oobag predictions: tree 376 --- + -- N preds expected: 107 + -- N preds made: 107 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 377 --- - 0.2531 6.6182 0.4603 0.4158 0.9092 + -- N preds expected: 96 + -- N preds made: 96 +--- Computing oobag predictions: tree 378 --- - -- cutpoint (score) - --- -0.20052 (0.522595), N = 266 moving right - --- 0.322788 (0.604528), N = 223 moving right - --- 0.596601 (0.657573), N = 198 moving right - --- 1.39355 (0.767421), N = 113 moving right - --- 2.10126 (0.727915), N = 80 moving right + -- N preds expected: 101 + -- N preds made: 101 - -- best stat: 0.767421, min to split: 0.999 +--- Computing oobag predictions: tree 379 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 380 --- - 8 2 7 15 0 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 381 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 2.1955 -0.1804 4.2430 -0.1031 -0.1209 +--- Computing oobag predictions: tree 382 --- + -- N preds expected: 105 + -- N preds made: 105 - -- cutpoint (score) - --- -1.78321 (0.512112), N = 271 moving right - --- -1.75787 (0.516233), N = 269 moving right - --- 1.42121 (0.651143), N = 33 moving right - --- 4.7814 (0.609237), N = 18 moving right - --- 6.03677 (0.59957), N = 17 moving right +--- Computing oobag predictions: tree 383 --- - -- best stat: 0.651143, min to split: 0.999 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 384 --- - -- columns sampled (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 15 3 0 13 16 +--- Computing oobag predictions: tree 385 --- + -- N preds expected: 111 + -- N preds made: 111 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 386 --- - -0.0974 7.8444 -0.1383 0.3796 0.3170 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 387 --- - -- cutpoint (score) - --- -0.206532 (0.654268), N = 141 moving right - --- -0.108004 (0.659067), N = 127 moving right - --- 0.0510058 (0.675843), N = 100 moving right - --- 0.179355 (0.651845), N = 75 moving right - --- 0.190308 (0.662259), N = 71 moving right + -- N preds expected: 98 + -- N preds made: 98 - -- best stat: 0.675843, min to split: 0.999 +--- Computing oobag predictions: tree 388 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 97 + -- N preds made: 97 - -- time & status & weights in this node +--- Computing oobag predictions: tree 389 --- - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 3.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 3.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 - 3.3400e+02 1.0000e+00 4.0000e+00 - 5.1500e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 390 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 108 + -- N preds made: 108 - 5.1000e+01 9.9275e-01 7.2464e-03 - 7.1000e+01 9.8913e-01 1.0896e-02 - 7.7000e+01 9.7826e-01 2.1885e-02 - 2.1600e+02 9.7464e-01 2.5589e-02 - 2.2300e+02 9.7101e-01 2.9306e-02 +--- Computing oobag predictions: tree 391 --- + -- N preds expected: 103 + -- N preds made: 103 ------------- Growing tree 494 -------------- +--- Computing oobag predictions: tree 392 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 221 -- max leaves: 111 + -- N preds expected: 118 + -- N preds made: 118 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 393 --- - -- columns sampled (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 0 8 2 3 7 +--- Computing oobag predictions: tree 394 --- + -- N preds expected: 93 + -- N preds made: 93 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 395 --- - -0.2512 1.1418 -0.3940 5.8533 6.2241 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 396 --- - -- cutpoint (score) - --- -0.948256 (0.703372), N = 149 moving right - --- -0.72492 (0.722521), N = 126 moving right - --- -0.278249 (0.728715), N = 73 moving right - --- 0.984241 (0.67558), N = 40 moving right - --- 10.4606 (0.587891), N = 14 moving right + -- N preds expected: 91 + -- N preds made: 91 - -- best stat: 0.728715, min to split: 0.999 +--- Computing oobag predictions: tree 397 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 94 + -- N preds made: 94 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 398 --- - 17 9 5 11 15 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 399 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 101 + -- N preds made: 101 - 0.7027 0.2779 0.2901 0.4904 -0.1321 +--- Computing oobag predictions: tree 400 --- + -- N preds expected: 97 + -- N preds made: 97 - -- cutpoint (score) - --- 1.69594 (0.667483), N = 191 moving right - --- 1.87169 (0.694891), N = 167 moving right - --- 2.12825 (0.726428), N = 134 moving right - --- 2.17738 (0.729363), N = 133 moving right - --- 3.16116 (0.646269), N = 41 moving right +--- Computing oobag predictions: tree 401 --- - -- best stat: 0.729363, min to split: 0.999 + -- N preds expected: 98 + -- N preds made: 98 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 402 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 3 8 1 12 9 +--- Computing oobag predictions: tree 403 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 404 --- - 7.5592 1.2977 0.2050 0.0429 0.0326 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 405 --- - -- cutpoint (score) - --- -0.700871 (0.638233), N = 197 moving right - --- -0.390994 (0.742844), N = 133 moving right - --- -0.378602 (0.745051), N = 132 moving right - --- -0.155224 (0.750698), N = 102 moving right - --- 0.957102 (0.673029), N = 46 moving right + -- N preds expected: 96 + -- N preds made: 96 - -- best stat: 0.750698, min to split: 0.999 +--- Computing oobag predictions: tree 406 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 107 + -- N preds made: 107 - -- time & status & weights in this node +--- Computing oobag predictions: tree 407 --- - 4.1000e+01 1.0000e+00 1.0000e+00 - 5.1000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 2.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 - 3.2600e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 109 + -- N preds made: 109 +--- Computing oobag predictions: tree 408 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 100 + -- N preds made: 100 - 4.1000e+01 9.9638e-01 3.6232e-03 - 5.1000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8551e-01 1.4572e-02 - 1.7900e+02 9.8188e-01 1.8249e-02 +--- Computing oobag predictions: tree 409 --- + -- N preds expected: 110 + -- N preds made: 110 ------------- Growing tree 495 -------------- +--- Computing oobag predictions: tree 410 --- -- N obs inbag: 276 -- N row inbag: 178 -- max nodes: 203 -- max leaves: 102 + -- N preds expected: 102 + -- N preds made: 102 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 411 --- - -- columns sampled (showing up to 5) + -- N preds expected: 97 + -- N preds made: 97 - 14 3 5 10 0 +--- Computing oobag predictions: tree 412 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 413 --- - 0.1147 6.0144 0.9287 -0.7126 -0.4381 + -- N preds expected: 100 + -- N preds made: 100 +--- Computing oobag predictions: tree 414 --- - -- cutpoint (score) - --- -0.764187 (0.571144), N = 230 moving right - --- -0.2923 (0.674487), N = 155 moving right - --- 1.02372 (0.677265), N = 51 moving right - --- 1.18116 (0.687662), N = 42 moving right - --- 7.85112 (0.538541), N = 5 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.687662, min to split: 0.999 +--- Computing oobag predictions: tree 415 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 103 + -- N preds made: 103 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 416 --- - 11 14 16 3 13 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 417 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 103 + -- N preds made: 103 - 0.6022 0.0335 0.7949 5.6579 0.2404 +--- Computing oobag predictions: tree 418 --- + -- N preds expected: 104 + -- N preds made: 104 - -- cutpoint (score) - --- -0.891351 (0.621807), N = 208 moving right - --- -0.714238 (0.663664), N = 183 moving right - --- -0.642957 (0.68094), N = 168 moving right - --- 0.125893 (0.762436), N = 97 moving right - --- 0.314778 (0.74153), N = 82 moving right +--- Computing oobag predictions: tree 419 --- - -- best stat: 0.762436, min to split: 0.999 + -- N preds expected: 97 + -- N preds made: 97 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 420 --- - -- columns sampled (showing up to 5) + -- N preds expected: 112 + -- N preds made: 112 - 1 13 3 11 10 +--- Computing oobag predictions: tree 421 --- + -- N preds expected: 101 + -- N preds made: 101 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 422 --- - 0.4540 0.3046 5.4597 0.5899 -0.6525 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 423 --- - -- cutpoint (score) - --- -1.52664 (0.552433), N = 244 moving right - --- -1.3435 (0.566304), N = 238 moving right - --- -0.558027 (0.697835), N = 172 moving right - --- -0.258656 (0.727705), N = 127 moving right - --- 7.42351 (0.553935), N = 8 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.727705, min to split: 0.999 +--- Computing oobag predictions: tree 424 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 105 + -- N preds made: 105 - -- time & status & weights in this node +--- Computing oobag predictions: tree 425 --- - 5.1000e+01 1.0000e+00 1.0000e+00 - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 2.1600e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 3.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 93 + -- N preds made: 93 +--- Computing oobag predictions: tree 426 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 99 + -- N preds made: 99 - 5.1000e+01 9.9638e-01 3.6232e-03 - 7.1000e+01 9.9275e-01 7.2596e-03 - 7.7000e+01 9.8913e-01 1.0909e-02 - 1.4000e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7464e-01 2.5615e-02 +--- Computing oobag predictions: tree 427 --- + -- N preds expected: 102 + -- N preds made: 102 ------------- Growing tree 496 -------------- +--- Computing oobag predictions: tree 428 --- -- N obs inbag: 276 -- N row inbag: 176 -- max nodes: 239 -- max leaves: 120 + -- N preds expected: 105 + -- N preds made: 105 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 429 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 7 0 16 3 17 +--- Computing oobag predictions: tree 430 --- + -- N preds expected: 94 + -- N preds made: 94 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 431 --- - 4.9675 -0.2895 0.4475 4.5969 0.2456 + -- N preds expected: 102 + -- N preds made: 102 +--- Computing oobag predictions: tree 432 --- - -- cutpoint (score) - --- 0.165186 (0.594094), N = 212 moving right - --- 0.253945 (0.608303), N = 202 moving right - --- 1.07646 (0.704736), N = 63 moving right - --- 1.47543 (0.650738), N = 37 moving right - --- 10.6641 (0.575091), N = 13 moving right + -- N preds expected: 93 + -- N preds made: 93 - -- best stat: 0.704736, min to split: 0.999 +--- Computing oobag predictions: tree 433 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 101 + -- N preds made: 101 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 434 --- - 3 6 2 7 17 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 435 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 100 + -- N preds made: 100 - 4.8634 1.0082 -0.8825 5.5489 0.2668 +--- Computing oobag predictions: tree 436 --- + -- N preds expected: 97 + -- N preds made: 97 - -- cutpoint (score) - --- -0.348826 (0.599118), N = 213 moving right - --- 0.800463 (0.683739), N = 56 moving right - --- 5.04825 (0.64349), N = 30 moving right - --- 5.46692 (0.635513), N = 28 moving right - --- 6.05641 (0.616606), N = 20 moving right +--- Computing oobag predictions: tree 437 --- - -- best stat: 0.683739, min to split: 0.999 + -- N preds expected: 101 + -- N preds made: 101 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 438 --- - -- columns sampled (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 3 14 15 2 17 +--- Computing oobag predictions: tree 439 --- + -- N preds expected: 109 + -- N preds made: 109 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 440 --- - 7.2592 0.0709 -0.1099 -0.7342 0.3245 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 441 --- - -- cutpoint (score) - --- 0.471821 (0.651601), N = 114 moving right - --- 0.546372 (0.652119), N = 100 moving right - --- 0.620399 (0.644545), N = 77 moving right - --- 0.666397 (0.642915), N = 71 moving right - --- 0.762455 (0.662109), N = 54 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.662109, min to split: 0.999 +--- Computing oobag predictions: tree 442 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 100 + -- N preds made: 100 - -- time & status & weights in this node +--- Computing oobag predictions: tree 443 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 3.0000e+00 - 7.1000e+01 1.0000e+00 2.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 1.0000e+00 - 1.4000e+02 1.0000e+00 1.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 106 + -- N preds made: 106 +--- Computing oobag predictions: tree 444 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 93 + -- N preds made: 93 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8188e-01 1.8195e-02 - 7.1000e+01 9.7464e-01 2.5575e-02 - 1.1000e+02 9.7101e-01 2.9293e-02 - 1.3100e+02 9.6739e-01 3.3024e-02 +--- Computing oobag predictions: tree 445 --- + -- N preds expected: 100 + -- N preds made: 100 ------------- Growing tree 497 -------------- +--- Computing oobag predictions: tree 446 --- -- N obs inbag: 276 -- N row inbag: 184 -- max nodes: 231 -- max leaves: 116 + -- N preds expected: 94 + -- N preds made: 94 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 447 --- - -- columns sampled (showing up to 5) + -- N preds expected: 113 + -- N preds made: 113 - 0 3 10 16 13 +--- Computing oobag predictions: tree 448 --- + -- N preds expected: 98 + -- N preds made: 98 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 449 --- - -0.2827 4.4196 -0.5346 0.3533 0.2127 + -- N preds expected: 107 + -- N preds made: 107 +--- Computing oobag predictions: tree 450 --- - -- cutpoint (score) - --- -0.830202 (0.554122), N = 232 moving right - --- -0.733893 (0.560619), N = 217 moving right - --- -0.506662 (0.628828), N = 178 moving right - --- 0.153246 (0.71406), N = 85 moving right - --- 0.899453 (0.638902), N = 30 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.71406, min to split: 0.999 +--- Computing oobag predictions: tree 451 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 105 + -- N preds made: 105 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 452 --- - 4 11 5 16 17 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 453 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 91 + -- N preds made: 91 - 0.6619 1.0120 0.9543 0.3589 0.3398 +--- Computing oobag predictions: tree 454 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- -0.070097 (0.565063), N = 244 moving right - --- 1.80496 (0.740801), N = 114 moving right - --- 2.05109 (0.732213), N = 95 moving right - --- 3.17825 (0.663873), N = 38 moving right - --- 4.84742 (0.540149), N = 10 moving right +--- Computing oobag predictions: tree 455 --- - -- best stat: 0.740801, min to split: 0.999 + -- N preds expected: 109 + -- N preds made: 109 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 456 --- - -- columns sampled (showing up to 5) + -- N preds expected: 95 + -- N preds made: 95 - 14 6 13 1 9 +--- Computing oobag predictions: tree 457 --- + -- N preds expected: 99 + -- N preds made: 99 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 458 --- - 0.2770 1.0302 0.1415 0.4498 0.2427 + -- N preds expected: 95 + -- N preds made: 95 +--- Computing oobag predictions: tree 459 --- - -- cutpoint (score) - --- -0.345333 (0.608715), N = 206 moving right - --- -0.277177 (0.612595), N = 193 moving right - --- -0.03058 (0.661839), N = 142 moving right - --- 0.0301289 (0.627208), N = 125 moving right - --- 0.185931 (0.627735), N = 99 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.661839, min to split: 0.999 +--- Computing oobag predictions: tree 460 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 101 + -- N preds made: 101 - -- time & status & weights in this node +--- Computing oobag predictions: tree 461 --- - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.1000e+02 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.7900e+02 1.0000e+00 1.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 108 + -- N preds made: 108 +--- Computing oobag predictions: tree 462 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 93 + -- N preds made: 93 - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.9275e-01 7.2596e-03 - 1.1000e+02 9.8913e-01 1.0909e-02 - 1.3100e+02 9.8188e-01 1.8235e-02 - 1.7900e+02 9.7826e-01 2.1925e-02 +--- Computing oobag predictions: tree 463 --- + -- N preds expected: 104 + -- N preds made: 104 ------------- Growing tree 498 -------------- +--- Computing oobag predictions: tree 464 --- -- N obs inbag: 276 -- N row inbag: 169 -- max nodes: 197 -- max leaves: 99 + -- N preds expected: 107 + -- N preds made: 107 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 465 --- - -- columns sampled (showing up to 5) + -- N preds expected: 104 + -- N preds made: 104 - 6 2 3 0 8 +--- Computing oobag predictions: tree 466 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 467 --- - 0.4052 -1.0451 6.5784 0.0368 1.6715 + -- N preds expected: 98 + -- N preds made: 98 +--- Computing oobag predictions: tree 468 --- - -- cutpoint (score) - --- -1.09321 (0.752642), N = 105 moving right - --- -1.02102 (0.739491), N = 100 moving right - --- -0.375519 (0.75081), N = 66 moving right - --- -0.185482 (0.724954), N = 57 moving right - --- 1.94993 (0.649054), N = 26 moving right + -- N preds expected: 107 + -- N preds made: 107 - -- best stat: 0.752642, min to split: 0.999 +--- Computing oobag predictions: tree 469 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 106 + -- N preds made: 106 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 470 --- - 1 5 16 11 7 + -- N preds expected: 99 + -- N preds made: 99 +--- Computing oobag predictions: tree 471 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 106 + -- N preds made: 106 - 0.5000 0.6626 0.2795 0.8080 3.2644 +--- Computing oobag predictions: tree 472 --- + -- N preds expected: 101 + -- N preds made: 101 - -- cutpoint (score) - --- -1.07181 (0.548025), N = 245 moving right - --- -0.541574 (0.640364), N = 193 moving right - --- -0.295755 (0.710418), N = 153 moving right - --- 1.40329 (0.656897), N = 53 moving right - --- 1.83264 (0.601099), N = 27 moving right +--- Computing oobag predictions: tree 473 --- - -- best stat: 0.710418, min to split: 0.999 + -- N preds expected: 88 + -- N preds made: 88 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 474 --- - -- columns sampled (showing up to 5) + -- N preds expected: 99 + -- N preds made: 99 - 17 7 6 0 9 +--- Computing oobag predictions: tree 475 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 476 --- - 0.4920 4.8064 1.6726 0.0785 0.5425 + -- N preds expected: 101 + -- N preds made: 101 +--- Computing oobag predictions: tree 477 --- - -- cutpoint (score) - --- 0.759195 (0.561035), N = 243 moving right - --- 0.856246 (0.570805), N = 233 moving right - --- 1.16588 (0.622047), N = 194 moving right - --- 1.55839 (0.694143), N = 139 moving right - --- 1.74544 (0.670988), N = 116 moving right + -- N preds expected: 103 + -- N preds made: 103 - -- best stat: 0.694143, min to split: 0.999 +--- Computing oobag predictions: tree 478 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 82 + -- N preds made: 82 - -- time & status & weights in this node +--- Computing oobag predictions: tree 479 --- - 7.1000e+01 1.0000e+00 1.0000e+00 - 7.7000e+01 1.0000e+00 4.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 2.0000e+00 - 1.9800e+02 1.0000e+00 1.0000e+00 - 2.2300e+02 1.0000e+00 1.0000e+00 - 2.6400e+02 1.0000e+00 1.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 1.0000e+00 + -- N preds expected: 103 + -- N preds made: 103 +--- Computing oobag predictions: tree 480 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 101 + -- N preds made: 101 - 7.1000e+01 9.9638e-01 3.6232e-03 - 7.7000e+01 9.8188e-01 1.8169e-02 - 1.3100e+02 9.7464e-01 2.5549e-02 - 1.8600e+02 9.7101e-01 2.9266e-02 - 1.9100e+02 9.6377e-01 3.6729e-02 +--- Computing oobag predictions: tree 481 --- + -- N preds expected: 108 + -- N preds made: 108 ------------- Growing tree 499 -------------- +--- Computing oobag predictions: tree 482 --- -- N obs inbag: 276 -- N row inbag: 179 -- max nodes: 233 -- max leaves: 117 + -- N preds expected: 95 + -- N preds made: 95 --- attempting to split node 0 (N = 276, try number 1) +--- Computing oobag predictions: tree 483 --- - -- columns sampled (showing up to 5) + -- N preds expected: 93 + -- N preds made: 93 - 13 6 4 2 1 +--- Computing oobag predictions: tree 484 --- + -- N preds expected: 103 + -- N preds made: 103 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 485 --- - 0.3676 -0.4604 0.6502 0.4927 0.6738 + -- N preds expected: 105 + -- N preds made: 105 +--- Computing oobag predictions: tree 486 --- - -- cutpoint (score) - --- 0.0454134 (0.579022), N = 227 moving right - --- 0.465527 (0.630631), N = 177 moving right - --- 0.558754 (0.666619), N = 160 moving right - --- 0.96496 (0.674033), N = 106 moving right - --- 1.38862 (0.61831), N = 46 moving right + -- N preds expected: 105 + -- N preds made: 105 - -- best stat: 0.674033, min to split: 0.999 +--- Computing oobag predictions: tree 487 --- --- attempting to split node 0 (N = 276, try number 2) + -- N preds expected: 98 + -- N preds made: 98 - -- columns sampled (showing up to 5) +--- Computing oobag predictions: tree 488 --- - 9 6 5 17 12 + -- N preds expected: 104 + -- N preds made: 104 +--- Computing oobag predictions: tree 489 --- - -- linear combo weights (showing up to 5) + -- N preds expected: 108 + -- N preds made: 108 - 0.3864 -0.2246 0.9741 0.4153 0.1352 +--- Computing oobag predictions: tree 490 --- + -- N preds expected: 99 + -- N preds made: 99 - -- cutpoint (score) - --- 0.611025 (0.566741), N = 241 moving right - --- 0.838925 (0.577515), N = 223 moving right - --- 1.02613 (0.604786), N = 206 moving right - --- 2.13851 (0.622322), N = 70 moving right - --- 2.7697 (0.551568), N = 19 moving right +--- Computing oobag predictions: tree 491 --- - -- best stat: 0.622322, min to split: 0.999 + -- N preds expected: 104 + -- N preds made: 104 --- attempting to split node 0 (N = 276, try number 3) +--- Computing oobag predictions: tree 492 --- - -- columns sampled (showing up to 5) + -- N preds expected: 98 + -- N preds made: 98 - 5 17 0 16 8 +--- Computing oobag predictions: tree 493 --- + -- N preds expected: 97 + -- N preds made: 97 - -- linear combo weights (showing up to 5) +--- Computing oobag predictions: tree 494 --- - 0.4790 0.3211 -0.1514 0.3724 1.7822 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 495 --- - -- cutpoint (score) - --- -0.441199 (0.583136), N = 233 moving right - --- 0.0386227 (0.660733), N = 177 moving right - --- 0.249344 (0.710896), N = 149 moving right - --- 0.953561 (0.737149), N = 93 moving right - --- 1.21715 (0.72776), N = 76 moving right + -- N preds expected: 108 + -- N preds made: 108 - -- best stat: 0.737149, min to split: 0.999 +--- Computing oobag predictions: tree 496 --- --- sprouting node 0 into a leaf (N = 276) + -- N preds expected: 106 + -- N preds made: 106 - -- time & status & weights in this node +--- Computing oobag predictions: tree 497 --- - 4.1000e+01 1.0000e+00 2.0000e+00 - 5.1000e+01 1.0000e+00 2.0000e+00 - 7.7000e+01 1.0000e+00 1.0000e+00 - 1.3100e+02 1.0000e+00 2.0000e+00 - 1.4000e+02 1.0000e+00 2.0000e+00 - 1.8600e+02 1.0000e+00 1.0000e+00 - 1.9100e+02 1.0000e+00 1.0000e+00 - 2.1600e+02 1.0000e+00 3.0000e+00 - 3.0400e+02 1.0000e+00 1.0000e+00 - 3.2100e+02 1.0000e+00 2.0000e+00 + -- N preds expected: 94 + -- N preds made: 94 +--- Computing oobag predictions: tree 498 --- - -- leaf_data (showing up to 5 rows) + -- N preds expected: 103 + -- N preds made: 103 - 4.1000e+01 9.9275e-01 7.2464e-03 - 5.1000e+01 9.8551e-01 1.4546e-02 - 7.7000e+01 9.8188e-01 1.8222e-02 - 1.3100e+02 9.7464e-01 2.5602e-02 - 1.4000e+02 9.6739e-01 3.3037e-02 +--- Computing oobag predictions: tree 499 --- + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 0 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 1 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 2 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 3 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 4 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 5 --- @@ -47535,213 +10048,213 @@ N columns total: 18 --- Computing oobag predictions: tree 6 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 7 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 8 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 9 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 10 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 11 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 12 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 13 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 14 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 15 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 16 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 17 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 18 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 19 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 20 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 21 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 22 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 23 --- - -- N preds expected: 92 - -- N preds made: 92 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 24 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 25 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 26 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 27 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 28 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 29 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 30 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 31 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 32 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 89 + -- N preds made: 89 --- Computing oobag predictions: tree 33 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 34 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 35 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 88 + -- N preds made: 88 --- Computing oobag predictions: tree 36 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 37 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 38 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 39 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 40 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 41 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 42 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 43 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 44 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 45 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 46 --- - -- N preds expected: 92 - -- N preds made: 92 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 47 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 48 --- @@ -47750,203 +10263,203 @@ N columns total: 18 --- Computing oobag predictions: tree 49 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 50 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 51 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 52 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 53 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 54 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 55 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 56 --- - -- N preds expected: 114 - -- N preds made: 114 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 57 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 58 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 59 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 60 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 61 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 62 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 63 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 64 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 65 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 66 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 115 + -- N preds made: 115 --- Computing oobag predictions: tree 67 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 68 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 69 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 70 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 71 --- - -- N preds expected: 110 - -- N preds made: 110 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 72 --- - -- N preds expected: 116 - -- N preds made: 116 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 73 --- - -- N preds expected: 110 - -- N preds made: 110 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 74 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 75 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 76 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 77 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 78 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 79 --- - -- N preds expected: 111 - -- N preds made: 111 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 80 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 81 --- - -- N preds expected: 110 - -- N preds made: 110 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 82 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 83 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 84 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 85 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 86 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 87 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 88 --- - -- N preds expected: 89 - -- N preds made: 89 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 89 --- @@ -47955,58 +10468,58 @@ N columns total: 18 --- Computing oobag predictions: tree 90 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 91 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 92 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 93 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 94 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 95 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 96 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 97 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 98 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 99 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 100 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 101 --- @@ -48015,173 +10528,173 @@ N columns total: 18 --- Computing oobag predictions: tree 102 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 103 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 104 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 105 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 106 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 113 + -- N preds made: 113 --- Computing oobag predictions: tree 107 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 108 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 109 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 110 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 111 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 112 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 113 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 114 --- - -- N preds expected: 111 - -- N preds made: 111 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 115 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 116 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 117 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 118 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 119 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 120 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 121 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 122 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 123 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 124 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 125 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 126 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 88 + -- N preds made: 88 --- Computing oobag predictions: tree 127 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 128 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 129 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 130 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 131 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 132 --- - -- N preds expected: 112 - -- N preds made: 112 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 133 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 134 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 135 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 136 --- @@ -48190,68 +10703,68 @@ N columns total: 18 --- Computing oobag predictions: tree 137 --- - -- N preds expected: 113 - -- N preds made: 113 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 138 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 139 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 140 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 141 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 142 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 143 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 144 --- - -- N preds expected: 89 - -- N preds made: 89 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 145 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 146 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 147 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 113 + -- N preds made: 113 --- Computing oobag predictions: tree 148 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 149 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 150 --- @@ -48260,23 +10773,23 @@ N columns total: 18 --- Computing oobag predictions: tree 151 --- - -- N preds expected: 112 - -- N preds made: 112 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 152 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 153 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 154 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 155 --- @@ -48285,63 +10798,63 @@ N columns total: 18 --- Computing oobag predictions: tree 156 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 157 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 158 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 159 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 160 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 91 + -- N preds made: 91 --- Computing oobag predictions: tree 161 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 162 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 116 + -- N preds made: 116 --- Computing oobag predictions: tree 163 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 164 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 165 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 166 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 167 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 168 --- @@ -48355,8 +10868,8 @@ N columns total: 18 --- Computing oobag predictions: tree 170 --- - -- N preds expected: 92 - -- N preds made: 92 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 171 --- @@ -48365,128 +10878,128 @@ N columns total: 18 --- Computing oobag predictions: tree 172 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 173 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 174 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 175 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 176 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 91 + -- N preds made: 91 --- Computing oobag predictions: tree 177 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 178 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 179 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 180 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 181 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 182 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 183 --- - -- N preds expected: 114 - -- N preds made: 114 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 184 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 185 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 186 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 187 --- - -- N preds expected: 88 - -- N preds made: 88 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 188 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 189 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 190 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 191 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 192 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 193 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 194 --- - -- N preds expected: 111 - -- N preds made: 111 + -- N preds expected: 112 + -- N preds made: 112 --- Computing oobag predictions: tree 195 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 196 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 197 --- @@ -48495,33 +11008,33 @@ N columns total: 18 --- Computing oobag predictions: tree 198 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 199 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 200 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 201 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 202 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 203 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 204 --- @@ -48530,168 +11043,168 @@ N columns total: 18 --- Computing oobag predictions: tree 205 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 206 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 207 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 208 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 209 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 210 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 211 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 212 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 115 + -- N preds made: 115 --- Computing oobag predictions: tree 213 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 214 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 215 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 216 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 217 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 218 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 219 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 220 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 114 + -- N preds made: 114 --- Computing oobag predictions: tree 221 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 222 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 223 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 224 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 225 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 226 --- - -- N preds expected: 115 - -- N preds made: 115 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 227 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 228 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 229 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 90 + -- N preds made: 90 --- Computing oobag predictions: tree 230 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 231 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 232 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 233 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 91 + -- N preds made: 91 --- Computing oobag predictions: tree 234 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 235 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 236 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 237 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 238 --- @@ -48700,13 +11213,13 @@ N columns total: 18 --- Computing oobag predictions: tree 239 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 240 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 241 --- @@ -48715,188 +11228,188 @@ N columns total: 18 --- Computing oobag predictions: tree 242 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 243 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 244 --- - -- N preds expected: 115 - -- N preds made: 115 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 245 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 246 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 247 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 248 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 249 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 250 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 251 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 252 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 253 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 254 --- - -- N preds expected: 114 - -- N preds made: 114 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 255 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 256 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 257 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 258 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 259 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 260 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 261 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 262 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 263 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 264 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 265 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 266 --- - -- N preds expected: 112 - -- N preds made: 112 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 267 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 268 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 269 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 270 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 271 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 272 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 273 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 274 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 275 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 276 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 277 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 278 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 279 --- @@ -48905,68 +11418,68 @@ N columns total: 18 --- Computing oobag predictions: tree 280 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 281 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 282 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 283 --- - -- N preds expected: 111 - -- N preds made: 111 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 284 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 285 --- - -- N preds expected: 114 - -- N preds made: 114 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 286 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 287 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 116 + -- N preds made: 116 --- Computing oobag predictions: tree 288 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 289 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 290 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 291 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 292 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 293 --- @@ -48975,38 +11488,38 @@ N columns total: 18 --- Computing oobag predictions: tree 294 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 295 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 296 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 297 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 298 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 299 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 300 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 301 --- @@ -49015,83 +11528,83 @@ N columns total: 18 --- Computing oobag predictions: tree 302 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 303 --- - -- N preds expected: 90 - -- N preds made: 90 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 304 --- - -- N preds expected: 110 - -- N preds made: 110 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 305 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 113 + -- N preds made: 113 --- Computing oobag predictions: tree 306 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 307 --- - -- N preds expected: 111 - -- N preds made: 111 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 308 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 309 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 310 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 311 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 312 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 313 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 90 + -- N preds made: 90 --- Computing oobag predictions: tree 314 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 315 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 316 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 317 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 318 --- @@ -49100,28 +11613,28 @@ N columns total: 18 --- Computing oobag predictions: tree 319 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 320 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 321 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 322 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 323 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 324 --- @@ -49130,13 +11643,13 @@ N columns total: 18 --- Computing oobag predictions: tree 325 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 326 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 327 --- @@ -49145,168 +11658,168 @@ N columns total: 18 --- Computing oobag predictions: tree 328 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 329 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 330 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 331 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 332 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 333 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 334 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 335 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 336 --- - -- N preds expected: 88 - -- N preds made: 88 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 337 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 338 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 339 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 92 + -- N preds made: 92 --- Computing oobag predictions: tree 340 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 341 --- - -- N preds expected: 120 - -- N preds made: 120 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 342 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 343 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 344 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 345 --- - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 346 --- - -- N preds expected: 104 -- N preds made: 104 ---- Computing oobag predictions: tree 347 --- +--- Computing oobag predictions: tree 346 --- -- N preds expected: 98 -- N preds made: 98 +--- Computing oobag predictions: tree 347 --- + + -- N preds expected: 107 + -- N preds made: 107 + --- Computing oobag predictions: tree 348 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 349 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 350 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 351 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 352 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 113 + -- N preds made: 113 --- Computing oobag predictions: tree 353 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 354 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 355 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 356 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 357 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 358 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 359 --- - -- N preds expected: 113 - -- N preds made: 113 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 360 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 361 --- @@ -49315,113 +11828,113 @@ N columns total: 18 --- Computing oobag predictions: tree 362 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 363 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 364 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 365 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 366 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 367 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 368 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 369 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 370 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 371 --- - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 372 --- - -- N preds expected: 108 -- N preds made: 108 ---- Computing oobag predictions: tree 373 --- +--- Computing oobag predictions: tree 372 --- -- N preds expected: 97 -- N preds made: 97 +--- Computing oobag predictions: tree 373 --- + + -- N preds expected: 104 + -- N preds made: 104 + --- Computing oobag predictions: tree 374 --- - -- N preds expected: 113 - -- N preds made: 113 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 375 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 376 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 377 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 378 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 379 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 380 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 381 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 382 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 383 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 384 --- @@ -49430,8 +11943,8 @@ N columns total: 18 --- Computing oobag predictions: tree 385 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 111 + -- N preds made: 111 --- Computing oobag predictions: tree 386 --- @@ -49440,43 +11953,43 @@ N columns total: 18 --- Computing oobag predictions: tree 387 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 388 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 389 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 390 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 391 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 392 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 118 + -- N preds made: 118 --- Computing oobag predictions: tree 393 --- - -- N preds expected: 112 - -- N preds made: 112 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 394 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 395 --- @@ -49485,153 +11998,153 @@ N columns total: 18 --- Computing oobag predictions: tree 396 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 91 + -- N preds made: 91 --- Computing oobag predictions: tree 397 --- - -- N preds expected: 93 - -- N preds made: 93 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 398 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 399 --- - -- N preds expected: 91 - -- N preds made: 91 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 400 --- - -- N preds expected: 113 - -- N preds made: 113 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 401 --- - -- N preds expected: 112 - -- N preds made: 112 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 402 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 403 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 404 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 405 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 96 + -- N preds made: 96 --- Computing oobag predictions: tree 406 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 407 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 408 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 409 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 110 + -- N preds made: 110 --- Computing oobag predictions: tree 410 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 411 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 412 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 413 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 414 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 415 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 416 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 417 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 418 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 419 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 420 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 112 + -- N preds made: 112 --- Computing oobag predictions: tree 421 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 422 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 423 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 424 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 425 --- - -- N preds expected: 82 - -- N preds made: 82 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 426 --- @@ -49640,63 +12153,63 @@ N columns total: 18 --- Computing oobag predictions: tree 427 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 428 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 429 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 430 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 431 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 102 + -- N preds made: 102 --- Computing oobag predictions: tree 432 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 433 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 434 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 435 --- - -- N preds expected: 90 - -- N preds made: 90 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 436 --- - -- N preds expected: 96 - -- N preds made: 96 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 437 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 438 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 439 --- @@ -49705,88 +12218,88 @@ N columns total: 18 --- Computing oobag predictions: tree 440 --- - -- N preds expected: 105 - -- N preds made: 105 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 441 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 442 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 443 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 444 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 445 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 100 + -- N preds made: 100 --- Computing oobag predictions: tree 446 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 447 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 113 + -- N preds made: 113 --- Computing oobag predictions: tree 448 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 449 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 450 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 451 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 452 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 453 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 91 + -- N preds made: 91 --- Computing oobag predictions: tree 454 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 455 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 109 + -- N preds made: 109 --- Computing oobag predictions: tree 456 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 457 --- @@ -49795,43 +12308,43 @@ N columns total: 18 --- Computing oobag predictions: tree 458 --- - -- N preds expected: 92 - -- N preds made: 92 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 459 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 460 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 461 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 462 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 463 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 464 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 465 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 466 --- @@ -49840,166 +12353,168 @@ N columns total: 18 --- Computing oobag predictions: tree 467 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 468 --- - -- N preds expected: 103 - -- N preds made: 103 + -- N preds expected: 107 + -- N preds made: 107 --- Computing oobag predictions: tree 469 --- - -- N preds expected: 108 - -- N preds made: 108 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 470 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 471 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 472 --- - -- N preds expected: 106 - -- N preds made: 106 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 473 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 88 + -- N preds made: 88 --- Computing oobag predictions: tree 474 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 475 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 476 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 477 --- - -- N preds expected: 94 - -- N preds made: 94 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 478 --- - -- N preds expected: 110 - -- N preds made: 110 + -- N preds expected: 82 + -- N preds made: 82 --- Computing oobag predictions: tree 479 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 480 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 101 + -- N preds made: 101 --- Computing oobag predictions: tree 481 --- - -- N preds expected: 102 - -- N preds made: 102 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 482 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 95 + -- N preds made: 95 --- Computing oobag predictions: tree 483 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 93 + -- N preds made: 93 --- Computing oobag predictions: tree 484 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 485 --- - -- N preds expected: 104 - -- N preds made: 104 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 486 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 105 + -- N preds made: 105 --- Computing oobag predictions: tree 487 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 488 --- - -- N preds expected: 109 - -- N preds made: 109 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 489 --- - -- N preds expected: 95 - -- N preds made: 95 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 490 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 99 + -- N preds made: 99 --- Computing oobag predictions: tree 491 --- - -- N preds expected: 99 - -- N preds made: 99 + -- N preds expected: 104 + -- N preds made: 104 --- Computing oobag predictions: tree 492 --- - -- N preds expected: 89 - -- N preds made: 89 + -- N preds expected: 98 + -- N preds made: 98 --- Computing oobag predictions: tree 493 --- - -- N preds expected: 101 - -- N preds made: 101 + -- N preds expected: 97 + -- N preds made: 97 --- Computing oobag predictions: tree 494 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 495 --- - -- N preds expected: 98 - -- N preds made: 98 + -- N preds expected: 108 + -- N preds made: 108 --- Computing oobag predictions: tree 496 --- - -- N preds expected: 100 - -- N preds made: 100 + -- N preds expected: 106 + -- N preds made: 106 --- Computing oobag predictions: tree 497 --- - -- N preds expected: 92 - -- N preds made: 92 + -- N preds expected: 94 + -- N preds made: 94 --- Computing oobag predictions: tree 498 --- - -- N preds expected: 107 - -- N preds made: 107 + -- N preds expected: 103 + -- N preds made: 103 --- Computing oobag predictions: tree 499 --- - -- N preds expected: 97 - -- N preds made: 97 + -- N preds expected: 102 + -- N preds made: 102 +Called from: pd_fun(object, x_new, pred_spec, pred_horizon, type_output, prob_values, + prob_labels, n_thread, oobag, pred_type_R) diff --git a/scratch.R b/scratch.R index 1947d076..34964d34 100644 --- a/scratch.R +++ b/scratch.R @@ -3,24 +3,18 @@ library(riskRegression) library(survival) tictoc::tic() +fit <- orsf(pbc_orsf, formula = time+status ~ . - id) +tictoc::toc() + sink("orsf-output.txt") -fit <- orsf(pbc_orsf, - formula = Surv(time, status) ~ . - id, - oobag_pred_type = 'risk', - oobag_pred_horizon = 1000, - split_rule = 'logrank', - split_min_stat = 0.1, - tree_seeds = 1:500, - n_tree = 500, - importance = 'none', - n_thread = 1, - verbose_progress = 0) +orsf_pd_oob(fit, + pred_spec = list(bili = 1:5, trt = 'placebo'), + pred_horizon = seq(100, 1000, by=100)) sink() -tictoc::toc() + fit$importance->tmp tictoc::tic() -orsf_vi_negate(fit)->tmp2 orsf_pd_oob(fit, pred_spec = list(bili = c(1:5))) tictoc::toc() diff --git a/src/Data.h b/src/Data.h index e2370355..a2db0a97 100644 --- a/src/Data.h +++ b/src/Data.h @@ -112,17 +112,15 @@ } - void restore_cols(arma::uvec cols){ + void save_col(arma::uword j){ - if(cols.size() != mat_restore_values.n_cols){ - stop("restore_cols is not the right size"); - } + mat_restore_values.col(j) = x.col(j); - uword i = 0; - for(const auto& j : cols){ - x.col(j) = mat_restore_values.col(i); - ++i; - } + } + + void restore_col_2(arma::uword j){ + + x.col(j) = mat_restore_values.col(j); } diff --git a/src/Forest.cpp b/src/Forest.cpp index 4d043479..9260ad0e 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -43,10 +43,6 @@ void Forest::init(std::unique_ptr input_data, EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, - PartialDepType pd_type, - arma::mat& pd_x_vals, - arma::uvec& pd_x_cols, - arma::vec& pd_probs, uint n_thread, int verbosity){ @@ -77,10 +73,6 @@ void Forest::init(std::unique_ptr input_data, this->oobag_eval_type = oobag_eval_type; this->oobag_eval_every = oobag_eval_every; this->oobag_R_function = oobag_R_function; - this->pd_type = pd_type; - this->pd_x_vals = pd_x_vals; - this->pd_x_cols = pd_x_cols; - this->pd_probs = pd_probs; this->n_thread = n_thread; this->verbosity = verbosity; @@ -140,6 +132,7 @@ void Forest::run(bool oobag){ // if using a grown forest for partial dependence if(pd_type == PD_SUMMARY || pd_type == PD_ICE){ + Rcout << pd_type << std::endl; this->pd_values = compute_dependence(oobag); } @@ -568,35 +561,57 @@ mat Forest::predict(bool oobag) { } -std::vector Forest::compute_dependence(bool oobag){ +std::vector> Forest::compute_dependence(bool oobag){ - uword n = pd_x_vals.n_rows; + std::vector> result; - std::vector result; - result.reserve(n); + result.reserve(pd_x_vals.size()); - for(uword i = 0; i < n; ++i){ + data->mat_restore_values.zeros(data->n_rows, data->n_cols); - uword j = 0; - for(const auto& x_col : pd_x_cols){ - data->fill_col(pd_x_vals.at(i, j), x_col); - ++j; + for(uword k = 0; k < pd_x_vals.size(); ++k){ + + uword n = pd_x_vals[k].n_rows; + + std::vector result_k; + + result_k.reserve(n); + + for(const auto& x_col : pd_x_cols[k]){ + Rcout << x_col << std::endl; + data->save_col(x_col); } - mat preds = predict(oobag); + for(uword i = 0; i < n; ++i){ + + uword j = 0; + for(const auto& x_col : pd_x_cols[k]){ + data->fill_col(pd_x_vals[k].at(i, j), x_col); + ++j; + } + + mat preds = predict(oobag); + + if(pd_type == PD_SUMMARY){ + + mat preds_summary = mean(preds, 0); + mat preds_quant = quantile(preds, pd_probs, 0); + result_k.push_back(join_vert(preds_summary, preds_quant)); - if(pd_type == PD_SUMMARY){ + } else if(pd_type == PD_ICE) { - mat preds_quant = quantile(preds, pd_probs, 0); - mat preds_summary = mean(preds, 0); - result.push_back(join_vert(preds_summary, preds_quant)); + result_k.push_back(preds); - } else if(pd_type == PD_ICE) { + } - result.push_back(preds); + } + for(const auto& x_col : pd_x_cols[k]){ + data->restore_col_2(x_col); } + result.push_back(result_k); + } return(result); diff --git a/src/Forest.h b/src/Forest.h index f2d284e8..15bfe2f0 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -65,10 +65,6 @@ class Forest { EvalType oobag_eval_type, arma::uword oobag_eval_every, Rcpp::RObject oobag_R_function, - PartialDepType pd_type, - arma::mat& pd_x_vals, - arma::uvec& pd_x_cols, - arma::vec& pd_probs, uint n_thread, int verbosity); @@ -194,7 +190,7 @@ class Forest { return(pred_values); } - std::vector& get_pd_values(){ + std::vector>& get_pd_values(){ return(pd_values); } @@ -206,7 +202,7 @@ class Forest { arma::mat predict(bool oobag); - std::vector compute_dependence(bool oobag); + std::vector> compute_dependence(bool oobag); protected: @@ -296,9 +292,9 @@ class Forest { // partial dependence PartialDepType pd_type; - std::vector pd_values; - arma::mat pd_x_vals; - arma::uvec pd_x_cols; + std::vector> pd_values; + std::vector pd_x_vals; + std::vector pd_x_cols; arma::vec pd_probs; // out-of-bag diff --git a/src/ForestSurvival.cpp b/src/ForestSurvival.cpp index 817cdbac..b6ef3576 100644 --- a/src/ForestSurvival.cpp +++ b/src/ForestSurvival.cpp @@ -33,10 +33,18 @@ void ForestSurvival::load( std::vector>& forest_leaf_pred_indx, std::vector>& forest_leaf_pred_prob, std::vector>& forest_leaf_pred_chaz, - std::vector>& forest_leaf_summary + std::vector>& forest_leaf_summary, + PartialDepType pd_type, + std::vector& pd_x_vals, + std::vector& pd_x_cols, + arma::vec& pd_probs ) { - this->n_tree = n_tree; + this->n_tree = n_tree; + this->pd_type = pd_type; + this->pd_x_vals = pd_x_vals; + this->pd_x_cols = pd_x_cols; + this->pd_probs = pd_probs; if(VERBOSITY > 0){ Rcout << "---- loading forest from input list ----"; diff --git a/src/ForestSurvival.h b/src/ForestSurvival.h index c89598b8..65e10592 100644 --- a/src/ForestSurvival.h +++ b/src/ForestSurvival.h @@ -33,7 +33,11 @@ class ForestSurvival: public Forest { std::vector>& forest_leaf_pred_indx, std::vector>& forest_leaf_pred_prob, std::vector>& forest_leaf_pred_chaz, - std::vector>& forest_leaf_summary); + std::vector>& forest_leaf_summary, + PartialDepType pd_type, + std::vector& pd_x_vals, + std::vector& pd_x_cols, + arma::vec& pd_probs); std::vector> get_leaf_pred_indx(); std::vector> get_leaf_pred_prob(); diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index a143d34f..c0b81aa4 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -56,8 +56,8 @@ BEGIN_RCPP END_RCPP } // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, int pd_type_R, arma::mat& pd_vals, arma::uvec& pd_cols, arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP pd_type_RSEXP, SEXP pd_valsSEXP, SEXP pd_colsSEXP, SEXP pd_probsSEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List& loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, int pd_type_R, std::vector& pd_x_vals, std::vector& pd_x_cols, arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP pd_type_RSEXP, SEXP pd_x_valsSEXP, SEXP pd_x_colsSEXP, SEXP pd_probsSEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -66,7 +66,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); Rcpp::traits::input_parameter< arma::uword >::type tree_type_R(tree_type_RSEXP); Rcpp::traits::input_parameter< Rcpp::IntegerVector& >::type tree_seeds(tree_seedsSEXP); - Rcpp::traits::input_parameter< Rcpp::List >::type loaded_forest(loaded_forestSEXP); + Rcpp::traits::input_parameter< Rcpp::List& >::type loaded_forest(loaded_forestSEXP); Rcpp::traits::input_parameter< Rcpp::RObject >::type lincomb_R_function(lincomb_R_functionSEXP); Rcpp::traits::input_parameter< Rcpp::RObject >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); @@ -96,14 +96,14 @@ BEGIN_RCPP Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_type_R(oobag_eval_type_RSEXP); Rcpp::traits::input_parameter< arma::uword >::type oobag_eval_every(oobag_eval_everySEXP); Rcpp::traits::input_parameter< int >::type pd_type_R(pd_type_RSEXP); - Rcpp::traits::input_parameter< arma::mat& >::type pd_vals(pd_valsSEXP); - Rcpp::traits::input_parameter< arma::uvec& >::type pd_cols(pd_colsSEXP); + Rcpp::traits::input_parameter< std::vector& >::type pd_x_vals(pd_x_valsSEXP); + Rcpp::traits::input_parameter< std::vector& >::type pd_x_cols(pd_x_colsSEXP); Rcpp::traits::input_parameter< arma::vec& >::type pd_probs(pd_probsSEXP); Rcpp::traits::input_parameter< unsigned int >::type n_thread(n_threadSEXP); Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); Rcpp::traits::input_parameter< int >::type verbosity(verbositySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_vals, pd_cols, pd_probs, n_thread, write_forest, run_forest, verbosity)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity)); return rcpp_result_gen; END_RCPP } diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 399903cc..e5b2bf63 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -313,7 +313,7 @@ double TreeSurvival::compute_split_score(){ - double result; + double result=0; switch (split_rule) { diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 6d5f7616..2df2314d 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -71,48 +71,48 @@ // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] - List orsf_cpp(arma::mat& x, - arma::mat& y, - arma::vec& w, - arma::uword tree_type_R, - Rcpp::IntegerVector& tree_seeds, - Rcpp::List loaded_forest, - Rcpp::RObject lincomb_R_function, - Rcpp::RObject oobag_R_function, - arma::uword n_tree, - arma::uword mtry, - arma::uword vi_type_R, - double vi_max_pvalue, - double leaf_min_events, - double leaf_min_obs, - arma::uword split_rule_R, - double split_min_events, - double split_min_obs, - double split_min_stat, - arma::uword split_max_cuts, - arma::uword split_max_retry, - arma::uword lincomb_type_R, - double lincomb_eps, - arma::uword lincomb_iter_max, - bool lincomb_scale, - double lincomb_alpha, - arma::uword lincomb_df_target, - arma::uword lincomb_ties_method, - bool pred_mode, - arma::uword pred_type_R, - arma::vec pred_horizon, - bool pred_aggregate, - bool oobag, - arma::uword oobag_eval_type_R, - arma::uword oobag_eval_every, - int pd_type_R, - arma::mat& pd_vals, - arma::uvec& pd_cols, - arma::vec& pd_probs, - unsigned int n_thread, - bool write_forest, - bool run_forest, - int verbosity){ + List orsf_cpp(arma::mat& x, + arma::mat& y, + arma::vec& w, + arma::uword tree_type_R, + Rcpp::IntegerVector& tree_seeds, + Rcpp::List& loaded_forest, + Rcpp::RObject lincomb_R_function, + Rcpp::RObject oobag_R_function, + arma::uword n_tree, + arma::uword mtry, + arma::uword vi_type_R, + double vi_max_pvalue, + double leaf_min_events, + double leaf_min_obs, + arma::uword split_rule_R, + double split_min_events, + double split_min_obs, + double split_min_stat, + arma::uword split_max_cuts, + arma::uword split_max_retry, + arma::uword lincomb_type_R, + double lincomb_eps, + arma::uword lincomb_iter_max, + bool lincomb_scale, + double lincomb_alpha, + arma::uword lincomb_df_target, + arma::uword lincomb_ties_method, + bool pred_mode, + arma::uword pred_type_R, + arma::vec pred_horizon, + bool pred_aggregate, + bool oobag, + arma::uword oobag_eval_type_R, + arma::uword oobag_eval_every, + int pd_type_R, + std::vector& pd_x_vals, + std::vector& pd_x_cols, + arma::vec& pd_probs, + unsigned int n_thread, + bool write_forest, + bool run_forest, + int verbosity){ List result; @@ -189,10 +189,6 @@ oobag_eval_type, oobag_eval_every, oobag_R_function, - pd_type, - pd_vals, - pd_cols, - pd_probs, n_thread, verbosity); @@ -213,9 +209,11 @@ std::vector> leaf_pred_chaz = loaded_forest["leaf_pred_chaz"]; auto& temp = dynamic_cast(*forest); + temp.load(n_tree, rows_oobag, cutpoint, child_left, coef_values, coef_indices, leaf_pred_indx, - leaf_pred_prob, leaf_pred_chaz, leaf_summary); + leaf_pred_prob, leaf_pred_chaz, leaf_summary, + pd_type, pd_x_vals, pd_x_cols, pd_probs); } diff --git a/vignettes/pd.Rmd b/vignettes/pd.Rmd index 0f45ac0d..378f58e1 100644 --- a/vignettes/pd.Rmd +++ b/vignettes/pd.Rmd @@ -193,8 +193,8 @@ PD can show the expected value of a model's predictions as a function of a speci ```{r} pred_spec = list(bili = seq(1, 5, length.out = 20), - edema = levels(pbc_orsf_train$edema), - trt = levels(pbc_orsf$trt)) + edema = levels(pbc_orsf_train$edema), + trt = levels(pbc_orsf$trt)) pd_bili_edema <- orsf_pd_oob(fit, pred_spec) From 7caff97e8ed477076a676a198a157ca7e4654d82 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 1 Oct 2023 09:07:10 -0400 Subject: [PATCH 090/103] about to rework saved values --- scratch.R | 7 ++++--- src/Forest.cpp | 2 -- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/scratch.R b/scratch.R index 34964d34..dce1a3c1 100644 --- a/scratch.R +++ b/scratch.R @@ -7,9 +7,10 @@ fit <- orsf(pbc_orsf, formula = time+status ~ . - id) tictoc::toc() sink("orsf-output.txt") -orsf_pd_oob(fit, - pred_spec = list(bili = 1:5, trt = 'placebo'), - pred_horizon = seq(100, 1000, by=100)) +pd_vals <- orsf_pd_oob(fit, + expand_grid = FALSE, + pred_spec = list(bili = 1:5, trt = 'placebo'), + pred_horizon = seq(100, 1000, by=100)) sink() fit$importance->tmp diff --git a/src/Forest.cpp b/src/Forest.cpp index 9260ad0e..354967cc 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -132,7 +132,6 @@ void Forest::run(bool oobag){ // if using a grown forest for partial dependence if(pd_type == PD_SUMMARY || pd_type == PD_ICE){ - Rcout << pd_type << std::endl; this->pd_values = compute_dependence(oobag); } @@ -578,7 +577,6 @@ std::vector> Forest::compute_dependence(bool oobag){ result_k.reserve(n); for(const auto& x_col : pd_x_cols[k]){ - Rcout << x_col << std::endl; data->save_col(x_col); } From bb83a06899c980c8db828367b732a6db0f47184a Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 1 Oct 2023 10:40:03 -0400 Subject: [PATCH 091/103] must reset oob denom while doing pd loops --- R/orsf_pd.R | 15 +++++---------- scratch.R | 22 ++++++++++++++++------ src/Data.h | 33 ++++++++------------------------- src/Forest.cpp | 22 ++++++++++++++++++---- 4 files changed, 47 insertions(+), 45 deletions(-) diff --git a/R/orsf_pd.R b/R/orsf_pd.R index 01edfb6c..a5f81495 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -323,13 +323,6 @@ orsf_pred_dependence <- function(object, pred_horizon = pred_horizon, na_action = na_action) - # if(pred_type == 'mort') stop( - # "mortality predictions aren't supported in partial dependence functions", - # " yet. Sorry for the inconvenience - we plan on including this option", - # " in a future update.", - # call. = FALSE - # ) - if(oobag && is.null(object$data)) stop("no data were found in object. ", "did you use attach_data = FALSE when ", @@ -366,8 +359,10 @@ orsf_pred_dependence <- function(object, } pred_type_R <- switch(pred_type, - "risk" = 1, "surv" = 2, - "chf" = 3, "mort" = 4) + "risk" = 1, + "surv" = 2, + "chf" = 3, + "mort" = 4) fi <- get_fctr_info(object) @@ -432,7 +427,7 @@ orsf_pred_dependence <- function(object, } - x_cols[[i]] <- match(names(pred_spec_new[[i]]), colnames(x_new)) + x_cols[[i]] <- match(names(pred_spec_new[[i]]), colnames(x_new))-1 pred_spec_new[[i]] <- as.matrix(pred_spec_new[[i]]) } diff --git a/scratch.R b/scratch.R index dce1a3c1..ffbdecde 100644 --- a/scratch.R +++ b/scratch.R @@ -3,14 +3,23 @@ library(riskRegression) library(survival) tictoc::tic() -fit <- orsf(pbc_orsf, formula = time+status ~ . - id) +fit <- orsf(pbc_orsf, + formula = time+status ~ . - id, + oobag_pred_type = 'risk') tictoc::toc() +all(fit$data == pbc_orsf) + +tmp <- as.data.frame(cbind(y=as.numeric(fit$pred_oobag), x=pbc_orsf$bili)) + +plot(x=tmp$x, y=tmp$y) + sink("orsf-output.txt") pd_vals <- orsf_pd_oob(fit, expand_grid = FALSE, - pred_spec = list(bili = 1:5, trt = 'placebo'), - pred_horizon = seq(100, 1000, by=100)) + pred_type = 'risk', + pred_spec = list(bili = 1:5), + pred_horizon = c(1000)) sink() fit$importance->tmp @@ -87,7 +96,8 @@ microbenchmark::microbenchmark( importance = 'none', nodesize = 10, nsplit = 5, - data = as.data.frame(pbc_orsf)) + data = as.data.frame(pbc_orsf)), + times = 5 ) # sink() @@ -116,7 +126,7 @@ microbenchmark::microbenchmark( mtry = 3, leaf_min_obs = 10, n_split = 5, - importance = 'permute', + importance = 'none', n_thread = 5), rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., @@ -124,7 +134,7 @@ microbenchmark::microbenchmark( mtry = 3, nthread = 5, samptype = 'swr', - importance = 'permute', + importance = 'none', nodesize = 10, nsplit = 5, data = as.data.frame(flchain_orsf)), diff --git a/src/Data.h b/src/Data.h index a2db0a97..c561be3c 100644 --- a/src/Data.h +++ b/src/Data.h @@ -32,6 +32,7 @@ this->n_rows = x.n_rows; this->n_cols = x.n_cols; this->has_weights = !w.empty(); + this->saved_values.resize(n_cols); } @@ -91,38 +92,25 @@ void permute_col(arma::uword j, std::mt19937_64& rng){ arma::vec x_j = x.unsafe_col(j); - // make and store a copy - this->col_restore_values = arma::vec(x_j.begin(), x_j.size(), true); - + this->saved_values[j] = arma::vec(x_j.begin(), x_j.size(), true); // shuffle the vector in-place std::shuffle(x_j.begin(), x_j.end(), rng); } - void restore_col(arma::uword j){ - - x.col(j) = col_restore_values; + void save_col(arma::uword j){ + saved_values[j] = x.col(j); + } + void restore_col(arma::uword j){ + x.col(j) = saved_values[j]; } void fill_col(double value, uword j){ - x.col(j).fill(value); - - } - - void save_col(arma::uword j){ - - mat_restore_values.col(j) = x.col(j); - } - void restore_col_2(arma::uword j){ - - x.col(j) = mat_restore_values.col(j); - - } // member variables @@ -130,13 +118,8 @@ arma::uword n_rows; arma::vec w; - // for single column ops (e.g., permutation importance) - arma::vec col_restore_values; - // for multi-column ops (e.g., partial dependence) - arma::mat mat_restore_values; - - + std::vector saved_values; bool has_weights; diff --git a/src/Forest.cpp b/src/Forest.cpp index 354967cc..13de397a 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -521,7 +521,9 @@ mat Forest::predict(bool oobag) { // evaluate oobag error after joining each thread // (only safe to do this when the condition below holds) - if(n_tree/oobag_eval_every == n_thread && i> Forest::compute_dependence(bool oobag){ result.reserve(pd_x_vals.size()); - data->mat_restore_values.zeros(data->n_rows, data->n_cols); - + // looping through each item in the pd list for(uword k = 0; k < pd_x_vals.size(); ++k){ uword n = pd_x_vals[k].n_rows; @@ -576,23 +577,35 @@ std::vector> Forest::compute_dependence(bool oobag){ result_k.reserve(n); + // saving x values for(const auto& x_col : pd_x_cols[k]){ data->save_col(x_col); } + print_mat(data->get_x(), "X", 100, 5); + + // loop through each row in the current pd matrix for(uword i = 0; i < n; ++i){ uword j = 0; + // fill x with current pd values for(const auto& x_col : pd_x_cols[k]){ data->fill_col(pd_x_vals[k].at(i, j), x_col); ++j; } + if(oobag) oobag_denom.fill(0); + mat preds = predict(oobag); if(pd_type == PD_SUMMARY){ + print_mat(preds, "predictions", 10, 10); + mat preds_summary = mean(preds, 0); + + print_mat(preds_summary, "means", 10, 10); + mat preds_quant = quantile(preds, pd_probs, 0); result_k.push_back(join_vert(preds_summary, preds_quant)); @@ -604,8 +617,9 @@ std::vector> Forest::compute_dependence(bool oobag){ } + // bring back original values before moving to next pd item for(const auto& x_col : pd_x_cols[k]){ - data->restore_col_2(x_col); + data->restore_col(x_col); } result.push_back(result_k); From 79d0727f92847851e5befafeedcf899862acf7e1 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 1 Oct 2023 11:29:31 -0400 Subject: [PATCH 092/103] core features might be stable again --- R/orsf_pd.R | 8 ++- scratch.R | 26 +++---- src/Forest.cpp | 6 -- src/Tree.cpp | 2 +- src/TreeSurvival.cpp | 13 ++-- tests/testthat/test-bootstrap_sample.R | 93 -------------------------- 6 files changed, 27 insertions(+), 121 deletions(-) delete mode 100644 tests/testthat/test-bootstrap_sample.R diff --git a/R/orsf_pd.R b/R/orsf_pd.R index a5f81495..6d472317 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -516,7 +516,7 @@ orsf_pred_dependence <- function(object, pd_vals[[i]][[j]] <- melt(data = pd_vals[[i]][[j]], id.vars = 'pred_horizon', variable.name = 'id_row', - value.name = 'pred_value') + value.name = 'pred') } @@ -533,7 +533,7 @@ orsf_pred_dependence <- function(object, ids <- c('id_variable', if(type_output == 'ice') 'id_row') - mid <- setdiff(names(out), c(ids, 'mean', prob_labels, 'pred_value')) + mid <- setdiff(names(out), c(ids, 'mean', prob_labels, 'pred')) end <- setdiff(names(out), c(ids, mid)) @@ -541,6 +541,10 @@ orsf_pred_dependence <- function(object, out[, pred_horizon := as.numeric(pred_horizon)] + # not needed for summary + if(type_output == 'smry') + out[, id_variable := NULL] + # put data back into original scale for(j in intersect(names(means), names(pred_spec))){ diff --git a/scratch.R b/scratch.R index ffbdecde..48ec60b4 100644 --- a/scratch.R +++ b/scratch.R @@ -18,8 +18,9 @@ sink("orsf-output.txt") pd_vals <- orsf_pd_oob(fit, expand_grid = FALSE, pred_type = 'risk', - pred_spec = list(bili = 1:5), - pred_horizon = c(1000)) + pred_spec = list(bili = 1:5, + sex = c("m", "f")), + pred_horizon = c(1000, 2000, 4000)) sink() fit$importance->tmp @@ -28,20 +29,21 @@ tictoc::tic() orsf_pd_oob(fit, pred_spec = list(bili = c(1:5))) tictoc::toc() -prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'mort', - pred_aggregate = F, pred_horizon = c(500, 1000)) +rfsrc_fit = randomForestSRC::rfsrc(Surv(time, status) ~ . -id, + ntree = 500, + mtry = 3, + nthread = 5, + samptype = 'swr', + importance = 'none', + nodesize = 10, + nsplit = 5, + data = as.data.frame(pbc_orsf)) microbenchmark::microbenchmark( - prd_1 = predict(fit, new_data = pbc_orsf, n_thread = 1, pred_type = 'leaf', - pred_aggregate = F), - - prd_5 = predict(fit, new_data = pbc_orsf, n_thread = 5, pred_type = 'leaf', - pred_aggregate = F) + prd_aorsf = predict(fit, new_data = pbc_orsf, n_thread = 10), + prd_rfsrc = predict(rfsrc_fit, newdata = pbc_orsf) ) -max(prd_1 - prd_5) - - res <- oob <- vector(mode = 'numeric', length = 100) for(i in seq(100)){ diff --git a/src/Forest.cpp b/src/Forest.cpp index 13de397a..e54bf94d 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -582,8 +582,6 @@ std::vector> Forest::compute_dependence(bool oobag){ data->save_col(x_col); } - print_mat(data->get_x(), "X", 100, 5); - // loop through each row in the current pd matrix for(uword i = 0; i < n; ++i){ @@ -600,12 +598,8 @@ std::vector> Forest::compute_dependence(bool oobag){ if(pd_type == PD_SUMMARY){ - print_mat(preds, "predictions", 10, 10); - mat preds_summary = mean(preds, 0); - print_mat(preds_summary, "means", 10, 10); - mat preds_quant = quantile(preds, pd_probs, 0); result_k.push_back(join_vert(preds_summary, preds_quant)); diff --git a/src/Tree.cpp b/src/Tree.cpp index 93729a90..f1c51ddc 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -502,7 +502,7 @@ uvec::iterator it; - uword it_start = 0, it_best; + uword it_start = 0, it_best = 0; double stat, stat_best = 0; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index e5b2bf63..d8baa4ee 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -541,13 +541,12 @@ uword leaf_id = pred_leaf[*it]; - double pred_t0; + // default for risk or survival at time 0 + double pred_t0 = 1; - if(pred_type == PRED_SURVIVAL || - pred_type == PRED_RISK){ - pred_t0 = 1; - } else if (pred_type == PRED_CHAZ || - pred_type == PRED_MORTALITY) { + // default otherwise + if (pred_type == PRED_CHAZ || + pred_type == PRED_MORTALITY) { pred_t0 = 0; } @@ -559,7 +558,7 @@ vec temp_vec((*pred_horizon).size()); - double temp_dbl; + double temp_dbl = pred_t0; bool break_loop = false; for(; ;) { diff --git a/tests/testthat/test-bootstrap_sample.R b/tests/testthat/test-bootstrap_sample.R deleted file mode 100644 index 22c7654c..00000000 --- a/tests/testthat/test-bootstrap_sample.R +++ /dev/null @@ -1,93 +0,0 @@ - - - -# test setup -------------------------------------------------------------- - -# make an r function that matches the function in cpp -r_fun <- function(x, y, wts){ - - s = seq(0, 10) - n_rows = nrow(x) - probs = dbinom(s, n_rows, 1.0/n_rows, FALSE) - - boot_wts = sample(s, n_rows, TRUE, probs); - - if(length(wts) > 0){ - boot_wts = boot_wts * wts; - } - - return(matrix(boot_wts, ncol = 1)); - -} - -n <- 1e6 -x <- y <- matrix(rnorm(n = n), ncol = 1) - -weights_2s = rep(2, nrow(x)) -weights_empty = double(0) - - -# if any object's memory is copied, it will make the test output messy -# (I am not sure how to formally make a test fail when memory is copied) -tracemem(x) -tracemem(y) -tracemem(weights_2s) - -set.seed(329) -samp_2s_wts <- bootstrap_sample_testthat(x, y, weights_2s) -set.seed(329) -samp_no_wts <- bootstrap_sample_testthat(x, y, weights_empty) -set.seed(329) -samp_2s_wts_r <- r_fun(x, y, weights_2s) -set.seed(329) -samp_no_wts_r <- r_fun(x, y, weights_empty) - - -# test behavior ----------------------------------------------------------- - -test_that( - desc = "max times sampled is < 10", - code = { - expect_lt(object = max(samp_no_wts), expected = 10) - } -) - -test_that( - desc = "bootstrap weights are multiplied by data weights", - code = { - # also shows bootstrap weights are replicable by seed set in R - expect_equal(samp_no_wts, samp_2s_wts / 2) - } -) - -test_that( - desc = "bootstrap weights include roughly 63.2% of original sample", - code = { - expect_equal(mean(samp_no_wts > 0), 0.632, tolerance = 0.01) - } -) - -test_that( - desc = "bootstrap weights match (R vs cpp)", - code = { - expect_equal(samp_2s_wts, samp_2s_wts_r) - expect_equal(samp_no_wts, samp_no_wts_r) - } -) - - -# test performance -------------------------------------------------------- - -# TODO: figure out why armadillo seems to run slower than R for this?? - -# microbenchmark::microbenchmark( -# r_fun = r_fun(x, y, wts = weights_empty), -# c_fun = bootstrap_sample_testthat(x, y, weights_empty) -# ) -# -# microbenchmark::microbenchmark( -# r_fun = r_fun(x, y, wts = weights_2s), -# c_fun = bootstrap_sample_testthat(x, y, weights_2s) -# ) - - From 1d6efed497450d39efa444f2eb77cc4130e95546 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 1 Oct 2023 16:03:18 -0400 Subject: [PATCH 093/103] ready to merge --- R/RcppExports.R | 12 +- R/orsf.R | 19 +- R/orsf_attr.R | 2 + R/orsf_pd.R | 315 +- R/orsf_predict.R | 2 + R/orsf_scale_cph.R | 2 +- R/orsf_vi.R | 2 + orsf-output.txt | 12520 ---------------- scratch.R | 4 +- src/Forest.cpp | 6 + src/Forest.h | 4 + src/RcppExports.cpp | 37 +- src/Tree.cpp | 32 +- src/Tree.h | 5 + src/TreeSurvival.cpp | 2 +- src/orsf_oop.cpp | 50 + src/utility.cpp | 55 + src/utility.h | 17 +- ...est-concordance.R => test-compute_cstat.R} | 0 tests/testthat/test-compute_logrank.R | 72 + tests/testthat/test-cp_find_bounds.R | 205 +- tests/testthat/test-leaf_kaplan.R | 72 +- tests/testthat/test-lrt_multi.R | 173 - tests/testthat/test-oobag.R | 2 +- tests/testthat/test-ostree_pred_leaf.R | 126 +- tests/testthat/test-which_cols_valid.R | 108 +- 26 files changed, 551 insertions(+), 13293 deletions(-) rename tests/testthat/{test-concordance.R => test-compute_cstat.R} (100%) create mode 100644 tests/testthat/test-compute_logrank.R delete mode 100644 tests/testthat/test-lrt_multi.R diff --git a/R/RcppExports.R b/R/RcppExports.R index 86505cb7..2501f394 100644 --- a/R/RcppExports.R +++ b/R/RcppExports.R @@ -13,7 +13,15 @@ compute_cstat_exported_uvec <- function(y, w, g, pred_is_risklike) { .Call(`_aorsf_compute_cstat_exported_uvec`, y, w, g, pred_is_risklike) } -orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) { - .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) +compute_logrank_exported <- function(y, w, g) { + .Call(`_aorsf_compute_logrank_exported`, y, w, g) +} + +cph_scale <- function(x, w) { + .Call(`_aorsf_cph_scale`, x, w) +} + +orsf_cpp <- function(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, sample_with_replacement, sample_fraction, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) { + .Call(`_aorsf_orsf_cpp`, x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, sample_with_replacement, sample_fraction, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity) } diff --git a/R/orsf.R b/R/orsf.R index f9766b88..de576b0a 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -314,6 +314,8 @@ orsf <- function(data, n_retry = 3, n_thread = 1, # TODO: add docs+checks mtry = NULL, + sample_with_replacement = TRUE, # TODO: add docs+checks + sample_fraction = 0.632, # TODO: add docs+checks leaf_min_events = 1, leaf_min_obs = 5, split_rule = 'logrank', # TODO: add docs+checks @@ -372,6 +374,14 @@ orsf <- function(data, oobag_pred <- oobag_pred_type != 'none' + if(sample_fraction == 1 && oobag_pred){ + stop( + "cannot compute out-of-bag predictions if no samples are out-of-bag.", + "To resolve this, set sample_fraction < 1 or oobag_pred_type = 'none'.", + call. = FALSE + ) + } + orsf_type <- attr(control, 'type') switch( @@ -710,6 +720,8 @@ orsf <- function(data, loaded_forest = list(), n_tree = n_tree, mtry = mtry, + sample_with_replacement = sample_with_replacement, + sample_fraction = sample_fraction, vi_type_R = switch(importance, "none" = 0, "negate" = 1, @@ -863,8 +875,9 @@ orsf <- function(data, attr(orsf_out, 'split_rule') <- split_rule attr(orsf_out, 'n_thread') <- n_thread attr(orsf_out, 'tree_type') <- tree_type_R - - attr(orsf_out, 'tree_seeds') <- tree_seeds + attr(orsf_out, 'tree_seeds') <- tree_seeds + attr(orsf_out, 'sample_with_replacement') <- sample_with_replacement + attr(orsf_out, 'sample_fraction') <- sample_fraction #' @srrstats {ML5.0a} *orsf output has its own class* class(orsf_out) <- "orsf_fit" @@ -1084,6 +1097,8 @@ orsf_train_ <- function(object, loaded_forest = list(), n_tree = n_tree, mtry = get_mtry(object), + sample_with_replacement = get_sample_with_replacement(object), + sample_fraction = get_sample_fraction(object), vi_type_R = switch(get_importance(object), "none" = 0, "negate" = 1, diff --git a/R/orsf_attr.R b/R/orsf_attr.R index 6a3e9459..8c9e8a9d 100644 --- a/R/orsf_attr.R +++ b/R/orsf_attr.R @@ -61,6 +61,8 @@ get_vi_max_pvalue <- function(object) attr(object, 'vi_max_pvalue') get_split_rule <- function(object) attr(object, 'split_rule') get_n_thread <- function(object) attr(object, 'n_thread') get_tree_type <- function(object) attr(object, 'tree_type') +get_sample_with_replacement <- function(object) attr(object, 'sample_with_replacement') +get_sample_fraction <- function(object) attr(object, 'sample_fraction') #' ORSF status diff --git a/R/orsf_pd.R b/R/orsf_pd.R index 6d472317..a330e94e 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -442,6 +442,8 @@ orsf_pred_dependence <- function(object, loaded_forest = object$forest, n_tree = get_n_tree(object), mtry = get_mtry(object), + sample_with_replacement = get_sample_with_replacement(object), + sample_fraction = get_sample_fraction(object), vi_type_R = 0, vi_max_pvalue = get_vi_max_pvalue(object), lincomb_R_function = get_f_beta(object), @@ -574,316 +576,3 @@ orsf_pred_dependence <- function(object, } -#' grid working function in orsf_pd family -#' -#' This function expands pred_spec into a grid with all combos of inputs, -#' and computes partial dependence for each one. -#' -#' @inheritParams orsf_pred_dependence -#' @param x_new the x-matrix used to compute partial dependence -#' @param pd_fun_predict which cpp function to use. -#' -#' @return a `data.table` containing summarized partial dependence -#' values if using `orsf_pd_summery` or individual conditional -#' expectation (ICE) partial dependence if using `orsf_ice`. -#' -#' @noRd - -pd_grid <- function(object, - x_new, - pred_spec, - pred_horizon, - type_output, - prob_values, - prob_labels, - n_thread, - oobag, - pred_type_R){ - - if(!is.data.frame(pred_spec)) - pred_spec <- expand.grid(pred_spec, stringsAsFactors = TRUE) - - fi_ref <- get_fctr_info(object) - - for(i in seq_along(fi_ref$cols)){ - - ii <- fi_ref$cols[i] - - if(is.character(pred_spec[[ii]]) && !fi_ref$ordr[i]){ - - pred_spec[[ii]] <- factor(pred_spec[[ii]], - levels = fi_ref$lvls[[ii]]) - - } - - } - - check_new_data_fctrs(new_data = pred_spec, - names_x = get_names_x(object), - fi_ref = fi_ref, - label_new = "pred_spec") - - pred_spec_new <- ref_code(x_data = pred_spec, - fi = get_fctr_info(object), - names_x_data = names(pred_spec)) - - x_cols <- match(names(pred_spec_new), colnames(x_new)) - - orsf_out <- orsf_cpp(x = x_new, - y = matrix(1, ncol=2), - w = rep(1, nrow(x_new)), - tree_type_R = get_tree_type(object), - tree_seeds = get_tree_seeds(object), - loaded_forest = object$forest, - n_tree = get_n_tree(object), - mtry = get_mtry(object), - vi_type_R = 0, - vi_max_pvalue = get_vi_max_pvalue(object), - lincomb_R_function = get_f_beta(object), - oobag_R_function = get_f_oobag_eval(object), - leaf_min_events = get_leaf_min_events(object), - leaf_min_obs = get_leaf_min_obs(object), - split_rule_R = switch(get_split_rule(object), - "logrank" = 1, - "cstat" = 2), - split_min_events = get_split_min_events(object), - split_min_obs = get_split_min_obs(object), - split_min_stat = get_split_min_stat(object), - split_max_cuts = get_n_split(object), - split_max_retry = get_n_retry(object), - lincomb_type_R = switch(get_orsf_type(object), - 'fast' = 1, - 'cph' = 1, - 'random' = 2, - 'net' = 3, - 'custom' = 4), - lincomb_eps = get_cph_eps(object), - lincomb_iter_max = get_cph_iter_max(object), - lincomb_scale = get_cph_do_scale(object), - lincomb_alpha = get_net_alpha(object), - lincomb_df_target = get_net_df_target(object), - lincomb_ties_method = switch( - tolower(get_cph_method(object)), - 'breslow' = 0, - 'efron' = 1 - ), - pred_type_R = pred_type_R, - pred_mode = FALSE, - pred_aggregate = TRUE, - pred_horizon = pred_horizon, - oobag = oobag, - oobag_eval_type_R = 0, - oobag_eval_every = get_n_tree(object), - pd_type_R = switch(type_output, - "smry" = 1L, - "ice" = 2L), - pd_x_vals = list(as.matrix(pred_spec_new)), - pd_x_cols = list(x_cols-1L), - pd_probs = prob_values, - n_thread = n_thread, - write_forest = FALSE, - run_forest = TRUE, - verbosity = 4) - - pd_vals <- orsf_out$pd_values - - if(type_output == 'smry'){ - - for(i in seq_along(pd_vals)){ - for(j in seq_along(pd_vals[[i]])){ - pd_vals[[i]][[j]] <- matrix(pd_vals[[i]][[j]], - nrow=length(pred_horizon), - byrow = T) - rownames(pd_vals[[i]][[j]]) <- pred_horizon - colnames(pd_vals[[i]][[j]]) <- c('mean', prob_labels) - } - pd_vals[[i]] <- as.data.table( - do.call(rbind, pd_vals[[i]]), keep.rownames = 'pred_horizon' - ) - } - - } else if(type_output == 'ice'){ - - - for(i in seq_along(pd_vals)){ - - pd_vals[[i]] <- matrix(pd_vals[[i]], - nrow = nrow(x_new), - ncol = length(pred_horizon)) - - colnames(pd_vals[[i]]) <- pred_horizon - - pd_vals[[i]] <- melt(as.data.table(pd_vals[[i]]), - measure.vars = seq(length(pred_horizon)), - variable.name = 'pred_horizon', - variable.factor = FALSE) - - } - - } - - pd_vals <- rbindlist(pd_vals, idcol = 'id_variable') - pred_spec$id_variable <- seq(nrow(pred_spec)) - - output <- merge(as.data.table(pred_spec), pd_vals, by = 'id_variable') - ids <- c('id_variable') - - if(type_output == 'ice'){ - ids <- c(ids, 'id_row') - output[, id_row:= seq(.N), by = .(id_variable, pred_horizon)] - } - - .names <- c(ids, setdiff(names(output), ids)) - setcolorder(output, neworder = .names) - - output - -} - -#' loop working function in orsf_pd family -#' -#' This function loops through the items in pred_spec one by one, -#' computing partial dependence for each one separately. -#' -#' @inheritParams orsf_pd_ -#' @param x_new the x-matrix used to compute partial dependence -#' @param pd_fun_predict which cpp function to use. -#' -#' @return a `data.table` containing summarized partial dependence -#' values if using `orsf_pd_summery` or individual conditional -#' expectation (ICE) partial dependence if using `orsf_ice`. -#' -#' @noRd - -pd_loop <- function(object, - x_new, - pred_spec, - pred_horizon, - type_output, - prob_values, - prob_labels, - n_thread, - oobag, - pred_type_R){ - - fi <- get_fctr_info(object) - - output <- vector(mode = 'list', length = length(pred_spec)) - - for(i in seq_along(pred_spec)){ - - pd_new <- as.data.frame(pred_spec[i]) - pd_name <- names(pred_spec)[i] - - pd_bind <- data.frame(variable = pd_name, - value = rep(NA_real_, length(pred_spec[[i]])), - level = rep(NA_character_, length(pred_spec[[i]]))) - - if(pd_name %in% fi$cols) { - - pd_bind$level <- as.character(pred_spec[[i]]) - pd_new <- ref_code(pd_new, fi = fi, names_x_data = pd_name) - - } else { - - pd_bind$value <- pred_spec[[i]] - - } - - x_cols <- match(names(pd_new), colnames(x_new)) - - x_vals <- x_new[, x_cols] - - orsf_out <- orsf_cpp(x = x_new, - y = matrix(1, ncol=2), - w = rep(1, nrow(x_new)), - tree_type_R = get_tree_type(object), - tree_seeds = get_tree_seeds(object), - loaded_forest = object$forest, - n_tree = get_n_tree(object), - mtry = get_mtry(object), - vi_type_R = 0, - vi_max_pvalue = get_vi_max_pvalue(object), - lincomb_R_function = get_f_beta(object), - oobag_R_function = get_f_oobag_eval(object), - leaf_min_events = get_leaf_min_events(object), - leaf_min_obs = get_leaf_min_obs(object), - split_rule_R = switch(get_split_rule(object), - "logrank" = 1, - "cstat" = 2), - split_min_events = get_split_min_events(object), - split_min_obs = get_split_min_obs(object), - split_min_stat = get_split_min_stat(object), - split_max_cuts = get_n_split(object), - split_max_retry = get_n_retry(object), - lincomb_type_R = switch(get_orsf_type(object), - 'fast' = 1, - 'cph' = 1, - 'random' = 2, - 'net' = 3, - 'custom' = 4), - lincomb_eps = get_cph_eps(object), - lincomb_iter_max = get_cph_iter_max(object), - lincomb_scale = get_cph_do_scale(object), - lincomb_alpha = get_net_alpha(object), - lincomb_df_target = get_net_df_target(object), - lincomb_ties_method = switch( - tolower(get_cph_method(object)), - 'breslow' = 0, - 'efron' = 1 - ), - pred_type_R = 1, - pred_mode = TRUE, - pred_aggregate = TRUE, - pred_horizon = pred_horizon, - oobag = FALSE, - oobag_eval_type_R = 0, - oobag_eval_every = get_n_tree(object), - pd_type_R = 1, - pd_x_vals = as.matrix(pd_new), - pd_x_cols = x_cols-1L, - pd_probs = prob_values, - n_thread = n_thread, - write_forest = FALSE, - run_forest = TRUE, - verbosity = 0) - - pd_vals <- orsf_out$pd_values - - if(type_output == 'smry'){ - - output[[i]] <- lapply(pd_vals, function(x){ - m <- matrix(x, nrow=length(pred_horizon), byrow = T) - rownames(m) <- pred_horizon - colnames(m) <- c('mean', prob_labels) - data.table(m, keep.rownames = 'pred_horizon') - }) - - } - - if(type_output == 'ice'){ - - colnames(pd_vals) <- c('id_variable', 'pred') - pd_bind$id_variable <- seq(nrow(pd_bind)) - output[[i]] <- merge(pd_bind, pd_vals, by = 'id_variable') - output[[i]]$id_row <- seq(nrow(output[[i]])) - - } - - } - - output <- rbindlist(output) - - if(type_output == 'ice'){ - - ids <- c('id_variable', 'id_row') - .names <- c(ids, setdiff(names(output), ids)) - setcolorder(output, neworder = .names) - - } - - - output - -} - diff --git a/R/orsf_predict.R b/R/orsf_predict.R index f7c9aad1..d74e1ff3 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -170,6 +170,8 @@ predict.orsf_fit <- function(object, loaded_forest = object$forest, n_tree = get_n_tree(object), mtry = get_mtry(object), + sample_with_replacement = get_sample_with_replacement(object), + sample_fraction = get_sample_fraction(object), vi_type_R = 0, vi_max_pvalue = get_vi_max_pvalue(object), lincomb_R_function = get_f_beta(object), diff --git a/R/orsf_scale_cph.R b/R/orsf_scale_cph.R index c858c32f..958b023c 100644 --- a/R/orsf_scale_cph.R +++ b/R/orsf_scale_cph.R @@ -78,7 +78,7 @@ orsf_scale_cph <- function(x_mat, w_vec = NULL){ call. = FALSE) # pass x[, ] instead of x to prevent x from being modified in place. - output <- x_node_scale_exported(x_mat[, ], w_vec) + output <- cph_scale(x_mat[, ], w_vec) colnames(output$x_scaled) <- colnames(x_mat) colnames(output$x_transforms) <- c("mean", "scale") diff --git a/R/orsf_vi.R b/R/orsf_vi.R index e0b21f74..d9afae1d 100644 --- a/R/orsf_vi.R +++ b/R/orsf_vi.R @@ -306,6 +306,8 @@ orsf_vi_oobag_ <- function(object, loaded_forest = object$forest, n_tree = get_n_tree(object), mtry = get_mtry(object), + sample_with_replacement = get_sample_with_replacement(object), + sample_fraction = get_sample_fraction(object), vi_type_R = switch(type_vi, 'negate' = 1, 'permute' = 2), diff --git a/orsf-output.txt b/orsf-output.txt index fdafb1a2..e69de29b 100644 --- a/orsf-output.txt +++ b/orsf-output.txt @@ -1,12520 +0,0 @@ ------------- input data dimensions ------------ -N observations total: 276 -N columns total: 18 ------------------------------------------------ - -1 -made it here -pd_x_vals: - -0.5072 - -0.2899 - -0.0725 - 0.1448 - 0.3622 -pd_x_cols: - 8 -made it here 2 -8 -made it to k = 0 ---- Computing oobag predictions: tree 0 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 1 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 2 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 3 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 4 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 5 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 6 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 7 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 8 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 9 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 10 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 11 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 12 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 13 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 14 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 15 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 16 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 17 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 18 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 19 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 20 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 21 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 22 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 23 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 24 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 25 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 26 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 27 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 28 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 29 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 30 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 31 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 32 --- - - -- N preds expected: 89 - -- N preds made: 89 - ---- Computing oobag predictions: tree 33 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 34 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 35 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 36 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 37 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 38 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 39 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 40 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 41 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 42 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 43 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 44 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 45 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 46 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 47 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 48 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 49 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 50 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 51 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 52 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 53 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 54 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 55 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 56 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 57 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 58 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 59 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 60 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 61 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 62 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 63 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 64 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 65 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 66 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 67 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 68 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 69 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 70 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 71 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 72 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 73 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 74 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 75 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 76 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 77 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 78 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 79 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 80 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 81 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 82 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 83 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 84 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 85 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 86 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 87 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 88 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 89 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 90 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 91 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 92 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 93 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 94 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 95 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 96 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 97 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 98 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 99 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 100 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 101 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 102 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 103 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 104 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 105 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 106 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 107 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 108 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 109 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 110 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 111 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 112 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 113 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 114 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 115 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 116 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 117 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 118 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 119 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 120 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 121 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 122 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 123 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 124 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 125 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 126 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 127 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 128 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 129 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 130 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 131 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 132 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 133 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 134 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 135 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 136 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 137 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 138 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 139 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 140 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 141 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 142 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 143 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 144 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 145 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 146 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 147 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 148 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 149 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 150 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 151 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 152 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 153 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 154 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 155 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 156 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 157 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 158 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 159 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 160 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 161 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 162 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 163 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 164 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 165 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 166 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 167 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 168 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 169 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 170 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 171 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 172 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 173 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 174 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 175 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 176 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 177 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 178 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 179 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 180 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 181 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 182 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 183 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 184 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 185 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 186 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 187 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 188 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 189 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 190 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 191 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 192 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 193 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 194 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 195 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 196 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 197 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 198 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 199 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 200 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 201 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 202 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 203 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 204 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 205 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 206 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 207 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 208 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 209 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 210 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 211 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 212 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 213 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 214 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 215 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 216 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 217 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 218 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 219 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 220 --- - - -- N preds expected: 114 - -- N preds made: 114 - ---- Computing oobag predictions: tree 221 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 222 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 223 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 224 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 225 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 226 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 227 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 228 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 229 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 230 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 231 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 232 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 233 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 234 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 235 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 236 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 237 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 238 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 239 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 240 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 241 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 242 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 243 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 244 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 245 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 246 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 247 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 248 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 249 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 250 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 251 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 252 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 253 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 254 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 255 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 256 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 257 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 258 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 259 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 260 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 261 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 262 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 263 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 264 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 265 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 266 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 267 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 268 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 269 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 270 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 271 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 272 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 273 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 274 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 275 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 276 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 277 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 278 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 279 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 280 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 281 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 282 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 283 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 284 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 285 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 286 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 287 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 288 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 289 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 290 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 291 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 292 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 293 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 294 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 295 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 296 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 297 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 298 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 299 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 300 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 301 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 302 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 303 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 304 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 305 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 306 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 307 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 308 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 309 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 310 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 311 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 312 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 313 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 314 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 315 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 316 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 317 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 318 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 319 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 320 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 321 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 322 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 323 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 324 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 325 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 326 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 327 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 328 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 329 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 330 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 331 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 332 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 333 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 334 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 335 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 336 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 337 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 338 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 339 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 340 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 341 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 342 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 343 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 344 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 345 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 346 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 347 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 348 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 349 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 350 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 351 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 352 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 353 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 354 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 355 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 356 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 357 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 358 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 359 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 360 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 361 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 362 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 363 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 364 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 365 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 366 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 367 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 368 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 369 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 370 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 371 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 372 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 373 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 374 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 375 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 376 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 377 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 378 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 379 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 380 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 381 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 382 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 383 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 384 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 385 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 386 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 387 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 388 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 389 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 390 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 391 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 392 --- - - -- N preds expected: 118 - -- N preds made: 118 - ---- Computing oobag predictions: tree 393 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 394 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 395 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 396 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 397 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 398 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 399 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 400 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 401 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 402 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 403 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 404 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 405 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 406 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 407 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 408 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 409 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 410 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 411 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 412 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 413 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 414 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 415 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 416 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 417 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 418 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 419 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 420 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 421 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 422 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 423 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 424 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 425 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 426 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 427 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 428 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 429 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 430 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 431 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 432 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 433 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 434 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 435 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 436 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 437 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 438 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 439 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 440 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 441 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 442 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 443 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 444 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 445 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 446 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 447 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 448 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 449 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 450 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 451 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 452 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 453 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 454 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 455 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 456 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 457 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 458 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 459 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 460 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 461 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 462 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 463 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 464 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 465 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 466 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 467 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 468 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 469 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 470 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 471 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 472 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 473 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 474 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 475 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 476 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 477 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 478 --- - - -- N preds expected: 82 - -- N preds made: 82 - ---- Computing oobag predictions: tree 479 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 480 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 481 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 482 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 483 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 484 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 485 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 486 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 487 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 488 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 489 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 490 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 491 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 492 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 493 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 494 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 495 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 496 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 497 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 498 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 499 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 0 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 1 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 2 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 3 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 4 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 5 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 6 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 7 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 8 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 9 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 10 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 11 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 12 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 13 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 14 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 15 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 16 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 17 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 18 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 19 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 20 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 21 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 22 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 23 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 24 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 25 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 26 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 27 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 28 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 29 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 30 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 31 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 32 --- - - -- N preds expected: 89 - -- N preds made: 89 - ---- Computing oobag predictions: tree 33 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 34 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 35 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 36 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 37 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 38 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 39 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 40 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 41 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 42 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 43 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 44 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 45 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 46 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 47 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 48 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 49 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 50 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 51 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 52 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 53 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 54 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 55 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 56 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 57 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 58 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 59 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 60 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 61 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 62 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 63 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 64 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 65 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 66 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 67 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 68 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 69 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 70 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 71 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 72 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 73 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 74 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 75 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 76 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 77 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 78 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 79 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 80 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 81 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 82 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 83 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 84 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 85 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 86 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 87 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 88 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 89 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 90 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 91 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 92 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 93 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 94 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 95 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 96 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 97 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 98 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 99 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 100 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 101 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 102 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 103 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 104 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 105 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 106 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 107 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 108 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 109 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 110 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 111 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 112 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 113 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 114 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 115 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 116 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 117 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 118 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 119 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 120 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 121 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 122 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 123 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 124 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 125 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 126 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 127 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 128 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 129 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 130 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 131 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 132 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 133 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 134 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 135 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 136 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 137 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 138 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 139 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 140 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 141 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 142 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 143 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 144 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 145 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 146 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 147 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 148 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 149 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 150 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 151 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 152 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 153 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 154 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 155 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 156 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 157 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 158 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 159 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 160 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 161 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 162 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 163 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 164 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 165 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 166 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 167 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 168 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 169 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 170 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 171 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 172 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 173 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 174 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 175 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 176 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 177 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 178 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 179 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 180 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 181 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 182 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 183 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 184 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 185 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 186 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 187 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 188 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 189 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 190 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 191 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 192 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 193 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 194 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 195 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 196 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 197 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 198 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 199 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 200 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 201 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 202 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 203 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 204 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 205 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 206 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 207 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 208 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 209 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 210 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 211 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 212 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 213 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 214 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 215 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 216 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 217 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 218 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 219 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 220 --- - - -- N preds expected: 114 - -- N preds made: 114 - ---- Computing oobag predictions: tree 221 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 222 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 223 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 224 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 225 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 226 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 227 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 228 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 229 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 230 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 231 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 232 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 233 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 234 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 235 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 236 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 237 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 238 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 239 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 240 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 241 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 242 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 243 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 244 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 245 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 246 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 247 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 248 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 249 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 250 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 251 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 252 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 253 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 254 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 255 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 256 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 257 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 258 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 259 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 260 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 261 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 262 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 263 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 264 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 265 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 266 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 267 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 268 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 269 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 270 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 271 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 272 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 273 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 274 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 275 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 276 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 277 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 278 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 279 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 280 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 281 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 282 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 283 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 284 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 285 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 286 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 287 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 288 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 289 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 290 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 291 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 292 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 293 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 294 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 295 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 296 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 297 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 298 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 299 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 300 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 301 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 302 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 303 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 304 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 305 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 306 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 307 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 308 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 309 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 310 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 311 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 312 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 313 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 314 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 315 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 316 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 317 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 318 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 319 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 320 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 321 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 322 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 323 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 324 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 325 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 326 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 327 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 328 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 329 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 330 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 331 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 332 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 333 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 334 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 335 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 336 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 337 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 338 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 339 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 340 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 341 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 342 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 343 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 344 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 345 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 346 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 347 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 348 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 349 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 350 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 351 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 352 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 353 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 354 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 355 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 356 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 357 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 358 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 359 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 360 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 361 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 362 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 363 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 364 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 365 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 366 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 367 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 368 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 369 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 370 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 371 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 372 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 373 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 374 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 375 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 376 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 377 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 378 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 379 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 380 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 381 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 382 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 383 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 384 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 385 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 386 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 387 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 388 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 389 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 390 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 391 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 392 --- - - -- N preds expected: 118 - -- N preds made: 118 - ---- Computing oobag predictions: tree 393 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 394 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 395 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 396 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 397 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 398 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 399 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 400 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 401 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 402 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 403 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 404 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 405 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 406 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 407 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 408 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 409 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 410 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 411 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 412 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 413 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 414 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 415 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 416 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 417 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 418 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 419 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 420 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 421 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 422 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 423 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 424 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 425 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 426 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 427 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 428 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 429 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 430 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 431 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 432 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 433 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 434 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 435 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 436 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 437 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 438 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 439 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 440 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 441 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 442 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 443 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 444 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 445 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 446 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 447 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 448 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 449 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 450 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 451 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 452 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 453 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 454 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 455 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 456 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 457 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 458 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 459 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 460 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 461 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 462 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 463 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 464 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 465 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 466 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 467 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 468 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 469 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 470 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 471 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 472 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 473 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 474 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 475 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 476 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 477 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 478 --- - - -- N preds expected: 82 - -- N preds made: 82 - ---- Computing oobag predictions: tree 479 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 480 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 481 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 482 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 483 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 484 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 485 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 486 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 487 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 488 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 489 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 490 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 491 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 492 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 493 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 494 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 495 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 496 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 497 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 498 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 499 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 0 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 1 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 2 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 3 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 4 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 5 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 6 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 7 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 8 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 9 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 10 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 11 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 12 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 13 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 14 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 15 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 16 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 17 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 18 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 19 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 20 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 21 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 22 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 23 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 24 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 25 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 26 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 27 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 28 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 29 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 30 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 31 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 32 --- - - -- N preds expected: 89 - -- N preds made: 89 - ---- Computing oobag predictions: tree 33 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 34 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 35 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 36 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 37 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 38 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 39 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 40 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 41 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 42 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 43 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 44 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 45 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 46 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 47 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 48 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 49 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 50 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 51 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 52 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 53 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 54 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 55 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 56 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 57 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 58 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 59 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 60 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 61 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 62 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 63 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 64 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 65 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 66 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 67 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 68 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 69 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 70 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 71 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 72 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 73 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 74 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 75 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 76 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 77 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 78 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 79 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 80 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 81 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 82 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 83 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 84 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 85 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 86 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 87 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 88 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 89 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 90 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 91 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 92 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 93 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 94 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 95 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 96 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 97 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 98 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 99 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 100 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 101 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 102 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 103 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 104 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 105 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 106 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 107 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 108 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 109 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 110 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 111 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 112 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 113 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 114 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 115 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 116 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 117 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 118 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 119 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 120 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 121 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 122 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 123 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 124 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 125 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 126 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 127 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 128 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 129 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 130 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 131 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 132 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 133 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 134 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 135 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 136 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 137 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 138 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 139 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 140 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 141 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 142 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 143 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 144 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 145 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 146 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 147 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 148 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 149 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 150 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 151 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 152 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 153 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 154 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 155 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 156 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 157 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 158 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 159 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 160 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 161 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 162 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 163 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 164 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 165 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 166 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 167 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 168 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 169 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 170 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 171 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 172 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 173 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 174 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 175 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 176 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 177 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 178 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 179 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 180 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 181 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 182 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 183 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 184 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 185 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 186 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 187 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 188 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 189 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 190 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 191 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 192 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 193 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 194 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 195 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 196 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 197 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 198 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 199 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 200 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 201 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 202 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 203 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 204 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 205 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 206 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 207 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 208 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 209 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 210 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 211 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 212 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 213 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 214 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 215 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 216 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 217 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 218 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 219 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 220 --- - - -- N preds expected: 114 - -- N preds made: 114 - ---- Computing oobag predictions: tree 221 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 222 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 223 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 224 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 225 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 226 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 227 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 228 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 229 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 230 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 231 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 232 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 233 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 234 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 235 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 236 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 237 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 238 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 239 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 240 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 241 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 242 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 243 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 244 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 245 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 246 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 247 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 248 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 249 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 250 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 251 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 252 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 253 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 254 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 255 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 256 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 257 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 258 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 259 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 260 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 261 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 262 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 263 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 264 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 265 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 266 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 267 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 268 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 269 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 270 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 271 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 272 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 273 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 274 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 275 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 276 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 277 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 278 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 279 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 280 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 281 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 282 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 283 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 284 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 285 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 286 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 287 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 288 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 289 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 290 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 291 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 292 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 293 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 294 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 295 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 296 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 297 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 298 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 299 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 300 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 301 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 302 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 303 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 304 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 305 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 306 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 307 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 308 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 309 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 310 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 311 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 312 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 313 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 314 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 315 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 316 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 317 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 318 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 319 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 320 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 321 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 322 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 323 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 324 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 325 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 326 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 327 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 328 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 329 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 330 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 331 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 332 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 333 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 334 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 335 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 336 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 337 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 338 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 339 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 340 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 341 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 342 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 343 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 344 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 345 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 346 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 347 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 348 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 349 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 350 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 351 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 352 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 353 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 354 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 355 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 356 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 357 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 358 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 359 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 360 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 361 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 362 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 363 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 364 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 365 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 366 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 367 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 368 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 369 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 370 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 371 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 372 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 373 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 374 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 375 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 376 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 377 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 378 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 379 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 380 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 381 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 382 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 383 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 384 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 385 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 386 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 387 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 388 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 389 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 390 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 391 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 392 --- - - -- N preds expected: 118 - -- N preds made: 118 - ---- Computing oobag predictions: tree 393 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 394 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 395 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 396 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 397 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 398 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 399 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 400 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 401 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 402 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 403 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 404 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 405 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 406 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 407 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 408 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 409 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 410 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 411 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 412 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 413 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 414 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 415 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 416 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 417 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 418 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 419 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 420 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 421 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 422 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 423 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 424 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 425 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 426 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 427 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 428 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 429 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 430 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 431 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 432 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 433 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 434 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 435 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 436 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 437 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 438 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 439 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 440 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 441 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 442 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 443 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 444 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 445 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 446 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 447 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 448 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 449 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 450 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 451 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 452 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 453 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 454 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 455 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 456 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 457 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 458 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 459 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 460 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 461 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 462 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 463 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 464 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 465 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 466 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 467 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 468 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 469 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 470 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 471 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 472 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 473 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 474 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 475 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 476 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 477 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 478 --- - - -- N preds expected: 82 - -- N preds made: 82 - ---- Computing oobag predictions: tree 479 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 480 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 481 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 482 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 483 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 484 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 485 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 486 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 487 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 488 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 489 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 490 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 491 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 492 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 493 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 494 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 495 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 496 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 497 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 498 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 499 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 0 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 1 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 2 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 3 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 4 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 5 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 6 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 7 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 8 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 9 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 10 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 11 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 12 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 13 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 14 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 15 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 16 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 17 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 18 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 19 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 20 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 21 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 22 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 23 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 24 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 25 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 26 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 27 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 28 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 29 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 30 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 31 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 32 --- - - -- N preds expected: 89 - -- N preds made: 89 - ---- Computing oobag predictions: tree 33 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 34 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 35 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 36 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 37 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 38 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 39 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 40 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 41 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 42 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 43 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 44 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 45 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 46 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 47 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 48 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 49 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 50 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 51 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 52 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 53 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 54 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 55 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 56 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 57 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 58 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 59 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 60 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 61 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 62 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 63 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 64 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 65 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 66 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 67 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 68 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 69 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 70 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 71 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 72 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 73 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 74 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 75 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 76 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 77 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 78 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 79 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 80 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 81 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 82 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 83 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 84 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 85 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 86 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 87 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 88 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 89 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 90 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 91 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 92 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 93 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 94 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 95 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 96 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 97 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 98 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 99 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 100 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 101 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 102 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 103 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 104 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 105 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 106 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 107 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 108 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 109 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 110 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 111 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 112 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 113 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 114 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 115 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 116 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 117 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 118 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 119 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 120 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 121 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 122 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 123 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 124 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 125 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 126 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 127 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 128 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 129 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 130 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 131 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 132 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 133 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 134 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 135 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 136 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 137 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 138 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 139 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 140 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 141 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 142 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 143 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 144 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 145 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 146 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 147 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 148 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 149 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 150 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 151 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 152 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 153 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 154 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 155 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 156 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 157 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 158 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 159 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 160 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 161 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 162 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 163 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 164 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 165 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 166 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 167 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 168 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 169 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 170 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 171 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 172 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 173 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 174 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 175 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 176 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 177 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 178 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 179 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 180 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 181 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 182 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 183 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 184 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 185 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 186 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 187 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 188 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 189 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 190 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 191 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 192 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 193 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 194 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 195 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 196 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 197 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 198 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 199 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 200 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 201 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 202 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 203 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 204 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 205 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 206 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 207 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 208 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 209 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 210 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 211 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 212 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 213 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 214 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 215 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 216 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 217 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 218 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 219 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 220 --- - - -- N preds expected: 114 - -- N preds made: 114 - ---- Computing oobag predictions: tree 221 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 222 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 223 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 224 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 225 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 226 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 227 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 228 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 229 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 230 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 231 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 232 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 233 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 234 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 235 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 236 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 237 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 238 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 239 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 240 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 241 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 242 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 243 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 244 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 245 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 246 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 247 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 248 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 249 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 250 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 251 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 252 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 253 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 254 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 255 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 256 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 257 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 258 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 259 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 260 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 261 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 262 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 263 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 264 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 265 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 266 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 267 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 268 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 269 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 270 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 271 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 272 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 273 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 274 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 275 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 276 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 277 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 278 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 279 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 280 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 281 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 282 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 283 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 284 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 285 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 286 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 287 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 288 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 289 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 290 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 291 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 292 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 293 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 294 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 295 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 296 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 297 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 298 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 299 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 300 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 301 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 302 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 303 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 304 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 305 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 306 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 307 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 308 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 309 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 310 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 311 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 312 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 313 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 314 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 315 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 316 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 317 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 318 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 319 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 320 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 321 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 322 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 323 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 324 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 325 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 326 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 327 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 328 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 329 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 330 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 331 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 332 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 333 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 334 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 335 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 336 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 337 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 338 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 339 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 340 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 341 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 342 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 343 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 344 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 345 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 346 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 347 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 348 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 349 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 350 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 351 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 352 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 353 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 354 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 355 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 356 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 357 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 358 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 359 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 360 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 361 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 362 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 363 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 364 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 365 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 366 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 367 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 368 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 369 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 370 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 371 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 372 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 373 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 374 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 375 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 376 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 377 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 378 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 379 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 380 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 381 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 382 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 383 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 384 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 385 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 386 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 387 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 388 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 389 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 390 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 391 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 392 --- - - -- N preds expected: 118 - -- N preds made: 118 - ---- Computing oobag predictions: tree 393 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 394 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 395 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 396 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 397 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 398 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 399 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 400 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 401 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 402 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 403 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 404 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 405 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 406 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 407 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 408 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 409 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 410 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 411 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 412 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 413 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 414 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 415 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 416 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 417 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 418 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 419 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 420 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 421 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 422 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 423 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 424 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 425 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 426 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 427 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 428 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 429 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 430 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 431 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 432 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 433 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 434 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 435 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 436 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 437 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 438 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 439 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 440 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 441 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 442 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 443 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 444 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 445 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 446 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 447 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 448 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 449 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 450 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 451 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 452 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 453 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 454 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 455 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 456 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 457 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 458 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 459 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 460 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 461 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 462 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 463 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 464 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 465 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 466 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 467 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 468 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 469 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 470 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 471 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 472 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 473 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 474 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 475 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 476 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 477 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 478 --- - - -- N preds expected: 82 - -- N preds made: 82 - ---- Computing oobag predictions: tree 479 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 480 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 481 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 482 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 483 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 484 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 485 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 486 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 487 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 488 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 489 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 490 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 491 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 492 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 493 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 494 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 495 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 496 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 497 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 498 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 499 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 0 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 1 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 2 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 3 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 4 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 5 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 6 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 7 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 8 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 9 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 10 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 11 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 12 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 13 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 14 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 15 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 16 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 17 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 18 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 19 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 20 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 21 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 22 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 23 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 24 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 25 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 26 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 27 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 28 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 29 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 30 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 31 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 32 --- - - -- N preds expected: 89 - -- N preds made: 89 - ---- Computing oobag predictions: tree 33 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 34 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 35 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 36 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 37 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 38 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 39 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 40 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 41 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 42 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 43 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 44 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 45 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 46 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 47 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 48 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 49 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 50 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 51 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 52 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 53 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 54 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 55 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 56 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 57 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 58 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 59 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 60 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 61 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 62 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 63 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 64 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 65 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 66 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 67 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 68 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 69 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 70 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 71 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 72 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 73 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 74 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 75 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 76 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 77 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 78 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 79 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 80 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 81 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 82 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 83 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 84 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 85 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 86 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 87 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 88 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 89 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 90 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 91 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 92 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 93 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 94 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 95 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 96 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 97 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 98 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 99 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 100 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 101 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 102 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 103 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 104 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 105 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 106 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 107 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 108 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 109 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 110 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 111 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 112 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 113 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 114 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 115 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 116 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 117 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 118 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 119 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 120 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 121 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 122 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 123 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 124 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 125 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 126 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 127 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 128 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 129 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 130 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 131 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 132 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 133 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 134 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 135 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 136 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 137 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 138 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 139 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 140 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 141 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 142 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 143 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 144 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 145 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 146 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 147 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 148 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 149 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 150 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 151 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 152 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 153 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 154 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 155 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 156 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 157 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 158 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 159 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 160 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 161 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 162 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 163 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 164 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 165 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 166 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 167 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 168 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 169 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 170 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 171 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 172 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 173 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 174 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 175 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 176 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 177 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 178 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 179 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 180 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 181 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 182 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 183 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 184 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 185 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 186 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 187 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 188 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 189 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 190 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 191 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 192 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 193 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 194 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 195 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 196 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 197 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 198 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 199 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 200 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 201 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 202 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 203 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 204 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 205 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 206 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 207 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 208 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 209 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 210 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 211 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 212 --- - - -- N preds expected: 115 - -- N preds made: 115 - ---- Computing oobag predictions: tree 213 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 214 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 215 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 216 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 217 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 218 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 219 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 220 --- - - -- N preds expected: 114 - -- N preds made: 114 - ---- Computing oobag predictions: tree 221 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 222 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 223 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 224 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 225 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 226 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 227 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 228 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 229 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 230 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 231 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 232 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 233 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 234 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 235 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 236 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 237 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 238 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 239 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 240 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 241 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 242 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 243 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 244 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 245 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 246 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 247 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 248 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 249 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 250 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 251 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 252 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 253 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 254 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 255 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 256 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 257 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 258 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 259 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 260 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 261 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 262 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 263 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 264 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 265 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 266 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 267 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 268 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 269 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 270 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 271 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 272 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 273 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 274 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 275 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 276 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 277 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 278 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 279 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 280 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 281 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 282 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 283 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 284 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 285 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 286 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 287 --- - - -- N preds expected: 116 - -- N preds made: 116 - ---- Computing oobag predictions: tree 288 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 289 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 290 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 291 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 292 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 293 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 294 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 295 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 296 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 297 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 298 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 299 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 300 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 301 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 302 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 303 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 304 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 305 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 306 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 307 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 308 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 309 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 310 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 311 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 312 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 313 --- - - -- N preds expected: 90 - -- N preds made: 90 - ---- Computing oobag predictions: tree 314 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 315 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 316 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 317 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 318 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 319 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 320 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 321 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 322 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 323 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 324 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 325 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 326 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 327 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 328 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 329 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 330 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 331 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 332 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 333 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 334 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 335 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 336 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 337 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 338 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 339 --- - - -- N preds expected: 92 - -- N preds made: 92 - ---- Computing oobag predictions: tree 340 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 341 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 342 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 343 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 344 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 345 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 346 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 347 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 348 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 349 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 350 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 351 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 352 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 353 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 354 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 355 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 356 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 357 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 358 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 359 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 360 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 361 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 362 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 363 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 364 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 365 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 366 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 367 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 368 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 369 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 370 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 371 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 372 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 373 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 374 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 375 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 376 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 377 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 378 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 379 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 380 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 381 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 382 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 383 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 384 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 385 --- - - -- N preds expected: 111 - -- N preds made: 111 - ---- Computing oobag predictions: tree 386 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 387 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 388 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 389 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 390 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 391 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 392 --- - - -- N preds expected: 118 - -- N preds made: 118 - ---- Computing oobag predictions: tree 393 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 394 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 395 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 396 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 397 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 398 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 399 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 400 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 401 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 402 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 403 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 404 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 405 --- - - -- N preds expected: 96 - -- N preds made: 96 - ---- Computing oobag predictions: tree 406 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 407 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 408 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 409 --- - - -- N preds expected: 110 - -- N preds made: 110 - ---- Computing oobag predictions: tree 410 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 411 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 412 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 413 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 414 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 415 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 416 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 417 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 418 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 419 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 420 --- - - -- N preds expected: 112 - -- N preds made: 112 - ---- Computing oobag predictions: tree 421 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 422 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 423 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 424 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 425 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 426 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 427 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 428 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 429 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 430 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 431 --- - - -- N preds expected: 102 - -- N preds made: 102 - ---- Computing oobag predictions: tree 432 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 433 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 434 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 435 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 436 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 437 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 438 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 439 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 440 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 441 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 442 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 443 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 444 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 445 --- - - -- N preds expected: 100 - -- N preds made: 100 - ---- Computing oobag predictions: tree 446 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 447 --- - - -- N preds expected: 113 - -- N preds made: 113 - ---- Computing oobag predictions: tree 448 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 449 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 450 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 451 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 452 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 453 --- - - -- N preds expected: 91 - -- N preds made: 91 - ---- Computing oobag predictions: tree 454 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 455 --- - - -- N preds expected: 109 - -- N preds made: 109 - ---- Computing oobag predictions: tree 456 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 457 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 458 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 459 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 460 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 461 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 462 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 463 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 464 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 465 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 466 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 467 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 468 --- - - -- N preds expected: 107 - -- N preds made: 107 - ---- Computing oobag predictions: tree 469 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 470 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 471 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 472 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 473 --- - - -- N preds expected: 88 - -- N preds made: 88 - ---- Computing oobag predictions: tree 474 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 475 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 476 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 477 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 478 --- - - -- N preds expected: 82 - -- N preds made: 82 - ---- Computing oobag predictions: tree 479 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 480 --- - - -- N preds expected: 101 - -- N preds made: 101 - ---- Computing oobag predictions: tree 481 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 482 --- - - -- N preds expected: 95 - -- N preds made: 95 - ---- Computing oobag predictions: tree 483 --- - - -- N preds expected: 93 - -- N preds made: 93 - ---- Computing oobag predictions: tree 484 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 485 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 486 --- - - -- N preds expected: 105 - -- N preds made: 105 - ---- Computing oobag predictions: tree 487 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 488 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 489 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 490 --- - - -- N preds expected: 99 - -- N preds made: 99 - ---- Computing oobag predictions: tree 491 --- - - -- N preds expected: 104 - -- N preds made: 104 - ---- Computing oobag predictions: tree 492 --- - - -- N preds expected: 98 - -- N preds made: 98 - ---- Computing oobag predictions: tree 493 --- - - -- N preds expected: 97 - -- N preds made: 97 - ---- Computing oobag predictions: tree 494 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 495 --- - - -- N preds expected: 108 - -- N preds made: 108 - ---- Computing oobag predictions: tree 496 --- - - -- N preds expected: 106 - -- N preds made: 106 - ---- Computing oobag predictions: tree 497 --- - - -- N preds expected: 94 - -- N preds made: 94 - ---- Computing oobag predictions: tree 498 --- - - -- N preds expected: 103 - -- N preds made: 103 - ---- Computing oobag predictions: tree 499 --- - - -- N preds expected: 102 - -- N preds made: 102 - -Called from: pd_fun(object, x_new, pred_spec, pred_horizon, type_output, prob_values, - prob_labels, n_thread, oobag, pred_type_R) diff --git a/scratch.R b/scratch.R index 48ec60b4..023c0ba0 100644 --- a/scratch.R +++ b/scratch.R @@ -5,7 +5,9 @@ library(survival) tictoc::tic() fit <- orsf(pbc_orsf, formula = time+status ~ . - id, - oobag_pred_type = 'risk') + oobag_pred_type = 'none', + sample_with_replacement = FALSE, + sample_fraction = 2/3) tictoc::toc() all(fit$data == pbc_orsf) diff --git a/src/Forest.cpp b/src/Forest.cpp index e54bf94d..c3a32136 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -15,6 +15,8 @@ void Forest::init(std::unique_ptr input_data, Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, arma::uword mtry, + bool sample_with_replacement, + double sample_fraction, bool grow_mode, VariableImportance vi_type, double vi_max_pvalue, @@ -50,6 +52,8 @@ void Forest::init(std::unique_ptr input_data, this->tree_seeds = tree_seeds; this->n_tree = n_tree; this->mtry = mtry; + this->sample_with_replacement = sample_with_replacement; + this->sample_fraction = sample_fraction; this->grow_mode = grow_mode; this->vi_type = vi_type; this->vi_max_pvalue = vi_max_pvalue; @@ -144,6 +148,8 @@ void Forest::init_trees(){ trees[i]->init(data.get(), tree_seeds[i], mtry, + sample_with_replacement, + sample_fraction, pred_type, leaf_min_obs, vi_type, diff --git a/src/Forest.h b/src/Forest.h index 15bfe2f0..39a5ee58 100644 --- a/src/Forest.h +++ b/src/Forest.h @@ -37,6 +37,8 @@ class Forest { Rcpp::IntegerVector& tree_seeds, arma::uword n_tree, arma::uword mtry, + bool sample_with_replacement, + double sample_fraction, bool grow_mode, VariableImportance vi_type, double vi_max_pvalue, @@ -245,6 +247,8 @@ class Forest { arma::uword n_tree; arma::uword mtry; + bool sample_with_replacement; + double sample_fraction; Rcpp::IntegerVector tree_seeds; std::vector> trees; diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp index c0b81aa4..17a78909 100644 --- a/src/RcppExports.cpp +++ b/src/RcppExports.cpp @@ -55,9 +55,34 @@ BEGIN_RCPP return rcpp_result_gen; END_RCPP } +// compute_logrank_exported +double compute_logrank_exported(arma::mat& y, arma::vec& w, arma::uvec& g); +RcppExport SEXP _aorsf_compute_logrank_exported(SEXP ySEXP, SEXP wSEXP, SEXP gSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type y(ySEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + Rcpp::traits::input_parameter< arma::uvec& >::type g(gSEXP); + rcpp_result_gen = Rcpp::wrap(compute_logrank_exported(y, w, g)); + return rcpp_result_gen; +END_RCPP +} +// cph_scale +List cph_scale(arma::mat& x, arma::vec& w); +RcppExport SEXP _aorsf_cph_scale(SEXP xSEXP, SEXP wSEXP) { +BEGIN_RCPP + Rcpp::RObject rcpp_result_gen; + Rcpp::RNGScope rcpp_rngScope_gen; + Rcpp::traits::input_parameter< arma::mat& >::type x(xSEXP); + Rcpp::traits::input_parameter< arma::vec& >::type w(wSEXP); + rcpp_result_gen = Rcpp::wrap(cph_scale(x, w)); + return rcpp_result_gen; +END_RCPP +} // orsf_cpp -List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List& loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, int pd_type_R, std::vector& pd_x_vals, std::vector& pd_x_cols, arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); -RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP pd_type_RSEXP, SEXP pd_x_valsSEXP, SEXP pd_x_colsSEXP, SEXP pd_probsSEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { +List orsf_cpp(arma::mat& x, arma::mat& y, arma::vec& w, arma::uword tree_type_R, Rcpp::IntegerVector& tree_seeds, Rcpp::List& loaded_forest, Rcpp::RObject lincomb_R_function, Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, bool sample_with_replacement, double sample_fraction, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, double leaf_min_obs, arma::uword split_rule_R, double split_min_events, double split_min_obs, double split_min_stat, arma::uword split_max_cuts, arma::uword split_max_retry, arma::uword lincomb_type_R, double lincomb_eps, arma::uword lincomb_iter_max, bool lincomb_scale, double lincomb_alpha, arma::uword lincomb_df_target, arma::uword lincomb_ties_method, bool pred_mode, arma::uword pred_type_R, arma::vec pred_horizon, bool pred_aggregate, bool oobag, arma::uword oobag_eval_type_R, arma::uword oobag_eval_every, int pd_type_R, std::vector& pd_x_vals, std::vector& pd_x_cols, arma::vec& pd_probs, unsigned int n_thread, bool write_forest, bool run_forest, int verbosity); +RcppExport SEXP _aorsf_orsf_cpp(SEXP xSEXP, SEXP ySEXP, SEXP wSEXP, SEXP tree_type_RSEXP, SEXP tree_seedsSEXP, SEXP loaded_forestSEXP, SEXP lincomb_R_functionSEXP, SEXP oobag_R_functionSEXP, SEXP n_treeSEXP, SEXP mtrySEXP, SEXP sample_with_replacementSEXP, SEXP sample_fractionSEXP, SEXP vi_type_RSEXP, SEXP vi_max_pvalueSEXP, SEXP leaf_min_eventsSEXP, SEXP leaf_min_obsSEXP, SEXP split_rule_RSEXP, SEXP split_min_eventsSEXP, SEXP split_min_obsSEXP, SEXP split_min_statSEXP, SEXP split_max_cutsSEXP, SEXP split_max_retrySEXP, SEXP lincomb_type_RSEXP, SEXP lincomb_epsSEXP, SEXP lincomb_iter_maxSEXP, SEXP lincomb_scaleSEXP, SEXP lincomb_alphaSEXP, SEXP lincomb_df_targetSEXP, SEXP lincomb_ties_methodSEXP, SEXP pred_modeSEXP, SEXP pred_type_RSEXP, SEXP pred_horizonSEXP, SEXP pred_aggregateSEXP, SEXP oobagSEXP, SEXP oobag_eval_type_RSEXP, SEXP oobag_eval_everySEXP, SEXP pd_type_RSEXP, SEXP pd_x_valsSEXP, SEXP pd_x_colsSEXP, SEXP pd_probsSEXP, SEXP n_threadSEXP, SEXP write_forestSEXP, SEXP run_forestSEXP, SEXP verbositySEXP) { BEGIN_RCPP Rcpp::RObject rcpp_result_gen; Rcpp::RNGScope rcpp_rngScope_gen; @@ -71,6 +96,8 @@ BEGIN_RCPP Rcpp::traits::input_parameter< Rcpp::RObject >::type oobag_R_function(oobag_R_functionSEXP); Rcpp::traits::input_parameter< arma::uword >::type n_tree(n_treeSEXP); Rcpp::traits::input_parameter< arma::uword >::type mtry(mtrySEXP); + Rcpp::traits::input_parameter< bool >::type sample_with_replacement(sample_with_replacementSEXP); + Rcpp::traits::input_parameter< double >::type sample_fraction(sample_fractionSEXP); Rcpp::traits::input_parameter< arma::uword >::type vi_type_R(vi_type_RSEXP); Rcpp::traits::input_parameter< double >::type vi_max_pvalue(vi_max_pvalueSEXP); Rcpp::traits::input_parameter< double >::type leaf_min_events(leaf_min_eventsSEXP); @@ -103,7 +130,7 @@ BEGIN_RCPP Rcpp::traits::input_parameter< bool >::type write_forest(write_forestSEXP); Rcpp::traits::input_parameter< bool >::type run_forest(run_forestSEXP); Rcpp::traits::input_parameter< int >::type verbosity(verbositySEXP); - rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity)); + rcpp_result_gen = Rcpp::wrap(orsf_cpp(x, y, w, tree_type_R, tree_seeds, loaded_forest, lincomb_R_function, oobag_R_function, n_tree, mtry, sample_with_replacement, sample_fraction, vi_type_R, vi_max_pvalue, leaf_min_events, leaf_min_obs, split_rule_R, split_min_events, split_min_obs, split_min_stat, split_max_cuts, split_max_retry, lincomb_type_R, lincomb_eps, lincomb_iter_max, lincomb_scale, lincomb_alpha, lincomb_df_target, lincomb_ties_method, pred_mode, pred_type_R, pred_horizon, pred_aggregate, oobag, oobag_eval_type_R, oobag_eval_every, pd_type_R, pd_x_vals, pd_x_cols, pd_probs, n_thread, write_forest, run_forest, verbosity)); return rcpp_result_gen; END_RCPP } @@ -112,7 +139,9 @@ static const R_CallMethodDef CallEntries[] = { {"_aorsf_coxph_fit_exported", (DL_FUNC) &_aorsf_coxph_fit_exported, 6}, {"_aorsf_compute_cstat_exported_vec", (DL_FUNC) &_aorsf_compute_cstat_exported_vec, 4}, {"_aorsf_compute_cstat_exported_uvec", (DL_FUNC) &_aorsf_compute_cstat_exported_uvec, 4}, - {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 42}, + {"_aorsf_compute_logrank_exported", (DL_FUNC) &_aorsf_compute_logrank_exported, 3}, + {"_aorsf_cph_scale", (DL_FUNC) &_aorsf_cph_scale, 2}, + {"_aorsf_orsf_cpp", (DL_FUNC) &_aorsf_orsf_cpp, 44}, {NULL, NULL, 0} }; diff --git a/src/Tree.cpp b/src/Tree.cpp index f1c51ddc..0506e85d 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -91,6 +91,8 @@ void Tree::init(Data* data, int seed, arma::uword mtry, + bool sample_with_replacement, + double sample_fraction, PredType pred_type, // double leaf_min_events, double leaf_min_obs, @@ -122,6 +124,8 @@ this->n_rows_total = data->n_rows; this->seed = seed; this->mtry = mtry; + this->sample_with_replacement = sample_with_replacement; + this->sample_fraction = sample_fraction; this->pred_type = pred_type; // this->leaf_min_events = leaf_min_events; this->leaf_min_obs = leaf_min_obs; @@ -174,10 +178,30 @@ std::uniform_int_distribution udist_rows(0, n - 1); - // sample with replacement - for (i = 0; i < n; ++i) { - draw = udist_rows(random_number_generator); - ++w_inbag[draw]; + if(sample_with_replacement){ + + for (i = 0; i < n; ++i) { + draw = udist_rows(random_number_generator); + ++w_inbag[draw]; + } + + } else { + + if(sample_fraction == 1){ + w_inbag.fill(1); + } else { + + uword n_sample = (uword) std::round(n * sample_fraction); + for (i = 0; i < n_sample; ++i) { + draw = udist_rows(random_number_generator); + while(w_inbag[draw] == 1){ + draw = udist_rows(random_number_generator); + } + ++w_inbag[draw]; + + } + } + } // multiply w_inbag by user specified weights. diff --git a/src/Tree.h b/src/Tree.h index 5c44495b..da1d0df3 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -38,6 +38,8 @@ void init(Data* data, int seed, arma::uword mtry, + bool sample_with_replacement, + double sample_fraction, PredType pred_type, // double leaf_min_events, double leaf_min_obs, @@ -178,6 +180,9 @@ arma::uword mtry; + bool sample_with_replacement; + double sample_fraction; + // what type of predictions you compute PredType pred_type; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index d8baa4ee..7d1a6082 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -318,7 +318,7 @@ switch (split_rule) { case SPLIT_LOGRANK: { - result = score_logrank(); + result = compute_logrank(y_node, w_node, g_node); break; } diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 2df2314d..7d120e5d 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -69,6 +69,52 @@ bool pred_is_risklike ){ return compute_cstat(y, w, g, pred_is_risklike); } + // [[Rcpp::export]] + double compute_logrank_exported( + arma::mat& y, + arma::vec& w, + arma::uvec& g + ){ return compute_logrank(y, w, g); } + + // [[Rcpp::export]] + List cph_scale(arma::mat& x, arma::vec& w){ + + // set aside memory for outputs + // first column holds the mean values + // second column holds the scale values + + uword n_vars = x.n_cols; + + mat x_transforms(n_vars, 2, fill::zeros); + vec means = x_transforms.unsafe_col(0); // Reference to column 1 + vec scales = x_transforms.unsafe_col(1); // Reference to column 2 + + double w_sum = sum(w); + + for(uword i = 0; i < n_vars; i++) { + + means.at(i) = sum( w % x.col(i) ) / w_sum; + + x.col(i) -= means.at(i); + + scales.at(i) = sum(w % abs(x.col(i))); + + if(scales(i) > 0) + scales.at(i) = w_sum / scales.at(i); + else + scales.at(i) = 1.0; // rare case of constant covariate; + + x.col(i) *= scales.at(i); + + } + + List result; + result.push_back(x, "x_scaled"); + result.push_back(x_transforms, "x_transforms"); + return result; + + } + // [[Rcpp::plugins("cpp17")]] // [[Rcpp::export]] List orsf_cpp(arma::mat& x, @@ -81,6 +127,8 @@ Rcpp::RObject oobag_R_function, arma::uword n_tree, arma::uword mtry, + bool sample_with_replacement, + double sample_fraction, arma::uword vi_type_R, double vi_max_pvalue, double leaf_min_events, @@ -165,6 +213,8 @@ tree_seeds, n_tree, mtry, + sample_with_replacement, + sample_fraction, grow_mode, vi_type, vi_max_pvalue, diff --git a/src/utility.cpp b/src/utility.cpp index 0b612ad9..301b34d3 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -174,6 +174,61 @@ return result; } + double compute_logrank(arma::mat& y, + arma::vec& w, + arma::uvec& g){ + + double n_risk=0, g_risk=0, observed=0, expected=0, V=0, + temp1, temp2, n_events; + + vec y_time = y.unsafe_col(0); + vec y_status = y.unsafe_col(1); + + bool break_loop = false; + + uword i = y.n_rows-1; + + // breaking condition of outer loop governed by inner loop + for (; ;){ + + temp1 = y_time(i); + + n_events = 0; + + for ( ; y_time[i] == temp1; i--) { + + n_risk += w[i]; + n_events += y_status[i] * w[i]; + g_risk += g[i] * w[i]; + observed += y_status[i] * g[i] * w[i]; + + if(i == 0){ + break_loop = true; + break; + } + + } + + // should only do these calculations if n_events > 0, + // but multiplying by 0 is usually faster than checking + temp2 = g_risk / n_risk; + expected += n_events * temp2; + + // update variance if n_risk > 1 (if n_risk == 1, variance is 0) + // definitely check if n_risk is > 1 b/c otherwise divide by 0 + if (n_risk > 1){ + temp1 = n_events * temp2 * (n_risk-n_events) / (n_risk-1); + V += temp1 * (1 - temp2); + } + + if(break_loop) break; + + } + + return(pow(expected-observed, 2) / V); + + } + double compute_cstat(arma::mat& y, arma::vec& w, arma::vec& p, diff --git a/src/utility.h b/src/utility.h index 016cd953..dde257a8 100644 --- a/src/utility.h +++ b/src/utility.h @@ -63,16 +63,19 @@ aorsf may be modified and distributed under the terms of the MIT license. return (R_ToplevelExec(chkIntFn, NULL) == FALSE); } - double compute_cstat(arma::mat& y, - arma::vec& w, - arma::vec& p, - bool pred_is_risklike); + double compute_logrank(arma::mat& y, + arma::vec& w, + arma::uvec& g); double compute_cstat(arma::mat& y, - arma::vec& w, - arma::uvec& g, - bool pred_is_risklike); + arma::vec& w, + arma::vec& p, + bool pred_is_risklike); + double compute_cstat(arma::mat& y, + arma::vec& w, + arma::uvec& g, + bool pred_is_risklike); } diff --git a/tests/testthat/test-concordance.R b/tests/testthat/test-compute_cstat.R similarity index 100% rename from tests/testthat/test-concordance.R rename to tests/testthat/test-compute_cstat.R diff --git a/tests/testthat/test-compute_logrank.R b/tests/testthat/test-compute_logrank.R new file mode 100644 index 00000000..0315d81b --- /dev/null +++ b/tests/testthat/test-compute_logrank.R @@ -0,0 +1,72 @@ + +#' @srrstats {G5.4} **Correctness tests** *test that statistical algorithms produce expected results to some fixed test data sets. I simulate arbitrary data and compare the aorsf likelihood ratio test to the same algorithm used in survival::survdiff().* + +#' @srrstats {G5.4b} *Correctness tests include tests against previous implementations, explicitly calling those implementations in testing.* + +#' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* +set.seed(329555) + +#' @srrstats {G5.6} **Parameter recovery tests** *the likelihood ratio test returns expected values consistent with the survival implementation for randomly generated data* + +#' @srrstats {ML7.8} *Explicitly test my implementation of the likelihood ratio test, used as a loss function when determining the best split for a given node. I do not test other loss functions because this is the only loss function that aorsf implements.* + +library(survival) + +y <- pbc_orsf[,c('time', 'status')] + +sorted <- order(y[, 1], -y[, 2]) + +y_sort <- as.matrix(y[sorted, ]) + +g_sort <- as.integer(pbc_orsf$edema == 1)[sorted] + +test_that( + desc = "log-rank test matches survival package", + code = { + + # with weights + w <- sample(0:2, nrow(y_sort), replace = TRUE) + surv_weights <- rep(seq(nrow(y)), times = w) + + y_surv <- y_sort[surv_weights, ] + g_surv <- g_sort[surv_weights] + + expect_equal( + # log-rank test from survival + survival::survdiff(survival::Surv(y_surv[,1], y_surv[,2]) ~ g_surv)$chisq, + # log-rank test from aorsf + compute_logrank_exported(y_sort, w, g_sort), + tolerance = 1e-9 + ) + + # without weights + w <- rep(1, nrow(y_sort)) + surv_weights <- seq(nrow(y_sort)) + + expect_equal( + # log-rank test from survival + survival::survdiff(survival::Surv(y_sort[,1], y_sort[,2]) ~ g_sort)$chisq, + # log-rank test from aorsf + compute_logrank_exported(y_sort, w, g_sort), + tolerance = 1e-9 + ) + + } +) + + +# # benchmark does not need to be tested every time +# +# bm <- microbenchmark::microbenchmark( +# surv = survdiff(Surv(y_surv[, 1], y_surv[, 2]) ~ g_surv)$chisq, +# aorsf = compute_logrank_exported(y_sort, w, g_sort), +# times = 50 +# ) +# +# expect_lt( +# median(bm$time[bm$expr == 'aorsf']), +# median(bm$time[bm$expr == 'surv']) +# ) + + + diff --git a/tests/testthat/test-cp_find_bounds.R b/tests/testthat/test-cp_find_bounds.R index dd3aecae..ec81c687 100644 --- a/tests/testthat/test-cp_find_bounds.R +++ b/tests/testthat/test-cp_find_bounds.R @@ -1,107 +1,108 @@ +# tests are deprecated since node functions are now internal to Tree class. -run_cp_bounds_test <- function(test_values, XB){ - - xb_uni <- unique(XB) - - cp_stats <- cp_find_bounds_R(y, w, XB, xb_uni, leaf_min_events, leaf_min_obs) - - if(!any(cp_stats$valid_cp)){ - return(NULL) - } - - cps_true_values <- sort(xb_uni[cp_stats$valid_cp]) - cps_test_values <- XB[test_values$XB_sorted+1][test_values$cp_index+1] - - test_that( - desc = 'cutpoints identified are unique and valid', - code = { - - expect_equal( - length(cps_test_values), length(unique(cps_test_values)) - ) - - expect_equal(cps_true_values, cps_test_values) - - } - - ) - - test_that( - desc = "group values are filled corresponding to the given cut-point", - code = { - - group_cpp <- rep(0, length(XB)) - XB_sorted <- order(XB)-1 - - for(i in seq_along(cps_true_values)){ - - group_R = XB <= cps_true_values[i] - - if(i == 1) start <- 0 else start <- test_values$cp_index[i-1]+1 - - node_fill_group_exported( - group = group_cpp, - XB_sorted = XB_sorted, - start = start, - stop = test_values$cp_index[i], - value = 1 - ) - - expect_equal(as.numeric(group_R), - as.numeric(group_cpp)) - - } - } - ) - -} - -.leaf_min_events <- c(1, 5, 50, nrow(pbc_orsf)) - -# leaf_min_events = 1 - -for(leaf_min_events in .leaf_min_events){ - - leaf_min_obs <- leaf_min_events + 10 - - XB_ctns <- pbc_orsf$age - XB_catg <- round(pbc_orsf$bili) - XB_bnry <- as.numeric(pbc_orsf$sex) - - status <- pbc_orsf$status - time <- pbc_orsf$time - - t_sort <- order(time) - status <- status[t_sort] - XB_ctns <- XB_ctns[t_sort] - XB_catg <- XB_catg[t_sort] - XB_bnry <- XB_bnry[t_sort] - time <- time[t_sort] - - y <- cbind(time=time, status=status) - w <- rep(1, nrow(pbc_orsf)) - - cp_bounds <- lapply( - X = list(ctns = XB_ctns, - catg = XB_catg, - bnry = XB_bnry), - FUN = function(XB){ - node_find_cps_exported(y_node = y, - w_node = w, - XB = XB, - leaf_min_events = leaf_min_events, - leaf_min_obs = leaf_min_obs) - } - ) - - run_cp_bounds_test(test_values = cp_bounds$ctns, XB = XB_ctns) - run_cp_bounds_test(cp_bounds$catg, XB = XB_catg) - run_cp_bounds_test(cp_bounds$bnry, XB = XB_bnry) - - - -} +# run_cp_bounds_test <- function(test_values, XB){ +# +# xb_uni <- unique(XB) +# +# cp_stats <- cp_find_bounds_R(y, w, XB, xb_uni, leaf_min_events, leaf_min_obs) +# +# if(!any(cp_stats$valid_cp)){ +# return(NULL) +# } +# +# cps_true_values <- sort(xb_uni[cp_stats$valid_cp]) +# cps_test_values <- XB[test_values$XB_sorted+1][test_values$cp_index+1] +# +# test_that( +# desc = 'cutpoints identified are unique and valid', +# code = { +# +# expect_equal( +# length(cps_test_values), length(unique(cps_test_values)) +# ) +# +# expect_equal(cps_true_values, cps_test_values) +# +# } +# +# ) +# +# test_that( +# desc = "group values are filled corresponding to the given cut-point", +# code = { +# +# group_cpp <- rep(0, length(XB)) +# XB_sorted <- order(XB)-1 +# +# for(i in seq_along(cps_true_values)){ +# +# group_R = XB <= cps_true_values[i] +# +# if(i == 1) start <- 0 else start <- test_values$cp_index[i-1]+1 +# +# node_fill_group_exported( +# group = group_cpp, +# XB_sorted = XB_sorted, +# start = start, +# stop = test_values$cp_index[i], +# value = 1 +# ) +# +# expect_equal(as.numeric(group_R), +# as.numeric(group_cpp)) +# +# } +# } +# ) +# +# } +# +# .leaf_min_events <- c(1, 5, 50, nrow(pbc_orsf)) +# +# # leaf_min_events = 1 +# +# for(leaf_min_events in .leaf_min_events){ +# +# leaf_min_obs <- leaf_min_events + 10 +# +# XB_ctns <- pbc_orsf$age +# XB_catg <- round(pbc_orsf$bili) +# XB_bnry <- as.numeric(pbc_orsf$sex) +# +# status <- pbc_orsf$status +# time <- pbc_orsf$time +# +# t_sort <- order(time) +# status <- status[t_sort] +# XB_ctns <- XB_ctns[t_sort] +# XB_catg <- XB_catg[t_sort] +# XB_bnry <- XB_bnry[t_sort] +# time <- time[t_sort] +# +# y <- cbind(time=time, status=status) +# w <- rep(1, nrow(pbc_orsf)) +# +# cp_bounds <- lapply( +# X = list(ctns = XB_ctns, +# catg = XB_catg, +# bnry = XB_bnry), +# FUN = function(XB){ +# node_find_cps_exported(y_node = y, +# w_node = w, +# XB = XB, +# leaf_min_events = leaf_min_events, +# leaf_min_obs = leaf_min_obs) +# } +# ) +# +# run_cp_bounds_test(test_values = cp_bounds$ctns, XB = XB_ctns) +# run_cp_bounds_test(cp_bounds$catg, XB = XB_catg) +# run_cp_bounds_test(cp_bounds$bnry, XB = XB_bnry) +# +# +# +# } # benchmark does not need to be tested every time diff --git a/tests/testthat/test-leaf_kaplan.R b/tests/testthat/test-leaf_kaplan.R index ca0d6c6c..a65678cd 100644 --- a/tests/testthat/test-leaf_kaplan.R +++ b/tests/testthat/test-leaf_kaplan.R @@ -3,66 +3,48 @@ #' @srrstats {G5.4b} *Correctness tests include tests against previous implementations, explicitly calling those implementations in testing.* +#' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* +set.seed(329) + library(survival) data("flchain", package = 'survival') -df <- na.omit(flchain) - -df$chapter <- NULL - -time <- 'futime' -status <- 'death' +flc <- na.omit(flchain) -df_nomiss <- na.omit(df) +flc$chapter <- NULL -df_sorted <- df_nomiss[order(df_nomiss[[time]]),] +flc <- flc[flc$futime > 0, ] -df_x <- df_sorted -df_x[[time]] <- NULL -df_x[[status]] <- NULL - -flchain_x <- model.matrix(~.-1, data = df_x) - -flchain_y <- Surv(time = df_sorted[[time]], - event = df_sorted[[status]]) - -y <- flchain_y -ymat <- as.matrix(y) -#' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* -set.seed(329) +sorted <- collapse::radixorder(flc$futime, -flc$death) -weights <- sample(1:5, length(y), replace = TRUE) +flc <- flc[sorted, ] -rows <- sort(sample(nrow(ymat), 20)) +weights <- sample(1:5, nrow(flc), replace = TRUE) -bcj <- leaf_kaplan_testthat(ymat[rows, ], weights[rows]) +# fit a normal tree with no bootstrap weights +fit <- orsf(flc, + futime + death ~ ., + n_tree = 1, + weights = weights, + tree_seeds = 1, + sample_fraction = 1, + oobag_pred_type = 'none', + sample_with_replacement = FALSE, + split_rule = 'cstat', + split_min_stat = 0.999) +aorsf_surv <- fit$forest$leaf_pred_prob[[1]][[1]] +aorsf_time <- fit$forest$leaf_pred_indx[[1]][[1]] - -kap <- survival::survfit(survival::Surv(ymat[rows,1], ymat[rows,2]) ~ 1, - weights = weights[rows]) - -kap <- data.frame(n.event = kap$n.event, - time = kap$time, - surv = kap$surv) - -kap <- subset(kap, n.event > 0) +kap <- survfit(Surv(futime, death) ~ 1, data = flc, weights = weights) test_that( - desc = 'leaf_kaplan has same length as survfit', - code = {expect_equal(nrow(kap), nrow(bcj))} + desc = 'aorsf kaplan has same time values as survfit', + code = {expect_equal(kap$time, aorsf_time, tolerance = 1e-9)} ) test_that( - desc = 'leaf_kaplan has same time values as survfit', - code = {expect_equal(kap$time, bcj[,1])} + desc = 'aorsf kaplan has same surv values as survfit', + code = {expect_equal(kap$surv, aorsf_surv, tolerance = 1e-9)} ) - -test_that( - desc = 'leaf_kaplan has same surv values as survfit', - code = {expect_equal(kap$surv, bcj[,2])} -) - - - diff --git a/tests/testthat/test-lrt_multi.R b/tests/testthat/test-lrt_multi.R deleted file mode 100644 index da77c0ac..00000000 --- a/tests/testthat/test-lrt_multi.R +++ /dev/null @@ -1,173 +0,0 @@ - -#' @srrstats {G5.4} **Correctness tests** *test that statistical algorithms produce expected results to some fixed test data sets. I simulate arbitrary data and compare the aorsf likelihood ratio test to the same algorithm used in survival::survdiff().* - -#' @srrstats {G5.4b} *Correctness tests include tests against previous implementations, explicitly calling those implementations in testing.* - -#' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* -set.seed(329555) - -#' @srrstats {G5.6} **Parameter recovery tests** *the likelihood ratio test returns expected values consistent with the survival implementation for randomly generated data* - -#' @srrstats {ML7.8} *Explicitly test my implementation of the likelihood ratio test, used as a loss function when determining the best split for a given node. I do not test other loss functions because this is the only loss function that aorsf implements.* - -run_lrt_multi_tests <- function(test_values, XB){ - - xb_uni <- unique(XB) - - cp_stats <- - sapply( - X = xb_uni, - FUN = function(x){ - c( - cp = x, - e_right = sum(status[XB > x]), - e_left = sum(status[XB <= x]), - n_right = sum(XB > x), - n_left = sum(XB <= x) - ) - } - ) - - cp_stats <- as.data.frame(t(cp_stats)) - - cp_stats$valid_cp = with( - cp_stats, - e_right >= leaf_min_events & e_left >= leaf_min_events & - n_right >= leaf_min_obs & n_left >= leaf_min_obs - ) - - if(!any(cp_stats$valid_cp)){ - return(NULL) - } - - cp_first = xb_uni[min(which(cp_stats$valid_cp))] - cp_last = xb_uni[max(which(cp_stats$valid_cp))] - - test_that( - desc = 'same chi-squared stats as survival survdiff', - code = { - - for(i in seq(index_last)){ - - XB_cut <- as.numeric(XB > test_values$cutpoints[i]) - - chisq <- - getElement(survival::survdiff(survival::Surv(time, status) ~ XB_cut), - 'chisq') - - # same chi square stat - expect_equal(test_values$statistic[i], chisq) - - # valid event and observation counts - e_right <- sum(status[XB > test_values$cutpoints[i]]) - n_right <- sum(XB > test_values$cutpoints[i]) - - e_left <- sum(status[XB <= test_values$cutpoints[i]]) - n_left <- sum(XB <= test_values$cutpoints[i]) - - expect_equal(e_left + e_right, n_event) - expect_equal(n_left + n_right, n_total) - - expect_true(e_right >= leaf_min_events) - expect_true(e_left >= leaf_min_events) - - expect_true(n_right >= leaf_min_obs) - expect_true(n_left >= leaf_min_obs) - - } - - } - - ) - -} - - -n_total <- 250 - -.leaf_min_events <- c(1, 3, 5, 10, 15) - -for(leaf_min_events in .leaf_min_events){ - - leaf_min_obs <- leaf_min_events + 10 - - XB_ctns <- sort(rnorm(n_total)) - XB_catg <- round(XB_ctns) - XB_bnry <- as.numeric(XB_ctns > 0) - - XB_catg <- XB_catg + abs(min(XB_catg)) + 1 - XB_bnry <- XB_bnry + 1 - - prob <- (XB_ctns + abs(min(XB_ctns))) / (max(XB_ctns)+abs(min(XB_ctns))) - - status <- rbinom(n = n_total, prob = prob, size = 1) - - n_event <- sum(status) - - time <- seq(n_total, 1) - t_sort <- order(time) - status <- status[t_sort] - XB_ctns <- XB_ctns[t_sort] - XB_catg <- XB_catg[t_sort] - XB_bnry <- XB_bnry[t_sort] - time <- time[t_sort] - - y <- cbind(time=time, status=status) - w <- rep(1, n_total) - - cp_bounds <- lapply( - X = list(ctns = XB_ctns, - catg = XB_catg, - bnry = XB_bnry), - FUN = function(XB){ - cp_find_bounds_R(y_node = y, - w_node = w, - XB = XB, - xb_uni = unique(XB), - leaf_min_events = leaf_min_events, - leaf_min_obs = leaf_min_obs) - } - ) %>% - lapply(subset, valid_cp) - - for(i in seq_along(cp_bounds)){ - - XB <- switch (names(cp_bounds)[i], - 'ctns' = XB_ctns, - 'catg' = XB_catg, - 'bnry' = XB_bnry) - - for(j in seq_along(cp_bounds[[i]]$cp)){ - - - group <- as.numeric(XB > cp_bounds[[i]]$cp[j]) - - - expect_equal( - node_compute_lrt_exported(y, w, group), - survival::survdiff(survival::Surv(time, status) ~ group)$chisq - ) - - } - - - } - -} - - -# # benchmark does not need to be tested every time -# -# bm <- microbenchmark::microbenchmark( -# R = survival::survdiff(survival::Surv(time, status) ~ group)$chisq, -# cpp = node_compute_lrt_exported(y, w, group), -# times = 50 -# ) -# -# expect_lt( -# median(bm$time[bm$expr == 'cpp']), -# median(bm$time[bm$expr == 'R']) -# ) - - - diff --git a/tests/testthat/test-oobag.R b/tests/testthat/test-oobag.R index d88f9de6..a8064aa6 100644 --- a/tests/testthat/test-oobag.R +++ b/tests/testthat/test-oobag.R @@ -2,7 +2,7 @@ fit_custom_oobag <- orsf(pbc_orsf, formula = Surv(time, status) ~ . - id, - oobag_fun = oobag_c_harrell, + oobag_fun = oobag_c_survival, n_tree = 10, tree_seeds = 1:10) diff --git a/tests/testthat/test-ostree_pred_leaf.R b/tests/testthat/test-ostree_pred_leaf.R index 3ba41eb2..5b18fe40 100644 --- a/tests/testthat/test-ostree_pred_leaf.R +++ b/tests/testthat/test-ostree_pred_leaf.R @@ -1,63 +1,63 @@ - -#' @srrstats {G5.4a} *Testing of leaf assignment implementation is done by comparing results from an initial R implementation to the C++ implementation.* - -#' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* -set.seed(1) - -formula <- Surv(time, status) ~ . - id - -aorsf <- orsf( - formula = formula, - data = pbc_orsf, - n_tree = 10, - leaf_min_obs = 20 -) - -formula_terms <- stats::terms(formula, data=pbc_orsf) -names_x_data <- attr(formula_terms, 'term.labels') - -fi <- fctr_info(pbc_orsf, names_x_data) -x <- as.matrix(ref_code(pbc_orsf, fi, names_x_data)) - -for( tr in seq(10) ){ - - tree <- aorsf$forest[[tr]] - leaf_assigned <- rep(0, nrow(x)) - - for (j in seq(0, ncol(tree$betas)-1 ) ) { - - jj <- j+1 - - obs_in_node <- which(leaf_assigned==j) - - if(tree$children_left[jj] != 0){ - - lc <- x[obs_in_node, (tree$col_indices[, jj] + 1)] %*% tree$betas[, jj, drop = F] - - going_left <- lc <= tree$cut_points[jj] - going_right <- !going_left - - leaf_assigned[obs_in_node[going_left]] <- tree$children_left[jj] - leaf_assigned[obs_in_node[going_right]] <- tree$children_left[jj] + 1 - - } - - } - - test_that( - desc = 'check pred_leaf with R script', - code = { - - leaves <- as.numeric(ostree_pred_leaf_testthat(tree = tree, x_pred_ = x)) - #' @srrstats {G5.3} *Test that objects returned contain no missing (`NA`) or undefined (`NaN`, `Inf`) values.* - expect_false(any(is.na(leaves))) - expect_false(any(is.nan(leaves))) - expect_false(any(is.infinite(leaves))) - expect_equal(leaves, as.numeric(leaf_assigned)) - - #' @srrstats {G5.6a} *In this case the results are integers, so no tolerance is used.* - - } - ) - -} +#' +#' #' @srrstats {G5.4a} *Testing of leaf assignment implementation is done by comparing results from an initial R implementation to the C++ implementation.* +#' +#' #' @srrstats {G5.5} *Correctness tests are run with a fixed random seed* +#' set.seed(1) +#' +#' formula <- Surv(time, status) ~ . - id +#' +#' aorsf <- orsf( +#' formula = formula, +#' data = pbc_orsf, +#' n_tree = 10, +#' leaf_min_obs = 20 +#' ) +#' +#' formula_terms <- stats::terms(formula, data=pbc_orsf) +#' names_x_data <- attr(formula_terms, 'term.labels') +#' +#' fi <- fctr_info(pbc_orsf, names_x_data) +#' x <- as.matrix(ref_code(pbc_orsf, fi, names_x_data)) +#' +#' for( tr in seq(10) ){ +#' +#' tree <- aorsf$forest[[tr]] +#' leaf_assigned <- rep(0, nrow(x)) +#' +#' for (j in seq(0, ncol(tree$betas)-1 ) ) { +#' +#' jj <- j+1 +#' +#' obs_in_node <- which(leaf_assigned==j) +#' +#' if(tree$children_left[jj] != 0){ +#' +#' lc <- x[obs_in_node, (tree$col_indices[, jj] + 1)] %*% tree$betas[, jj, drop = F] +#' +#' going_left <- lc <= tree$cut_points[jj] +#' going_right <- !going_left +#' +#' leaf_assigned[obs_in_node[going_left]] <- tree$children_left[jj] +#' leaf_assigned[obs_in_node[going_right]] <- tree$children_left[jj] + 1 +#' +#' } +#' +#' } +#' +#' test_that( +#' desc = 'check pred_leaf with R script', +#' code = { +#' +#' leaves <- as.numeric(ostree_pred_leaf_testthat(tree = tree, x_pred_ = x)) +#' #' @srrstats {G5.3} *Test that objects returned contain no missing (`NA`) or undefined (`NaN`, `Inf`) values.* +#' expect_false(any(is.na(leaves))) +#' expect_false(any(is.nan(leaves))) +#' expect_false(any(is.infinite(leaves))) +#' expect_equal(leaves, as.numeric(leaf_assigned)) +#' +#' #' @srrstats {G5.6a} *In this case the results are integers, so no tolerance is used.* +#' +#' } +#' ) +#' +#' } diff --git a/tests/testthat/test-which_cols_valid.R b/tests/testthat/test-which_cols_valid.R index 351f3c44..8569e072 100644 --- a/tests/testthat/test-which_cols_valid.R +++ b/tests/testthat/test-which_cols_valid.R @@ -1,54 +1,54 @@ - - -y <- matrix( - data = c(1,1, - 2,0, - 3,1, - 4,0, - 5,1, - 6,1), - byrow = TRUE, - ncol = 2 -) - -# column 1 is constant everywhere -> return value should be 0 -# column 2 is constant where events occurred -> return value should be 0 -# column 3 is unique everywhere -> return value should be 1 -# column 4 is unique where events occurred -> return value should be 1 - -x <- matrix( - data = c(1, 2, 3, 1, - 1, 0, 4, 1, - 1, 2, 5, 3, - 1, 0, 6, 3, - 1, 2, 7, 4, - 1, 2, 8, 4), - byrow = TRUE, - ncol = 4 -) - -test_that( - desc = "constant columns are detected in X matrix", - code = { - # include all rows - expect_equal( - which_cols_valid_exported(y, x, rows_node = seq(0, nrow(x)-1), mtry = 1), - matrix(data = c(0, 0, 1, 1), ncol = 1) - ) - - # same deal if you just include event rows - expect_equal( - which_cols_valid_exported(y, x, rows_node = c(0, 2, 4, 5), mtry = 1), - matrix(data = c(0, 0, 1, 1), ncol = 1) - ) - - # all cols should be constant if you remove rows with events - expect_equal( - which_cols_valid_exported(y, x, rows_node = c(1, 3), mtry = 1), - matrix(data = c(0, 0, 0, 0), ncol = 1) - ) - } -) - - - +# +# +# y <- matrix( +# data = c(1,1, +# 2,0, +# 3,1, +# 4,0, +# 5,1, +# 6,1), +# byrow = TRUE, +# ncol = 2 +# ) +# +# # column 1 is constant everywhere -> return value should be 0 +# # column 2 is constant where events occurred -> return value should be 0 +# # column 3 is unique everywhere -> return value should be 1 +# # column 4 is unique where events occurred -> return value should be 1 +# +# x <- matrix( +# data = c(1, 2, 3, 1, +# 1, 0, 4, 1, +# 1, 2, 5, 3, +# 1, 0, 6, 3, +# 1, 2, 7, 4, +# 1, 2, 8, 4), +# byrow = TRUE, +# ncol = 4 +# ) +# +# test_that( +# desc = "constant columns are detected in X matrix", +# code = { +# # include all rows +# expect_equal( +# which_cols_valid_exported(y, x, rows_node = seq(0, nrow(x)-1), mtry = 1), +# matrix(data = c(0, 0, 1, 1), ncol = 1) +# ) +# +# # same deal if you just include event rows +# expect_equal( +# which_cols_valid_exported(y, x, rows_node = c(0, 2, 4, 5), mtry = 1), +# matrix(data = c(0, 0, 1, 1), ncol = 1) +# ) +# +# # all cols should be constant if you remove rows with events +# expect_equal( +# which_cols_valid_exported(y, x, rows_node = c(1, 3), mtry = 1), +# matrix(data = c(0, 0, 0, 0), ncol = 1) +# ) +# } +# ) +# +# +# From 4b602a4a7bd1a27c2e525fb68835e111832c25b8 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Sun, 1 Oct 2023 23:39:32 -0400 Subject: [PATCH 094/103] adding docs, fix col sample edge case --- R/orsf.R | 37 ++++-- R/roxy.R | 10 ++ Rmd/orsf_examples.Rmd | 29 ++--- man/orsf.Rd | 175 ++++++++++++++------------ man/orsf_control_custom.Rd | 16 +-- man/orsf_ice_oob.Rd | 25 ++-- man/orsf_pd_oob.Rd | 35 +++--- man/orsf_vi.Rd | 128 +++++++++++-------- man/predict.orsf_fit.Rd | 45 +++---- src/Tree.cpp | 231 +++++++++++++++++----------------- src/utility.cpp | 2 +- tests/testthat/test-orsf_vi.R | 20 +-- vignettes/oobag.Rmd | 28 +++-- 13 files changed, 432 insertions(+), 349 deletions(-) diff --git a/R/orsf.R b/R/orsf.R index de576b0a..5229900a 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -85,16 +85,28 @@ #' of randomly selected predictors, up to `n_retry` times. Default is #' `n_retry = 3`. Set `n_retry = 0` to prevent any retries. #' +#' @param n_thread `r roxy_n_thread_header()` +#' #' @param mtry (_integer_) Number of predictors randomly included as candidates #' for splitting a node. The default is the smallest integer greater than #' the square root of the number of total predictors, i.e., #' `mtry = ceiling(sqrt(number of predictors))` #' +#' @param sample_with_replacement +#' +#' @param sample_fraction +#' #' @param leaf_min_events (_integer_) minimum number of events in a #' leaf node. Default is `leaf_min_events = 1` #' #' @param leaf_min_obs (_integer_) minimum number of observations in a -#' leaf node. Default is `leaf_min_obs = 5` +#' leaf node. Default is `leaf_min_obs = 5`. +#' +#' @param split_rule (_character_) how to assess the quality of a potential +#' splitting rule for a node. Valid options are +#' +#' - 'logrank' : a log-rank test statistic. +#' - 'cstat' : Harrell's concordance statistic. #' #' @param split_min_events (_integer_) minimum number of events required #' in a node to consider splitting it. Default is `split_min_events = 5` @@ -103,19 +115,21 @@ #' in a node to consider splitting it. Default is `split_min_obs = 10`. #' #' @param split_min_stat (double) minimum test statistic required to split -#' a node. Default is 3.841459 for the log-rank test, which is roughly -#' a p-value of 0.05 +#' a node. Default is 3.841459 if `split_rule = 'logrank'` and 0.50 if +#' `split_rule = 'cstat'`. If no splits are found with a statistic +#' exceeding `split_min_stat`, the given node either becomes a leaf or +#' a retry occurs (up to `n_retry` retries). #' #' @param oobag_pred_type (_character_) The type of out-of-bag predictions #' to compute while fitting the ensemble. Valid options are #' #' - 'none' : don't compute out-of-bag predictions -#' - 'risk' : predict the probability of having an event at or before `oobag_pred_horizon`. +#' - 'risk' : probability of event occurring at or before `oobag_pred_horizon`. #' - 'surv' : 1 - risk. -#' - 'chf' : predict cumulative hazard function -#' -#' Mortality ('mort')is not implemented for out of bag predictions yet, but it -#' will be in a future update. +#' - 'chf' : cumulative hazard function at `oobag_pred_horizon`. +#' - 'mort' : mortality, i.e., the number of events expected if all +#' observations in the training data were identical to a +#' given observation. #' #' @param oobag_pred_horizon (_numeric_) A numeric value indicating what time #' should be used for out-of-bag predictions. Default is the median @@ -239,6 +253,13 @@ #' importance or permutation importance, but it will not have any role #' for ANOVA importance. #' +#' **n_thread**: +#' +#' If an R function must be called from C++ (i.e., user-supplied function to +#' compute out-of-bag error or identify linear combinations of variables), +#' `n_thread` will automatically be set to 1 because attempting to run R +#' functions in multiple threads will cause the R session to crash. +#' #' @section What is an oblique decision tree?: #' #' Decision trees are developed by splitting a set of training data into two diff --git a/R/roxy.R b/R/roxy.R index 8fb1d5a4..202c0840 100644 --- a/R/roxy.R +++ b/R/roxy.R @@ -14,6 +14,16 @@ roxy_data_allowed <- function(){ ) } +# multi-threading --------------------------------------------------------- + +roxy_n_thread_header <- function(){ + "(_integer_) number of threads to use. Default is one thread." +} + +roxy_n_thread_details <- function(){ + "(_integer_) number of threads to use. Default is one thread." +} + # importance -------------------------------------------------------------- roxy_importance_header <- function(){ diff --git a/Rmd/orsf_examples.Rmd b/Rmd/orsf_examples.Rmd index 4c79596a..0ff1fdc2 100644 --- a/Rmd/orsf_examples.Rmd +++ b/Rmd/orsf_examples.Rmd @@ -107,7 +107,7 @@ Let's make two customized functions to identify linear combinations of predictor # estimate two principal components. pca <- stats::prcomp(x_node, rank. = 2) # use the second principal component to split the node - pca$rotation[, 2L, drop = FALSE] + pca$rotation[, 1L, drop = FALSE] } @@ -163,11 +163,11 @@ sc$Brier$score[order(-IPA), .(model, times, IPA)] From inspection, -- the PCA approach has the highest discrimination, showing that you can do very well with just a two line custom function. +- the `glmnet` approach has the highest discrimination and index of prediction accuracy. -- the accelerated ORSF has the highest index of prediction accuracy +- the accelerated ORSF is a close second. -- the random coefficients generally don't do that well. +- the random coefficients don't do that well, but they aren't bad. ## tidymodels @@ -279,8 +279,8 @@ Score( From inspection, - `aorsf` obtained slightly higher discrimination (AUC) + - `aorsf` obtained higher index of prediction accuracy (IPA) -- Way to go, `aorsf` ## mlr3 pipelines @@ -443,9 +443,9 @@ tbl_data <- structure( list( learner_id = c("surv.aorsf", "surv.ranger", "surv.rfsrc"), - surv.graf = c(0.151447953930207, 0.166799975594481, 0.15586242346754), - surv.cindex = c(0.729057822587355, 0.706476104709337, 0.714969112063354), - time_train = c(0.344528301886968, 2.53641509434031, 0.782641509433885) + surv.graf = c(0.151771237677512, 0.166032273495838, 0.155174775571719), + surv.cindex = c(0.733123595064337, 0.71210747198625, 0.723016206784682), + time_train = c(1.41181818181788, 1.95254545454584, 0.744727272727191) ), row.names = c(NA, -3L), class = c("tbl_df", "tbl", "data.frame") @@ -453,20 +453,11 @@ tbl_data <- tbl_data -# knitr::kable(tbl_data, -# col.names = c('Learner', -# 'Brier score', -# 'C-index', -# 'Time to train')) %>% -# kableExtra::kable_styling() - ``` From inspection, -- `aorsf` appears to have a higher expected value for 'surv.cindex' (higher is better) -- `aorsf` appears to have a lower expected value for 'surv.graf' (lower is better) -- `aorsf` has the lowest training time. +- `aorsf` has a higher expected value for 'surv.cindex' (higher is better) -the lower training time for `aorsf` is likely due to the fact that there are many unique event times in the benchmark tasks. `ranger` and `rfsrc` create grids of time points based on each unique event time in each leaf of each decision tree, whereas `aorsf` also uses a grid but restricts it to the unique event times among observations in the current leaf. +- `aorsf` has a lower expected value for 'surv.graf' (lower is better) diff --git a/man/orsf.Rd b/man/orsf.Rd index efa3e7b8..2141cdc7 100644 --- a/man/orsf.Rd +++ b/man/orsf.Rd @@ -13,12 +13,16 @@ orsf( n_tree = 500, n_split = 5, n_retry = 3, + n_thread = 1, mtry = NULL, + sample_with_replacement = TRUE, + sample_fraction = 0.632, leaf_min_events = 1, leaf_min_obs = 5, + split_rule = "logrank", split_min_events = 5, split_min_obs = 10, - split_min_stat = 3.841459, + split_min_stat = switch(split_rule, logrank = 3.841459, cstat = 0.5), oobag_pred_type = "surv", oobag_pred_horizon = NULL, oobag_eval_every = n_tree, @@ -79,16 +83,29 @@ will try again with a new linear combination based on a different set of randomly selected predictors, up to \code{n_retry} times. Default is \code{n_retry = 3}. Set \code{n_retry = 0} to prevent any retries.} +\item{n_thread}{(\emph{integer}) number of threads to use. Default is one thread.} + \item{mtry}{(\emph{integer}) Number of predictors randomly included as candidates for splitting a node. The default is the smallest integer greater than the square root of the number of total predictors, i.e., \verb{mtry = ceiling(sqrt(number of predictors))}} +\item{sample_with_replacement}{} + +\item{sample_fraction}{} + \item{leaf_min_events}{(\emph{integer}) minimum number of events in a leaf node. Default is \code{leaf_min_events = 1}} \item{leaf_min_obs}{(\emph{integer}) minimum number of observations in a -leaf node. Default is \code{leaf_min_obs = 5}} +leaf node. Default is \code{leaf_min_obs = 5}.} + +\item{split_rule}{(\emph{character}) how to assess the quality of a potential +splitting rule for a node. Valid options are +\itemize{ +\item 'logrank' : a log-rank test statistic. +\item 'cstat' : Harrell's concordance statistic. +}} \item{split_min_events}{(\emph{integer}) minimum number of events required in a node to consider splitting it. Default is \code{split_min_events = 5}} @@ -97,20 +114,22 @@ in a node to consider splitting it. Default is \code{split_min_events = 5}} in a node to consider splitting it. Default is \code{split_min_obs = 10}.} \item{split_min_stat}{(double) minimum test statistic required to split -a node. Default is 3.841459 for the log-rank test, which is roughly -a p-value of 0.05} +a node. Default is 3.841459 if \code{split_rule = 'logrank'} and 0.50 if +\code{split_rule = 'cstat'}. If no splits are found with a statistic +exceeding \code{split_min_stat}, the given node either becomes a leaf or +a retry occurs (up to \code{n_retry} retries).} \item{oobag_pred_type}{(\emph{character}) The type of out-of-bag predictions to compute while fitting the ensemble. Valid options are \itemize{ \item 'none' : don't compute out-of-bag predictions -\item 'risk' : predict the probability of having an event at or before \code{oobag_pred_horizon}. +\item 'risk' : probability of event occurring at or before \code{oobag_pred_horizon}. \item 'surv' : 1 - risk. -\item 'chf' : predict cumulative hazard function -} - -Mortality ('mort')is not implemented for out of bag predictions yet, but it -will be in a future update.} +\item 'chf' : cumulative hazard function at \code{oobag_pred_horizon}. +\item 'mort' : mortality, i.e., the number of events expected if all +observations in the training data were identical to a +given observation. +}} \item{oobag_pred_horizon}{(\emph{numeric}) A numeric value indicating what time should be used for out-of-bag predictions. Default is the median @@ -235,6 +254,13 @@ occur when using \link{orsf_control_net}. If \code{oobag_fun} is specified, it will be used in to compute negation importance or permutation importance, but it will not have any role for ANOVA importance. + +\strong{n_thread}: + +If an R function must be called from C++ (i.e., user-supplied function to +compute out-of-bag error or identify linear combinations of variables), +\code{n_thread} will automatically be set to 1 because attempting to run R +functions in multiple threads will cause the R session to crash. } \section{What is an oblique decision tree?}{ @@ -326,7 +352,7 @@ printing \code{fit} provides quick descriptive summaries: ## N trees: 500 ## N predictors total: 17 ## N predictors per node: 5 -## Average leaves per tree: 24 +## Average leaves per tree: 25 ## Min observations in leaf: 5 ## Min events in leaf: 1 ## OOB stat value: 0.84 @@ -403,7 +429,7 @@ predictors. # estimate two principal components. pca <- stats::prcomp(x_node, rank. = 2) # use the second principal component to split the node - pca$rotation[, 2L, drop = FALSE] + pca$rotation[, 1L, drop = FALSE] \} }\if{html}{\out{}} @@ -447,11 +473,11 @@ The AUC values, from highest to lowest: }\if{html}{\out{}} \if{html}{\out{
}}\preformatted{## model times AUC se lower upper -## 1: net 1788 0.9107925 0.02116880 0.8693024 0.9522826 -## 2: accel 1788 0.9106308 0.02178112 0.8679406 0.9533210 -## 3: cph 1788 0.9072690 0.02120139 0.8657150 0.9488229 -## 4: pca 1788 0.8915619 0.02335399 0.8457889 0.9373349 -## 5: rando 1788 0.8900944 0.02228487 0.8464168 0.9337719 +## 1: accel 1788 0.9095660 0.02113628 0.8681397 0.9509924 +## 2: net 1788 0.9093490 0.02158187 0.8670493 0.9516487 +## 3: cph 1788 0.9066412 0.02196233 0.8635958 0.9496866 +## 4: rando 1788 0.9013929 0.02194349 0.8583845 0.9444014 +## 5: pca 1788 0.9001017 0.02233370 0.8563284 0.9438749 }\if{html}{\out{
}} And the indices of prediction accuracy: @@ -460,20 +486,20 @@ And the indices of prediction accuracy: }\if{html}{\out{}} \if{html}{\out{
}}\preformatted{## model times IPA -## 1: accel 1788 0.4891448 -## 2: cph 1788 0.4687734 -## 3: net 1788 0.4652211 -## 4: rando 1788 0.4011573 -## 5: pca 1788 0.3845911 +## 1: accel 1788 0.4812191 +## 2: net 1788 0.4810210 +## 3: cph 1788 0.4735707 +## 4: pca 1788 0.4408537 +## 5: rando 1788 0.4240110 ## 6: Null model 1788 0.0000000 }\if{html}{\out{
}} From inspection, \itemize{ -\item the PCA approach has the highest discrimination, showing that you can -do very well with just a two line custom function. -\item the accelerated ORSF has the highest index of prediction accuracy -\item the random coefficients generally don’t do that well. +\item the \code{glmnet} approach has the highest discrimination and index of +prediction accuracy. +\item the accelerated ORSF is a close second. +\item the random coefficients don’t do that well, but they aren’t bad. } } @@ -577,29 +603,29 @@ glimpse(results) \if{html}{\out{
}}\preformatted{## Rows: 276 ## Columns: 23 -## $ id 2, 16, 27, 66, 79, 97, 107, 116, 136, 137, 158, 189, 193, ~ -## $ trt d_penicill_main, placebo, placebo, d_penicill_main, d_peni~ -## $ age 56.44627, 40.44353, 54.43943, 46.45311, 46.51608, 71.89322~ -## $ sex f, f, f, m, f, m, f, f, f, f, f, f, f, f, f, f, f, f, f, f~ -## $ ascites 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~ -## $ hepato 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1~ -## $ spiders 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 1~ -## $ edema 0, 0, 0.5, 0, 0, 0.5, 0, 0.5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0~ -## $ bili 1.1, 0.7, 21.6, 1.4, 0.8, 2.0, 0.6, 3.0, 0.8, 1.1, 3.4, 1.~ -## $ chol 302, 204, 175, 427, 315, 420, 212, 458, 263, 399, 450, 360~ -## $ albumin 4.14, 3.66, 3.31, 3.70, 4.24, 3.26, 4.03, 3.63, 3.35, 3.60~ -## $ copper 54, 28, 221, 105, 13, 62, 10, 74, 27, 79, 32, 52, 267, 76,~ -## $ alk.phos 7394.8, 685.0, 3697.4, 1909.0, 1637.0, 3196.0, 648.0, 1588~ -## $ ast 113.52, 72.85, 101.91, 182.90, 170.50, 77.50, 71.30, 106.9~ -## $ trig 88, 58, 168, 171, 70, 91, 77, 382, 69, 152, 118, 164, 157,~ -## $ platelet 221, 198, 80, 123, 426, 344, 316, 438, 206, 344, 313, 256,~ -## $ protime 10.6, 10.8, 12.0, 11.0, 10.9, 11.4, 17.1, 9.9, 9.8, 10.1, ~ -## $ stage 3, 3, 4, 3, 3, 3, 1, 3, 2, 2, 2, 3, 4, 4, 2, 2, 3, 3, 4, 4~ -## $ time 4500, 3672, 77, 4191, 3707, 611, 3388, 3336, 3098, 2990, 2~ -## $ status 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0~ -## $ pred_aorsf 0.21650571, 0.01569191, 0.93095617, 0.36737089, 0.12868206~ -## $ pred_rfsrc 0.15202784, 0.01104486, 0.81913559, 0.20173550, 0.13806608~ -## $ pred_ranger 0.11418963, 0.02130315, 0.77073269, 0.22130305, 0.18419972~ +## $ id 17, 23, 34, 43, 50, 51, 61, 71, 78, 80, 92, 97, 100, 121, ~ +## $ trt placebo, placebo, d_penicill_main, d_penicill_main, d_peni~ +## $ age 52.18344, 55.96715, 52.06023, 48.87064, 53.50856, 52.08761~ +## $ sex f, f, f, f, f, f, m, f, f, m, f, m, m, m, f, m, f, f, f, f~ +## $ ascites 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0~ +## $ hepato 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0~ +## $ spiders 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0~ +## $ edema 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0.5, 0, 1, 0, 0, 0, 0, 0,~ +## $ bili 2.7, 17.4, 0.8, 1.1, 1.1, 0.8, 0.6, 1.2, 6.3, 7.2, 1.4, 2.~ +## $ chol 274, 395, 364, 361, 257, 276, 216, 258, 436, 247, 206, 420~ +## $ albumin 3.15, 2.94, 3.70, 3.64, 3.36, 3.60, 3.94, 3.57, 3.02, 3.72~ +## $ copper 159, 558, 37, 36, 43, 54, 28, 79, 75, 269, 36, 62, 145, 73~ +## $ alk.phos 1533.0, 6064.8, 1840.0, 5430.2, 1080.0, 4332.0, 601.0, 220~ +## $ ast 117.80, 227.04, 170.50, 67.08, 106.95, 99.33, 60.45, 120.9~ +## $ trig 128, 191, 64, 89, 73, 143, 188, 76, 104, 91, 70, 91, 122, ~ +## $ platelet 224, 214, 273, 203, 128, 273, 211, 410, 236, 360, 145, 344~ +## $ protime 10.5, 11.7, 10.5, 10.6, 10.6, 10.6, 13.0, 11.5, 10.6, 11.2~ +## $ stage 4, 4, 2, 2, 4, 2, 1, 4, 4, 4, 4, 3, 4, 4, 4, 4, 2, 2, 2, 3~ +## $ time 769, 264, 3933, 4556, 2598, 3853, 4256, 4196, 1690, 890, 3~ +## $ status 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0~ +## $ pred_aorsf 0.45334129, 0.95144543, 0.05125555, 0.04889358, 0.10217167~ +## $ pred_rfsrc 0.399822742, 0.849260628, 0.078051369, 0.062322537, 0.0593~ +## $ pred_ranger 0.37288105, 0.78251828, 0.04888381, 0.03342850, 0.05038629~ }\if{html}{\out{
}} And finish by aggregating the predictions and computing performance in @@ -625,16 +651,16 @@ counts. ## Results by model: ## ## model times AUC lower upper -## 1: aorsf 1826 90.1 85.7 94.6 -## 2: rfsrc 1826 89.4 85.0 93.7 -## 3: ranger 1826 90.1 85.9 94.3 +## 1: aorsf 1826 90.0 85.4 94.7 +## 2: rfsrc 1826 89.9 85.4 94.4 +## 3: ranger 1826 89.5 85.0 94.1 ## ## Results of model comparisons: ## ## times model reference delta.AUC lower upper p -## 1: 1826 rfsrc aorsf -0.7 -2.3 0.8 0.4 -## 2: 1826 ranger aorsf -0.0 -1.7 1.6 1.0 -## 3: 1826 ranger rfsrc 0.7 -0.4 1.8 0.2 +## 1: 1826 rfsrc aorsf -0.1 -1.5 1.2 0.8 +## 2: 1826 ranger aorsf -0.5 -2.0 1.0 0.5 +## 3: 1826 ranger rfsrc -0.4 -1.5 0.8 0.5 ## ## NOTE: Values are multiplied by 100 and given in \%. @@ -648,19 +674,19 @@ counts. ## ## model times Brier lower upper IPA ## 1: Null model 1826.25 20.5 18.1 22.9 0.0 -## 2: aorsf 1826.25 11.1 8.8 13.4 45.8 -## 3: rfsrc 1826.25 12.0 9.8 14.1 41.6 -## 4: ranger 1826.25 11.8 9.7 13.9 42.5 +## 2: aorsf 1826.25 11.1 8.9 13.3 45.8 +## 3: rfsrc 1826.25 11.8 9.6 13.9 42.5 +## 4: ranger 1826.25 11.8 9.7 13.9 42.2 ## ## Results of model comparisons: ## ## times model reference delta.Brier lower upper p -## 1: 1826.25 aorsf Null model -9.4 -12.1 -6.6 2.423961e-11 -## 2: 1826.25 rfsrc Null model -8.5 -10.8 -6.2 2.104905e-13 -## 3: 1826.25 ranger Null model -8.7 -11.0 -6.4 1.802417e-13 -## 4: 1826.25 rfsrc aorsf 0.9 -0.0 1.7 5.277607e-02 -## 5: 1826.25 ranger aorsf 0.7 -0.1 1.5 1.008730e-01 -## 6: 1826.25 ranger rfsrc -0.2 -0.7 0.3 4.550782e-01 +## 1: 1826.25 aorsf Null model -9.4 -12.1 -6.6 1.836147e-11 +## 2: 1826.25 rfsrc Null model -8.7 -10.9 -6.5 2.460068e-14 +## 3: 1826.25 ranger Null model -8.6 -11.0 -6.3 3.215459e-13 +## 4: 1826.25 rfsrc aorsf 0.7 -0.2 1.5 1.176276e-01 +## 5: 1826.25 ranger aorsf 0.7 -0.0 1.5 5.782500e-02 +## 6: 1826.25 ranger rfsrc 0.1 -0.5 0.6 8.143879e-01 ## ## NOTE: Values are multiplied by 100 and given in \%. @@ -672,7 +698,6 @@ From inspection, \itemize{ \item \code{aorsf} obtained slightly higher discrimination (AUC) \item \code{aorsf} obtained higher index of prediction accuracy (IPA) -\item Way to go, \code{aorsf} } } @@ -823,25 +848,17 @@ Let’s look at the overall results: \if{html}{\out{
}}\preformatted{## # A tibble: 3 x 4 ## learner_id surv.graf surv.cindex time_train ## -## 1 surv.aorsf 0.151 0.729 0.345 -## 2 surv.ranger 0.167 0.706 2.54 -## 3 surv.rfsrc 0.156 0.715 0.783 +## 1 surv.aorsf 0.152 0.733 1.41 +## 2 surv.ranger 0.166 0.712 1.95 +## 3 surv.rfsrc 0.155 0.723 0.745 }\if{html}{\out{
}} From inspection, \itemize{ -\item \code{aorsf} appears to have a higher expected value for ‘surv.cindex’ -(higher is better) -\item \code{aorsf} appears to have a lower expected value for ‘surv.graf’ (lower -is better) -\item \code{aorsf} has the lowest training time. +\item \code{aorsf} has a higher expected value for ‘surv.cindex’ (higher is +better) +\item \code{aorsf} has a lower expected value for ‘surv.graf’ (lower is better) } - -the lower training time for \code{aorsf} is likely due to the fact that there -are many unique event times in the benchmark tasks. \code{ranger} and \code{rfsrc} -create grids of time points based on each unique event time in each leaf -of each decision tree, whereas \code{aorsf} also uses a grid but restricts it -to the unique event times among observations in the current leaf. } } diff --git a/man/orsf_control_custom.Rd b/man/orsf_control_custom.Rd index 79d415dc..3d819617 100644 --- a/man/orsf_control_custom.Rd +++ b/man/orsf_control_custom.Rd @@ -67,10 +67,10 @@ fit_rando ## N trees: 500 ## N predictors total: 17 ## N predictors per node: 5 -## Average leaves per tree: 23 +## Average leaves per tree: 20 ## Min observations in leaf: 5 ## Min events in leaf: 1 -## OOB stat value: 0.82 +## OOB stat value: 0.83 ## OOB stat type: Harrell's C-statistic ## Variable importance: anova ## @@ -110,7 +110,7 @@ prediction accuracy based on out-of-bag predictions: \if{html}{\out{
}}\preformatted{library(riskRegression) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## riskRegression version 2022.11.28 +\if{html}{\out{
}}\preformatted{## riskRegression version 2023.09.08 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{library(survival) @@ -135,15 +135,15 @@ The PCA ORSF does quite well! (higher IPA is better) ## ## model times Brier lower upper IPA ## 1: Null model 1788 20.479 18.090 22.868 0.000 -## 2: rando 1788 12.381 10.175 14.588 39.541 -## 3: pca 1788 12.496 10.476 14.515 38.983 +## 2: rando 1788 11.674 9.605 13.743 42.995 +## 3: pca 1788 12.741 10.813 14.668 37.787 ## ## Results of model comparisons: ## ## times model reference delta.Brier lower upper p -## 1: 1788 rando Null model -8.098 -10.392 -5.804 4.558033e-12 -## 2: 1788 pca Null model -7.983 -9.888 -6.078 2.142713e-16 -## 3: 1788 pca rando 0.114 -0.703 0.932 7.838255e-01 +## 1: 1788 rando Null model -8.805 -10.992 -6.618 2.971574e-15 +## 2: 1788 pca Null model -7.738 -9.445 -6.032 6.124683e-19 +## 3: 1788 pca rando 1.067 0.209 1.924 1.477749e-02 ## ## NOTE: Values are multiplied by 100 and given in \%. diff --git a/man/orsf_ice_oob.Rd b/man/orsf_ice_oob.Rd index a9047c18..14526b1a 100644 --- a/man/orsf_ice_oob.Rd +++ b/man/orsf_ice_oob.Rd @@ -13,6 +13,7 @@ orsf_ice_oob( pred_type = "risk", expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ... ) @@ -23,6 +24,7 @@ orsf_ice_inb( pred_type = "risk", expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ... ) @@ -35,6 +37,7 @@ orsf_ice_new( na_action = "fail", expand_grid = TRUE, boundary_checks = TRUE, + n_thread = 1, ... ) } @@ -146,18 +149,18 @@ ice_oob <- orsf_ice_oob(fit, pred_spec, boundary_checks = FALSE) ice_oob }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon id_variable id_row bili pred -## 1: 1788 1 1 1 0.8935318 -## 2: 1788 1 2 1 0.1025087 -## 3: 1788 1 3 1 0.6959198 -## 4: 1788 1 4 1 0.3465760 -## 5: 1788 1 5 1 0.1105536 +\if{html}{\out{
}}\preformatted{## id_variable id_row pred_horizon bili pred +## 1: 1 1 1788 1 0.9230235 +## 2: 1 2 1788 1 0.1041896 +## 3: 1 3 1788 1 0.7145325 +## 4: 1 4 1788 1 0.4058691 +## 5: 1 5 1788 1 0.1341705 ## --- -## 6896: 1788 25 272 10 0.4409361 -## 6897: 1788 25 273 10 0.4493052 -## 6898: 1788 25 274 10 0.4696659 -## 6899: 1788 25 275 10 0.3892409 -## 6900: 1788 25 276 10 0.4565133 +## 6896: 25 272 1788 10 0.4207172 +## 6897: 25 273 1788 10 0.5248116 +## 6898: 25 274 1788 10 0.5008757 +## 6899: 25 275 1788 10 0.3186278 +## 6900: 25 276 1788 10 0.5600743 }\if{html}{\out{
}} Much more detailed examples are given in the diff --git a/man/orsf_pd_oob.Rd b/man/orsf_pd_oob.Rd index 9592449d..c99e442c 100644 --- a/man/orsf_pd_oob.Rd +++ b/man/orsf_pd_oob.Rd @@ -15,6 +15,7 @@ orsf_pd_oob( prob_values = c(0.025, 0.5, 0.975), prob_labels = c("lwr", "medn", "upr"), boundary_checks = TRUE, + n_thread = 1, ... ) @@ -27,6 +28,7 @@ orsf_pd_inb( prob_values = c(0.025, 0.5, 0.975), prob_labels = c("lwr", "medn", "upr"), boundary_checks = TRUE, + n_thread = 1, ... ) @@ -41,6 +43,7 @@ orsf_pd_new( prob_values = c(0.025, 0.5, 0.975), prob_labels = c("lwr", "medn", "upr"), boundary_checks = TRUE, + n_thread = 1, ... ) } @@ -155,12 +158,12 @@ You can compute partial dependence and ICE three ways with \code{aorsf}: pd_train }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2054232 0.01599366 0.0929227 0.8077278 -## 2: 1826.25 2 0.2369077 0.02549869 0.1268457 0.8227315 -## 3: 1826.25 3 0.2808514 0.05027265 0.1720280 0.8457834 -## 4: 1826.25 4 0.3428065 0.09758988 0.2545869 0.8575243 -## 5: 1826.25 5 0.3992909 0.16392752 0.3232681 0.8634269 +\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr +## 1: 1826.25 1 0.2086895 0.01169427 0.08973182 0.7999000 +## 2: 1826.25 2 0.2474184 0.02852400 0.13076254 0.8253677 +## 3: 1826.25 3 0.2939266 0.05271715 0.18702944 0.8525564 +## 4: 1826.25 4 0.3463061 0.08608594 0.24530440 0.8725491 +## 5: 1826.25 5 0.3943704 0.13434823 0.30802728 0.8767528 }\if{html}{\out{
}} \item using out-of-bag predictions for the training data @@ -170,11 +173,11 @@ pd_train }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2068300 0.01479443 0.08824123 0.8053317 -## 2: 1826.25 2 0.2377046 0.02469718 0.12623031 0.8258154 -## 3: 1826.25 3 0.2810546 0.04080813 0.18721220 0.8484846 -## 4: 1826.25 4 0.3417839 0.09076851 0.24968438 0.8611884 -## 5: 1826.25 5 0.3979925 0.16098228 0.32147532 0.8554402 +## 1: 1826.25 1 0.2088996 0.01211920 0.09657406 0.8048779 +## 2: 1826.25 2 0.2479219 0.02588521 0.13533208 0.8255519 +## 3: 1826.25 3 0.2946953 0.05350260 0.20172248 0.8381337 +## 4: 1826.25 4 0.3482686 0.08630839 0.25600347 0.8616735 +## 5: 1826.25 5 0.3953571 0.13070114 0.31831296 0.8693703 }\if{html}{\out{
}} \item using predictions for a new set of data @@ -186,11 +189,11 @@ pd_test }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2510900 0.01631318 0.1872414 0.8162621 -## 2: 1826.25 2 0.2807327 0.02903956 0.2269297 0.8332956 -## 3: 1826.25 3 0.3247386 0.05860235 0.2841853 0.8481825 -## 4: 1826.25 4 0.3850799 0.10741224 0.3405760 0.8588955 -## 5: 1826.25 5 0.4394952 0.17572657 0.4050864 0.8657886 +## 1: 1826.25 1 0.2539163 0.01528999 0.1920986 0.8124487 +## 2: 1826.25 2 0.2910914 0.03461664 0.2412004 0.8334401 +## 3: 1826.25 3 0.3367071 0.06495564 0.3038693 0.8469746 +## 4: 1826.25 4 0.3888308 0.10888227 0.3675433 0.8562982 +## 5: 1826.25 5 0.4357696 0.15524636 0.4213456 0.8628220 }\if{html}{\out{
}} \item in-bag partial dependence indicates relationships that the model has learned during training. This is helpful if your goal is to interpret diff --git a/man/orsf_vi.Rd b/man/orsf_vi.Rd index 33019467..4e18747f 100644 --- a/man/orsf_vi.Rd +++ b/man/orsf_vi.Rd @@ -7,11 +7,33 @@ \alias{orsf_vi_anova} \title{ORSF variable importance} \usage{ -orsf_vi(object, group_factors = TRUE, importance = NULL, oobag_fun = NULL, ...) - -orsf_vi_negate(object, group_factors = TRUE, oobag_fun = NULL, ...) - -orsf_vi_permute(object, group_factors = TRUE, oobag_fun = NULL, ...) +orsf_vi( + object, + group_factors = TRUE, + importance = NULL, + oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, + ... +) + +orsf_vi_negate( + object, + group_factors = TRUE, + oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, + ... +) + +orsf_vi_permute( + object, + group_factors = TRUE, + oobag_fun = NULL, + n_thread = 1, + verbose_progress = FALSE, + ... +) orsf_vi_anova(object, group_factors = TRUE, ...) } @@ -129,12 +151,12 @@ the ‘raw’ variable importance values can be accessed from the fit object \if{html}{\out{
}}\preformatted{attr(fit, 'importance_values') }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## edema_1 ascites_1 bili copper age albumin -## 0.41468531 0.34547820 0.27357335 0.19702602 0.17831563 0.17231851 -## edema_0.5 protime chol stage sex_f spiders_1 -## 0.16100917 0.15265823 0.14529486 0.13818084 0.13186813 0.12881052 -## ast hepato_1 alk.phos trig platelet trt_placebo -## 0.12509496 0.11370348 0.10024752 0.09878683 0.08006941 0.06398488 +\if{html}{\out{
}}\preformatted{## ascites_1 edema_1 bili copper albumin age +## 0.4391711 0.4159605 0.2995144 0.2165056 0.2142857 0.1982379 +## protime edema_0.5 spiders_1 chol stage sex_f +## 0.1877984 0.1877432 0.1743852 0.1735495 0.1597052 0.1553260 +## ast hepato_1 trig alk.phos platelet trt_placebo +## 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 0.0964256 }\if{html}{\out{
}} these are ‘raw’ because values for factors have not been aggregated into @@ -153,24 +175,24 @@ To get aggregated values across all levels of each factor, \if{html}{\out{
}}\preformatted{fit$importance }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper age albumin protime -## 0.34547820 0.27357335 0.26368761 0.19702602 0.17831563 0.17231851 0.15265823 -## chol stage sex spiders ast hepato alk.phos -## 0.14529486 0.13818084 0.13186813 0.12881052 0.12509496 0.11370348 0.10024752 -## trig platelet trt -## 0.09878683 0.08006941 0.06398488 +\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime spiders +## 0.4391711 0.2995144 0.2801168 0.2165056 0.2142857 0.1982379 0.1877984 0.1743852 +## chol stage sex ast hepato trig alk.phos platelet +## 0.1735495 0.1597052 0.1553260 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 +## trt +## 0.0964256 }\if{html}{\out{
}} \item use \code{orsf_vi()} with group_factors set to \code{TRUE} (the default) \if{html}{\out{
}}\preformatted{orsf_vi(fit) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper age albumin protime -## 0.34547820 0.27357335 0.26368761 0.19702602 0.17831563 0.17231851 0.15265823 -## chol stage sex spiders ast hepato alk.phos -## 0.14529486 0.13818084 0.13186813 0.12881052 0.12509496 0.11370348 0.10024752 -## trig platelet trt -## 0.09878683 0.08006941 0.06398488 +\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime spiders +## 0.4391711 0.2995144 0.2801168 0.2165056 0.2142857 0.1982379 0.1877984 0.1743852 +## chol stage sex ast hepato trig alk.phos platelet +## 0.1735495 0.1597052 0.1553260 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 +## trt +## 0.0964256 }\if{html}{\out{
}} } @@ -193,27 +215,25 @@ You can fit an ORSF without VI, then add VI later orsf_vi_negate(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper age protime albumin -## 0.0717336945 0.0288601792 0.0253698687 0.0110960617 0.0100020838 -## chol ascites spiders ast stage -## 0.0075015628 0.0060950198 0.0045321942 0.0044280058 0.0025526151 -## edema sex hepato platelet alk.phos -## 0.0024856369 0.0015628256 0.0004688477 0.0003646593 -0.0007293186 -## trig trt -## -0.0020316733 -0.0061471140 +\if{html}{\out{
}}\preformatted{## bili copper sex stage age protime +## 0.1196317067 0.0465652932 0.0359883920 0.0233434956 0.0232368840 0.0223260165 +## albumin ascites chol ast trt edema +## 0.0211517044 0.0145175907 0.0138658597 0.0109819326 0.0073382729 0.0070133157 +## hepato spiders alk.phos platelet trig +## 0.0060972904 0.0057602440 0.0030635500 0.0009602817 0.0009438331 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{orsf_vi_permute(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## age bili copper albumin chol -## 1.109606e-02 1.083559e-02 7.032715e-03 5.157324e-03 4.636383e-03 -## protime ascites spiders ast platelet -## 4.011252e-03 3.854970e-03 2.396333e-03 1.146072e-03 5.209419e-04 -## alk.phos edema sex hepato trig -## 2.083767e-04 1.959734e-04 5.209419e-05 -4.688477e-04 -1.719108e-03 -## trt -## -3.698687e-03 +\if{html}{\out{
}}\preformatted{## bili copper stage age ascites +## 0.0539069325 0.0225538556 0.0139800024 0.0130956672 0.0124856974 +## protime albumin ast edema chol +## 0.0120074964 0.0118859065 0.0066242266 0.0059325712 0.0050016594 +## spiders hepato sex alk.phos platelet +## 0.0038100501 0.0037567798 0.0021379186 0.0016186567 0.0004227819 +## trig trt +## 0.0001305134 -0.0004753489 }\if{html}{\out{
}} } @@ -229,14 +249,14 @@ fit an ORSF and compute vi at the same time orsf_vi_permute(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili age copper stage ascites -## 0.0114086268 0.0094811419 0.0055219837 0.0043238175 0.0032298395 -## albumin hepato protime ast edema -## 0.0031256512 0.0030214628 0.0029172744 0.0021358616 0.0019051588 -## spiders chol alk.phos platelet trt -## 0.0017712023 0.0013023547 0.0008335070 -0.0009376954 -0.0016149198 -## sex trig -## -0.0020837675 -0.0022921442 +\if{html}{\out{
}}\preformatted{## bili copper age stage protime +## 0.0535951482 0.0213747603 0.0130213093 0.0125902848 0.0125355222 +## albumin ascites edema chol ast +## 0.0117643836 0.0110165950 0.0066711126 0.0053913018 0.0053687844 +## spiders hepato sex trig alk.phos +## 0.0050364087 0.0033189806 0.0023822496 0.0021329131 0.0013342218 +## platelet trt +## 0.0004832179 -0.0008167108 }\if{html}{\out{
}} You can still get negation VI from this fit, but it needs to be computed @@ -244,14 +264,12 @@ You can still get negation VI from this fit, but it needs to be computed \if{html}{\out{
}}\preformatted{orsf_vi_negate(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper age protime albumin -## 0.0773598666 0.0272452594 0.0258387164 0.0115649094 0.0084392582 -## sex chol ast ascites stage -## 0.0081787872 0.0074494686 0.0060429256 0.0058866431 0.0043238175 -## hepato edema spiders platelet trig -## 0.0040112523 0.0027684339 0.0026047093 0.0005730360 0.0002083767 -## trt alk.phos -## -0.0003125651 -0.0016149198 +\if{html}{\out{
}}\preformatted{## bili copper sex protime stage age +## 0.121239249 0.045054227 0.036316795 0.022854700 0.021762492 0.021568727 +## albumin ascites chol ast edema trt +## 0.020454217 0.013668746 0.012727654 0.010759856 0.008141249 0.007707799 +## spiders hepato alk.phos trig platelet +## 0.006221536 0.004144837 0.003004906 0.002690560 0.001059348 }\if{html}{\out{
}} } } diff --git a/man/predict.orsf_fit.Rd b/man/predict.orsf_fit.Rd index 460bb69e..48d1df5c 100644 --- a/man/predict.orsf_fit.Rd +++ b/man/predict.orsf_fit.Rd @@ -11,6 +11,9 @@ pred_type = "risk", na_action = "fail", boundary_checks = TRUE, + n_thread = 1, + verbose_progress = FALSE, + pred_aggregate = TRUE, ... ) } @@ -104,11 +107,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.48792661 0.75620281 0.90618133 -## [2,] 0.04293829 0.09112952 0.18602887 -## [3,] 0.12147573 0.27784498 0.41600114 -## [4,] 0.01136075 0.03401092 0.08236831 -## [5,] 0.01294947 0.02070625 0.05645823 +## [1,] 0.46174851 0.75254793 0.90128265 +## [2,] 0.03204560 0.08681431 0.16689612 +## [3,] 0.13642231 0.29728863 0.42643421 +## [4,] 0.01404228 0.03350287 0.08282731 +## [5,] 0.01077615 0.02176992 0.05215987 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted survival, i.e., 1 - risk @@ -119,11 +122,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.5120734 0.2437972 0.09381867 -## [2,] 0.9570617 0.9088705 0.81397113 -## [3,] 0.8785243 0.7221550 0.58399886 -## [4,] 0.9886393 0.9659891 0.91763169 -## [5,] 0.9870505 0.9792937 0.94354177 +## [1,] 0.5382515 0.2474521 0.09871735 +## [2,] 0.9679544 0.9131857 0.83310388 +## [3,] 0.8635777 0.7027114 0.57356579 +## [4,] 0.9859577 0.9664971 0.91717269 +## [5,] 0.9892239 0.9782301 0.94784013 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted cumulative hazard function @@ -135,11 +138,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.68107429 1.28607479 1.70338193 -## [2,] 0.04519460 0.10911618 0.24871482 -## [3,] 0.14686474 0.41252079 0.69005048 -## [4,] 0.01149952 0.03951923 0.10628942 -## [5,] 0.01338978 0.02214232 0.06644605 +## [1,] 0.66201229 1.35917600 1.73892364 +## [2,] 0.03445752 0.10437144 0.23559445 +## [3,] 0.17664262 0.46696216 0.75747298 +## [4,] 0.01477324 0.03801288 0.10471208 +## [5,] 0.01080948 0.02316358 0.06361812 }\if{html}{\out{
}} Predict mortality, defined as the number of events in the forest’s @@ -152,12 +155,12 @@ prediction horizon pred_type = 'mort') }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## [,1] -## [1,] 68.394152 -## [2,] 12.299344 -## [3,] 28.208251 -## [4,] 6.475339 -## [5,] 4.247305 +\if{html}{\out{
}}\preformatted{## [,1] +## [1,] 81.27696 +## [2,] 26.00786 +## [3,] 43.95615 +## [4,] 17.38999 +## [5,] 11.39417 }\if{html}{\out{
}} } diff --git a/src/Tree.cpp b/src/Tree.cpp index 0506e85d..51449bc8 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -710,186 +710,189 @@ Rcout << std::endl; } - sample_cols(); - x_node = x_inbag(rows_node, cols_node); + if(!cols_node.is_empty()){ - if(verbosity > 3) { - print_uvec(cols_node, "columns sampled (showing up to 5)", 5); - } + x_node = x_inbag(rows_node, cols_node); - // beta holds estimates (first item) and variance (second) - // for the regression coefficients that created lincomb. - // the variances are optional (only used for VI_ANOVA) - mat beta; + if(verbosity > 3) { + print_uvec(cols_node, "columns sampled (showing up to 5)", 5); + } - lincomb.zeros(x_node.n_rows); + // beta holds estimates (first item) and variance (second) + // for the regression coefficients that created lincomb. + // the variances are optional (only used for VI_ANOVA) + mat beta; - switch (lincomb_type) { + lincomb.zeros(x_node.n_rows); - case LC_NEWTON_RAPHSON: { + switch (lincomb_type) { - beta = coxph_fit(x_node, y_node, w_node, - lincomb_scale, lincomb_ties_method, - lincomb_eps, lincomb_iter_max); + case LC_NEWTON_RAPHSON: { - break; + beta = coxph_fit(x_node, y_node, w_node, + lincomb_scale, lincomb_ties_method, + lincomb_eps, lincomb_iter_max); - } + break; + + } + + case LC_RANDOM_COEFS: { - case LC_RANDOM_COEFS: { + beta.set_size(x_node.n_cols, 1); - beta.set_size(x_node.n_cols, 1); + std::uniform_real_distribution unif_coef(0.0, 1.0); - std::uniform_real_distribution unif_coef(0.0, 1.0); + for(uword i = 0; i < x_node.n_cols; ++i){ + beta.at(i, 0) = unif_coef(random_number_generator); + } + + break; - for(uword i = 0; i < x_node.n_cols; ++i){ - beta.at(i, 0) = unif_coef(random_number_generator); } - break; + case LC_GLMNET: { - } + NumericMatrix xx = wrap(x_node); + NumericMatrix yy = wrap(y_node); + NumericVector ww = wrap(w_node); - case LC_GLMNET: { + // initialize function from tree object + // (Functions can't be stored in C++ classes, but RObjects can) + Function f_beta = as(lincomb_R_function); - NumericMatrix xx = wrap(x_node); - NumericMatrix yy = wrap(y_node); - NumericVector ww = wrap(w_node); + NumericMatrix beta_R = f_beta(xx, yy, ww, + lincomb_alpha, + lincomb_df_target); - // initialize function from tree object - // (Functions can't be stored in C++ classes, but RObjects can) - Function f_beta = as(lincomb_R_function); + beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); - NumericMatrix beta_R = f_beta(xx, yy, ww, - lincomb_alpha, - lincomb_df_target); + break; - beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); + } - break; + case LC_R_FUNCTION: { - } + NumericMatrix xx = wrap(x_node); + NumericMatrix yy = wrap(y_node); + NumericVector ww = wrap(w_node); - case LC_R_FUNCTION: { + // initialize function from tree object + // (Functions can't be stored in C++ classes, but RObjects can) + Function f_beta = as(lincomb_R_function); - NumericMatrix xx = wrap(x_node); - NumericMatrix yy = wrap(y_node); - NumericVector ww = wrap(w_node); + NumericMatrix beta_R = f_beta(xx, yy, ww); - // initialize function from tree object - // (Functions can't be stored in C++ classes, but RObjects can) - Function f_beta = as(lincomb_R_function); + beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); - NumericMatrix beta_R = f_beta(xx, yy, ww); + break; - beta = mat(beta_R.begin(), beta_R.nrow(), beta_R.ncol(), false); + } - break; + } // end switch lincomb_type - } + vec beta_est = beta.unsafe_col(0); - } // end switch lincomb_type + if(verbosity > 3) { + print_vec(beta_est, "linear combo weights (showing up to 5)", 5); + } - vec beta_est = beta.unsafe_col(0); - if(verbosity > 3) { - print_vec(beta_est, "linear combo weights (showing up to 5)", 5); - } + lincomb = x_node * beta_est; + // sorted in ascending order + lincomb_sort = sort_index(lincomb); - lincomb = x_node * beta_est; + // find all valid cutpoints for lincomb + cuts_all = find_cutpoints(); - // sorted in ascending order - lincomb_sort = sort_index(lincomb); + if(verbosity > 3 && cuts_all.is_empty()){ - // find all valid cutpoints for lincomb - cuts_all = find_cutpoints(); + Rcout << " -- no cutpoints identified"; + Rcout << std::endl; - if(verbosity > 3 && cuts_all.is_empty()){ + } - Rcout << " -- no cutpoints identified"; - Rcout << std::endl; + // empty cuts_all => no valid cutpoints => make leaf or retry + if(!cuts_all.is_empty()){ - } + double cut_point = split_node(cuts_all); - // empty cuts_all => no valid cutpoints => make leaf or retry - if(!cuts_all.is_empty()){ + if(cut_point < R_PosInf){ - double cut_point = split_node(cuts_all); + if(vi_type == VI_ANOVA && lincomb_type == LC_NEWTON_RAPHSON){ - if(cut_point < R_PosInf){ + // only do ANOVA variable importance when + // 1. a split of the node is guaranteed + // 2. the method used for lincombs allows it - if(vi_type == VI_ANOVA && lincomb_type == LC_NEWTON_RAPHSON){ + if(verbosity > 3){ + Rcout << " -- p-values:" << std::endl; + } - // only do ANOVA variable importance when - // 1. a split of the node is guaranteed - // 2. the method used for lincombs allows it + vec beta_var = beta.unsafe_col(1); - if(verbosity > 3){ - Rcout << " -- p-values:" << std::endl; - } + double pvalue; - vec beta_var = beta.unsafe_col(1); + for(uword i = 0; i < beta_est.size(); ++i){ - double pvalue; + (*vi_denom)[cols_node[i]]++; - for(uword i = 0; i < beta_est.size(); ++i){ + if(beta_est[i] != 0){ - (*vi_denom)[cols_node[i]]++; + pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); - if(beta_est[i] != 0){ + if(verbosity > 3){ - pvalue = R::pchisq(pow(beta_est[i],2)/beta_var[i], 1, false, false); + Rcout << " --- column " << cols_node[i] << ": "; + Rcout << pvalue; + if(pvalue < 0.05) Rcout << "*"; + if(pvalue < 0.01) Rcout << "*"; + if(pvalue < 0.001) Rcout << "*"; + if(pvalue < vi_max_pvalue) Rcout << " [+1 to VI numerator]"; + Rcout << std::endl; - if(verbosity > 3){ + } - Rcout << " --- column " << cols_node[i] << ": "; - Rcout << pvalue; - if(pvalue < 0.05) Rcout << "*"; - if(pvalue < 0.01) Rcout << "*"; - if(pvalue < 0.001) Rcout << "*"; - if(pvalue < vi_max_pvalue) Rcout << " [+1 to VI numerator]"; - Rcout << std::endl; + if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } } - if(pvalue < vi_max_pvalue){ (*vi_numer)[cols_node[i]]++; } - } + if(verbosity > 3){ Rcout << std::endl; } + } - if(verbosity > 3){ Rcout << std::endl; } + // make new nodes if a valid cutpoint was found + node_left = n_nodes + 1; + n_nodes += 2; + // update tree parameters + cutpoint[*node] = cut_point; + coef_values[*node] = beta_est; + coef_indices[*node] = cols_node; + + child_left[*node] = node_left; + // re-assign observations in the current node + // (note that g_node is 0 if left, 1 if right) + node_assignments.elem(rows_node) = node_left + g_node; + + if(verbosity > 2){ + Rcout << "-- node " << *node << " was split into "; + Rcout << "node " << node_left << " (left) and "; + Rcout << node_left+1 << " (right)"; + Rcout << std::endl; + Rcout << std::endl; + } - } + nodes_queued.push_back(node_left); + nodes_queued.push_back(node_left + 1); + break; - // make new nodes if a valid cutpoint was found - node_left = n_nodes + 1; - n_nodes += 2; - // update tree parameters - cutpoint[*node] = cut_point; - coef_values[*node] = beta_est; - coef_indices[*node] = cols_node; - - child_left[*node] = node_left; - // re-assign observations in the current node - // (note that g_node is 0 if left, 1 if right) - node_assignments.elem(rows_node) = node_left + g_node; - - if(verbosity > 2){ - Rcout << "-- node " << *node << " was split into "; - Rcout << "node " << node_left << " (left) and "; - Rcout << node_left+1 << " (right)"; - Rcout << std::endl; - Rcout << std::endl; } - nodes_queued.push_back(node_left); - nodes_queued.push_back(node_left + 1); - break; - } } diff --git a/src/utility.cpp b/src/utility.cpp index 301b34d3..13ebec6b 100644 --- a/src/utility.cpp +++ b/src/utility.cpp @@ -5,7 +5,7 @@ #----------------------------------------------------------------------------*/ #include -#include "Utility.h" +#include "utility.h" #include "globals.h" using namespace arma; diff --git a/tests/testthat/test-orsf_vi.R b/tests/testthat/test-orsf_vi.R index 4b13db53..f1fc4148 100644 --- a/tests/testthat/test-orsf_vi.R +++ b/tests/testthat/test-orsf_vi.R @@ -92,33 +92,35 @@ pbc_vi$junk_cat <- factor( sample(letters[1:5], size = nrow(pbc_orsf), replace = TRUE) ) -set.seed(32987) +tree_seeds <- 1:500 + fit <- orsf(pbc_vi, formula = Surv(time, status) ~ age + sex + bili + junk + junk_cat, importance = "negate", group_factors = FALSE, - oobag_eval_every = 100) + oobag_eval_every = 100, + tree_seeds = tree_seeds) -set.seed(32987) fit_anova <- orsf(pbc_vi, formula = Surv(time, status) ~ age + sex + bili + junk + junk_cat, importance = "anova", group_factors = FALSE, - oobag_eval_every = 100) + oobag_eval_every = 100, + tree_seeds = tree_seeds) -set.seed(32987) fit_permute <- orsf(pbc_vi, formula = Surv(time, status) ~ age + sex + bili + junk + junk_cat, importance = "permute", group_factors = FALSE, - oobag_eval_every = 100) + oobag_eval_every = 100, + tree_seeds = tree_seeds) -set.seed(32987) fit_no_vi <- orsf(pbc_vi, formula = Surv(time, status) ~ age + sex + bili + junk + junk_cat, importance = "none", group_factors = FALSE, - oobag_eval_every = 100) + oobag_eval_every = 100, + tree_seeds = tree_seeds) test_that( @@ -150,9 +152,7 @@ test_that( ) # permutation results identical across api funs using same seed - set.seed(329) vi_permute_1 <- orsf_vi_permute(fit_no_vi) - set.seed(329) vi_permute_2 <- orsf_vi(fit_no_vi, importance = 'permute') expect_equal(vi_permute_2, vi_permute_1) diff --git a/vignettes/oobag.Rmd b/vignettes/oobag.Rmd index 95a542b9..33e67379 100644 --- a/vignettes/oobag.Rmd +++ b/vignettes/oobag.Rmd @@ -18,7 +18,7 @@ knitr::opts_chunk$set( ```{r setup} -# library(aorsf) +library(aorsf) library(survival) library(SurvMetrics) @@ -174,7 +174,7 @@ plot( User-supplied functions must: -1. have exactly two arguments named `y_mat` and `s_vec`. +1. have exactly three arguments named `y_mat`, `w_vec`, and `s_vec`. 1. return a numeric output of length 1 If either of these conditions is not true, an error will occur. A simple test to make sure your user-supplied function will work with the aorsf package is below: @@ -193,9 +193,11 @@ y_mat <- cbind(time = test_time, status = test_status) s_vec <- seq(0.9, 0.1, length.out = 100) # see 1 in the checklist above -names(formals(oobag_fun_tdep_cstat)) == c("y_mat", "s_vec") +names(formals(oobag_fun_tdep_cstat)) == c("y_mat", "w_vec", "s_vec") -test_output <- oobag_fun_tdep_cstat(y_mat = y_mat, s_vec = s_vec) +test_output <- oobag_fun_tdep_cstat(y_mat = y_mat, + w_vec = w_vec, + s_vec = s_vec) # test output should be numeric is.numeric(test_output) @@ -206,15 +208,27 @@ length(test_output) == 1 ## User-supplied functions for negation importance. -Negation importance is based on the out-of-bag error, so of course you may be curious about what negation importance would be if it were computed using different statistics. The workflow for doing this is exactly the same as the example above, except we have to specify `importance = 'negate'` when we fit our model. Also, to speed up computations, I am not going to monitor out-of-bag error here. +Negation importance is based on the out-of-bag error, so of course you may be curious about what negation importance would be if it were computed using different statistics. The workflow for doing this is exactly the same as the example above, except for two things: + +1. We have to specify `importance = 'negate'` when we fit our model. + +2. We want to use a modified version of the C-stat, specifically 1 - the C-stat, because of how `aorsf` computes variable importance. + +```{r} +oobag_fun_tdep_cstat_inverse <- function(y_mat, w_vec, s_vec){ + 1 - oobag_fun_tdep_cstat(y_mat, w_vec, s_vec) +} +``` + +Also, to speed up computations, I am not going to monitor out-of-bag error here. ```{r} fit_tdep_cstat <- orsf(data = pbc_orsf, formula = Surv(time, status) ~ . - id, - n_tree = 50, + n_tree = 100, oobag_pred_horizon = 2000, - oobag_fun = oobag_fun_tdep_cstat, + oobag_fun = oobag_fun_tdep_cstat_inverse, importance = 'negate') fit_tdep_cstat$importance From 0696ee1ecd022ec2ee3f6300a4e5e25ab6e363ea Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 21:55:51 -0400 Subject: [PATCH 095/103] a day of chasing the RNG bug --- R/orsf.R | 9 +- man/orsf_control_custom.Rd | 12 +-- man/orsf_ice_oob.Rd | 20 ++--- man/orsf_pd_oob.Rd | 34 +++---- man/orsf_vi.Rd | 88 +++++++++---------- man/predict.orsf_fit.Rd | 40 ++++----- scratch.R | 4 +- src/Forest.cpp | 3 +- src/Makevars | 1 - src/Makevars.win | 1 - src/Tree.cpp | 56 +++++++++--- src/Tree.h | 3 +- src/TreeSurvival.cpp | 6 +- src/globals.h | 2 - src/orsf_oop.cpp | 9 +- .../testthat/orsf_output_1.txt | 0 tests/testthat/orsf_output_2.txt | 0 tests/testthat/test-oobag.R | 28 ++++-- 18 files changed, 177 insertions(+), 139 deletions(-) rename orsf-output.txt => tests/testthat/orsf_output_1.txt (100%) create mode 100644 tests/testthat/orsf_output_2.txt diff --git a/R/orsf.R b/R/orsf.R index 5229900a..d3cd273f 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -725,10 +725,13 @@ orsf <- function(data, y_sort <- y[sorted, , drop = FALSE] w_sort <- weights[sorted] - if(length(tree_seeds) == 1) set.seed(tree_seeds) + if(length(tree_seeds) == 1 && n_tree > 1){ + set.seed(tree_seeds) + tree_seeds <- sample(x = n_tree*10, size = n_tree, replace = FALSE) + } else if(is.null(tree_seeds)){ + tree_seeds <- sample(x = n_tree*10, size = n_tree, replace = FALSE) + } - if(is.null(tree_seeds) || length(tree_seeds) == 1) - tree_seeds <- sample(x = n_tree*2, size = n_tree, replace = FALSE) vi_max_pvalue = 0.01 tree_type_R = 3 diff --git a/man/orsf_control_custom.Rd b/man/orsf_control_custom.Rd index 3d819617..b90ceff9 100644 --- a/man/orsf_control_custom.Rd +++ b/man/orsf_control_custom.Rd @@ -70,7 +70,7 @@ fit_rando ## Average leaves per tree: 20 ## Min observations in leaf: 5 ## Min events in leaf: 1 -## OOB stat value: 0.83 +## OOB stat value: 0.84 ## OOB stat type: Harrell's C-statistic ## Variable importance: anova ## @@ -135,15 +135,15 @@ The PCA ORSF does quite well! (higher IPA is better) ## ## model times Brier lower upper IPA ## 1: Null model 1788 20.479 18.090 22.868 0.000 -## 2: rando 1788 11.674 9.605 13.743 42.995 -## 3: pca 1788 12.741 10.813 14.668 37.787 +## 2: rando 1788 11.600 9.529 13.671 43.355 +## 3: pca 1788 12.717 10.759 14.675 37.903 ## ## Results of model comparisons: ## ## times model reference delta.Brier lower upper p -## 1: 1788 rando Null model -8.805 -10.992 -6.618 2.971574e-15 -## 2: 1788 pca Null model -7.738 -9.445 -6.032 6.124683e-19 -## 3: 1788 pca rando 1.067 0.209 1.924 1.477749e-02 +## 1: 1788 rando Null model -8.879 -11.046 -6.712 9.753163e-16 +## 2: 1788 pca Null model -7.762 -9.517 -6.008 4.257842e-18 +## 3: 1788 pca rando 1.116 0.300 1.933 7.334072e-03 ## ## NOTE: Values are multiplied by 100 and given in \%. diff --git a/man/orsf_ice_oob.Rd b/man/orsf_ice_oob.Rd index 14526b1a..67799736 100644 --- a/man/orsf_ice_oob.Rd +++ b/man/orsf_ice_oob.Rd @@ -150,17 +150,17 @@ ice_oob }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## id_variable id_row pred_horizon bili pred -## 1: 1 1 1788 1 0.9230235 -## 2: 1 2 1788 1 0.1041896 -## 3: 1 3 1788 1 0.7145325 -## 4: 1 4 1788 1 0.4058691 -## 5: 1 5 1788 1 0.1341705 +## 1: 1 1 1788 1 0.9295584 +## 2: 1 2 1788 1 0.1412476 +## 3: 1 3 1788 1 0.7047846 +## 4: 1 4 1788 1 0.3673939 +## 5: 1 5 1788 1 0.1206201 ## --- -## 6896: 25 272 1788 10 0.4207172 -## 6897: 25 273 1788 10 0.5248116 -## 6898: 25 274 1788 10 0.5008757 -## 6899: 25 275 1788 10 0.3186278 -## 6900: 25 276 1788 10 0.5600743 +## 6896: 25 272 1788 10 0.3909254 +## 6897: 25 273 1788 10 0.4854526 +## 6898: 25 274 1788 10 0.4417335 +## 6899: 25 275 1788 10 0.3639220 +## 6900: 25 276 1788 10 0.5409864 }\if{html}{\out{
}} Much more detailed examples are given in the diff --git a/man/orsf_pd_oob.Rd b/man/orsf_pd_oob.Rd index c99e442c..80a53e05 100644 --- a/man/orsf_pd_oob.Rd +++ b/man/orsf_pd_oob.Rd @@ -158,12 +158,12 @@ You can compute partial dependence and ICE three ways with \code{aorsf}: pd_train }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2086895 0.01169427 0.08973182 0.7999000 -## 2: 1826.25 2 0.2474184 0.02852400 0.13076254 0.8253677 -## 3: 1826.25 3 0.2939266 0.05271715 0.18702944 0.8525564 -## 4: 1826.25 4 0.3463061 0.08608594 0.24530440 0.8725491 -## 5: 1826.25 5 0.3943704 0.13434823 0.30802728 0.8767528 +\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr +## 1: 1826.25 1 0.2167954 0.01432475 0.0946650 0.8243506 +## 2: 1826.25 2 0.2520765 0.03084190 0.1333465 0.8442959 +## 3: 1826.25 3 0.2964487 0.05324065 0.1937964 0.8578131 +## 4: 1826.25 4 0.3518250 0.09798050 0.2751326 0.8699063 +## 5: 1826.25 5 0.3936739 0.14573200 0.2984227 0.8781099 }\if{html}{\out{
}} \item using out-of-bag predictions for the training data @@ -172,12 +172,12 @@ pd_train pd_train }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2088996 0.01211920 0.09657406 0.8048779 -## 2: 1826.25 2 0.2479219 0.02588521 0.13533208 0.8255519 -## 3: 1826.25 3 0.2946953 0.05350260 0.20172248 0.8381337 -## 4: 1826.25 4 0.3482686 0.08630839 0.25600347 0.8616735 -## 5: 1826.25 5 0.3953571 0.13070114 0.31831296 0.8693703 +\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr +## 1: 1826.25 1 0.2161745 0.01183390 0.1001640 0.8304537 +## 2: 1826.25 2 0.2521996 0.02447359 0.1419482 0.8484741 +## 3: 1826.25 3 0.2961802 0.04854875 0.1992512 0.8640601 +## 4: 1826.25 4 0.3532215 0.10111235 0.2666702 0.8642393 +## 5: 1826.25 5 0.3940203 0.14768055 0.3270825 0.8737186 }\if{html}{\out{
}} \item using predictions for a new set of data @@ -189,11 +189,11 @@ pd_test }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2539163 0.01528999 0.1920986 0.8124487 -## 2: 1826.25 2 0.2910914 0.03461664 0.2412004 0.8334401 -## 3: 1826.25 3 0.3367071 0.06495564 0.3038693 0.8469746 -## 4: 1826.25 4 0.3888308 0.10888227 0.3675433 0.8562982 -## 5: 1826.25 5 0.4357696 0.15524636 0.4213456 0.8628220 +## 1: 1826.25 1 0.2643571 0.01758300 0.2098936 0.8410357 +## 2: 1826.25 2 0.2990417 0.04063388 0.2516202 0.8547441 +## 3: 1826.25 3 0.3432271 0.06843859 0.3056799 0.8664949 +## 4: 1826.25 4 0.3967879 0.11801725 0.3593064 0.8721247 +## 5: 1826.25 5 0.4388518 0.16038177 0.4094224 0.8800138 }\if{html}{\out{
}} \item in-bag partial dependence indicates relationships that the model has learned during training. This is helpful if your goal is to interpret diff --git a/man/orsf_vi.Rd b/man/orsf_vi.Rd index 4e18747f..9dfc2810 100644 --- a/man/orsf_vi.Rd +++ b/man/orsf_vi.Rd @@ -152,11 +152,11 @@ the ‘raw’ variable importance values can be accessed from the fit object }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## ascites_1 edema_1 bili copper albumin age -## 0.4391711 0.4159605 0.2995144 0.2165056 0.2142857 0.1982379 -## protime edema_0.5 spiders_1 chol stage sex_f -## 0.1877984 0.1877432 0.1743852 0.1735495 0.1597052 0.1553260 -## ast hepato_1 trig alk.phos platelet trt_placebo -## 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 0.0964256 +## 0.44989185 0.43904209 0.29908016 0.22471022 0.20573664 0.19373368 +## edema_0.5 protime chol stage spiders_1 ast +## 0.19096711 0.17582704 0.17527675 0.17057992 0.16721527 0.16061635 +## sex_f hepato_1 trig alk.phos platelet trt_placebo +## 0.14513788 0.14241390 0.12698834 0.12228332 0.10395510 0.09001406 }\if{html}{\out{
}} these are ‘raw’ because values for factors have not been aggregated into @@ -175,24 +175,24 @@ To get aggregated values across all levels of each factor, \if{html}{\out{
}}\preformatted{fit$importance }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime spiders -## 0.4391711 0.2995144 0.2801168 0.2165056 0.2142857 0.1982379 0.1877984 0.1743852 -## chol stage sex ast hepato trig alk.phos platelet -## 0.1735495 0.1597052 0.1553260 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 -## trt -## 0.0964256 +\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime +## 0.44989185 0.29908016 0.29137841 0.22471022 0.20573664 0.19373368 0.17582704 +## chol stage spiders ast sex hepato trig +## 0.17527675 0.17057992 0.16721527 0.16061635 0.14513788 0.14241390 0.12698834 +## alk.phos platelet trt +## 0.12228332 0.10395510 0.09001406 }\if{html}{\out{
}} \item use \code{orsf_vi()} with group_factors set to \code{TRUE} (the default) \if{html}{\out{
}}\preformatted{orsf_vi(fit) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime spiders -## 0.4391711 0.2995144 0.2801168 0.2165056 0.2142857 0.1982379 0.1877984 0.1743852 -## chol stage sex ast hepato trig alk.phos platelet -## 0.1735495 0.1597052 0.1553260 0.1546716 0.1460259 0.1235324 0.1234032 0.1047957 -## trt -## 0.0964256 +\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime +## 0.44989185 0.29908016 0.29137841 0.22471022 0.20573664 0.19373368 0.17582704 +## chol stage spiders ast sex hepato trig +## 0.17527675 0.17057992 0.16721527 0.16061635 0.14513788 0.14241390 0.12698834 +## alk.phos platelet trt +## 0.12228332 0.10395510 0.09001406 }\if{html}{\out{
}} } @@ -215,25 +215,25 @@ You can fit an ORSF without VI, then add VI later orsf_vi_negate(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper sex stage age protime -## 0.1196317067 0.0465652932 0.0359883920 0.0233434956 0.0232368840 0.0223260165 -## albumin ascites chol ast trt edema -## 0.0211517044 0.0145175907 0.0138658597 0.0109819326 0.0073382729 0.0070133157 -## hepato spiders alk.phos platelet trig -## 0.0060972904 0.0057602440 0.0030635500 0.0009602817 0.0009438331 +\if{html}{\out{
}}\preformatted{## bili copper sex stage protime age +## 0.117730704 0.046729117 0.038092882 0.026541912 0.024044523 0.022579987 +## albumin ascites chol ast hepato edema +## 0.020445566 0.015747970 0.013665771 0.011546707 0.007505877 0.007380968 +## trt spiders alk.phos trig platelet +## 0.006090162 0.005384646 0.003535311 0.003363440 0.001137152 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{orsf_vi_permute(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper stage age ascites -## 0.0539069325 0.0225538556 0.0139800024 0.0130956672 0.0124856974 -## protime albumin ast edema chol -## 0.0120074964 0.0118859065 0.0066242266 0.0059325712 0.0050016594 -## spiders hepato sex alk.phos platelet -## 0.0038100501 0.0037567798 0.0021379186 0.0016186567 0.0004227819 -## trig trt -## 0.0001305134 -0.0004753489 +\if{html}{\out{
}}\preformatted{## bili copper protime age albumin +## 0.0548467795 0.0223917526 0.0145052464 0.0143080180 0.0129163843 +## ascites stage chol hepato ast +## 0.0126002596 0.0123809698 0.0067530051 0.0063142977 0.0061418741 +## edema sex spiders trig alk.phos +## 0.0056802985 0.0036623429 0.0036022538 0.0018681065 0.0016083830 +## platelet trt +## 0.0008698127 -0.0018486429 }\if{html}{\out{
}} } @@ -249,14 +249,12 @@ fit an ORSF and compute vi at the same time orsf_vi_permute(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper age stage protime -## 0.0535951482 0.0213747603 0.0130213093 0.0125902848 0.0125355222 -## albumin ascites edema chol ast -## 0.0117643836 0.0110165950 0.0066711126 0.0053913018 0.0053687844 -## spiders hepato sex trig alk.phos -## 0.0050364087 0.0033189806 0.0023822496 0.0021329131 0.0013342218 -## platelet trt -## 0.0004832179 -0.0008167108 +\if{html}{\out{
}}\preformatted{## bili copper protime age ascites stage +## 0.054096726 0.021642597 0.012982646 0.012791086 0.011814535 0.011340900 +## albumin ast edema chol hepato spiders +## 0.011210041 0.007311084 0.005830548 0.005810293 0.004883486 0.004378305 +## sex platelet trig alk.phos trt +## 0.002637627 0.001703578 0.001330196 0.001088634 -0.000672300 }\if{html}{\out{
}} You can still get negation VI from this fit, but it needs to be computed @@ -264,12 +262,12 @@ You can still get negation VI from this fit, but it needs to be computed \if{html}{\out{
}}\preformatted{orsf_vi_negate(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper sex protime stage age -## 0.121239249 0.045054227 0.036316795 0.022854700 0.021762492 0.021568727 -## albumin ascites chol ast edema trt -## 0.020454217 0.013668746 0.012727654 0.010759856 0.008141249 0.007707799 -## spiders hepato alk.phos trig platelet -## 0.006221536 0.004144837 0.003004906 0.002690560 0.001059348 +\if{html}{\out{
}}\preformatted{## bili copper sex age protime stage +## 0.121157363 0.046443795 0.036413372 0.022874454 0.021931876 0.020768489 +## albumin ascites ast chol edema spiders +## 0.018865052 0.014014246 0.013016756 0.011260147 0.007998584 0.006157751 +## trt hepato trig alk.phos platelet +## 0.005142056 0.005064243 0.003148662 0.003033804 0.002143418 }\if{html}{\out{
}} } } diff --git a/man/predict.orsf_fit.Rd b/man/predict.orsf_fit.Rd index 48d1df5c..be8c5509 100644 --- a/man/predict.orsf_fit.Rd +++ b/man/predict.orsf_fit.Rd @@ -107,11 +107,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.46174851 0.75254793 0.90128265 -## [2,] 0.03204560 0.08681431 0.16689612 -## [3,] 0.13642231 0.29728863 0.42643421 -## [4,] 0.01404228 0.03350287 0.08282731 -## [5,] 0.01077615 0.02176992 0.05215987 +## [1,] 0.49828550 0.77570208 0.91812971 +## [2,] 0.04475471 0.09161544 0.17682278 +## [3,] 0.12850458 0.27603519 0.41455070 +## [4,] 0.01279086 0.02980402 0.06458151 +## [5,] 0.01277317 0.02249769 0.04875677 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted survival, i.e., 1 - risk @@ -122,11 +122,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.5382515 0.2474521 0.09871735 -## [2,] 0.9679544 0.9131857 0.83310388 -## [3,] 0.8635777 0.7027114 0.57356579 -## [4,] 0.9859577 0.9664971 0.91717269 -## [5,] 0.9892239 0.9782301 0.94784013 +## [1,] 0.5017145 0.2242979 0.08187029 +## [2,] 0.9552453 0.9083846 0.82317722 +## [3,] 0.8714954 0.7239648 0.58544930 +## [4,] 0.9872091 0.9701960 0.93541849 +## [5,] 0.9872268 0.9775023 0.95124323 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted cumulative hazard function @@ -138,11 +138,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.66201229 1.35917600 1.73892364 -## [2,] 0.03445752 0.10437144 0.23559445 -## [3,] 0.17664262 0.46696216 0.75747298 -## [4,] 0.01477324 0.03801288 0.10471208 -## [5,] 0.01080948 0.02316358 0.06361812 +## [1,] 0.70791303 1.40367742 1.79658865 +## [2,] 0.04954335 0.11460828 0.24130253 +## [3,] 0.16616222 0.43287394 0.71524591 +## [4,] 0.01443848 0.03640393 0.08366798 +## [5,] 0.01435412 0.02680792 0.06203327 }\if{html}{\out{
}} Predict mortality, defined as the number of events in the forest’s @@ -156,11 +156,11 @@ prediction horizon }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] -## [1,] 81.27696 -## [2,] 26.00786 -## [3,] 43.95615 -## [4,] 17.38999 -## [5,] 11.39417 +## [1,] 82.87688 +## [2,] 28.34298 +## [3,] 42.42506 +## [4,] 16.15515 +## [5,] 10.86385 }\if{html}{\out{
}} } diff --git a/scratch.R b/scratch.R index 023c0ba0..5192f778 100644 --- a/scratch.R +++ b/scratch.R @@ -5,9 +5,7 @@ library(survival) tictoc::tic() fit <- orsf(pbc_orsf, formula = time+status ~ . - id, - oobag_pred_type = 'none', - sample_with_replacement = FALSE, - sample_fraction = 2/3) + n_tree = 2) tictoc::toc() all(fit$data == pbc_orsf) diff --git a/src/Forest.cpp b/src/Forest.cpp index c3a32136..0c5a76e6 100644 --- a/src/Forest.cpp +++ b/src/Forest.cpp @@ -335,8 +335,7 @@ void Forest::compute_oobag_vi() { progress = 0; if(n_thread == 1){ - vec* vi_numer_ptr = &vi_numer; - compute_oobag_vi_single_thread(vi_numer_ptr); + compute_oobag_vi_single_thread(&vi_numer); return; } diff --git a/src/Makevars b/src/Makevars index a67362fe..2321181e 100644 --- a/src/Makevars +++ b/src/Makevars @@ -1,4 +1,3 @@ CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) -CXXFLAGS += -O3 -march=native -DNDEBUG PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/Makevars.win b/src/Makevars.win index a67362fe..2321181e 100644 --- a/src/Makevars.win +++ b/src/Makevars.win @@ -1,4 +1,3 @@ CXX_STD = CXX17 PKG_CXXFLAGS = $(SHLIB_OPENMP_CXXFLAGS) -CXXFLAGS += -O3 -march=native -DNDEBUG PKG_LIBS = $(SHLIB_OPENMP_CXXFLAGS) $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) diff --git a/src/Tree.cpp b/src/Tree.cpp index 51449bc8..13027e8f 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -9,6 +9,7 @@ #include "Coxph.h" #include +#include using namespace arma; using namespace Rcpp; @@ -232,7 +233,7 @@ for (i = 0; i < n_cols_total; ++i) { - do { draw = udist_cols(random_number_generator); } while (temp[draw]); + do {draw = udist_cols(random_number_generator); } while (temp[draw]); temp[draw] = true; @@ -492,25 +493,23 @@ } else { // split_max_cuts < cuts_all.size() - cuts_sampled.set_size(split_max_cuts); + cuts_sampled.resize(split_max_cuts); std::uniform_int_distribution udist_cuts(0, cuts_all.size() - 1); - // sample without replacement - for (uword i = 0; i < split_max_cuts; ++i) { + // Set all to not selected + std::vector temp; + temp.resize(cuts_all.size(), false); - uword draw = udist_cuts(random_number_generator); + uword draw; - // Ensure the drawn number is not already in the sample - while (std::find(cuts_sampled.begin(), - cuts_sampled.end(), - cuts_all[draw]) != cuts_sampled.end()) { + for (uword i = 0; i < split_max_cuts; ++i) { - draw = udist_cuts(random_number_generator); + do {draw = udist_cuts(random_number_generator); } while (temp[draw]); - } + temp[draw] = true; - cuts_sampled[i] = cuts_all[draw]; + cuts_sampled[i] = draw; } @@ -519,7 +518,7 @@ } - + // cuts_sampled = sort(cuts_sampled); // initialize grouping for the current node // value of 1 indicates go to right node g_node.ones(lincomb.size()); @@ -999,7 +998,6 @@ pred_leaf.elem(rows_inbag).fill(max_nodes); } - } } @@ -1123,6 +1121,36 @@ } } + void Tree::restore_rows_inbag(arma::uword n_obs) { + + rows_inbag.set_size(n_obs); + uword rows_inbag_counter = 0; + + if(rows_oobag[0] != 0){ + rows_inbag[0] = 0; + rows_inbag_counter = 1; + } + + for(arma::uword i = 1; i < rows_oobag.size(); i++){ + if(rows_oobag[i-1]+1 != rows_oobag[i]){ + for(arma::uword j = rows_oobag[i-1]+1; j < rows_oobag[i]; ++j){ + rows_inbag[rows_inbag_counter] = j; + rows_inbag_counter++; + } + } + } + + if(rows_oobag.back() < n_obs){ + for(arma::uword j = rows_oobag.back()+1; j < n_obs; ++j){ + rows_inbag[rows_inbag_counter] = j; + rows_inbag_counter++; + } + } + + rows_inbag.resize(rows_inbag_counter); + + } + diff --git a/src/Tree.h b/src/Tree.h index da1d0df3..a8465bf8 100644 --- a/src/Tree.h +++ b/src/Tree.h @@ -7,7 +7,6 @@ #ifndef TREE_H_ #define TREE_H_ - #include "Data.h" #include "globals.h" #include "utility.h" @@ -136,6 +135,8 @@ void allocate_oobag_memory(); + void restore_rows_inbag(arma::uword n_obs); + // pointers to variable importance in forest arma::vec* vi_numer; arma::uvec* vi_denom; diff --git a/src/TreeSurvival.cpp b/src/TreeSurvival.cpp index 7d1a6082..b38ebd02 100644 --- a/src/TreeSurvival.cpp +++ b/src/TreeSurvival.cpp @@ -114,7 +114,7 @@ } - if(VERBOSITY > 1){ + if(verbosity > 3){ mat x_print = x_inbag.rows(rows_node); mat y_print = y_inbag.rows(rows_node); @@ -122,8 +122,8 @@ uvec rows_event = find(y_print.col(1) == 1); x_print = x_print.rows(rows_event); - Rcout << "Column " << j << " was sampled but "; - Rcout << "unique values of column " << j << " are "; + Rcout << " --- Column " << j << " was sampled but "; + Rcout << " unique values of column " << j << " are "; Rcout << unique(x_print.col(j)) << std::endl; } diff --git a/src/globals.h b/src/globals.h index bdb99d88..d865270c 100644 --- a/src/globals.h +++ b/src/globals.h @@ -7,8 +7,6 @@ #ifndef GLOBALS_H_ #define GLOBALS_H_ -#include - namespace aorsf { typedef unsigned int uint; diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 7d120e5d..9ab3c768 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -10,6 +10,9 @@ #----------------------------------------------------------------------------*/ #include +#include +#include +#include #include "globals.h" #include "Data.h" @@ -17,9 +20,7 @@ #include "Forest.h" #include "ForestSurvival.h" #include "Coxph.h" - -#include -#include +#include "utility.h" // [[Rcpp::depends(RcppArmadillo)]] @@ -275,7 +276,7 @@ result.push_back(forest->get_predictions(), "pred_new"); - } else { + } else if (grow_mode) { if (oobag) result.push_back(forest->get_predictions(), "pred_oobag"); diff --git a/orsf-output.txt b/tests/testthat/orsf_output_1.txt similarity index 100% rename from orsf-output.txt rename to tests/testthat/orsf_output_1.txt diff --git a/tests/testthat/orsf_output_2.txt b/tests/testthat/orsf_output_2.txt new file mode 100644 index 00000000..e69de29b diff --git a/tests/testthat/test-oobag.R b/tests/testthat/test-oobag.R index a8064aa6..0815f51d 100644 --- a/tests/testthat/test-oobag.R +++ b/tests/testthat/test-oobag.R @@ -1,15 +1,29 @@ - +sink("orsf_output_1.txt") fit_custom_oobag <- orsf(pbc_orsf, formula = Surv(time, status) ~ . - id, - oobag_fun = oobag_c_survival, - n_tree = 10, - tree_seeds = 1:10) - + n_tree = 100, + tree_seeds = 1:100, + verbose_progress = 0) +sink() +sink("orsf_output_2.txt") fit_standard_oobag <- orsf(pbc_orsf, formula = Surv(time, status) ~ . - id, - n_tree = 10, - tree_seeds = 1:10) + n_tree = 100, + tree_seeds = 1:100, + verbose_progress = 0) +sink() + +testthat::expect_equal( + fit_custom_oobag$forest$rows_oobag, + fit_standard_oobag$forest$rows_oobag +) + +testthat::expect_equal( + fit_custom_oobag$forest$cutpoint, + fit_standard_oobag$forest$cutpoint +) + test_that( desc = 'tree seeds show that a custom oobag fun matches the internal one', From f8c1f530414b3066132861e7152d531995d8f7ad Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 22:49:23 -0400 Subject: [PATCH 096/103] getting docs updated --- .Rbuildignore | 1 + R/orsf.R | 15 ++++-- R/orsf_pd.R | 5 ++ R/orsf_predict.R | 30 ++++++++---- R/roxy.R | 5 +- man/orsf.Rd | 15 ++++-- man/orsf_control_custom.Rd | 10 ++-- man/orsf_ice_oob.Rd | 22 +++++---- man/orsf_pd_oob.Rd | 36 +++++++------- man/orsf_vi.Rd | 91 +++++++++++++++++++---------------- man/predict.orsf_fit.Rd | 53 ++++++++++++-------- src/Tree.cpp | 1 - tests/testthat/test-orsf_vi.R | 15 +++--- 13 files changed, 177 insertions(+), 122 deletions(-) diff --git a/.Rbuildignore b/.Rbuildignore index f8d8128c..03781c23 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -16,3 +16,4 @@ ^Rmd/ lastMiKTeXException ^\.zenodo\.json$ +^scratch\.R$ diff --git a/R/orsf.R b/R/orsf.R index d3cd273f..5dc015fe 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -85,16 +85,23 @@ #' of randomly selected predictors, up to `n_retry` times. Default is #' `n_retry = 3`. Set `n_retry = 0` to prevent any retries. #' -#' @param n_thread `r roxy_n_thread_header()` +#' @param n_thread `r roxy_n_thread_header("growing trees, computing predictions, and computing importance.")` #' #' @param mtry (_integer_) Number of predictors randomly included as candidates #' for splitting a node. The default is the smallest integer greater than #' the square root of the number of total predictors, i.e., #' `mtry = ceiling(sqrt(number of predictors))` #' -#' @param sample_with_replacement +#' @param sample_with_replacement (_logical_) If `TRUE` (the default), +#' observations are sampled with replacement when an in-bag sample +#' is created for a decision tree. If `FALSE`, observations are +#' sampled without replacement and each tree will have an in-bag sample +#' containing `sample_fraction`% of the original sample. #' -#' @param sample_fraction +#' @param sample_fraction (_double_) the proportion of observations that +#' each trees' in-bag sample will contain, relative to the number of +#' rows in `data`. Only used if `sample_with_replacement` is `FALSE`. +#' Default value is 0.632. #' #' @param leaf_min_events (_integer_) minimum number of events in a #' leaf node. Default is `leaf_min_events = 1` @@ -186,7 +193,7 @@ #' to the output will be the imputed version of `data`. #' #' @param verbose_progress (_logical_) if `TRUE`, progress messages are -#' printed in the console. +#' printed in the console. If `FALSE` (the default), nothing is printed. #' #' @param ... `r roxy_dots()` #' diff --git a/R/orsf_pd.R b/R/orsf_pd.R index a330e94e..011c77d3 100644 --- a/R/orsf_pd.R +++ b/R/orsf_pd.R @@ -60,6 +60,8 @@ #' percentile in the object's training data. If `FALSE`, these checks are #' skipped. #' +#' @param n_thread `r roxy_n_thread_header("computing predictions")` +#' #' @param ... `r roxy_dots()` #' #' @return a [data.table][data.table::data.table-package] containing @@ -309,6 +311,9 @@ orsf_pred_dependence <- function(object, pred_horizon <- infer_pred_horizon(object, pred_horizon) + # make a visible binding for CRAN + id_variable = NULL + if(is.null(prob_values)) prob_values <- c(0.025, 0.50, 0.975) if(is.null(prob_labels)) prob_labels <- c('lwr', 'medn', 'upr') diff --git a/R/orsf_predict.R b/R/orsf_predict.R index d74e1ff3..6cbae26f 100644 --- a/R/orsf_predict.R +++ b/R/orsf_predict.R @@ -45,6 +45,18 @@ #' observed time in `object`'s training data. If `FALSE`, these checks #' are skipped. #' +#' @param n_thread `r roxy_n_thread_header("computing predictions")` +#' +#' @param pred_aggregate (_logical_) If `TRUE` (the default), predictions +#' will be aggregated over all trees by taking the mean. If `FALSE`, the +#' returned output will contain one row per observation and one column +#' for each tree. If the length of `pred_horizon` is two or more and +#' `pred_aggregate` is `FALSE`, then the result will be a list of such +#' matrices, with the i'th item in the list corresponding to the i'th +#' value of `pred_horizon`. +#' +#' @inheritParams orsf +#' #' @param ... `r roxy_dots()` #' #' @return a `matrix` of predictions. Column `j` of the matrix corresponds @@ -119,15 +131,15 @@ predict.orsf_fit <- function(object, results <- lapply( X = pred_horizon, FUN = function(t){ - predict(object = object, - new_data = new_data, - pred_horizon = t, - pred_type = pred_type, - na_action = na_action, - boundary_checks = boundary_checks, - n_thread = n_thread, - verbose_progress = verbose_progress, - pred_aggregate = pred_aggregate) + predict.orsf_fit(object = object, + new_data = new_data, + pred_horizon = t, + pred_type = pred_type, + na_action = na_action, + boundary_checks = boundary_checks, + n_thread = n_thread, + verbose_progress = verbose_progress, + pred_aggregate = pred_aggregate) } ) diff --git a/R/roxy.R b/R/roxy.R index 202c0840..e9e312a1 100644 --- a/R/roxy.R +++ b/R/roxy.R @@ -16,8 +16,9 @@ roxy_data_allowed <- function(){ # multi-threading --------------------------------------------------------- -roxy_n_thread_header <- function(){ - "(_integer_) number of threads to use. Default is one thread." +roxy_n_thread_header <- function(action){ + paste("(_integer_) number of threads to use while ", + action, ". Default is one thread.", sep = "") } roxy_n_thread_details <- function(){ diff --git a/man/orsf.Rd b/man/orsf.Rd index 2141cdc7..4e01f015 100644 --- a/man/orsf.Rd +++ b/man/orsf.Rd @@ -83,16 +83,23 @@ will try again with a new linear combination based on a different set of randomly selected predictors, up to \code{n_retry} times. Default is \code{n_retry = 3}. Set \code{n_retry = 0} to prevent any retries.} -\item{n_thread}{(\emph{integer}) number of threads to use. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while growing trees, computing predictions, and computing importance.. Default is one thread.} \item{mtry}{(\emph{integer}) Number of predictors randomly included as candidates for splitting a node. The default is the smallest integer greater than the square root of the number of total predictors, i.e., \verb{mtry = ceiling(sqrt(number of predictors))}} -\item{sample_with_replacement}{} +\item{sample_with_replacement}{(\emph{logical}) If \code{TRUE} (the default), +observations are sampled with replacement when an in-bag sample +is created for a decision tree. If \code{FALSE}, observations are +sampled without replacement and each tree will have an in-bag sample +containing \code{sample_fraction}\% of the original sample.} -\item{sample_fraction}{} +\item{sample_fraction}{(\emph{double}) the proportion of observations that +each trees' in-bag sample will contain, relative to the number of +rows in \code{data}. Only used if \code{sample_with_replacement} is \code{FALSE}. +Default value is 0.632.} \item{leaf_min_events}{(\emph{integer}) minimum number of events in a leaf node. Default is \code{leaf_min_events = 1}} @@ -191,7 +198,7 @@ to the output will be the imputed version of \code{data}. }} \item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are -printed in the console.} +printed in the console. If \code{FALSE} (the default), nothing is printed.} \item{...}{Further arguments passed to or from other methods (not currently used).} diff --git a/man/orsf_control_custom.Rd b/man/orsf_control_custom.Rd index b90ceff9..f4888c7a 100644 --- a/man/orsf_control_custom.Rd +++ b/man/orsf_control_custom.Rd @@ -135,15 +135,15 @@ The PCA ORSF does quite well! (higher IPA is better) ## ## model times Brier lower upper IPA ## 1: Null model 1788 20.479 18.090 22.868 0.000 -## 2: rando 1788 11.600 9.529 13.671 43.355 -## 3: pca 1788 12.717 10.759 14.675 37.903 +## 2: rando 1788 11.784 9.689 13.878 42.460 +## 3: pca 1788 12.685 10.694 14.675 38.061 ## ## Results of model comparisons: ## ## times model reference delta.Brier lower upper p -## 1: 1788 rando Null model -8.879 -11.046 -6.712 9.753163e-16 -## 2: 1788 pca Null model -7.762 -9.517 -6.008 4.257842e-18 -## 3: 1788 pca rando 1.116 0.300 1.933 7.334072e-03 +## 1: 1788 rando Null model -8.695 -10.811 -6.580 7.854170e-16 +## 2: 1788 pca Null model -7.794 -9.475 -6.114 9.797721e-20 +## 3: 1788 pca rando 0.901 0.174 1.629 1.519521e-02 ## ## NOTE: Values are multiplied by 100 and given in \%. diff --git a/man/orsf_ice_oob.Rd b/man/orsf_ice_oob.Rd index 67799736..5791b237 100644 --- a/man/orsf_ice_oob.Rd +++ b/man/orsf_ice_oob.Rd @@ -83,6 +83,8 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} + \item{...}{Further arguments passed to or from other methods (not currently used).} \item{new_data}{a \link{data.frame}, \link[tibble:tibble-package]{tibble}, or \link[data.table:data.table]{data.table} to compute predictions in.} @@ -150,17 +152,17 @@ ice_oob }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## id_variable id_row pred_horizon bili pred -## 1: 1 1 1788 1 0.9295584 -## 2: 1 2 1788 1 0.1412476 -## 3: 1 3 1788 1 0.7047846 -## 4: 1 4 1788 1 0.3673939 -## 5: 1 5 1788 1 0.1206201 +## 1: 1 1 1788 1 0.9011797 +## 2: 1 2 1788 1 0.1096207 +## 3: 1 3 1788 1 0.7646444 +## 4: 1 4 1788 1 0.3531060 +## 5: 1 5 1788 1 0.1228441 ## --- -## 6896: 25 272 1788 10 0.3909254 -## 6897: 25 273 1788 10 0.4854526 -## 6898: 25 274 1788 10 0.4417335 -## 6899: 25 275 1788 10 0.3639220 -## 6900: 25 276 1788 10 0.5409864 +## 6896: 25 272 1788 10 0.3089586 +## 6897: 25 273 1788 10 0.4005430 +## 6898: 25 274 1788 10 0.4933945 +## 6899: 25 275 1788 10 0.3134373 +## 6900: 25 276 1788 10 0.5002014 }\if{html}{\out{
}} Much more detailed examples are given in the diff --git a/man/orsf_pd_oob.Rd b/man/orsf_pd_oob.Rd index 80a53e05..80dc0dc0 100644 --- a/man/orsf_pd_oob.Rd +++ b/man/orsf_pd_oob.Rd @@ -101,6 +101,8 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} + \item{...}{Further arguments passed to or from other methods (not currently used).} \item{new_data}{a \link{data.frame}, \link[tibble:tibble-package]{tibble}, or \link[data.table:data.table]{data.table} to compute predictions in.} @@ -158,12 +160,12 @@ You can compute partial dependence and ICE three ways with \code{aorsf}: pd_train }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2167954 0.01432475 0.0946650 0.8243506 -## 2: 1826.25 2 0.2520765 0.03084190 0.1333465 0.8442959 -## 3: 1826.25 3 0.2964487 0.05324065 0.1937964 0.8578131 -## 4: 1826.25 4 0.3518250 0.09798050 0.2751326 0.8699063 -## 5: 1826.25 5 0.3936739 0.14573200 0.2984227 0.8781099 +\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr +## 1: 1826.25 1 0.2151663 0.02028479 0.09634648 0.7997269 +## 2: 1826.25 2 0.2576618 0.03766695 0.15497447 0.8211875 +## 3: 1826.25 3 0.2998484 0.06436773 0.20771324 0.8425637 +## 4: 1826.25 4 0.3390664 0.08427149 0.25401067 0.8589590 +## 5: 1826.25 5 0.3699045 0.10650098 0.28284427 0.8689855 }\if{html}{\out{
}} \item using out-of-bag predictions for the training data @@ -172,12 +174,12 @@ pd_train pd_train }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2161745 0.01183390 0.1001640 0.8304537 -## 2: 1826.25 2 0.2521996 0.02447359 0.1419482 0.8484741 -## 3: 1826.25 3 0.2961802 0.04854875 0.1992512 0.8640601 -## 4: 1826.25 4 0.3532215 0.10111235 0.2666702 0.8642393 -## 5: 1826.25 5 0.3940203 0.14768055 0.3270825 0.8737186 +\if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr +## 1: 1826.25 1 0.2145044 0.01835000 0.09619052 0.7980629 +## 2: 1826.25 2 0.2566241 0.03535358 0.14185734 0.8173143 +## 3: 1826.25 3 0.2984693 0.05900059 0.20515477 0.8334243 +## 4: 1826.25 4 0.3383547 0.07887323 0.24347513 0.8469769 +## 5: 1826.25 5 0.3696260 0.10450534 0.28065473 0.8523756 }\if{html}{\out{
}} \item using predictions for a new set of data @@ -189,11 +191,11 @@ pd_test }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## pred_horizon bili mean lwr medn upr -## 1: 1826.25 1 0.2643571 0.01758300 0.2098936 0.8410357 -## 2: 1826.25 2 0.2990417 0.04063388 0.2516202 0.8547441 -## 3: 1826.25 3 0.3432271 0.06843859 0.3056799 0.8664949 -## 4: 1826.25 4 0.3967879 0.11801725 0.3593064 0.8721247 -## 5: 1826.25 5 0.4388518 0.16038177 0.4094224 0.8800138 +## 1: 1826.25 1 0.2542230 0.02901386 0.1943767 0.8143912 +## 2: 1826.25 2 0.2955726 0.05037316 0.2474559 0.8317684 +## 3: 1826.25 3 0.3388434 0.07453896 0.3010898 0.8488622 +## 4: 1826.25 4 0.3800254 0.10565022 0.3516805 0.8592057 +## 5: 1826.25 5 0.4124587 0.12292465 0.3915066 0.8690074 }\if{html}{\out{
}} \item in-bag partial dependence indicates relationships that the model has learned during training. This is helpful if your goal is to interpret diff --git a/man/orsf_vi.Rd b/man/orsf_vi.Rd index 9dfc2810..bdfc8013 100644 --- a/man/orsf_vi.Rd +++ b/man/orsf_vi.Rd @@ -71,6 +71,11 @@ importance is estimated. For more details, see the out-of-bag \href{https://docs.ropensci.org/aorsf/articles/oobag.html}{vignette}.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} + +\item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are +printed in the console. If \code{FALSE} (the default), nothing is printed.} + \item{...}{Further arguments passed to or from other methods (not currently used).} } \value{ @@ -151,12 +156,12 @@ the ‘raw’ variable importance values can be accessed from the fit object \if{html}{\out{
}}\preformatted{attr(fit, 'importance_values') }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites_1 edema_1 bili copper albumin age -## 0.44989185 0.43904209 0.29908016 0.22471022 0.20573664 0.19373368 -## edema_0.5 protime chol stage spiders_1 ast -## 0.19096711 0.17582704 0.17527675 0.17057992 0.16721527 0.16061635 -## sex_f hepato_1 trig alk.phos platelet trt_placebo -## 0.14513788 0.14241390 0.12698834 0.12228332 0.10395510 0.09001406 +\if{html}{\out{
}}\preformatted{## ascites_1 edema_1 bili albumin copper edema_0.5 +## 0.44146501 0.43190921 0.29391304 0.22145499 0.22120519 0.20110957 +## age protime chol spiders_1 stage sex_f +## 0.19980193 0.19329637 0.17777778 0.17772293 0.16048729 0.15926709 +## hepato_1 ast trig alk.phos platelet trt_placebo +## 0.15816481 0.15734785 0.13200993 0.12433796 0.11844461 0.09404636 }\if{html}{\out{
}} these are ‘raw’ because values for factors have not been aggregated into @@ -175,24 +180,24 @@ To get aggregated values across all levels of each factor, \if{html}{\out{
}}\preformatted{fit$importance }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime -## 0.44989185 0.29908016 0.29137841 0.22471022 0.20573664 0.19373368 0.17582704 -## chol stage spiders ast sex hepato trig -## 0.17527675 0.17057992 0.16721527 0.16061635 0.14513788 0.14241390 0.12698834 +\if{html}{\out{
}}\preformatted{## ascites edema bili albumin copper age protime +## 0.44146501 0.29452847 0.29391304 0.22145499 0.22120519 0.19980193 0.19329637 +## chol spiders stage sex hepato ast trig +## 0.17777778 0.17772293 0.16048729 0.15926709 0.15816481 0.15734785 0.13200993 ## alk.phos platelet trt -## 0.12228332 0.10395510 0.09001406 +## 0.12433796 0.11844461 0.09404636 }\if{html}{\out{
}} \item use \code{orsf_vi()} with group_factors set to \code{TRUE} (the default) \if{html}{\out{
}}\preformatted{orsf_vi(fit) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## ascites bili edema copper albumin age protime -## 0.44989185 0.29908016 0.29137841 0.22471022 0.20573664 0.19373368 0.17582704 -## chol stage spiders ast sex hepato trig -## 0.17527675 0.17057992 0.16721527 0.16061635 0.14513788 0.14241390 0.12698834 +\if{html}{\out{
}}\preformatted{## ascites edema bili albumin copper age protime +## 0.44146501 0.29452847 0.29391304 0.22145499 0.22120519 0.19980193 0.19329637 +## chol spiders stage sex hepato ast trig +## 0.17777778 0.17772293 0.16048729 0.15926709 0.15816481 0.15734785 0.13200993 ## alk.phos platelet trt -## 0.12228332 0.10395510 0.09001406 +## 0.12433796 0.11844461 0.09404636 }\if{html}{\out{
}} } @@ -215,25 +220,27 @@ You can fit an ORSF without VI, then add VI later orsf_vi_negate(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper sex stage protime age -## 0.117730704 0.046729117 0.038092882 0.026541912 0.024044523 0.022579987 -## albumin ascites chol ast hepato edema -## 0.020445566 0.015747970 0.013665771 0.011546707 0.007505877 0.007380968 -## trt spiders alk.phos trig platelet -## 0.006090162 0.005384646 0.003535311 0.003363440 0.001137152 +\if{html}{\out{
}}\preformatted{## bili copper sex protime stage +## 0.1139657923 0.0498712200 0.0355366377 0.0283554322 0.0263792287 +## albumin age ascites chol ast +## 0.0231636378 0.0195791833 0.0175120075 0.0148252414 0.0104918262 +## edema spiders hepato trt trig +## 0.0084871358 0.0070608860 0.0067054788 0.0052040792 0.0030363455 +## alk.phos platelet +## 0.0029918139 -0.0003309069 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{orsf_vi_permute(fit_no_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper protime age albumin -## 0.0548467795 0.0223917526 0.0145052464 0.0143080180 0.0129163843 -## ascites stage chol hepato ast -## 0.0126002596 0.0123809698 0.0067530051 0.0063142977 0.0061418741 -## edema sex spiders trig alk.phos -## 0.0056802985 0.0036623429 0.0036022538 0.0018681065 0.0016083830 +\if{html}{\out{
}}\preformatted{## bili copper albumin protime ascites +## 0.0538801986 0.0235904126 0.0144632299 0.0142037786 0.0123519716 +## stage age edema hepato chol +## 0.0120377993 0.0110782938 0.0055307145 0.0052409958 0.0047839166 +## ast spiders sex trig alk.phos +## 0.0042115620 0.0039660651 0.0028902730 0.0021803920 0.0018880548 ## platelet trt -## 0.0008698127 -0.0018486429 +## 0.0005279898 -0.0024330707 }\if{html}{\out{
}} } @@ -249,12 +256,14 @@ fit an ORSF and compute vi at the same time orsf_vi_permute(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper protime age ascites stage -## 0.054096726 0.021642597 0.012982646 0.012791086 0.011814535 0.011340900 -## albumin ast edema chol hepato spiders -## 0.011210041 0.007311084 0.005830548 0.005810293 0.004883486 0.004378305 -## sex platelet trig alk.phos trt -## 0.002637627 0.001703578 0.001330196 0.001088634 -0.000672300 +\if{html}{\out{
}}\preformatted{## bili copper age albumin ascites +## 0.0513074950 0.0217622790 0.0131467379 0.0121683721 0.0120025410 +## stage protime chol edema ast +## 0.0112281635 0.0108887695 0.0064301068 0.0061316531 0.0055392320 +## spiders hepato sex alk.phos trig +## 0.0046819086 0.0026387295 0.0026066599 0.0017043328 0.0012899918 +## platelet trt +## 0.0007224274 -0.0005790547 }\if{html}{\out{
}} You can still get negation VI from this fit, but it needs to be computed @@ -262,12 +271,12 @@ You can still get negation VI from this fit, but it needs to be computed \if{html}{\out{
}}\preformatted{orsf_vi_negate(fit_permute_vi) }\if{html}{\out{
}} -\if{html}{\out{
}}\preformatted{## bili copper sex age protime stage -## 0.121157363 0.046443795 0.036413372 0.022874454 0.021931876 0.020768489 -## albumin ascites ast chol edema spiders -## 0.018865052 0.014014246 0.013016756 0.011260147 0.007998584 0.006157751 -## trt hepato trig alk.phos platelet -## 0.005142056 0.005064243 0.003148662 0.003033804 0.002143418 +\if{html}{\out{
}}\preformatted{## bili copper sex stage age protime +## 0.1106715167 0.0456031656 0.0306666098 0.0304383573 0.0252136203 0.0224838590 +## albumin ascites chol ast edema trt +## 0.0212630703 0.0168893963 0.0134174671 0.0132075752 0.0099681058 0.0088378768 +## spiders hepato trig alk.phos platelet +## 0.0078776082 0.0062877323 0.0043076141 0.0030432581 0.0005571111 }\if{html}{\out{
}} } } diff --git a/man/predict.orsf_fit.Rd b/man/predict.orsf_fit.Rd index be8c5509..b748aa03 100644 --- a/man/predict.orsf_fit.Rd +++ b/man/predict.orsf_fit.Rd @@ -54,6 +54,19 @@ checked to make sure the requested values are less than the maximum observed time in \code{object}'s training data. If \code{FALSE}, these checks are skipped.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} + +\item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are +printed in the console. If \code{FALSE} (the default), nothing is printed.} + +\item{pred_aggregate}{(\emph{logical}) If \code{TRUE} (the default), predictions +will be aggregated over all trees by taking the mean. If \code{FALSE}, the +returned output will contain one row per observation and one column +for each tree. If the length of \code{pred_horizon} is two or more and +\code{pred_aggregate} is \code{FALSE}, then the result will be a list of such +matrices, with the i'th item in the list corresponding to the i'th +value of \code{pred_horizon}.} + \item{...}{Further arguments passed to or from other methods (not currently used).} } \value{ @@ -107,11 +120,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.49828550 0.77570208 0.91812971 -## [2,] 0.04475471 0.09161544 0.17682278 -## [3,] 0.12850458 0.27603519 0.41455070 -## [4,] 0.01279086 0.02980402 0.06458151 -## [5,] 0.01277317 0.02249769 0.04875677 +## [1,] 0.49679905 0.77309053 0.90830168 +## [2,] 0.03363621 0.08527972 0.17061414 +## [3,] 0.15129784 0.30402666 0.43747212 +## [4,] 0.01152480 0.02950914 0.07068198 +## [5,] 0.01035341 0.01942262 0.05117679 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted survival, i.e., 1 - risk @@ -122,11 +135,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.5017145 0.2242979 0.08187029 -## [2,] 0.9552453 0.9083846 0.82317722 -## [3,] 0.8714954 0.7239648 0.58544930 -## [4,] 0.9872091 0.9701960 0.93541849 -## [5,] 0.9872268 0.9775023 0.95124323 +## [1,] 0.5032009 0.2269095 0.09169832 +## [2,] 0.9663638 0.9147203 0.82938586 +## [3,] 0.8487022 0.6959733 0.56252788 +## [4,] 0.9884752 0.9704909 0.92931802 +## [5,] 0.9896466 0.9805774 0.94882321 }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{# predicted cumulative hazard function @@ -138,11 +151,11 @@ predict(fit, }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] [,2] [,3] -## [1,] 0.70791303 1.40367742 1.79658865 -## [2,] 0.04954335 0.11460828 0.24130253 -## [3,] 0.16616222 0.43287394 0.71524591 -## [4,] 0.01443848 0.03640393 0.08366798 -## [5,] 0.01435412 0.02680792 0.06203327 +## [1,] 0.74442414 1.39538511 1.78344589 +## [2,] 0.03473938 0.10418984 0.24047328 +## [3,] 0.19732086 0.47015754 0.73629459 +## [4,] 0.01169147 0.03223257 0.09564168 +## [5,] 0.01072007 0.02240040 0.06464319 }\if{html}{\out{
}} Predict mortality, defined as the number of events in the forest’s @@ -156,11 +169,11 @@ prediction horizon }\if{html}{\out{
}} \if{html}{\out{
}}\preformatted{## [,1] -## [1,] 82.87688 -## [2,] 28.34298 -## [3,] 42.42506 -## [4,] 16.15515 -## [5,] 10.86385 +## [1,] 83.08611 +## [2,] 27.48146 +## [3,] 43.52432 +## [4,] 15.20281 +## [5,] 10.56334 }\if{html}{\out{
}} } diff --git a/src/Tree.cpp b/src/Tree.cpp index 13027e8f..4113fb28 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -518,7 +518,6 @@ } - // cuts_sampled = sort(cuts_sampled); // initialize grouping for the current node // value of 1 indicates go to right node g_node.ones(lincomb.size()); diff --git a/tests/testthat/test-orsf_vi.R b/tests/testthat/test-orsf_vi.R index f1fc4148..2b41a25e 100644 --- a/tests/testthat/test-orsf_vi.R +++ b/tests/testthat/test-orsf_vi.R @@ -78,9 +78,9 @@ oobag_fun_4_args <- function(y_mat, w_vec, s_vec, nope){ } -oobag_fun_errors_on_test <- function(y_mat, s_vec){ +oobag_fun_errors_on_test <- function(y_mat, w_vec, s_vec){ - stop("I can't do anything!", call. = FALSE) + stop("expected error occurred!", call. = FALSE) } @@ -269,13 +269,10 @@ test_that( regexp = 'type character' ) - if(Sys.getenv("run_all_aorsf_tests") == 'yes'){ - expect_error( - orsf_vi_negate(fit_no_vi, oobag_fun = oobag_fun_errors_on_test), - regexp = 'encountered an error' - ) - } - + expect_error( + orsf_vi_negate(fit_no_vi, oobag_fun = oobag_fun_errors_on_test), + regexp = 'encountered an error' + ) expect_error( orsf_vi_negate(fit_no_vi, oobag_fun = oobag_fun_4_args), From cc14bf5aaa9dd50465f5c9f61bcd16602c2d6daf Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 23:06:41 -0400 Subject: [PATCH 097/103] cleaner n_thread doc and option for n_thread=0 --- R/orsf.R | 2 +- R/roxy.R | 5 ++++- man/orsf.Rd | 2 +- man/orsf_ice_oob.Rd | 2 +- man/orsf_pd_oob.Rd | 2 +- man/orsf_vi.Rd | 2 +- man/predict.orsf_fit.Rd | 2 +- scratch.R | 20 ++++++++++++++------ src/orsf_oop.cpp | 4 ++++ 9 files changed, 28 insertions(+), 13 deletions(-) diff --git a/R/orsf.R b/R/orsf.R index 5dc015fe..13d9b263 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -85,7 +85,7 @@ #' of randomly selected predictors, up to `n_retry` times. Default is #' `n_retry = 3`. Set `n_retry = 0` to prevent any retries. #' -#' @param n_thread `r roxy_n_thread_header("growing trees, computing predictions, and computing importance.")` +#' @param n_thread `r roxy_n_thread_header("growing trees, computing predictions, and computing importance")` #' #' @param mtry (_integer_) Number of predictors randomly included as candidates #' for splitting a node. The default is the smallest integer greater than diff --git a/R/roxy.R b/R/roxy.R index e9e312a1..509fcac4 100644 --- a/R/roxy.R +++ b/R/roxy.R @@ -18,7 +18,10 @@ roxy_data_allowed <- function(){ roxy_n_thread_header <- function(action){ paste("(_integer_) number of threads to use while ", - action, ". Default is one thread.", sep = "") + action, ". Default is one thread. ", + "To use the maximum number of threads that ", + "your system provides for concurrent execution, ", + "set `n_thread = 0`.", sep = "") } roxy_n_thread_details <- function(){ diff --git a/man/orsf.Rd b/man/orsf.Rd index 4e01f015..98785719 100644 --- a/man/orsf.Rd +++ b/man/orsf.Rd @@ -83,7 +83,7 @@ will try again with a new linear combination based on a different set of randomly selected predictors, up to \code{n_retry} times. Default is \code{n_retry = 3}. Set \code{n_retry = 0} to prevent any retries.} -\item{n_thread}{(\emph{integer}) number of threads to use while growing trees, computing predictions, and computing importance.. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while growing trees, computing predictions, and computing importance.. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{mtry}{(\emph{integer}) Number of predictors randomly included as candidates for splitting a node. The default is the smallest integer greater than diff --git a/man/orsf_ice_oob.Rd b/man/orsf_ice_oob.Rd index 5791b237..6453998c 100644 --- a/man/orsf_ice_oob.Rd +++ b/man/orsf_ice_oob.Rd @@ -83,7 +83,7 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{...}{Further arguments passed to or from other methods (not currently used).} diff --git a/man/orsf_pd_oob.Rd b/man/orsf_pd_oob.Rd index 80dc0dc0..5fdcccb3 100644 --- a/man/orsf_pd_oob.Rd +++ b/man/orsf_pd_oob.Rd @@ -101,7 +101,7 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{...}{Further arguments passed to or from other methods (not currently used).} diff --git a/man/orsf_vi.Rd b/man/orsf_vi.Rd index bdfc8013..de054a0a 100644 --- a/man/orsf_vi.Rd +++ b/man/orsf_vi.Rd @@ -71,7 +71,7 @@ importance is estimated. For more details, see the out-of-bag \href{https://docs.ropensci.org/aorsf/articles/oobag.html}{vignette}.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are printed in the console. If \code{FALSE} (the default), nothing is printed.} diff --git a/man/predict.orsf_fit.Rd b/man/predict.orsf_fit.Rd index b748aa03..2c2a4d71 100644 --- a/man/predict.orsf_fit.Rd +++ b/man/predict.orsf_fit.Rd @@ -54,7 +54,7 @@ checked to make sure the requested values are less than the maximum observed time in \code{object}'s training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are printed in the console. If \code{FALSE} (the default), nothing is printed.} diff --git a/scratch.R b/scratch.R index 5192f778..69cfcff2 100644 --- a/scratch.R +++ b/scratch.R @@ -5,7 +5,14 @@ library(survival) tictoc::tic() fit <- orsf(pbc_orsf, formula = time+status ~ . - id, - n_tree = 2) + n_tree = 1000) +tictoc::toc() + +tictoc::tic() +fit <- orsf(pbc_orsf, + formula = time+status ~ . - id, + n_tree = 1000, + n_thread = 0) tictoc::toc() all(fit$data == pbc_orsf) @@ -89,11 +96,11 @@ microbenchmark::microbenchmark( leaf_min_obs = 10, n_split = 5, importance = 'none', - n_thread = 5), + n_thread = 0), rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ . -id, ntree = 500, mtry = 3, - nthread = 5, + nthread = 0, samptype = 'swr', importance = 'none', nodesize = 10, @@ -106,6 +113,7 @@ microbenchmark::microbenchmark( fit$eval_oobag +library(tidyverse) fit$forest[-1] |> as_tibble() |> @@ -115,7 +123,7 @@ fit$forest[-1] |> .before = 1) |> print(n=100) -flchain_orsf <- flchain |> +flchain_orsf <- survival::flchain |> rename(time = futime, status = death) |> select(-chapter) |> filter(time > 0) %>% @@ -129,12 +137,12 @@ microbenchmark::microbenchmark( leaf_min_obs = 10, n_split = 5, importance = 'none', - n_thread = 5), + n_thread = 0), rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., ntree = 500, mtry = 3, - nthread = 5, + nthread = 0, samptype = 'swr', importance = 'none', nodesize = 10, diff --git a/src/orsf_oop.cpp b/src/orsf_oop.cpp index 9ab3c768..2c84ed93 100644 --- a/src/orsf_oop.cpp +++ b/src/orsf_oop.cpp @@ -180,6 +180,10 @@ EvalType oobag_eval_type = (EvalType) oobag_eval_type_R; PartialDepType pd_type = (PartialDepType) pd_type_R; + if(n_thread == 0){ + n_thread = std::thread::hardware_concurrency(); + } + // R functions cannot be called from multiple threads if(lincomb_type == LC_R_FUNCTION || lincomb_type == LC_GLMNET || From 3f0dc66bfbc131a8e8920664cf1661d397fef00d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 23:07:57 -0400 Subject: [PATCH 098/103] ignore scratch --- .gitignore | 1 + scratch.R | 156 ----------------------------------------------------- 2 files changed, 1 insertion(+), 156 deletions(-) delete mode 100644 scratch.R diff --git a/.gitignore b/.gitignore index 40a563e7..e482435b 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ src-i386 Rmd/*_cache/ Rmd/figure* Rmd/*.html +^scratch\.R$ diff --git a/scratch.R b/scratch.R deleted file mode 100644 index 69cfcff2..00000000 --- a/scratch.R +++ /dev/null @@ -1,156 +0,0 @@ -library(tidyverse) -library(riskRegression) -library(survival) - -tictoc::tic() -fit <- orsf(pbc_orsf, - formula = time+status ~ . - id, - n_tree = 1000) -tictoc::toc() - -tictoc::tic() -fit <- orsf(pbc_orsf, - formula = time+status ~ . - id, - n_tree = 1000, - n_thread = 0) -tictoc::toc() - -all(fit$data == pbc_orsf) - -tmp <- as.data.frame(cbind(y=as.numeric(fit$pred_oobag), x=pbc_orsf$bili)) - -plot(x=tmp$x, y=tmp$y) - -sink("orsf-output.txt") -pd_vals <- orsf_pd_oob(fit, - expand_grid = FALSE, - pred_type = 'risk', - pred_spec = list(bili = 1:5, - sex = c("m", "f")), - pred_horizon = c(1000, 2000, 4000)) -sink() - -fit$importance->tmp - -tictoc::tic() -orsf_pd_oob(fit, pred_spec = list(bili = c(1:5))) -tictoc::toc() - -rfsrc_fit = randomForestSRC::rfsrc(Surv(time, status) ~ . -id, - ntree = 500, - mtry = 3, - nthread = 5, - samptype = 'swr', - importance = 'none', - nodesize = 10, - nsplit = 5, - data = as.data.frame(pbc_orsf)) - -microbenchmark::microbenchmark( - prd_aorsf = predict(fit, new_data = pbc_orsf, n_thread = 10), - prd_rfsrc = predict(rfsrc_fit, newdata = pbc_orsf) -) - -res <- oob <- vector(mode = 'numeric', length = 100) - -for(i in seq(100)){ - - train <- sample(nrow(pbc_orsf), 150) - - fit <- orsf(pbc_orsf[train, ], - formula = Surv(time, status) ~ . - id, - oobag_pred_type = 'surv', - oobag_pred_horizon = 1000, - split_rule = 'logrank', - n_thread = 10) - - oob[i] = as.numeric(fit$eval_oobag$stat_values) - - prd <- predict(fit, - new_data = pbc_orsf[-train, ], - pred_horizon = 1000, - pred_type = 'risk', - n_thread = 10) - - y_mat <- as.matrix(pbc_orsf[-train, c('time', 'status')]) - w_vec <- rep(1, nrow(y_mat)) - s_vec <- 1-prd - - res[i] = oobag_c_survival(y_mat, w_vec, s_vec) - - -} - -mean(oob) -mean(res) -mean(oob-res) - -# sink() - -library(randomForestSRC) - -microbenchmark::microbenchmark( - aorsf_5 = orsf(pbc_orsf, Surv(time, status) ~ . - id, - n_tree = 500, - mtry = 3, - leaf_min_obs = 10, - n_split = 5, - importance = 'none', - n_thread = 0), - rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ . -id, - ntree = 500, - mtry = 3, - nthread = 0, - samptype = 'swr', - importance = 'none', - nodesize = 10, - nsplit = 5, - data = as.data.frame(pbc_orsf)), - times = 5 -) - -# sink() - -fit$eval_oobag - -library(tidyverse) - -fit$forest[-1] |> - as_tibble() |> - slice(1) |> - unnest(everything()) |> - mutate(node_id = seq(0, n()-1), - .before = 1) |> - print(n=100) - -flchain_orsf <- survival::flchain |> - rename(time = futime, status = death) |> - select(-chapter) |> - filter(time > 0) %>% - tidyr::drop_na() - -microbenchmark::microbenchmark( - - aorsf_5 = orsf(flchain_orsf, Surv(time, status) ~ ., - n_tree = 500, - mtry = 3, - leaf_min_obs = 10, - n_split = 5, - importance = 'none', - n_thread = 0), - - rfsrc = randomForestSRC::rfsrc(Surv(time, status) ~ ., - ntree = 500, - mtry = 3, - nthread = 0, - samptype = 'swr', - importance = 'none', - nodesize = 10, - nsplit = 5, - data = as.data.frame(flchain_orsf)), - - times = 3 - -) - - From cc188fc7a048ce0f5307fd793e60d3f6da2280fb Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 23:16:49 -0400 Subject: [PATCH 099/103] move scratch.R instead --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index e482435b..40a563e7 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,3 @@ src-i386 Rmd/*_cache/ Rmd/figure* Rmd/*.html -^scratch\.R$ From adce44d32e6029723fb3c5a8046c2e8e8b1cd09c Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 23:31:06 -0400 Subject: [PATCH 100/103] checks for new orsf args --- R/check.R | 80 +++++++++++++++++++++++++++++++++++++++++++++++++------ R/orsf.R | 14 ++++++---- 2 files changed, 81 insertions(+), 13 deletions(-) diff --git a/R/check.R b/R/check.R index 839a5bba..67bd202f 100644 --- a/R/check.R +++ b/R/check.R @@ -610,9 +610,13 @@ check_orsf_inputs <- function(data = NULL, n_tree = NULL, n_split = NULL, n_retry = NULL, + n_thread = NULL, mtry = NULL, + sample_with_replacement = NULL, + sample_fraction = NULL, leaf_min_events = NULL, leaf_min_obs = NULL, + split_rule = NULL, split_min_events = NULL, split_min_obs = NULL, split_min_stat = NULL, @@ -796,6 +800,25 @@ check_orsf_inputs <- function(data = NULL, } + if(!is.null(n_thread)){ + + check_arg_type(arg_value = n_thread, + arg_name = 'n_thread', + expected_type = 'numeric') + + check_arg_is_integer(arg_name = 'n_thread', + arg_value = n_thread) + + check_arg_gteq(arg_name = 'n_thread', + arg_value = n_thread, + bound = 0) + + check_arg_length(arg_name = 'n_thread', + arg_value = n_thread, + expected_length = 1) + + } + if(!is.null(mtry)){ check_arg_type(arg_value = mtry, @@ -815,6 +838,38 @@ check_orsf_inputs <- function(data = NULL, } + if(!is.null(sample_with_replacement)){ + + check_arg_type(arg_value = sample_with_replacement, + arg_name = 'sample_with_replacement', + expected_type = 'logical') + + check_arg_length(arg_name = 'sample_with_replacement', + arg_value = sample_with_replacement, + expected_length = 1) + + } + + if(!is.null(sample_fraction)){ + + check_arg_type(arg_value = sample_fraction, + arg_name = 'sample_fraction', + expected_type = 'numeric') + + check_arg_gt(arg_value = sample_fraction, + arg_name = 'sample_fraction', + bound = 0) + + check_arg_lteq(arg_value = sample_fraction, + arg_name = 'sample_fraction', + bound = 1) + + check_arg_length(arg_value = sample_fraction, + arg_name = 'sample_fraction', + expected_length = 1) + + } + if(!is.null(leaf_min_events)){ check_arg_type(arg_value = leaf_min_events, @@ -852,6 +907,22 @@ check_orsf_inputs <- function(data = NULL, } + if(!is.null(split_rule)){ + + check_arg_type(arg_value = split_rule, + arg_name = 'split_rule', + expected_type = 'character') + + check_arg_length(arg_value = split_rule, + arg_name = 'split_rule', + expected_length = 1) + + check_arg_is_valid(arg_value = split_rule, + arg_name = 'split_rule', + valid_options = c("logrank", "cstat")) + + } + if(!is.null(split_min_events)){ check_arg_type(arg_value = split_min_events, @@ -916,13 +987,6 @@ check_orsf_inputs <- function(data = NULL, arg_name = 'oobag_pred_type', expected_length = 1) - # if(oobag_pred_type == 'mort') stop( - # "Out-of-bag mortality predictions aren't supported yet. ", - # " Sorry for the inconvenience - we plan on including this option", - # " in a future update.", - # call. = FALSE - # ) - check_arg_is_valid(arg_value = oobag_pred_type, arg_name = 'oobag_pred_type', valid_options = c("none", @@ -1006,7 +1070,7 @@ check_orsf_inputs <- function(data = NULL, check_arg_is_integer(tree_seeds, arg_name = 'tree_seeds') - if(length(tree_seeds) != n_tree){ + if(length(tree_seeds) > 1 && length(tree_seeds) != n_tree){ stop('tree_seeds should have length <', n_tree, "> (the number of trees) but instead has length <", diff --git a/R/orsf.R b/R/orsf.R index 13d9b263..d501a96c 100644 --- a/R/orsf.R +++ b/R/orsf.R @@ -340,16 +340,16 @@ orsf <- function(data, n_tree = 500, n_split = 5, n_retry = 3, - n_thread = 1, # TODO: add docs+checks + n_thread = 1, mtry = NULL, - sample_with_replacement = TRUE, # TODO: add docs+checks - sample_fraction = 0.632, # TODO: add docs+checks + sample_with_replacement = TRUE, + sample_fraction = 0.632, leaf_min_events = 1, leaf_min_obs = 5, - split_rule = 'logrank', # TODO: add docs+checks + split_rule = 'logrank', split_min_events = 5, split_min_obs = 10, - split_min_stat = switch(split_rule, # TODO: update docs + split_min_stat = switch(split_rule, "logrank" = 3.841459, "cstat" = 0.50), oobag_pred_type = 'surv', @@ -380,9 +380,13 @@ orsf <- function(data, n_tree = n_tree, n_split = n_split, n_retry = n_retry, + n_thread = n_thread, mtry = mtry, + sample_with_replacement = sample_with_replacement, + sample_fraction = sample_fraction, leaf_min_events = leaf_min_events, leaf_min_obs = leaf_min_obs, + split_rule = split_rule, split_min_events = split_min_events, split_min_obs = split_min_obs, split_min_stat = split_min_stat, From 290cb8e291bf13b775f4b1a5551c4abe85e693ac Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Mon, 2 Oct 2023 23:41:02 -0400 Subject: [PATCH 101/103] draft some release notes --- NEWS.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/NEWS.md b/NEWS.md index 496cb610..8d6a405a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,12 @@ -# aorsf 0.0.8 +# aorsf 0.1.0 (unreleased) + +* Re-worked `aorsf`'s C++, code following the design of `ranger`, to set it up for classification and regression trees. + +* Allowed multi-threading to be performed in `orsf()`, `predict.orsf_fit()`, and functions in the `orsf_vi()` and `orsf_pd()` family. + +* Allowed for sampling without replacement and sampling a specific fraction of observations in `orsf()` + +* Included Harrell's C-statistic as an option for assessing goodness of splits while growing trees. * Fixed an issue where an uninformative error message would occur when `pred_horizon` was > max(time) for `orsf_summarize_uni`. Thanks to @JyHao1 and @DustinMLong for finding this! From 7a76258fd337377076731c876d27d833a9b1748d Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 3 Oct 2023 06:52:16 -0400 Subject: [PATCH 102/103] doc updates --- man/orsf.Rd | 2 +- man/orsf_ice_oob.Rd | 2 +- man/orsf_pd_oob.Rd | 2 +- man/orsf_vi.Rd | 2 +- man/predict.orsf_fit.Rd | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/man/orsf.Rd b/man/orsf.Rd index 98785719..cf7cbcc9 100644 --- a/man/orsf.Rd +++ b/man/orsf.Rd @@ -83,7 +83,7 @@ will try again with a new linear combination based on a different set of randomly selected predictors, up to \code{n_retry} times. Default is \code{n_retry = 3}. Set \code{n_retry = 0} to prevent any retries.} -\item{n_thread}{(\emph{integer}) number of threads to use while growing trees, computing predictions, and computing importance.. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} +\item{n_thread}{(\emph{integer}) number of threads to use while growing trees, computing predictions, and computing importance. Default is one thread. To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{mtry}{(\emph{integer}) Number of predictors randomly included as candidates for splitting a node. The default is the smallest integer greater than diff --git a/man/orsf_ice_oob.Rd b/man/orsf_ice_oob.Rd index 6453998c..4948204d 100644 --- a/man/orsf_ice_oob.Rd +++ b/man/orsf_ice_oob.Rd @@ -83,7 +83,7 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread. To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{...}{Further arguments passed to or from other methods (not currently used).} diff --git a/man/orsf_pd_oob.Rd b/man/orsf_pd_oob.Rd index 5fdcccb3..bf900bd0 100644 --- a/man/orsf_pd_oob.Rd +++ b/man/orsf_pd_oob.Rd @@ -101,7 +101,7 @@ to make sure the requested values are between the 10th and 90th percentile in the object's training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread. To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{...}{Further arguments passed to or from other methods (not currently used).} diff --git a/man/orsf_vi.Rd b/man/orsf_vi.Rd index de054a0a..5312dc31 100644 --- a/man/orsf_vi.Rd +++ b/man/orsf_vi.Rd @@ -71,7 +71,7 @@ importance is estimated. For more details, see the out-of-bag \href{https://docs.ropensci.org/aorsf/articles/oobag.html}{vignette}.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread. To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are printed in the console. If \code{FALSE} (the default), nothing is printed.} diff --git a/man/predict.orsf_fit.Rd b/man/predict.orsf_fit.Rd index 2c2a4d71..bafe78ca 100644 --- a/man/predict.orsf_fit.Rd +++ b/man/predict.orsf_fit.Rd @@ -54,7 +54,7 @@ checked to make sure the requested values are less than the maximum observed time in \code{object}'s training data. If \code{FALSE}, these checks are skipped.} -\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread.To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} +\item{n_thread}{(\emph{integer}) number of threads to use while computing predictions. Default is one thread. To use the maximum number of threads that your system provides for concurrent execution, set \code{n_thread = 0}.} \item{verbose_progress}{(\emph{logical}) if \code{TRUE}, progress messages are printed in the console. If \code{FALSE} (the default), nothing is printed.} From 5788982e464359f05e37ea688fb06611dbe31c15 Mon Sep 17 00:00:00 2001 From: byron jaeger Date: Tue, 3 Oct 2023 08:27:05 -0400 Subject: [PATCH 103/103] formula tests get a specific file --- tests/testthat/helper-orsf.R | 28 +++++++ tests/testthat/test-orsf.R | 115 ----------------------------- tests/testthat/test-orsf_formula.R | 90 ++++++++++++++++++++++ 3 files changed, 118 insertions(+), 115 deletions(-) create mode 100644 tests/testthat/helper-orsf.R create mode 100644 tests/testthat/test-orsf_formula.R diff --git a/tests/testthat/helper-orsf.R b/tests/testthat/helper-orsf.R new file mode 100644 index 00000000..40db3f11 --- /dev/null +++ b/tests/testthat/helper-orsf.R @@ -0,0 +1,28 @@ + +# misc functions used for tests + +no_miss_list <- function(l){ + + sapply(l, function(x){ + + if(is.list(x)) {return(no_miss_list(x))} + + any(is.na(x)) | any(is.nan(x)) | any(is.infinite(x)) + + }) + +} + +add_noise <- function(x, eps = .Machine$double.eps){ + + noise <- rnorm(length(x), mean = 0, sd = eps/2) + noise <- pmin(noise, eps) + noise <- pmax(noise, -eps) + + x + noise + +} + +change_scale <- function(x, mult_by = 1/2){ + x * mult_by +} diff --git a/tests/testthat/test-orsf.R b/tests/testthat/test-orsf.R index 875249c6..2dc59589 100644 --- a/tests/testthat/test-orsf.R +++ b/tests/testthat/test-orsf.R @@ -1,36 +1,6 @@ library(survival) # for Surv -# misc functions used for tests ---- - -no_miss_list <- function(l){ - - sapply(l, function(x){ - - if(is.list(x)) {return(no_miss_list(x))} - - any(is.na(x)) | any(is.nan(x)) | any(is.infinite(x)) - - }) - -} - -add_noise <- function(x, eps = .Machine$double.eps){ - - noise <- rnorm(length(x), mean = 0, sd = eps/2) - noise <- pmin(noise, eps) - noise <- pmax(noise, -eps) - - x + noise - -} - -change_scale <- function(x, mult_by = 1/2){ - x * mult_by -} - -# begin tests ----- - #' @srrstats {G5.0} *tests use the PBC data, a standard set that has been widely studied and disseminated in other R package (e.g., survival and randomForestSRC)* # catch bad inputs, give informative error @@ -39,91 +9,6 @@ pbc_temp <- pbc_orsf pbc_temp$id <- factor(pbc_temp$id) pbc_temp$status <- pbc_temp$status+1 - -f1 <- Surv(time, status) ~ unknown_variable + bili -# dropped test - see https://github.com/mlr-org/mlr3extralearners/issues/259 -# f2 <- Surv(time, status) ~ bili -f3 <- Surv(time, status) ~ bili + factor(hepato) -f4 <- Surv(time, status) ~ bili * ascites -f5 <- Surv(time, status) ~ bili + id -f6 <- Surv(time, not_right) ~ . -f7 <- Surv(not_right, status) ~ . -f8 <- Surv(start, time, status) ~ . -f9 <- Surv(status, time) ~ . - id -f10 <- Surv(time, time) ~ . - id -f11 <- Surv(time, id) ~ . -id -f12 <- Surv(time, status) ~ . -id -f13 <- ~ . -f14 <- status + time ~ . - id -f15 <- time + status ~ id + bili - -#' @srrstats {G5.2} *Appropriate error behaviour is explicitly demonstrated through tests.* -#' @srrstats {G5.2b} *Tests demonstrate conditions which trigger error messages.* -test_that( - desc = 'formula inputs are vetted', - code = { - - expect_error(orsf(pbc_temp, f1), 'not found in data') - # # dropped - see https://github.com/mlr-org/mlr3extralearners/issues/259 - # expect_warning(orsf(pbc_temp, f2), 'at least 2 predictors') - expect_error(orsf(pbc_temp, f3), 'unrecognized') - expect_error(orsf(pbc_temp, f4), 'unrecognized') - expect_error(orsf(pbc_temp, f5), 'id variable?') - expect_error(orsf(pbc_temp, f6), 'not_right') - expect_error(orsf(pbc_temp, f7), 'not_right') - expect_error(orsf(pbc_temp, f8), 'must have two variables') - expect_error(orsf(pbc_temp, f9), 'Did you enter') - expect_error(orsf(pbc_temp, f10), 'must have two variables') - expect_error(orsf(pbc_temp, f11), 'detected >1 event type') - expect_error(orsf(pbc_temp, f13), 'must be two sided') - expect_error(orsf(pbc_temp, f14), 'Did you enter') - expect_error(orsf(pbc_temp, f15), "as many levels as there are rows") - - } -) - -test_that( - desc = 'long formulas with repetition are allowed', - code = { - - x_vars <- c( - "trt", - "age", - "sex", - "ascites", - "hepato", - "spiders", - "edema", - "bili", - "chol", - "albumin", - "copper", - "alk.phos", - "ast", - "trig", - "platelet", - "protime", - "stage" - ) - - long_rhs <- paste(x_vars, collapse = ' + ') - - long_rhs <- rep(long_rhs, 15) - - long_rhs <- paste(long_rhs, collapse = ' + ') - - f_long <- as.formula(paste("time + status ~", long_rhs)) - - fit_long <- orsf(formula = f_long, pbc_temp, n_tree = 10) - - # fits the orsf as expected - expect_s3_class(fit_long, 'orsf_fit') - # keeps unique names - expect_equal(x_vars, get_names_x(fit_long)) - - } -) - # should get the same forest, whether status is 1/2 or 0/1 or a surv object pbc_surv <- Surv(pbc_temp$time, pbc_temp$status) diff --git a/tests/testthat/test-orsf_formula.R b/tests/testthat/test-orsf_formula.R new file mode 100644 index 00000000..ddeca452 --- /dev/null +++ b/tests/testthat/test-orsf_formula.R @@ -0,0 +1,90 @@ + +require(survival) + +# set id to a factor so that it can trigger the id error +pbc_orsf$id <- factor(pbc_orsf$id) +pbc_orsf$status <- pbc_orsf$status+1 + +f1 <- Surv(time, status) ~ unknown_variable + bili +# dropped test - see https://github.com/mlr-org/mlr3extralearners/issues/259 +# f2 <- Surv(time, status) ~ bili +f3 <- Surv(time, status) ~ bili + factor(hepato) +f4 <- Surv(time, status) ~ bili * ascites +f5 <- Surv(time, status) ~ bili + id +f6 <- Surv(time, not_right) ~ . +f7 <- Surv(not_right, status) ~ . +f8 <- Surv(start, time, status) ~ . +f9 <- Surv(status, time) ~ . - id +f10 <- Surv(time, time) ~ . - id +f11 <- Surv(time, id) ~ . -id +f12 <- Surv(time, status) ~ . -id +f13 <- ~ . +f14 <- status + time ~ . - id +f15 <- time + status ~ id + bili + +#' @srrstats {G5.2} *Appropriate error behaviour is explicitly demonstrated through tests.* +#' @srrstats {G5.2b} *Tests demonstrate conditions which trigger error messages.* +test_that( + desc = 'formula inputs are vetted', + code = { + + expect_error(orsf(pbc_orsf, f1), 'not found in data') + # # dropped - see https://github.com/mlr-org/mlr3extralearners/issues/259 + # expect_warning(orsf(pbc_orsf, f2), 'at least 2 predictors') + expect_error(orsf(pbc_orsf, f3), 'unrecognized') + expect_error(orsf(pbc_orsf, f4), 'unrecognized') + expect_error(orsf(pbc_orsf, f5), 'id variable?') + expect_error(orsf(pbc_orsf, f6), 'not_right') + expect_error(orsf(pbc_orsf, f7), 'not_right') + expect_error(orsf(pbc_orsf, f8), 'must have two variables') + expect_error(orsf(pbc_orsf, f9), 'Did you enter') + expect_error(orsf(pbc_orsf, f10), 'must have two variables') + expect_error(orsf(pbc_orsf, f11), 'detected >1 event type') + expect_error(orsf(pbc_orsf, f13), 'must be two sided') + expect_error(orsf(pbc_orsf, f14), 'Did you enter') + expect_error(orsf(pbc_orsf, f15), "as many levels as there are rows") + + } +) + +test_that( + desc = 'long formulas with repetition are allowed', + code = { + + x_vars <- c( + "trt", + "age", + "sex", + "ascites", + "hepato", + "spiders", + "edema", + "bili", + "chol", + "albumin", + "copper", + "alk.phos", + "ast", + "trig", + "platelet", + "protime", + "stage" + ) + + long_rhs <- paste(x_vars, collapse = ' + ') + + long_rhs <- rep(long_rhs, 15) + + long_rhs <- paste(long_rhs, collapse = ' + ') + + f_long <- as.formula(paste("time + status ~", long_rhs)) + + fit_long <- orsf(formula = f_long, pbc_orsf, n_tree = 10) + + # fits the orsf as expected + expect_s3_class(fit_long, 'orsf_fit') + # keeps unique names + expect_equal(x_vars, get_names_x(fit_long)) + + } +)