diff --git a/README.md b/README.md index dac46e8..045e2a7 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,6 @@ llvm_model.compile() - Drop-in replacement: The interface of `lleaves.Model` is a subset of `LightGBM.Booster`. - Dependencies: `llvmlite` and `numpy`. LLVM comes statically linked. -Some LightGBM features are not yet implemented: multiclass prediction, linear models. - ## Installation `conda install -c conda-forge lleaves` or `pip install lleaves` (Linux and MacOS only). diff --git a/docs/development.rst b/docs/development.rst index 69cb3fe..a03af0d 100644 --- a/docs/development.rst +++ b/docs/development.rst @@ -81,6 +81,21 @@ An example from the *model.txt* of the airlines model:: The bitvectors of the first three categorical nodes are <1 x i32>, <1 x i32> and <8 x i32> long. +Multiclass prediction +********************* + +Multiclass prediction works by basically fitting individual forests for each class, and then running a +softmax across the outputs. +So for 3 classes with 100 iterations LightGBM will generate 300 trees. +The trees are saved in the model.txt in strides, like so:: + + tree 0 # (=class 0, tree 0) + tree 1 # (=class 1, tree 0) + tree 2 # (=class 2, tree 0) + tree 3 # (=class 0, tree 1) + tree 4 # (=class 1, tree 1) + ... + Software Architecture Overview ------------------------------ diff --git a/lleaves/compiler/ast/nodes.py b/lleaves/compiler/ast/nodes.py index 9f167ec..92f3098 100644 --- a/lleaves/compiler/ast/nodes.py +++ b/lleaves/compiler/ast/nodes.py @@ -1,35 +1,35 @@ from lleaves.compiler.utils import DecisionType +from dataclasses import dataclass -class Forest: - def __init__( - self, - trees: list, - features: list, - objective_func: str, - objective_func_config: str, - ): - self.trees = trees - self.n_args = len(features) - self.features = features - self.objective_func = objective_func - self.objective_func_config = objective_func_config +class Node: + @property + def is_leaf(self): + return isinstance(self, LeafNode) +@dataclass class Tree: - def __init__(self, idx, root_node, features): - self.idx = idx - self.root_node = root_node - self.features = features + idx: int + root_node: Node + features: list + class_id: int def __str__(self): return f"tree_{self.idx}" -class Node: +@dataclass +class Forest: + trees: list[Tree] + features: list + n_classes: int + objective_func: str + objective_func_config: str + @property - def is_leaf(self): - return isinstance(self, LeafNode) + def n_args(self): + return len(self.features) class DecisionNode(Node): @@ -74,10 +74,10 @@ def __str__(self): return f"node_{self.idx}" +@dataclass class LeafNode(Node): - def __init__(self, idx, value): - self.idx = idx - self.value = value + idx: int + value: float def __str__(self): return f"leaf_{self.idx}" diff --git a/lleaves/compiler/ast/parser.py b/lleaves/compiler/ast/parser.py index f1244e9..b927ce4 100644 --- a/lleaves/compiler/ast/parser.py +++ b/lleaves/compiler/ast/parser.py @@ -1,3 +1,5 @@ +import itertools + from lleaves.compiler.ast.nodes import DecisionNode, Forest, LeafNode, Tree from lleaves.compiler.ast.scanner import scan_model_file from lleaves.compiler.utils import DecisionType @@ -18,7 +20,7 @@ def __init__(self, is_categorical): self.is_categorical = is_categorical -def _parse_tree_to_ast(tree_struct, features): +def _parse_tree_to_ast(tree_struct, features, class_id): n_nodes = len(tree_struct["decision_type"]) leaves = [ LeafNode(idx, value) for idx, value in enumerate(tree_struct["leaf_value"]) @@ -78,17 +80,19 @@ def _parse_tree_to_ast(tree_struct, features): node.validate() if nodes: - return Tree(tree_struct["Tree"], nodes[0], features) + return Tree(tree_struct["Tree"], nodes[0], features, class_id) else: # special case for when tree is just single leaf assert len(leaves) == 1 - return Tree(tree_struct["Tree"], leaves[0], features) + return Tree(tree_struct["Tree"], leaves[0], features, class_id) def parse_to_ast(model_path): scanned_model = scan_model_file(model_path) n_args = scanned_model["general_info"]["max_feature_idx"] + 1 + n_classes = scanned_model["general_info"]["num_class"] + assert n_classes == scanned_model["general_info"]["num_tree_per_iteration"] objective = scanned_model["general_info"]["objective"] objective_func = objective[0] objective_func_config = objective[1] if len(objective) > 1 else None @@ -99,10 +103,13 @@ def parse_to_ast(model_path): assert n_args == len(features), "Ill formed model file" trees = [ - _parse_tree_to_ast(tree_struct, features) - for tree_struct in scanned_model["trees"] + _parse_tree_to_ast(scanned_tree, features, class_id) + for scanned_tree, class_id in zip( + scanned_model["trees"], itertools.cycle(range(n_classes)) + ) ] - return Forest(trees, features, objective_func, objective_func_config) + assert len(trees) % n_classes == 0, "Ill formed model file" + return Forest(trees, features, n_classes, objective_func, objective_func_config) def is_categorical_feature(feature_info: str): diff --git a/lleaves/compiler/ast/scanner.py b/lleaves/compiler/ast/scanner.py index 4b20597..445f8ff 100644 --- a/lleaves/compiler/ast/scanner.py +++ b/lleaves/compiler/ast/scanner.py @@ -71,6 +71,8 @@ def __init__(self, type: type, is_list=False, null_ok=False): INPUT_SCAN_KEYS = { "max_feature_idx": ScannedValue(int), + "num_class": ScannedValue(int), + "num_tree_per_iteration": ScannedValue(int), "version": ScannedValue(str), "feature_infos": ScannedValue(str, True), "objective": ScannedValue(str, True), diff --git a/lleaves/compiler/codegen/codegen.py b/lleaves/compiler/codegen/codegen.py index 7a5e1ba..0f0906d 100644 --- a/lleaves/compiler/codegen/codegen.py +++ b/lleaves/compiler/codegen/codegen.py @@ -1,3 +1,5 @@ +from dataclasses import dataclass + from llvmlite import ir from lleaves.compiler.utils import ISSUE_ERROR_MSG, MissingType @@ -28,6 +30,14 @@ def dconst(value): return ir.Constant(DOUBLE, value) +@dataclass +class LTree: + """Class for the LLVM function of a tree paired with relevant non-LLVM context""" + + llvm_function: ir.Function + class_id: int + + def gen_forest(forest, module): """ Populate the passed IR module with code for the forest. @@ -81,10 +91,14 @@ def make_tree(tree): tree_func.linkage = "private" # populate function with IR gen_tree(tree, tree_func) - return tree_func + return LTree(llvm_function=tree_func, class_id=tree.class_id) tree_funcs = [make_tree(tree) for tree in forest.trees] + if forest.n_classes > 1: + # better locality by running trees for each class together + tree_funcs.sort(key=lambda t: t.class_id) + _populate_forest_func(forest, root_func, tree_funcs) @@ -189,17 +203,30 @@ def _populate_instruction_block( else: args.append(el) # iterate over each tree, sum up results - res = builder.call(tree_funcs[0], args) - for func in tree_funcs[1:]: - tree_res = builder.call(func, args) - res = builder.fadd(tree_res, res) - ptr = builder.gep(out_arr, (loop_iter_reg,)) - res = builder.fadd(res, builder.load(ptr)) + results = [dconst(0.0) for _ in range(forest.n_classes)] + for func in tree_funcs: + tree_res = builder.call(func.llvm_function, args) + results[func.class_id] = builder.fadd(tree_res, results[func.class_id]) + res_idx = builder.mul(iconst(forest.n_classes), loop_iter_reg) + results_ptr = [ + builder.gep(out_arr, (builder.add(res_idx, iconst(class_idx)),)) + for class_idx in range(forest.n_classes) + ] + + results = [ + builder.fadd(result, builder.load(result_ptr)) + for result, result_ptr in zip(results, results_ptr) + ] if eval_obj_func: - res = _populate_objective_func_block( - builder, res, forest.objective_func, forest.objective_func_config + results = _populate_objective_func_block( + builder, + results, + forest.objective_func, + forest.objective_func_config, ) - builder.store(res, ptr) + for result, result_ptr in zip(results, results_ptr): + builder.store(result, result_ptr) + tmpp1 = builder.add(loop_iter_reg, iconst(1)) builder.store(tmpp1, loop_iter) builder.branch(condition_block) @@ -230,7 +257,7 @@ def _populate_forest_func(forest, root_func, tree_funcs): def _populate_objective_func_block( - builder, input, objective: str, objective_config: str + builder, args, objective: str, objective_config: str ): """ Takes the objective function specification and generates the code for it into the builder @@ -246,23 +273,23 @@ def _populate_sigmoid(alpha): raise ValueError(f"Sigmoid parameter needs to be >0, is {alpha}") # 1 / (1 + exp(- alpha * x)) - inner = builder.fmul(dconst(-alpha), input) + inner = builder.fmul(dconst(-alpha), args[0]) exp = builder.call(llvm_exp, [inner]) denom = builder.fadd(dconst(1.0), exp) return builder.fdiv(dconst(1.0), denom) if objective == "binary": alpha = objective_config.split(":")[1] - return _populate_sigmoid(float(alpha)) + result = _populate_sigmoid(float(alpha)) elif objective in ("xentropy", "cross_entropy"): - return _populate_sigmoid(1.0) + result = _populate_sigmoid(1.0) elif objective in ("xentlambda", "cross_entropy_lambda"): # naive implementation which will be numerically unstable for small x. # should be changed to log1p - exp = builder.call(llvm_exp, [input]) - return builder.call(llvm_log, [builder.fadd(dconst(1.0), exp)]) + exp = builder.call(llvm_exp, [args[0]]) + result = builder.call(llvm_log, [builder.fadd(dconst(1.0), exp)]) elif objective in ("poisson", "gamma", "tweedie"): - return builder.call(llvm_exp, [input]) + result = builder.call(llvm_exp, [args[0]]) elif objective in ( "regression", "regression_l1", @@ -272,15 +299,27 @@ def _populate_sigmoid(alpha): "mape", ): if objective_config and "sqrt" in objective_config: - return builder.call(llvm_copysign, [builder.fmul(input, input), input]) + arg = args[0] + result = builder.call(llvm_copysign, [builder.fmul(arg, arg), arg]) else: - return input + result = args[0] elif objective in ("lambdarank", "rank_xendcg", "custom"): - return input + result = args[0] + elif objective == "multiclass": + assert len(args) + # TODO Check vectorization / vectorize by hand + result = [builder.call(llvm_exp, [arg]) for arg in args] + + denominator = dconst(0.0) + for r in result: + denominator = builder.fadd(r, denominator) + + result = [builder.fdiv(r, denominator) for r in result] else: raise ValueError( f"Objective '{objective}' not yet implemented. {ISSUE_ERROR_MSG}" ) + return result if len(args) > 1 else [result] def _populate_categorical_node_block( diff --git a/lleaves/data_processing.py b/lleaves/data_processing.py index 96b12d9..f64874b 100644 --- a/lleaves/data_processing.py +++ b/lleaves/data_processing.py @@ -149,20 +149,24 @@ def extract_pandas_traintime_categories(file_path): raise ValueError("Ill formatted model file!") -def extract_num_feature(file_path): +def extract_n_features_n_classes(file_path): """ - Extract number of features expected by this model as 'max_feature_idx' + 1 + Extract number of features and the number of classes of this model :param file_path: path to model.txt - :return: the number of features expected by this model. + :return: dict with "n_args": number of features, "n_classes": number of classes """ + res = {} with open(file_path, "r") as f: - line = f.readline() - while line and not line.startswith("max_feature_idx"): + for _ in range(2): line = f.readline() - - if line.startswith("max_feature_idx"): - n_args = int(line.split("=")[1]) + 1 - else: - raise ValueError("Ill formatted model file!") - return n_args + while line and not line.startswith(("max_feature_idx", "num_class")): + line = f.readline() + + if line.startswith("max_feature_idx"): + res["n_feature"] = int(line.split("=")[1]) + 1 + elif line.startswith("num_class"): + res["n_class"] = int(line.split("=")[1]) + else: + raise ValueError("Ill formatted model file!") + return res diff --git a/lleaves/lleaves.py b/lleaves/lleaves.py index 02508d5..5ded840 100644 --- a/lleaves/lleaves.py +++ b/lleaves/lleaves.py @@ -10,7 +10,7 @@ from lleaves import compiler from lleaves.data_processing import ( data_to_ndarray, - extract_num_feature, + extract_n_features_n_classes, extract_pandas_traintime_categories, ndarray_to_ptr, ) @@ -35,7 +35,9 @@ class Model: _execution_engine = None # number of features (=columns) - _num_feature = None + _n_feature = None + # number of classes + _n_classes = None # prediction function, drops GIL on entry _c_entry_func = None @@ -50,13 +52,23 @@ def __init__(self, model_file): self.is_compiled = False self._pandas_categorical = extract_pandas_traintime_categories(model_file) - self._num_feature = extract_num_feature(model_file) + num_attrs = extract_n_features_n_classes(model_file) + self._n_feature = num_attrs["n_feature"] + self._n_classes = num_attrs["n_class"] def num_feature(self): """ Returns the number of features used by this model. """ - return self._num_feature + return self._n_feature + + def num_model_per_iteration(self): + """ + Returns the number of models per iteration. + + This is equal to the number of classes for multiclass models, else will be 1. + """ + return self._n_classes def compile(self, cache=None): """ @@ -95,7 +107,8 @@ def predict(self, data, n_jobs=os.cpu_count()): 2D float64 numpy arrays have the lowest overhead. :param n_jobs: Number of threads to use for prediction. Defaults to number of CPUs. For single-row prediction this should be set to 1. - :return: 1D numpy array, dtype float64 + :return: 1D numpy array, dtype float64. + If multiclass model: 2D numpy array of shape (n_rows, model.num_model_per_iteration()) """ if not self.is_compiled: raise RuntimeError( @@ -112,7 +125,11 @@ def predict(self, data, n_jobs=os.cpu_count()): # setup input data and predictions array ptr_data = ndarray_to_ptr(data) - predictions = np.zeros(n_predictions, dtype=np.float64) + + pred_shape = ( + n_predictions if self._n_classes == 1 else (n_predictions, self._n_classes) + ) + predictions = np.zeros(pred_shape, dtype=np.float64) ptr_preds = ndarray_to_ptr(predictions) if n_jobs == 1: diff --git a/setup.py b/setup.py index 178ea39..e380123 100644 --- a/setup.py +++ b/setup.py @@ -25,5 +25,5 @@ long_description=long_description, long_description_content_type="text/markdown", python_requires=">=3.6", - install_requires=["llvmlite>=0.36", "numpy"], + install_requires=["llvmlite>=0.36", "numpy", "dataclasses; python_version < '3.7'"], ) diff --git a/tests/models/multiclass/model.txt b/tests/models/multiclass/model.txt new file mode 100644 index 0000000..b5615b6 --- /dev/null +++ b/tests/models/multiclass/model.txt @@ -0,0 +1,2422 @@ +tree +version=v3 +num_class=3 +num_tree_per_iteration=3 +label_index=0 +max_feature_idx=12 +objective=multiclass num_class:3 +feature_names=0 1 2 3 4 5 6 7 8 9 10 11 12 +feature_infos=[-2.4342353470856879:2.1609503228013156] [-1.2983335777173202:2.9745429953195082] [-3.6791622340370145:3.1197718608779978] [-2.6710181364687169:3.1545107139410429] [-2.0882551982316313:4.3713721395547669] [-1.9149662374549228:2.5395154667814048] [-1.5654548527235288:1.7175163293202751] [-1.7876559632056976:2.4024031898537941] [-2.0515133394236567:3.485072512025424] [-1.6342882758947095:2.8947194457156122] [-1.8314920820746869:3.3016942153020343] [-1.8950538941648829:1.9609149917344735] [-1.3849148584226467:2.5479349087557956] +tree_sizes=544 551 447 556 660 558 658 659 558 659 662 557 660 659 559 655 661 657 659 657 657 659 662 658 662 659 656 660 657 657 663 664 658 663 658 657 660 658 657 658 663 656 665 663 655 660 657 660 662 663 657 657 662 657 663 658 662 658 764 657 662 766 658 663 658 662 659 762 657 659 767 660 663 659 661 553 660 660 555 762 663 665 761 655 555 656 657 665 764 661 659 762 656 658 658 662 664 766 658 660 663 666 662 658 656 663 663 665 658 767 662 767 763 664 660 766 663 659 769 764 + +Tree=0 +num_leaves=4 +num_cat=0 +split_feature=12 6 0 +split_gain=59.8697 2.92663 3.55271e-15 +threshold=0.40795511641254606 0.15132824247368962 -0.69868807122782772 +decision_type=2 2 2 +left_child=1 2 -1 +right_child=-2 -3 -4 +leaf_value=-1.160925920495363 -1.076627673852488 -1.1380449678351541 -1.160925920495363 +leaf_weight=8.5223724246025103 12.455775082111357 6.5556710958480826 13.111342191696169 +leaf_count=26 38 20 40 +internal_value=-1.1314 -1.1556 -1.16093 +internal_weight=0 28.1894 21.6337 +internal_count=124 86 66 +is_linear=0 +shrinkage=1 + + +Tree=1 +num_leaves=4 +num_cat=0 +split_feature=9 9 0 +split_gain=61.792 2.26404 0.721063 +threshold=-0.53556051917167058 -0.090013436720989409 -0.85309619185575125 +decision_type=2 2 2 +left_child=2 -2 -1 +right_child=1 -3 -4 +leaf_value=-0.87784902076425253 -0.94251000009467512 -0.96152793519185831 -0.8904008579283933 +leaf_weight=9.6798581779003161 7.887291848659518 19.718229621648788 7.1702653169631949 +leaf_count=27 22 55 20 +internal_value=-0.928461 -0.956094 -0.88319 +internal_weight=0 27.6055 16.8501 +internal_count=124 77 47 +is_linear=0 +shrinkage=1 + + +Tree=2 +num_leaves=3 +num_cat=0 +split_feature=11 8 +split_gain=61.9495 0.505091 +threshold=-0.68035307296581804 -0.31695005052030539 +decision_type=2 2 +left_child=-1 -2 +right_child=1 -3 +leaf_value=-1.2070661441972923 -1.2829264408864776 -1.2927986712775361 +leaf_weight=11.547542154788969 6.0776537656784084 20.056257426738739 +leaf_count=38 20 66 +internal_value=-1.26493 -1.2905 +internal_weight=0 26.1339 +internal_count=124 86 +is_linear=0 +shrinkage=1 + + +Tree=3 +num_leaves=4 +num_cat=0 +split_feature=12 6 9 +split_gain=55.7113 2.85964 0.000161186 +threshold=0.40795511641254606 0.15132824247368962 -0.2197844316095374 +decision_type=2 2 2 +left_child=1 2 -1 +right_child=-2 -3 -4 +leaf_value=-0.029054555287911489 0.051840344709510128 -0.0064406419777528227 -0.029219644756495307 +leaf_weight=10.939959913492205 12.784547895193098 6.5283163189887992 10.366198152303697 +leaf_count=34 38 20 32 +internal_value=0 -0.0238122 -0.0291349 +internal_weight=0 27.8345 21.3062 +internal_count=124 86 66 +is_linear=0 +shrinkage=0.03 + + +Tree=4 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=58.1961 2.18516 0.687031 7.6376e-05 +threshold=-0.53556051917167058 -0.090013436720989409 -0.59197591750974599 0.40795511641254606 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.048686944957037501 -0.013735965837632463 -0.032528136958421092 0.036506394068981436 -0.032408937432166711 +leaf_weight=9.8023761808872241 7.8556687831878689 10.656040698289873 7.2500125467777243 8.8604672551155073 +leaf_count=27 22 30 20 25 +internal_value=0 -0.0270963 0.0435082 -0.032474 +internal_weight=0 27.3722 17.0524 19.5165 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=5 +num_leaves=4 +num_cat=0 +split_feature=11 11 9 +split_gain=57.3497 0.509548 4.27576e-05 +threshold=-0.68035307296581804 0.18829925847304788 -0.32143837760556654 +decision_type=2 2 2 +left_child=-1 -2 -3 +right_child=1 2 -4 +leaf_value=0.054290229991174742 -0.017581036621012472 -0.027532359386351249 -0.027620852786142396 +leaf_weight=11.951980292797087 5.9862624704837826 10.432896345853807 9.2893663942813856 +leaf_count=38 20 35 31 +internal_value=0 -0.0252472 -0.027574 +internal_weight=0 25.7085 19.7223 +internal_count=124 86 66 +is_linear=0 +shrinkage=0.03 + + +Tree=6 +num_leaves=5 +num_cat=0 +split_feature=12 0 4 6 +split_gain=52.0411 3.31427 0.466542 0.000389649 +threshold=0.057660805165883171 0.67863236477324995 0.19367837218204209 -0.18500060950939104 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.028769607840018391 0.027789742130465821 0.05591069751349171 -0.019491543023438276 -0.029051382370212046 +leaf_weight=11.757055491209032 6.7098362147808066 8.6149447262287122 6.3850463330745688 7.0746307075023678 +leaf_count=37 20 25 20 22 +internal_value=0 0.0435982 -0.0264994 -0.0288755 +internal_weight=0 15.3248 25.2167 18.8317 +internal_count=124 45 79 59 +is_linear=0 +shrinkage=0.03 + + +Tree=7 +num_leaves=5 +num_cat=0 +split_feature=9 9 4 12 +split_gain=54.8897 2.11187 0.639706 0.000275661 +threshold=-0.53556051917167058 -0.090013436720989409 -0.22760167158663605 0.40795511641254606 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.046872795158679516 -0.013435199501205598 -0.032016976997934633 0.035173880826286495 -0.031789214763364854 +leaf_weight=9.9064118564128893 7.8228748738765743 10.549117594957353 7.3111864030361167 8.7488347887992841 +leaf_count=27 22 30 20 25 +internal_value=0 -0.0265837 0.041905 -0.0319137 +internal_weight=0 27.1208 17.2176 19.298 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=8 +num_leaves=4 +num_cat=0 +split_feature=11 8 9 +split_gain=53.2616 0.507883 0.000241919 +threshold=-0.68035307296581804 -0.31695005052030539 -0.32143837760556654 +decision_type=2 2 2 +left_child=-1 -2 -3 +right_child=1 2 -4 +leaf_value=0.05114605913236267 -0.017237202248139669 -0.027182077446171758 -0.027394182399502462 +leaf_weight=12.315645992755888 5.9077630341053036 9.9124868810176867 9.4566895961761457 +leaf_count=38 20 34 32 +internal_value=0 -0.0249371 -0.0272856 +internal_weight=0 25.2769 19.3692 +internal_count=124 86 66 +is_linear=0 +shrinkage=0.03 + + +Tree=9 +num_leaves=5 +num_cat=0 +split_feature=12 0 0 9 +split_gain=48.9009 2.92413 0.463417 0.000779099 +threshold=0.057660805165883171 0.67863236477324995 0.16599740428854384 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.028378503412594465 0.026842118978627681 0.053057539352447183 -0.019115304248313873 -0.028779844809936884 +leaf_weight=11.542034775018694 6.7760121226310721 8.8058095276355726 6.3071344792842856 6.9892495572567013 +leaf_count=37 20 25 20 22 +internal_value=0 0.0416573 -0.0261393 -0.0285299 +internal_weight=0 15.5818 24.8384 18.5313 +internal_count=124 45 79 59 +is_linear=0 +shrinkage=0.03 + + +Tree=10 +num_leaves=5 +num_cat=0 +split_feature=9 9 5 12 +split_gain=51.726 2.03274 0.621186 0.000519945 +threshold=-0.53556051917167058 -0.090013436720989409 1.0000000180025095e-35 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.04525791533979942 -0.013168806957112242 -0.031510882544457469 0.033774336327288303 -0.031197366875749481 +leaf_weight=9.9852074980735797 7.7913399934768703 9.7348405718803424 7.3674890995025626 9.3175523877143842 +leaf_count=27 22 28 20 27 +internal_value=0 -0.0260783 0.0403823 -0.0313576 +internal_weight=0 26.8437 17.3527 19.0524 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=11 +num_leaves=4 +num_cat=0 +split_feature=11 11 9 +split_gain=49.7591 0.50991 0.000262646 +threshold=-0.68035307296581804 0.18829925847304788 -0.53556051917167058 +decision_type=2 2 2 +left_child=-1 -2 -3 +right_child=1 2 -4 +leaf_value=0.048485826156965166 -0.016880469838500299 -0.026898594938033229 -0.027123345491267305 +leaf_weight=12.625480324029921 5.8231173455715206 8.2918706536293048 10.74210664629936 +leaf_count=38 20 29 37 +internal_value=0 -0.0246488 -0.0270254 +internal_weight=0 24.8571 19.034 +internal_count=124 86 66 +is_linear=0 +shrinkage=0.03 + + +Tree=12 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=46.0309 2.63693 0.464502 0.00123134 +threshold=0.057660805165883171 0.93339658328254049 0.19367837218204209 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.027987948450652354 0.025874651375313553 0.050609826849633742 -0.018715735521319572 -0.028483865732578547 +leaf_weight=10.087048858404161 6.8393987119197837 8.9612390398979169 6.2209043502807608 8.1444468200206774 +leaf_count=33 20 25 20 26 +internal_value=0 0.0399031 -0.0257942 -0.0282095 +internal_weight=0 15.8006 24.4524 18.2315 +internal_count=124 45 79 59 +is_linear=0 +shrinkage=0.03 + + +Tree=13 +num_leaves=5 +num_cat=0 +split_feature=9 9 10 12 +split_gain=48.7907 1.95916 0.590739 0.000799202 +threshold=-0.53556051917167058 -0.090013436720989409 0.42798735651421199 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.043936181047229544 -0.012912113452693006 -0.031022464623076638 0.03283335883923387 -0.030631055374589024 +leaf_weight=9.6634313166141528 7.758660405874255 9.6150564849376696 7.7894596159458152 9.1752868890762311 +leaf_count=26 22 28 21 27 +internal_value=0 -0.0255946 0.0389808 -0.0308313 +internal_weight=0 26.549 17.4529 18.7903 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=14 +num_leaves=4 +num_cat=0 +split_feature=11 8 9 +split_gain=46.6118 0.509152 0.000540558 +threshold=-0.68035307296581804 -0.31695005052030539 -0.53556051917167058 +decision_type=2 2 2 +left_child=-1 -2 -3 +right_child=1 2 -4 +leaf_value=0.046122087408561017 -0.016562941396805451 -0.026588244996794734 -0.026913835866999161 +leaf_weight=12.898480176925657 5.7484371364116695 8.1031278073787707 10.582882285118101 +leaf_count=38 20 29 37 +internal_value=0 -0.0243707 -0.0267726 +internal_weight=0 24.4344 18.686 +internal_count=124 86 66 +is_linear=0 +shrinkage=0.03 + + +Tree=15 +num_leaves=5 +num_cat=0 +split_feature=12 0 0 9 +split_gain=43.3927 2.41452 0.4605 0.00206636 +threshold=0.057660805165883171 0.67863236477324995 0.16599740428854384 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.027640342772054721 0.024927908298270192 0.048468725957340038 -0.018375809795996952 -0.028303810647680346 +leaf_weight=11.089311867952349 6.899641126394271 9.0841550529003126 6.1451032757759085 6.8250413835048702 +leaf_count=37 20 25 20 22 +internal_value=0 0.038307 -0.0254623 -0.0278931 +internal_weight=0 15.9838 24.0595 17.9144 +internal_count=124 45 79 59 +is_linear=0 +shrinkage=0.03 + + +Tree=16 +num_leaves=5 +num_cat=0 +split_feature=9 9 5 12 +split_gain=46.0798 1.89254 0.570989 0.0011799 +threshold=-0.53556051917167058 -0.090013436720989409 1.0000000180025095e-35 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.042346721347262556 -0.012659864809531182 -0.030571042245737378 0.031389475200439929 -0.03009192445633661 +leaf_weight=10.083292603492739 7.7243674695491817 9.4919611215591448 7.4372462034225455 9.0237718820571882 +leaf_count=27 22 28 20 27 +internal_value=0 -0.0251337 0.0376955 -0.0303375 +internal_weight=0 26.2401 17.5205 18.5157 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=17 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=44.106 3.74924 0.00135823 0.00138293 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.054738844291569069 -0.026380281587914042 0.024529341309200828 -0.027182290778676933 -0.026535134064904046 +leaf_weight=7.6498932242393494 10.441751062870024 7.1562533378601056 5.7725887298584002 6.1252035796642303 +leaf_count=22 38 22 20 22 +internal_value=0 0.0401377 -0.02663 -0.0268491 +internal_weight=0 14.8061 22.3395 11.8978 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=18 +num_leaves=5 +num_cat=0 +split_feature=12 3 4 9 +split_gain=40.9552 2.21743 0.469191 0.00260066 +threshold=0.057660805165883171 -0.70415143697469984 0.19367837218204209 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.027285180057195855 0.047525318922464352 0.025262951961506339 -0.017927512079366822 -0.028017680275060505 +leaf_weight=9.674000889062885 8.3945191502571124 7.7389293313026419 6.0419974327087393 7.9447170495986947 +leaf_count=33 23 22 20 26 +internal_value=0 0.0368465 -0.0251416 -0.0276155 +internal_weight=0 16.1334 23.6607 17.6187 +internal_count=124 45 79 59 +is_linear=0 +shrinkage=0.03 + + +Tree=19 +num_leaves=5 +num_cat=0 +split_feature=9 0 10 9 +split_gain=43.572 1.84267 0.554279 0.00462519 +threshold=-0.53556051917167058 0.073352531911790655 0.42798735651421199 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.041299342504486102 -0.012953033768233929 -0.030711862701172314 0.030576946092242669 -0.029729981831890791 +leaf_weight=9.7205685675144213 8.2156873643398303 7.4684363305568722 7.8373257219791403 10.234693765640257 +leaf_count=26 24 22 21 31 +internal_value=0 -0.024695 0.0365132 -0.0301442 +internal_weight=0 25.9188 17.5579 17.7031 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=20 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=41.6516 3.43957 0.00168471 0.00168897 +threshold=-0.4560716245405308 -1.173391274718697 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.052291930329365924 -0.026114347438107244 0.023559059643025047 -0.027011846613604232 -0.026290724039695637 +leaf_weight=7.7911074161529541 10.209098309278486 7.2285119593143445 5.694889575242998 6.0058529376983643 +leaf_count=22 38 22 20 22 +internal_value=0 0.0384636 -0.026396 -0.0266417 +internal_weight=0 15.0196 21.9098 11.7007 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=21 +num_leaves=5 +num_cat=0 +split_feature=12 0 11 9 +split_gain=38.6796 3.81712 0.112885 0.00248098 +threshold=1.0000000180025095e-35 0.57363484274626197 0.5202233200797689 -0.32143837760556654 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.026902671538969081 0.016451868254956207 0.045355368006771556 -0.022586522437121219 -0.02765950561491751 +leaf_weight=6.5665757060051009 6.8310306966304806 10.332064896821974 6.1865047216415396 9.5930891931056976 +leaf_count=23 20 28 21 32 +internal_value=0 0.0338516 -0.0260327 -0.027352 +internal_weight=0 17.1631 22.3462 16.1597 +internal_count=124 48 76 55 +is_linear=0 +shrinkage=0.03 + + +Tree=22 +num_leaves=5 +num_cat=0 +split_feature=9 9 5 12 +split_gain=41.2724 1.79992 0.542542 0.00194168 +threshold=-0.53556051917167058 -0.090013436720989409 1.0000000180025095e-35 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.039969409736149084 -0.012079928855585892 -0.029768952544904654 0.029303386396292333 -0.029144732785607676 +leaf_weight=10.104186147451403 7.6392093300819424 9.2422050535678881 7.4617461562156668 8.7127382159233075 +leaf_count=27 22 28 20 27 +internal_value=0 -0.0242767 0.0354386 -0.029466 +internal_weight=0 25.5942 17.5659 17.9549 +internal_count=124 77 47 55 +is_linear=0 +shrinkage=0.03 + + +Tree=23 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=39.4622 3.21066 0.00211489 0.00207714 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.050236041029766969 -0.025858266100425416 0.022634672646722691 -0.02686726899751312 -0.026061223553466548 +leaf_weight=7.902476042509079 9.9728296101093274 7.2936796247959119 5.6262827813625353 5.8889938294887543 +leaf_count=22 38 22 20 22 +internal_value=0 0.0369882 -0.0261781 -0.0264551 +internal_weight=0 15.1962 21.4881 11.5153 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=24 +num_leaves=5 +num_cat=0 +split_feature=12 0 4 9 +split_gain=36.6444 3.49177 0.112638 0.00315597 +threshold=1.0000000180025095e-35 0.57363484274626197 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.026651070607124891 0.016061096125242855 0.043649128688889934 -0.022177183031387014 -0.027494021894426166 +leaf_weight=8.6899859309196508 6.8472539186477688 10.401002734899519 5.8476366996765128 7.4023912549018869 +leaf_count=31 20 28 20 25 +internal_value=0 0.0326972 -0.0257431 -0.0270388 +internal_weight=0 17.2483 21.94 16.0924 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=25 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=39.2094 3.4665 0.0107373 0.00212617 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.038437270924049041 -0.0070833792871239061 -0.029362576545982781 0.04004564025955723 -0.028703690762858697 +leaf_weight=7.480472207069397 10.21323597431183 9.1020601987838763 7.4621743857860547 8.546561658382414 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0209936 0.0392405 -0.0290435 +internal_weight=0 27.8619 14.9426 17.6486 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=26 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=37.3098 2.94609 0.00239941 0.00234358 +threshold=-0.4560716245405308 -1.173391274718697 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.048129814536673622 -0.025613042625794755 0.021823191730300034 -0.026695950175939492 -0.025832068689759412 +leaf_weight=8.0077191889286023 9.737078979611395 7.346401333808898 5.5430290400981921 5.7664697766304016 +leaf_count=22 38 22 20 22 +internal_value=0 0.035543 -0.0259583 -0.0262555 +internal_weight=0 15.3541 21.0466 11.3095 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=27 +num_leaves=5 +num_cat=0 +split_feature=12 12 11 9 +split_gain=34.7326 3.27295 0.116124 0.00310223 +threshold=1.0000000180025095e-35 0.89359041154996521 0.5202233200797689 -0.32143837760556654 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.026308999308107702 0.015517537440071366 0.04218987150839356 -0.021901005560485052 -0.027172473871817964 +leaf_weight=6.2704673260450372 6.858837395906451 10.447623312473295 5.9622813463211051 9.2966446876525879 +leaf_count=23 20 28 21 32 +internal_value=0 0.0316192 -0.0254611 -0.0268247 +internal_weight=0 17.3065 21.5294 15.5671 +internal_count=124 48 76 55 +is_linear=0 +shrinkage=0.03 + + +Tree=28 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=37.2115 1.73569 0.533349 0.00728668 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.038471305367267165 -0.012028612474591143 -0.02969571016562092 0.027975863618890449 -0.028435501299396072 +leaf_weight=9.3158277273178118 8.0278137922287005 7.1942457556724575 8.1875154972076398 9.6931234002113325 +leaf_count=25 24 22 22 31 +internal_value=0 -0.023513 0.0335619 -0.0289724 +internal_weight=0 24.9152 17.5033 16.8874 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=29 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=35.3098 2.80306 0.0026064 0.00255983 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.046425554673388346 -0.025381362453191204 0.020874938587407344 -0.026521620684584607 -0.025610236446820357 +leaf_weight=8.0813623666763288 9.504984036087988 7.4053776264190665 5.4552626460790652 5.6424577534198761 +leaf_count=22 38 22 20 22 +internal_value=0 0.0342079 -0.025746 -0.0260582 +internal_weight=0 15.4867 20.6027 11.0977 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=30 +num_leaves=5 +num_cat=0 +split_feature=12 0 4 9 +split_gain=32.9128 3.03691 0.117805 0.00385139 +threshold=1.0000000180025095e-35 0.57363484274626197 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.026101530500320068 0.015108810849012414 0.040774415109973643 -0.021474027013610009 -0.02705047134329264 +leaf_weight=8.3058178871870041 6.8776066601276424 10.459471285343168 5.6311249732971183 7.1741220653057107 +leaf_count=31 20 28 20 25 +internal_value=0 0.0305929 -0.0251897 -0.0265413 +internal_weight=0 17.3371 21.1111 15.4799 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=31 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=35.4559 3.22668 0.0143878 0.00283851 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.036400848059887456 -0.0069173053197471614 -0.028671813065647044 0.038269048046931119 -0.027896807704741806 +leaf_weight=7.4154468476772308 10.129100918769838 8.8324316740036029 7.4250805974006635 8.2038513123989087 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0203262 0.0373356 -0.0282986 +internal_weight=0 27.1654 14.8405 17.0363 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=32 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=33.5355 2.59712 0.00292381 0.00310985 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.04474824644240747 -0.025159166792595566 0.02022846008101933 -0.026396343862859807 -0.025382807021563605 +leaf_weight=8.1432277560234052 9.2721383273601514 7.4396215677261344 5.3887196630239504 5.5110550373792648 +leaf_count=22 38 22 20 22 +internal_value=0 0.0330419 -0.0255508 -0.0258839 +internal_weight=0 15.5828 20.1719 10.8998 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=33 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=31.2507 2.88015 0.119681 0.0042067 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.025841050779530347 0.014589420517081699 0.039580610306491862 -0.021150796989430336 -0.026842616997138607 +leaf_weight=8.1103671044111252 6.8794412314891842 10.462075293064116 5.5273421406745902 7.0592634379863748 +leaf_count=31 20 28 20 25 +internal_value=0 0.0296665 -0.0249301 -0.0263071 +internal_weight=0 17.3415 20.697 15.1696 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=34 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=33.6718 3.11719 0.0161347 0.00285011 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.03545430865513001 -0.00682491299258657 -0.028313101279326139 0.037438435396931098 -0.027528835625627537 +leaf_weight=7.362843930721283 10.100174069404604 8.6786511540412921 7.391686797142027 8.028244346380232 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0199821 0.0364483 -0.0279362 +internal_weight=0 26.8071 14.7545 16.7069 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=35 +num_leaves=5 +num_cat=0 +split_feature=6 6 9 12 +split_gain=31.802 2.52086 0.00309494 0.00332188 +threshold=-0.4560716245405308 -1.2542251687988866 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.042534382223716777 -0.024947827450461486 0.018279767570614839 -0.026235116228453658 -0.025177241610049559 +leaf_weight=8.7948068678379041 9.0415396243333799 6.8684180974960318 5.3007659912109393 5.3859801590442657 +leaf_count=24 38 20 20 22 +internal_value=0 0.0318986 -0.0253563 -0.025702 +internal_weight=0 15.6632 19.7283 10.6867 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=36 +num_leaves=5 +num_cat=0 +split_feature=12 12 11 9 +split_gain=29.6937 2.68736 0.122242 0.00362037 +threshold=1.0000000180025095e-35 0.89359041154996521 0.5202233200797689 -0.32143837760556654 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.025540462314200724 0.014249747123745016 0.038396301716292443 -0.020915072298743842 -0.02650344596883094 +leaf_weight=5.8327870666980752 6.883285820484164 10.439495801925657 5.6138688772916785 8.8370090425014496 +leaf_count=23 20 28 21 32 +internal_value=0 0.0288016 -0.0246798 -0.0261206 +internal_weight=0 17.3228 20.2837 14.6698 +internal_count=124 48 76 55 +is_linear=0 +shrinkage=0.03 + + +Tree=37 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=32.0756 1.66344 0.546855 0.00998558 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.036236082612354753 -0.011129736497623959 -0.028868125153485857 0.025527937574259835 -0.027356397712478379 +leaf_weight=9.1835390627384204 7.8172336220741299 6.9112315773963955 8.0588801801204664 9.1241537034511548 +leaf_count=25 24 22 22 31 +internal_value=0 -0.0224764 0.0312312 -0.028008 +internal_weight=0 23.8526 17.2424 16.0354 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=38 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=30.1761 2.39872 0.00324899 0.00373533 +threshold=-0.4560716245405308 -1.173391274718697 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.042031056043429507 -0.024746266677627745 0.018576638051431595 -0.026096099476681359 -0.024963005331218972 +leaf_weight=8.2101022601127607 8.8122080564498884 7.5179346799850455 5.2219293415546435 5.2518272548913956 +leaf_count=22 38 22 20 22 +internal_value=0 0.0308199 -0.0251708 -0.0255279 +internal_weight=0 15.728 19.286 10.4738 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=39 +num_leaves=5 +num_cat=0 +split_feature=12 0 4 9 +split_gain=28.202 2.56261 0.123965 0.00464668 +threshold=1.0000000180025095e-35 0.57363484274626197 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.025367274433392161 0.013785650257502549 0.037380333542212804 -0.020518768169885852 -0.026441739682108997 +leaf_weight=7.726591721177102 6.8910444676876095 10.387940943241118 5.3187207877635947 6.8196863830089578 +leaf_count=31 20 28 20 25 +internal_value=0 0.0279705 -0.024438 -0.025871 +internal_weight=0 17.279 19.865 14.5463 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=40 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=30.6106 2.92191 0.0193677 0.00344341 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.033848440796944081 -0.0066522742685400189 -0.027724026754298348 0.036038540237140079 -0.026844851460290517 +leaf_weight=7.2323636114597321 10.003518581390383 8.4009887278080004 7.3042258918285352 7.669891655445098 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0193812 0.0349489 -0.0273044 +internal_weight=0 26.0744 14.5366 16.0709 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=41 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=28.7385 2.29834 0.00350591 0.00426411 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.040865366702472698 -0.024552487075150418 0.017926907614617845 -0.025983009490680518 -0.024760678335849436 +leaf_weight=8.2183665335178357 8.5844715237617475 7.5360775887966147 5.1542246788740176 5.1202068626880646 +leaf_count=22 38 22 20 22 +internal_value=0 0.0298928 -0.025 -0.0253739 +internal_weight=0 15.7544 18.8589 10.2744 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=42 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=26.8355 2.41376 0.126086 0.00491209 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.025142692833403736 0.013448678516653007 0.036381924191610397 -0.020216153252493867 -0.026259127600175319 +leaf_weight=7.5329126864671716 6.8794921934604671 10.336974859237669 5.2160959094762793 6.7028654515743264 +leaf_count=31 20 28 20 25 +internal_value=0 0.0272181 -0.0242063 -0.0256684 +internal_weight=0 17.2165 19.4519 14.2358 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=43 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=29.1389 2.82976 0.0207071 0.00334718 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.033095338583007998 -0.0065653332671160329 -0.027410908702122247 0.035370839249692469 -0.026534684454605859 +leaf_weight=7.1498972177505493 9.9711182415485382 8.2402363121509534 7.247608929872511 7.4901549816131601 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0190683 0.0342408 -0.0269937 +internal_weight=0 25.7015 14.3975 15.7304 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=44 +num_leaves=5 +num_cat=0 +split_feature=6 6 9 12 +split_gain=27.3209 2.24334 0.0036219 0.00444735 +threshold=-0.4560716245405308 -1.2542251687988866 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.038935567319411279 -0.024368475371124312 0.016121356325258487 -0.025839655675582291 -0.02457822583414233 +leaf_weight=8.8789524734020215 8.3588321954011899 6.8885672390460959 5.0668629705905932 4.9954795390367508 +leaf_count=24 38 20 20 22 +internal_value=0 0.0289684 -0.02483 -0.0252134 +internal_weight=0 15.7675 18.4212 10.0623 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=45 +num_leaves=5 +num_cat=0 +split_feature=12 0 5 9 +split_gain=25.5503 2.30542 0.128915 0.00474668 +threshold=1.0000000180025095e-35 0.57363484274626197 -0.1363782188569643 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.024684168821149117 0.013076633539068976 0.035524092408941679 -0.019898248507999705 -0.025861980737086784 +leaf_weight=4.5900722444057473 6.8804395496845272 10.255078196525572 5.0944133698940268 9.3574855923652649 +leaf_count=20 20 28 20 36 +internal_value=0 0.0265107 -0.0239826 -0.0254744 +internal_weight=0 17.1355 19.042 13.9476 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=46 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=27.8143 1.60164 0.560457 0.0124328 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.034448907883466703 -0.010310024959324983 -0.028162977925563049 0.023473396848621483 -0.026430193347703208 +leaf_weight=8.9722229540348071 7.5995350480079678 6.6160399615764609 7.8516708314418784 8.5333547890186292 +leaf_count=25 24 22 22 31 +internal_value=0 -0.021549 0.0293267 -0.0271869 +internal_weight=0 22.7489 16.8239 15.1494 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=47 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=25.9845 2.15128 0.00372672 0.00482086 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.038733118718370388 -0.024192936514124082 0.016554254503698664 -0.025715769858178458 -0.024388373124194021 +leaf_weight=8.2004274129867536 8.1354511529207212 7.5690936744213095 4.9885507225990313 4.8628020733594894 +leaf_count=22 38 22 20 22 +internal_value=0 0.0280877 -0.0246681 -0.0250605 +internal_weight=0 15.7695 17.9868 9.85135 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=48 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=24.313 2.19278 0.131073 0.00525061 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.024733537267012669 0.012717007330134832 0.034663888513226243 -0.019617800736767898 -0.025913091658009629 +leaf_weight=7.156671181321145 6.8608156442642239 10.171771109104155 5.0090065300464621 6.464061528444291 +leaf_count=31 20 28 20 25 +internal_value=0 0.0258236 -0.0237673 -0.0252933 +internal_weight=0 17.0326 18.6297 13.6207 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=49 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=26.6027 2.66488 0.0230547 0.00363327 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.031811966890883336 -0.0063991322167030991 -0.026893968621167857 0.034238903677925758 -0.025961349850131283 +leaf_weight=6.9712399244308472 9.8639137446880341 7.9530143737792969 7.1214410960674268 7.1299640089273453 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0185238 0.0330384 -0.0264531 +internal_weight=0 24.9469 14.0927 15.083 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=50 +num_leaves=5 +num_cat=0 +split_feature=6 6 9 12 +split_gain=24.8032 2.07823 0.00392326 0.0050974 +threshold=-0.4560716245405308 -1.2542251687988866 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.036925737789292055 -0.024023691819640168 0.01494396668728566 -0.025601977218642526 -0.024223045722009891 +leaf_weight=8.8723423480987531 7.9157014936208716 6.8667687475681296 4.9122904390096682 4.7415923327207565 +leaf_count=24 38 20 20 22 +internal_value=0 0.0273354 -0.0245188 -0.0249247 +internal_weight=0 15.7391 17.5696 9.65388 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=51 +num_leaves=5 +num_cat=0 +split_feature=12 0 11 9 +split_gain=23.175 2.09527 0.132841 0.003759 +threshold=1.0000000180025095e-35 0.57363484274626197 0.5202233200797689 -0.32143837760556654 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.024508184618497447 0.012407722939132377 0.033912853552186574 -0.019417141465187068 -0.025547115624544581 +leaf_weight=5.1322473734617242 6.8555328398942974 10.062505841255186 5.0418420135974875 8.0513303428888321 +leaf_count=23 20 28 21 32 +internal_value=0 0.0251985 -0.0235588 -0.0251427 +internal_weight=0 16.918 18.2254 13.1836 +internal_count=124 48 76 55 +is_linear=0 +shrinkage=0.03 + + +Tree=52 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=25.379 2.59029 0.024249 0.00355435 +threshold=-0.67830861354907324 -0.090013436720989409 -0.81329823234286491 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.031202220610950793 -0.0063027358761911182 -0.026626120507176412 0.033707164834629884 -0.025693031056467242 +leaf_weight=6.8670460879802704 9.8257997632026672 7.7967981398105621 7.0476332604885084 6.9485838711261749 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0182351 0.0324709 -0.0261864 +internal_weight=0 24.5712 13.9147 14.7454 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=53 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=23.6205 2.02066 0.00399896 0.00543138 +threshold=-0.4560716245405308 -1.2382679850281793 -0.53556051917167058 1.0050476924011762 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.036933933538388489 -0.023863340305557344 0.01539882380372371 -0.025487064568134966 -0.024047891573635662 +leaf_weight=8.1372465491294843 7.6977241784334174 7.568901687860488 4.8346888124942797 4.6109386086463928 +leaf_count=22 38 22 20 22 +internal_value=0 0.026556 -0.0243709 -0.0247845 +internal_weight=0 15.7061 17.1434 9.44563 +internal_count=124 44 80 42 +is_linear=0 +shrinkage=0.03 + + +Tree=54 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=22.1025 2.01091 0.136892 0.00556062 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.024291879888089861 0.012074745099730196 0.033210101954193112 -0.019029737118447659 -0.025534690670104093 +leaf_weight=6.0751714408397683 6.8305982500314739 9.9580094218254072 4.8048354089260092 6.9429889172315606 +leaf_count=28 20 28 20 28 +internal_value=0 0.024611 -0.0233574 -0.0249547 +internal_weight=0 16.7886 17.823 13.0182 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=55 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=24.248 1.55382 0.572326 0.0141568 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.033000613222974443 -0.0095308800690956114 -0.027554444083292013 0.021728702460703238 -0.025651139500715195 +leaf_weight=8.7022728621959704 7.3741230219602611 6.3099885135889036 7.5899500846862784 7.9464835077524185 +leaf_count=25 24 22 22 31 +internal_value=0 -0.0207108 0.0277494 -0.0264936 +internal_weight=0 21.6306 16.2922 14.2565 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=56 +num_leaves=5 +num_cat=0 +split_feature=6 9 6 9 +split_gain=22.5523 0.997326 0.00574118 0.0019472 +threshold=-0.76730130846517275 0.35337079581488257 0.071010904686685181 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=-1 2 -2 -4 +right_child=1 -3 3 -5 +leaf_value=0.029829373006664262 -0.025353710878542178 -0.0076316419674003272 -0.02364680293853778 -0.024500469262801073 +leaf_weight=13.364578098058699 5.279856592416766 3.9576950371265402 4.2858586162328702 5.4791273772716522 +leaf_count=37 23 17 22 25 +internal_value=0 -0.0210317 -0.0245567 -0.0241258 +internal_weight=0 19.0025 15.0448 9.76499 +internal_count=124 87 70 47 +is_linear=0 +shrinkage=0.03 + + +Tree=57 +num_leaves=5 +num_cat=0 +split_feature=12 0 5 9 +split_gain=21.0917 1.93035 0.137647 0.00467659 +threshold=1.0000000180025095e-35 0.57363484274626197 -0.1363782188569643 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.024041867557584678 0.01178573622660571 0.032555211587635323 -0.018773794135137526 -0.02522924160580314 +leaf_weight=4.7770215123891839 6.8225490450859096 9.8304176628589612 4.6933670789003363 7.9597348421812066 +leaf_count=23 20 28 20 33 +internal_value=0 0.0240462 -0.0231656 -0.0247839 +internal_weight=0 16.653 17.4301 12.7368 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=58 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 12 +split_gain=23.2346 2.7428 0.514966 0.0346378 0.0249935 +threshold=-0.67830861354907324 -0.57866837472720112 1.0000000180025095e-35 0.26253109939289909 -0.81329823234286491 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.030164158758790655 0.0009437634406512565 -0.016635739527560759 -0.028612453209761551 -0.02533909671631181 0.032741941263495881 +leaf_weight=6.6534187793731689 5.4519018977880505 6.666078299283984 6.2327316105365735 5.4564979523420334 6.8913402557373029 +leaf_count=20 18 23 21 22 20 +internal_value=0 -0.0177403 -0.0232898 -0.0270845 0.0314757 +internal_weight=0 23.8072 18.3553 11.6892 13.5448 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=59 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=21.606 1.91482 0.00439677 0.00648637 +threshold=-0.4560716245405308 -1.173391274718697 -0.57881751746785304 0.93339658328254049 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.035445752446557358 -0.023515473689988815 0.014393058418323166 -0.025316100022488092 -0.023762886815022033 +leaf_weight=8.0451684892177564 6.660123839974406 7.525199860334399 4.7021174132823926 4.9854202717542648 +leaf_count=22 35 22 20 25 +internal_value=0 0.0252709 -0.0241088 -0.0245168 +internal_weight=0 15.5704 16.3477 9.68754 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=60 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=20.082 1.8852 0.140713 0.00564891 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023946904026053106 0.011341311305223757 0.031946304612575541 -0.018501419979280155 -0.025230490036396588 +leaf_weight=5.7428672909736642 6.7909451723098782 9.7107537388801557 4.6157125234603873 6.6691594570875177 +leaf_count=28 20 28 20 28 +internal_value=0 0.0234667 -0.0229735 -0.0246366 +internal_weight=0 16.5017 17.0277 12.412 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=61 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 12 +split_gain=22.2034 2.65391 0.510867 0.0327695 0.0254011 +threshold=-0.67830861354907324 -0.57866837472720112 1.0000000180025095e-35 0.26253109939289909 -0.81329823234286491 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.029676873405706333 0.00092232898779182981 -0.016344169066707621 -0.028331328506442478 -0.025111743080778376 0.032295323413296953 +leaf_weight=6.5372059643268585 5.4299294501543072 6.5814201235771206 6.1222055405378324 5.3154846429824829 6.8054675459861738 +leaf_count=20 18 23 21 22 20 +internal_value=0 -0.017463 -0.0230033 -0.0268351 0.0310124 +internal_weight=0 23.449 18.0191 11.4377 13.3427 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=62 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=20.6523 1.86182 0.00452931 0.00668232 +threshold=-0.4560716245405308 -1.2382679850281793 -0.57881751746785304 0.93339658328254049 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.034745869411421916 -0.023368616417000495 0.013938693239165509 -0.025213604142386346 -0.023620434187131632 +leaf_weight=7.979100376367569 6.461280718445777 7.5162710845470446 4.6314907073974592 4.8513626605272293 +leaf_count=22 35 22 20 25 +internal_value=0 0.024653 -0.0239812 -0.0243985 +internal_weight=0 15.4954 15.9441 9.48285 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=63 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=19.1306 1.81555 0.142382 0.00580415 +threshold=1.0000000180025095e-35 0.89359041154996521 1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023774145165617277 0.011027095035128475 0.031328271889224393 -0.018247699888522567 -0.02509203835754456 +leaf_weight=5.5703932344913492 6.7692838013172176 9.5692330598831159 4.5233845710754386 6.5372377783060083 +leaf_count=28 20 28 20 28 +internal_value=0 0.0229172 -0.0227891 -0.0244857 +internal_weight=0 16.3385 16.631 12.1076 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=64 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=21.2656 1.48881 0.569115 0.0127085 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.031782670587674075 -0.008920688059768242 -0.026887668251001383 0.020318245892029029 -0.025027655890698795 +leaf_weight=8.3852525353431684 7.1763822436332729 5.9729808866977674 7.2808701694011679 7.4042619466781616 +leaf_count=25 24 22 22 31 +internal_value=0 -0.0199444 0.0264546 -0.0258582 +internal_weight=0 20.5536 15.6661 13.3772 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=65 +num_leaves=5 +num_cat=0 +split_feature=6 9 6 9 +split_gain=19.8208 0.937185 0.00579681 0.0021042 +threshold=-0.76730130846517275 0.35337079581488257 0.071010904686685181 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=-1 2 -2 -4 +right_child=1 -3 3 -5 +leaf_value=0.027883427530536069 -0.025036531538821127 -0.0072925911466978416 -0.02323997716471372 -0.024161175570269939 +leaf_weight=13.178870737552645 4.9647370278835323 3.7280806750059119 3.9396779835224169 5.147339060902592 +leaf_count=37 23 17 22 25 +internal_value=0 -0.0206645 -0.0242122 -0.0237618 +internal_weight=0 17.7798 14.0518 9.08702 +internal_count=124 87 70 47 +is_linear=0 +shrinkage=0.03 + + +Tree=66 +num_leaves=5 +num_cat=0 +split_feature=12 0 5 9 +split_gain=18.279 1.75774 0.144146 0.00436763 +threshold=1.0000000180025095e-35 0.57363484274626197 -0.1363782188569643 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023583987577460112 0.010751663537485148 0.030808520937554949 -0.017976236261302871 -0.024776786091683371 +leaf_weight=4.3837594091892251 6.750936076045039 9.4195922911167127 4.3975663781166068 7.4719903916120538 +leaf_count=23 20 28 20 33 +internal_value=0 0.0224351 -0.0226151 -0.0243357 +internal_weight=0 16.1705 16.2533 11.8557 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=67 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 12 +split_gain=20.378 2.55611 0.498266 0.0320675 0.0257608 +threshold=-0.67830861354907324 -0.57866837472720112 1.0000000180025095e-35 0.26253109939289909 -0.81329823234286491 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.0288170852934913 0.0011578263122557918 -0.015917965568260185 -0.027949475322708816 -0.024695374093272601 0.031496405026164118 +leaf_weight=6.2995030283927917 5.3395209610462215 6.3919323831796673 5.9327663034200651 5.0415948331356049 6.627355217933653 +leaf_count=20 18 23 21 22 20 +internal_value=0 -0.016995 -0.0225764 -0.0264545 0.0301907 +internal_weight=0 22.7058 17.3663 10.9744 12.9269 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=68 +num_leaves=5 +num_cat=0 +split_feature=11 9 2 12 +split_gain=19.0052 1.19921 0.149799 0.00317719 +threshold=-0.51792214920082713 0.51558453942556748 0.74380026856898784 0.54329610030330222 +decision_type=2 2 2 2 +left_child=1 -1 3 -2 +right_child=2 -3 -4 -5 +leaf_value=0.016084614779143941 -0.024318306923958061 0.033465480473660686 -0.017208368885668318 -0.023331555729839609 +leaf_weight=6.8272366076707858 7.2892777025699633 7.4945753812789917 3.9638292640447608 4.9182984232902527 +leaf_count=20 36 21 20 27 +internal_value=0 0.02518 -0.0222755 -0.0239208 +internal_weight=0 14.3218 16.1714 12.2076 +internal_count=124 41 83 63 +is_linear=0 +shrinkage=0.03 + + +Tree=69 +num_leaves=5 +num_cat=0 +split_feature=6 0 12 9 +split_gain=17.4899 5.86223 0.00868926 0.00399812 +threshold=0.15132824247368962 0.073352531911790655 -0.2926335060807797 -0.32143837760556654 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023508914036140239 -0.0068972911446890254 0.0312338437148004 -0.02578815809302171 -0.024709353740912751 +leaf_weight=4.4983329027891168 5.1422330290079143 12.328006431460379 4.2782256901264182 5.6124034970998773 +leaf_count=24 20 37 18 25 +internal_value=0 0.0200102 -0.0246548 -0.0241753 +internal_weight=0 17.4702 14.389 10.1107 +internal_count=124 57 67 49 +is_linear=0 +shrinkage=0.03 + + +Tree=70 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 12 +split_gain=19.4874 2.48116 0.493425 0.0303828 0.0251474 +threshold=-0.67830861354907324 -0.57866837472720112 1.0000000180025095e-35 0.26253109939289909 -0.81329823234286491 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.028423783445423081 0.0011705669903585806 -0.015663562081224897 -0.027699612059106579 -0.024494199992251522 0.031094228343730382 +leaf_weight=6.1771159172058105 5.3089908361434963 6.3138018995523479 5.8224173188209516 4.9020066112279892 6.5273942053318006 +leaf_count=20 18 23 21 22 20 +internal_value=0 -0.0167373 -0.0223172 -0.0262345 0.0297958 +internal_weight=0 22.3472 17.0382 10.7244 12.7045 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=71 +num_leaves=5 +num_cat=0 +split_feature=6 6 9 12 +split_gain=18.2705 1.72731 0.00506268 0.00763428 +threshold=-0.4560716245405308 -1.2542251687988866 -0.57881751746785304 0.93339658328254049 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.032042049646674155 -0.022979099996351462 0.011626454129107833 -0.024991550292926813 -0.023236652231276033 +leaf_weight=8.5754823088645917 5.9044529050588599 6.6007410287857082 4.4487239569425565 4.4755022674798965 +leaf_count=24 35 20 20 25 +internal_value=0 0.0231625 -0.0236606 -0.0241115 +internal_weight=0 15.1762 14.8287 8.92423 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=72 +num_leaves=5 +num_cat=0 +split_feature=12 12 5 9 +split_gain=16.7311 1.6213 0.158771 0.00488613 +threshold=1.0000000180025095e-35 0.89359041154996521 -1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023171584329992719 0.010310660340770186 0.02980322679950909 -0.017024449755590042 -0.024476349997502238 +leaf_weight=3.8640874475240699 6.6350496411323538 9.1174358129501325 3.8607161492109325 7.7919436395168296 +leaf_count=22 20 28 18 36 +internal_value=0 0.0215928 -0.0222973 -0.0240438 +internal_weight=0 15.7525 15.5167 11.656 +internal_count=124 48 76 58 +is_linear=0 +shrinkage=0.03 + + +Tree=73 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=18.6813 1.42788 0.555181 0.0105894 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.030706942899347008 -0.0083455943451355343 -0.026247030941955435 0.019131356879621253 -0.024492055123581491 +leaf_weight=8.0304210782051069 6.9827244877815273 5.6209127604961378 6.9617201685905448 6.8841941058635712 +leaf_count=25 24 22 22 31 +internal_value=0 -0.0192128 0.0253317 -0.0252809 +internal_weight=0 19.4878 14.9921 12.5051 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=74 +num_leaves=5 +num_cat=0 +split_feature=6 9 11 9 +split_gain=17.428 0.891664 0.00619128 0.0018936 +threshold=-0.76730130846517275 0.35337079581488257 0.25892139924043511 -0.53556051917167058 +decision_type=2 2 2 2 +left_child=-1 2 -2 -4 +right_child=1 -3 3 -5 +leaf_value=0.026167759171148167 -0.024812515668931938 -0.0068817973186499079 -0.022997519149416976 -0.023888699318229335 +leaf_weight=12.903952568769457 4.5073854625225094 3.5084223896265021 4.3274172842502612 4.2565801888704264 +leaf_count=37 22 17 26 22 +internal_value=0 -0.0203128 -0.0239122 -0.0234394 +internal_weight=0 16.5998 13.0914 8.584 +internal_count=124 87 70 48 +is_linear=0 +shrinkage=0.03 + + +Tree=75 +num_leaves=4 +num_cat=0 +split_feature=6 0 9 +split_gain=16.1077 5.34757 0.00782116 +threshold=0.15132824247368962 0.073352531911790655 -0.49446637079029704 +decision_type=2 2 2 +left_child=2 -2 -1 +right_child=1 -3 -4 +leaf_value=-0.023500749569644337 -0.0066199192397235589 0.030234070964797164 -0.024963320972869497 +leaf_weight=5.4782473146915462 5.0345714539289501 11.9643557369709 8.2404347658157331 +leaf_count=30 20 37 37 +internal_value=0 0.019319 -0.0243793 +internal_weight=0 16.9989 13.7187 +internal_count=124 57 67 +is_linear=0 +shrinkage=0.03 + + +Tree=76 +num_leaves=5 +num_cat=0 +split_feature=9 4 11 12 +split_gain=17.9267 2.39727 0.48647 0.0234082 +threshold=-0.67830861354907324 -0.57866837472720112 -0.094189304596502321 -0.81329823234286491 +decision_type=2 2 2 2 +left_child=3 -2 -3 -1 +right_child=1 2 -4 -5 +leaf_value=0.027753942233342509 0.0014386217497317018 -0.016160455310891501 -0.026553444495781061 0.030375022057365437 +leaf_weight=5.9424048364162445 5.2123930603265789 7.3189035058021572 9.0847083479166013 6.3364521861076337 +leaf_count=20 18 29 37 20 +internal_value=0 -0.0162846 -0.0219163 0.0291065 +internal_weight=0 21.616 16.4036 12.2789 +internal_count=124 84 66 40 +is_linear=0 +shrinkage=0.03 + + +Tree=77 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=16.7692 1.67057 0.00512499 0.00772066 +threshold=-0.4560716245405308 -1.2382679850281793 -0.57881751746785304 0.93339658328254049 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.032007687376400008 -0.022742818327691382 0.011937269976096527 -0.024807813181123257 -0.02300412277146097 +leaf_weight=7.6155219972133636 5.5469452887773505 7.3201716244220751 4.3095272332429868 4.2345787584781647 +leaf_count=22 35 22 20 25 +internal_value=0 0.0221709 -0.0234529 -0.0239139 +internal_weight=0 14.9357 14.0911 8.54411 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=78 +num_leaves=4 +num_cat=0 +split_feature=6 0 9 +split_gain=15.3686 5.08519 0.00722441 +threshold=0.15132824247368962 0.073352531911790655 -0.49446637079029704 +decision_type=2 2 2 +left_child=2 -2 -1 +right_child=1 -3 -4 +leaf_value=-0.023364224306788414 -0.0064812332419037066 0.029677051110424842 -0.024789279835052882 +leaf_weight=5.3171679750084904 4.9837253242731121 11.762276530265806 8.0474145263433439 +leaf_count=30 20 37 37 +internal_value=0 0.0189161 -0.0242223 +internal_weight=0 16.746 13.3646 +internal_count=124 57 67 +is_linear=0 +shrinkage=0.03 + + +Tree=79 +num_leaves=6 +num_cat=0 +split_feature=9 12 10 12 9 +split_gain=17.1506 2.35206 0.638363 0.021991 0.018891 +threshold=-0.67830861354907324 -0.57286895507810998 0.60348090514247621 -0.81329823234286491 0.16520285322648809 +decision_type=2 2 2 2 2 +left_child=3 -2 4 -1 -3 +right_child=1 2 -4 -5 -6 +leaf_value=0.027440376438345859 0.001728033995355081 -0.026898321458684912 -0.012680473692815121 0.030004252017372949 -0.02443021648501079 +leaf_weight=5.8220522403717041 5.1052252054214504 5.3207128196954745 4.9668925106525412 6.2356478869914991 5.8705519884824753 +leaf_count=20 18 20 19 20 27 +internal_value=0 -0.0160227 -0.0216312 0.0287663 -0.0256036 +internal_weight=0 21.2634 16.1582 12.0577 11.1913 +internal_count=124 84 66 40 47 +is_linear=0 +shrinkage=0.03 + + +Tree=80 +num_leaves=5 +num_cat=0 +split_feature=6 10 6 12 +split_gain=16.0471 1.64331 0.00820733 0.00070366 +threshold=-0.88275748153399147 -0.31786022515591011 0.071010904686685181 0.89359041154996521 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.027730903223608928 -0.0023238878476651553 -0.024781465259075632 -0.023401404838386434 -0.022865238868157244 +leaf_weight=11.337703526020052 4.3532365113496825 4.0043797791004154 4.5871368795633298 4.2384848147630692 +leaf_count=33 19 20 26 26 +internal_value=0 -0.0182509 -0.023655 -0.0231439 +internal_weight=0 17.1832 12.83 8.82562 +internal_count=124 91 72 52 +is_linear=0 +shrinkage=0.03 + + +Tree=81 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=14.764 1.40063 0.154665 0.00558232 +threshold=1.0000000180025095e-35 0.89359041154996521 -1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.023024404506042154 0.0099784512787865522 0.028477006018449054 -0.016845227138557708 -0.024415261094864901 +leaf_weight=4.722673498094081 6.4401869177818289 8.6067320108413679 3.9823107570409801 5.7704489082097998 +leaf_count=28 20 28 20 28 +internal_value=0 0.0205595 -0.0218789 -0.0237893 +internal_weight=0 15.0469 14.4754 10.4931 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=82 +num_leaves=6 +num_cat=0 +split_feature=9 12 10 12 9 +split_gain=16.4227 2.26569 0.633903 0.020448 0.0176364 +threshold=-0.67830861354907324 -0.57286895507810998 0.60348090514247621 -0.81329823234286491 0.16520285322648809 +decision_type=2 2 2 2 2 +left_child=3 -2 4 -1 -3 +right_child=1 2 -4 -5 -6 +leaf_value=0.027149259973192463 0.0016469135494038274 -0.026659347683515151 -0.01241241746611964 0.029644401910947266 -0.024245876892082605 +leaf_weight=5.707497775554657 5.082984760403634 5.2130295634269697 4.9018710404634485 6.1316562891006452 5.709560438990593 +leaf_count=20 18 20 19 20 27 +internal_value=0 -0.0157782 -0.0213753 0.0284415 -0.0253978 +internal_weight=0 20.9074 15.8245 11.8392 10.9226 +internal_count=124 84 66 40 47 +is_linear=0 +shrinkage=0.03 + + +Tree=83 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=15.39 1.58867 0.00505798 0.0078975 +threshold=-0.4560716245405308 -1.173391274718697 -0.57881751746785304 0.93339658328254049 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.030982553143128706 -0.022532165726200412 0.011225524277916088 -0.024641284762899035 -0.022773448653835449 +leaf_weight=7.436450183391571 5.2128102183341971 7.2186895757913607 4.1696313917636854 3.9837923347949982 +leaf_count=22 35 22 20 25 +internal_value=0 0.0212508 -0.023262 -0.0237287 +internal_weight=0 14.6551 13.3662 8.15342 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=84 +num_leaves=4 +num_cat=0 +split_feature=6 0 9 +split_gain=14.2073 4.63795 0.00648829 +threshold=0.15132824247368962 0.073352531911790655 -0.49446637079029704 +decision_type=2 2 2 +left_child=2 -2 -1 +right_child=1 -3 -4 +leaf_value=-0.023143706057386627 -0.0061890605418552826 0.028841857750191088 -0.024528917271810693 +leaf_weight=5.0289975255727786 4.8548260182142284 11.362261816859244 7.7073178142309189 +leaf_count=30 20 37 37 +internal_value=0 0.0183548 -0.023982 +internal_weight=0 16.2171 12.7363 +internal_count=124 57 67 +is_linear=0 +shrinkage=0.03 + + +Tree=85 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=15.7646 1.37039 0.539882 0.00797066 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.26253109939289909 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.029519717458016514 -0.0075322539441555402 -0.02549591627827286 0.017731827256232544 -0.023901943902904128 +leaf_weight=7.5361690223216993 6.7075022459030178 5.1554433852434141 6.5238679945468903 6.2417719662189484 +leaf_count=25 24 22 22 31 +internal_value=0 -0.0182911 0.0240501 -0.024623 +internal_weight=0 18.1047 14.06 11.3972 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=86 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=14.765 1.56656 0.00507332 0.0105188 +threshold=-0.4560716245405308 -1.2382679850281793 -0.57881751746785304 0.89359041154996521 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.030582763138568347 -0.022429536316519314 0.010869045191962062 -0.024819340294209794 -0.022633461039584458 +leaf_weight=7.3363194763660431 5.0446133837103844 7.176962763071062 3.6889073997735959 4.2802569642663002 +leaf_count=22 35 22 17 28 +internal_value=0 0.0208341 -0.023174 -0.0236453 +internal_weight=0 14.5133 13.0138 7.96916 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=87 +num_leaves=5 +num_cat=0 +split_feature=12 12 4 9 +split_gain=13.592 1.27655 0.158979 0.00559349 +threshold=1.0000000180025095e-35 0.89359041154996521 -1.0000000180025095e-35 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.022814243836634548 0.0097819347707535191 0.027709343855604671 -0.016401758272096136 -0.024241872806007737 +leaf_weight=4.4604783803224555 6.3119343221187583 8.243400961160658 3.8084796071052578 5.5349791049957267 +leaf_count=28 20 28 20 28 +internal_value=0 0.0199351 -0.0216175 -0.0236048 +internal_weight=0 14.5553 13.8039 9.99546 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=88 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 3 +split_gain=15.1542 2.25743 0.479388 0.0292949 0.0162771 +threshold=-0.67830861354907324 -0.57866837472720112 -1.0000000180025095e-35 0.23008835067076203 0.34684603603737024 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.028979606466712313 0.0021179724146717671 -0.014325110219844709 -0.026927378805108346 -0.023578285093230778 0.026710432557576873 +leaf_weight=5.9463803768157977 4.9985338300466582 5.7814680635929152 4.8410810828208835 4.5692029893398285 5.4548738598823547 +leaf_count=20 18 23 19 24 20 +internal_value=0 -0.01537 -0.0211241 -0.0253012 0.0278939 +internal_weight=0 20.1903 15.1918 9.41028 11.4013 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=89 +num_leaves=5 +num_cat=0 +split_feature=6 11 5 9 +split_gain=14.1447 2.04909 0.00321855 0.000991176 +threshold=-0.88275748153399147 -0.51792214920082713 -0.1363782188569643 -0.49446637079029704 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.026278704417618141 0.0041405011329294934 -0.023850038483586074 -0.022393916846222606 -0.023055333729755451 +leaf_weight=10.965972989797594 3.062800064682965 3.9822817444801375 3.1240534558892268 5.8716226220130814 +leaf_count=33 10 23 22 36 +internal_value=0 -0.0179311 -0.02314 -0.0228256 +internal_weight=0 16.0408 12.978 8.99568 +internal_count=124 91 81 58 +is_linear=0 +shrinkage=0.03 + + +Tree=90 +num_leaves=5 +num_cat=0 +split_feature=6 12 11 12 +split_gain=13.1322 1.70995 0.299259 0.00972963 +threshold=0.32200258527107412 0.76621066200572407 0.18829925847304788 -0.2926335060807797 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.02339481771614603 0.0071365949119923241 0.028334809143976625 -0.013908446163258726 -0.025347429088023236 +leaf_weight=6.4916521683335295 5.7316093742847434 8.5090893208980543 3.5085425525903693 3.5541625171899822 +leaf_count=37 22 29 20 16 +internal_value=0 0.0198029 -0.0214513 -0.0240856 +internal_weight=0 14.2407 13.5544 10.0458 +internal_count=124 51 73 53 +is_linear=0 +shrinkage=0.03 + + +Tree=91 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 3 +split_gain=14.5284 2.1912 0.481181 0.027678 0.0160099 +threshold=-0.67830861354907324 -0.57866837472720112 -1.0000000180025095e-35 0.23008835067076203 0.34684603603737024 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.028721091266427627 0.0021154301424004198 -0.014048946127425913 -0.026738377704240028 -0.023443887533957163 0.026446335026725363 +leaf_weight=5.836721211671831 4.9645049124956175 5.6961980462074324 4.7486341446638018 4.4419673383235931 5.3250944167375565 +leaf_count=20 18 23 19 24 20 +internal_value=0 -0.0151442 -0.0208999 -0.0251461 0.0276358 +internal_weight=0 19.8513 14.8868 9.1906 11.1618 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=92 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=13.5893 1.49714 0.0050164 0.0106738 +threshold=-0.4560716245405308 -1.2382679850281793 -0.57881751746785304 0.89359041154996521 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.029749650671017265 -0.022243536356668359 0.010263146957380702 -0.024678009736709573 -0.022425051456653321 +leaf_weight=7.1262847185134888 4.7315405458211899 7.0676801055669802 3.5830518305301648 4.0114342719316483 +leaf_count=22 35 22 17 28 +internal_value=0 0.0200466 -0.0230103 -0.023488 +internal_weight=0 14.194 12.326 7.59449 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=93 +num_leaves=5 +num_cat=0 +split_feature=6 0 9 4 +split_gain=12.5684 4.1411 0.00555192 0.00147943 +threshold=0.15132824247368962 0.073352531911790655 -0.57881751746785304 -0.22760167158663605 +decision_type=2 2 2 2 +left_child=2 -2 -1 -4 +right_child=1 -3 3 -5 +leaf_value=-0.022700796670096106 -0.0059932231575947799 0.027763613373631583 -0.023682463515042981 -0.024501542119389128 +leaf_weight=3.8720223233103752 4.7034804970026007 10.73647031188011 4.0248161405324936 3.915310353040697 +leaf_count=26 20 37 22 19 +internal_value=0 0.0174803 -0.0236322 -0.0240864 +internal_weight=0 15.44 11.8121 7.94013 +internal_count=124 57 67 41 +is_linear=0 +shrinkage=0.03 + + +Tree=94 +num_leaves=5 +num_cat=0 +split_feature=9 0 6 9 +split_gain=13.9649 1.32727 0.52717 0.00849051 +threshold=-0.53556051917167058 0.073352531911790655 0.071010904686685181 0.23008835067076203 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.028809349284678272 -0.0069974886789215193 -0.025237354002950317 0.01686210148468946 -0.023506821168877597 +leaf_weight=7.1638381034135836 6.5122565478086498 4.2763611823320371 6.2013749629259109 6.3265637904405594 +leaf_count=25 24 19 22 34 +internal_value=0 -0.0176575 0.0232659 -0.0242048 +internal_weight=0 17.1152 13.3652 10.6029 +internal_count=124 77 47 53 +is_linear=0 +shrinkage=0.03 + + +Tree=95 +num_leaves=5 +num_cat=0 +split_feature=6 10 11 7 +split_gain=13.0955 1.87908 0.00809143 0.00135656 +threshold=-0.88275748153399147 -0.49335377378417428 0.23067254293348008 -0.69985214462294476 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.025455019349199894 0.0026468820869857248 -0.024361023075317439 -0.023065194010335802 -0.022302280650021534 +leaf_weight=10.715556204319002 3.2026482969522485 3.7113254666328404 4.1414584070444089 4.2505446746945381 +leaf_count=33 13 21 26 31 +internal_value=0 -0.0177875 -0.0231946 -0.0226788 +internal_weight=0 15.306 12.1033 8.392 +internal_count=124 91 78 57 +is_linear=0 +shrinkage=0.03 + + +Tree=96 +num_leaves=5 +num_cat=0 +split_feature=12 11 4 10 +split_gain=12.0931 1.11132 0.164442 0.00598093 +threshold=1.0000000180025095e-35 0.41429010892868773 -1.0000000180025095e-35 0.38411396935714598 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.022825215742754264 0.0096068203926682229 0.026749676584885314 -0.015802401877881161 -0.024431043180334077 +leaf_weight=6.1366372257471067 6.1092563122510892 7.6842904090881348 3.5767874643206623 3.1635541617870331 +leaf_count=39 22 26 20 17 +internal_value=0 0.019157 -0.021269 -0.0233715 +internal_weight=0 13.7935 12.877 9.30019 +internal_count=124 48 76 56 +is_linear=0 +shrinkage=0.03 + + +Tree=97 +num_leaves=6 +num_cat=0 +split_feature=9 4 4 9 3 +split_gain=13.4376 2.11641 0.474135 0.0262187 0.0136992 +threshold=-0.67830861354907324 -0.57866837472720112 -1.0000000180025095e-35 0.23008835067076203 0.34684603603737024 +decision_type=2 2 2 2 2 +left_child=4 -2 -3 -4 -1 +right_child=1 2 3 -5 -6 +leaf_value=0.028178308345158401 0.0023461010396183617 -0.013681368279626399 -0.026465939949383073 -0.023181916509031987 0.026033852547440794 +leaf_weight=5.6425230056047457 4.8660031855106398 5.5321160852909133 4.5804646760225207 4.1888875514268875 5.1081870496273041 +leaf_count=20 18 23 19 24 20 +internal_value=0 -0.0147439 -0.0205587 -0.0248972 0.0271594 +internal_weight=0 19.1675 14.3015 8.76935 10.7507 +internal_count=124 84 66 43 40 +is_linear=0 +shrinkage=0.03 + + +Tree=98 +num_leaves=5 +num_cat=0 +split_feature=6 10 9 12 +split_gain=12.5066 1.41777 0.00489667 0.0106052 +threshold=-0.4560716245405308 -1.173391274718697 -0.57881751746785304 0.89359041154996521 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.028925058287230389 -0.022075965432537682 0.0097214524367008649 -0.024536491106558343 -0.022237399252507544 +leaf_weight=6.903484582901001 4.4393977522850037 6.9367724210023898 3.474468916654585 3.7596537694334984 +leaf_count=22 35 22 17 28 +internal_value=0 0.0193002 -0.0228603 -0.0233416 +internal_weight=0 13.8403 11.6735 7.23412 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=99 +num_leaves=5 +num_cat=0 +split_feature=6 0 9 4 +split_gain=11.6217 3.10787 0.00508988 0.00125284 +threshold=0.15132824247368962 0.16599740428854384 -0.57881751746785304 -0.22760167158663605 +decision_type=2 2 2 2 +left_child=2 -2 -1 -4 +right_child=1 -3 3 -5 +leaf_value=-0.022508661259709368 -0.0023937851766939896 0.026665235227013123 -0.023492088075801158 -0.024262634014366541 +leaf_weight=3.6343007534742355 4.9686942994594565 9.9368511438369733 3.8341175615787506 3.762812554836275 +leaf_count=26 21 36 22 19 +internal_value=0 0.0169785 -0.023432 -0.0238737 +internal_weight=0 14.9055 11.2312 7.59693 +internal_count=124 57 67 41 +is_linear=0 +shrinkage=0.03 + + +Tree=100 +num_leaves=5 +num_cat=0 +split_feature=9 9 3 12 +split_gain=12.8999 2.08894 0.0133964 0.00392691 +threshold=-0.67830861354907324 -0.090013436720989409 0.34684603603737024 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.027958490662318029 -0.0035720652535299415 -0.024142876985150705 0.025814062614969623 -0.022960276393250118 +leaf_weight=5.5360409468412417 8.5545247346162832 5.8426226675510371 4.9806518256664276 4.4531644284725189 +leaf_count=20 29 28 20 27 +internal_value=0 -0.0145282 0.0269429 -0.0236314 +internal_weight=0 18.8503 10.5167 10.2958 +internal_count=124 84 40 55 +is_linear=0 +shrinkage=0.03 + + +Tree=101 +num_leaves=5 +num_cat=0 +split_feature=6 10 11 7 +split_gain=12.0899 1.76159 0.00798792 0.00127284 +threshold=-0.88275748153399147 -0.49335377378417428 0.23067254293348008 -0.69985214462294476 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.024676538018746211 0.0023494865591677442 -0.024221841481449187 -0.022893563275237169 -0.022132853004647665 +leaf_weight=10.440470159053804 3.1302502006292352 3.5557617470622027 3.9282502904534331 3.9906171485781678 +leaf_count=33 13 21 26 31 +internal_value=0 -0.0175988 -0.0230406 -0.0225102 +internal_weight=0 14.6049 11.4746 7.91887 +internal_count=124 91 78 57 +is_linear=0 +shrinkage=0.03 + + +Tree=102 +num_leaves=5 +num_cat=0 +split_feature=12 0 1 9 +split_gain=11.1713 1.16156 0.187943 0.00731732 +threshold=1.0000000180025095e-35 0.45628467106904042 1.1163802839358452 -0.57881751746785304 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.022310493836996913 0.0083352808376485343 0.026262603691555714 -0.014684372996791071 -0.024010109073226496 +leaf_weight=4.3342881649732581 5.6545477509498578 7.6579865366220474 3.1269741356372824 4.8095364123582867 +leaf_count=32 19 29 18 26 +internal_value=0 0.0186479 -0.0210333 -0.0232045 +internal_weight=0 13.3125 12.2708 9.14382 +internal_count=124 48 76 58 +is_linear=0 +shrinkage=0.03 + + +Tree=103 +num_leaves=5 +num_cat=0 +split_feature=9 4 11 3 +split_gain=12.3872 2.0467 0.478393 0.0124072 +threshold=-0.67830861354907324 -0.57866837472720112 -0.094189304596502321 0.34684603603737024 +decision_type=2 2 2 2 +left_child=3 -2 -3 -1 +right_child=1 2 -4 -5 +leaf_value=0.027708276092478203 0.0026059096978827598 -0.014105468296409759 -0.025342271711050156 0.02562273169058708 +leaf_weight=5.4303560256958026 4.7708660215139433 6.2855617851018932 7.4532876461744246 4.869401291012764 +leaf_count=20 18 29 37 20 +internal_value=0 -0.0143228 -0.0202014 0.0267223 +internal_weight=0 18.5097 13.7388 10.2998 +internal_count=124 84 66 40 +is_linear=0 +shrinkage=0.03 + + +Tree=104 +num_leaves=5 +num_cat=0 +split_feature=6 11 9 12 +split_gain=11.5275 1.38082 0.00481156 0.010428 +threshold=-0.4560716245405308 -1.2382679850281793 -0.57881751746785304 0.89359041154996521 +decision_type=2 2 2 2 +left_child=1 -1 -2 -4 +right_child=2 -3 3 -5 +leaf_value=0.028300893206880701 -0.021918782289899678 0.0090958588420361978 -0.024406394858062345 -0.022072462772359077 +leaf_weight=6.677300363779068 4.1542379632592201 6.8013030737638491 3.3645201325416547 3.5312256067991257 +leaf_count=22 35 22 17 28 +internal_value=0 0.01861 -0.0227253 -0.0232112 +internal_weight=0 13.4786 11.05 6.89575 +internal_count=124 44 80 45 +is_linear=0 +shrinkage=0.03 + + +Tree=105 +num_leaves=5 +num_cat=0 +split_feature=6 0 9 4 +split_gain=10.7838 2.84711 0.00466701 0.000960401 +threshold=0.15132824247368962 0.16599740428854384 -0.57881751746785304 -0.22760167158663605 +decision_type=2 2 2 2 +left_child=2 -2 -1 -4 +right_child=1 -3 3 -5 +leaf_value=-0.022332045045317866 -0.0021331574519237893 0.026114598982059128 -0.023335755513592536 -0.024025248166529182 +leaf_weight=3.4079325497150421 4.851661041378974 9.4978931099176389 3.6692557781934738 3.6040334701538104 +leaf_count=26 21 36 22 19 +internal_value=0 0.0165639 -0.0232482 -0.0236774 +internal_weight=0 14.3496 10.6812 7.27329 +internal_count=124 57 67 41 +is_linear=0 +shrinkage=0.03 + + +Tree=106 +num_leaves=5 +num_cat=0 +split_feature=9 9 12 12 +split_gain=11.9076 0.925303 0.55741 0.00361232 +threshold=-0.49446637079029704 -0.090013436720989409 -0.43593572431805083 0.27261413252178995 +decision_type=2 2 2 2 +left_child=2 -2 -1 -3 +right_child=1 3 -4 -5 +leaf_value=0.026462944328898872 -0.0077514530087197898 -0.023900873124646334 0.014066575590422804 -0.022735532226762466 +leaf_weight=7.4814164340496063 5.2110140174627313 5.597787201404568 5.7919609397649783 4.1828631162643433 +leaf_count=30 19 28 20 27 +internal_value=0 -0.0179623 0.0210537 -0.0234025 +internal_weight=0 14.9917 13.2734 9.78065 +internal_count=124 74 50 55 +is_linear=0 +shrinkage=0.03 + + +Tree=107 +num_leaves=5 +num_cat=0 +split_feature=6 10 11 7 +split_gain=11.1883 1.65057 0.00832546 0.00121991 +threshold=-0.88275748153399147 -0.49335377378417428 0.23067254293348008 -0.69985214462294476 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.023963346368337822 0.002068498707431038 -0.024144272998027974 -0.022739490346260428 -0.021972259246088342 +leaf_weight=10.155039727687837 3.0462631434202203 3.4127390235662425 3.7261687517166129 3.7344824224710473 +leaf_count=33 13 21 26 31 +internal_value=0 -0.0174489 -0.0229169 -0.0223554 +internal_weight=0 13.9197 10.8734 7.46065 +internal_count=124 91 78 57 +is_linear=0 +shrinkage=0.03 + + +Tree=108 +num_leaves=5 +num_cat=0 +split_feature=6 0 9 1 +split_gain=10.3676 2.50372 0.00434364 0.00101594 +threshold=0.15132824247368962 0.22776065253971303 -0.57881751746785304 0.66306039540987938 +decision_type=2 2 2 2 +left_child=2 -2 -1 -4 +right_child=1 -3 3 -5 +leaf_value=-0.022247049804188089 -0.0005011859973468863 0.025831112351130617 -0.023949754537799399 -0.023230086629918222 +leaf_weight=3.3016830608248711 5.0813198983669272 9.015861824154852 3.2949416190385836 3.8030541092157364 +leaf_count=26 22 35 18 23 +internal_value=0 0.0163397 -0.023146 -0.0235642 +internal_weight=0 14.0972 10.3997 7.098 +internal_count=124 57 67 41 +is_linear=0 +shrinkage=0.03 + + +Tree=109 +num_leaves=6 +num_cat=0 +split_feature=9 12 10 12 9 +split_gain=11.4937 1.98378 0.612049 0.0203663 0.0154504 +threshold=-0.67830861354907324 -0.57286895507810998 0.60348090514247621 -0.73050139513910817 0.089503106208168551 +decision_type=2 2 2 2 2 +left_child=3 -2 4 -1 -3 +right_child=1 2 -4 -5 -6 +leaf_value=0.025037882492541949 0.0030230730269144327 -0.025634248316610941 -0.010484751196477278 0.027763989016565394 -0.023141196101675594 +leaf_weight=5.0852786749601364 4.5909007787704494 4.141279920935629 4.2582573592662802 4.7893147766590136 4.8661690056324005 +leaf_count=22 18 18 19 18 29 +internal_value=0 -0.0139744 -0.0198568 0.0263601 -0.0242874 +internal_weight=0 17.8566 13.2657 9.87459 9.00745 +internal_count=124 84 66 40 47 +is_linear=0 +shrinkage=0.03 + + +Tree=110 +num_leaves=5 +num_cat=0 +split_feature=10 6 11 12 +split_gain=10.6967 2.51496 0.00810299 0.00108125 +threshold=-0.75659409672656996 -0.76730130846517275 0.23067254293348008 0.54329610030330222 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.02511359262986558 0.0075711233146583783 -0.02413960965030108 -0.02269114383421493 -0.021982692038420772 +leaf_weight=9.2569776028394717 3.1154399514198312 3.3446377813816035 4.3634544909000397 3.4893236756324768 +leaf_count=32 10 21 32 29 +internal_value=0 -0.0162698 -0.022903 -0.0223763 +internal_weight=0 14.3129 11.1974 7.85278 +internal_count=124 92 82 61 +is_linear=0 +shrinkage=0.03 + + +Tree=111 +num_leaves=6 +num_cat=0 +split_feature=12 0 1 10 9 +split_gain=9.9704 1.0075 0.191914 0.00797992 0.000691093 +threshold=1.0000000180025095e-35 0.45628467106904042 1.1163802839358452 0.60348090514247621 -0.67830861354907324 +decision_type=2 2 2 2 2 +left_child=2 -2 3 4 -1 +right_child=1 -3 -4 -5 -6 +leaf_value=-0.021998291945815811 0.0083285113598026012 0.025480340225261341 -0.014112461001046541 -0.024326454546910837 -0.022663941725147532 +leaf_weight=2.5219807848334304 5.4535242766141874 7.0885245651006699 2.9338761791586867 2.7947902753949165 3.1658784225583103 +leaf_count=21 19 29 18 16 21 +internal_value=0 0.0180224 -0.0207263 -0.0230138 -0.0223688 +internal_weight=0 12.542 11.4165 8.48265 5.68786 +internal_count=124 48 76 58 42 +is_linear=0 +shrinkage=0.03 + + +Tree=112 +num_leaves=6 +num_cat=0 +split_feature=9 4 10 9 4 +split_gain=11.0357 2.46912 0.611173 0.016679 0.0119965 +threshold=-0.67830861354907324 -0.71909505598342716 0.60348090514247621 0.089503106208168551 -0.29781501221474904 +decision_type=2 2 2 2 2 +left_child=4 -2 3 -3 -1 +right_child=1 2 -4 -5 -6 +leaf_value=0.02517660593580787 0.0068317990186698143 -0.025402072575950223 -0.010133973767010959 -0.022881704729514261 0.027296118273542631 +leaf_weight=5.1712383180856705 4.0327895283699062 4.5088218897581083 4.0307041555643073 4.9656414240598679 4.4903091937303561 +leaf_count=23 15 20 18 31 17 +internal_value=0 -0.0137674 -0.0199185 -0.0240811 0.0261617 +internal_weight=0 17.538 13.5052 9.47446 9.66155 +internal_count=124 84 69 51 40 +is_linear=0 +shrinkage=0.03 + + +Tree=113 +num_leaves=5 +num_cat=0 +split_feature=6 10 11 7 +split_gain=10.249 1.53782 0.00757239 0.00115964 +threshold=-0.88275748153399147 -0.49335377378417428 0.23067254293348008 -0.69985214462294476 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.023172914548816682 0.0017338904201440384 -0.023958875855640525 -0.022590973984710282 -0.02181953162499262 +leaf_weight=9.8315727561712283 2.9747213050723085 3.2523050680756533 3.5288689881563178 3.4862417355179796 +leaf_count=33 13 21 26 31 +internal_value=0 -0.0172595 -0.0227623 -0.0222076 +internal_weight=0 13.2421 10.2674 7.01511 +internal_count=124 91 78 57 +is_linear=0 +shrinkage=0.03 + + +Tree=114 +num_leaves=5 +num_cat=0 +split_feature=6 0 9 1 +split_gain=9.62805 2.3031 0.00395175 0.000949237 +threshold=0.15132824247368962 0.22776065253971303 -0.57881751746785304 0.66306039540987938 +decision_type=2 2 2 2 +left_child=2 -2 -1 -4 +right_child=1 -3 3 -5 +leaf_value=-0.022092540892659045 -0.0003236780739740685 0.025341479320769616 -0.023766196042881792 -0.0230550292070461 +leaf_weight=3.0924325957894325 4.9620526731014243 8.6017527729272825 3.1628116220235842 3.6254082247614861 +leaf_count=26 22 35 18 23 +internal_value=0 0.0159524 -0.0229814 -0.0233864 +internal_weight=0 13.5638 9.88065 6.78822 +internal_count=124 57 67 41 +is_linear=0 +shrinkage=0.03 + + +Tree=115 +num_leaves=6 +num_cat=0 +split_feature=9 4 10 9 4 +split_gain=10.6087 2.38831 0.6051 0.0185287 0.011536 +threshold=-0.67830861354907324 -0.71909505598342716 0.60348090514247621 1.0000000180025095e-35 -0.29781501221474904 +decision_type=2 2 2 2 2 +left_child=4 -2 3 -3 -1 +right_child=1 2 -4 -5 -6 +leaf_value=0.025007082414182116 0.0066992562159975469 -0.025521312139678169 -0.0099609554382395476 -0.022801934731080678 0.027109601597566448 +leaf_weight=5.0324350595474243 4.0074748247861889 3.9143509194254857 3.9795362949371329 5.3194973841309547 4.4039937108755129 +leaf_count=23 15 17 18 34 17 +internal_value=0 -0.0135874 -0.0197401 -0.0239547 0.0259883 +internal_weight=0 17.2209 13.2134 9.23385 9.43643 +internal_count=124 84 69 51 40 +is_linear=0 +shrinkage=0.03 + + +Tree=116 +num_leaves=5 +num_cat=0 +split_feature=10 6 11 0 +split_gain=9.91196 2.33512 0.00959488 0.00103129 +threshold=-0.75659409672656996 -0.76730130846517275 0.18829925847304788 0.61069279169696389 +decision_type=2 2 2 2 +left_child=-1 -2 -3 -4 +right_child=1 2 3 -5 +leaf_value=0.024490911259546614 0.0069752465809635282 -0.024262290602043383 -0.022493759544880039 -0.02177630541486366 +leaf_weight=8.9620551019907015 3.0595605969429007 2.8591761961579305 4.8777327835559845 2.8606674745678902 +leaf_count=32 10 18 38 26 +internal_value=0 -0.0161119 -0.0227772 -0.0222285 +internal_weight=0 13.6571 10.5976 7.7384 +internal_count=124 92 82 64 +is_linear=0 +shrinkage=0.03 + + +Tree=117 +num_leaves=5 +num_cat=0 +split_feature=6 12 11 12 +split_gain=9.24118 1.35477 0.233354 0.00463328 +threshold=0.32200258527107412 0.76621066200572407 0.18829925847304788 -0.2926335060807797 +decision_type=2 2 2 2 +left_child=2 -2 3 -1 +right_child=1 -3 -4 -5 +leaf_value=-0.022629506305326223 0.0058239025143824964 0.026144486901705684 -0.01303791990612963 -0.024124465277666592 +leaf_weight=5.1641987562179557 5.1173630803823453 6.9808921068906784 2.7390089854598036 2.9213012158870724 +leaf_count=37 22 29 20 16 +internal_value=0 0.0175492 -0.0206059 -0.0231696 +internal_weight=0 12.0983 10.8245 8.0855 +internal_count=124 51 73 53 +is_linear=0 +shrinkage=0.03 + + +Tree=118 +num_leaves=6 +num_cat=0 +split_feature=9 4 10 9 4 +split_gain=10.1936 2.31533 0.598355 0.0172433 0.0101477 +threshold=-0.67830861354907324 -0.71909505598342716 0.60348090514247621 1.0000000180025095e-35 -0.29781501221474904 +decision_type=2 2 2 2 2 +left_child=4 -2 3 -3 -1 +right_child=1 2 -4 -5 -6 +leaf_value=0.024877871393677732 0.0066045862490326001 -0.025351041352551621 -0.0097944554863674572 -0.022694216198568654 0.026871812829434676 +leaf_weight=4.9167407900094986 3.9828602075576809 3.8310579061508161 3.9309362769126883 5.1594076603651047 4.3114450275897997 +leaf_count=23 15 17 18 34 17 +internal_value=0 -0.0133934 -0.0195576 -0.0238264 0.0258094 +internal_weight=0 16.9043 12.9214 8.99047 9.22819 +internal_count=124 84 69 51 40 +is_linear=0 +shrinkage=0.03 + + +Tree=119 +num_leaves=6 +num_cat=0 +split_feature=10 6 11 9 12 +split_gain=9.49304 2.68686 0.016789 0.00102233 0.00244551 +threshold=-0.75659409672656996 -0.88275748153399147 0.13180154585913784 -0.67830861354907324 0.93339658328254049 +decision_type=2 2 2 2 2 +left_child=-1 -2 -3 -4 -5 +right_child=1 2 3 4 -6 +leaf_value=0.024136468739497662 0.010521117753537009 -0.024842840035816598 -0.021655184535634777 -0.023037885380915259 -0.021730912635456453 +leaf_weight=8.7994236573576945 2.7308668792247763 2.801385283470152 2.6416209414601317 2.5636880323290834 2.5903929173946381 +leaf_count=32 9 16 26 17 24 +internal_value=0 -0.016013 -0.0228509 -0.0221351 -0.022381 +internal_weight=0 13.328 10.5971 7.7957 5.15408 +internal_count=124 92 83 67 41 +is_linear=0 +shrinkage=0.03 + + +end of trees + +feature_importances: +9=148 +12=107 +6=63 +4=41 +11=38 +0=36 +10=24 +5=8 +3=6 +1=4 +7=4 +8=3 +2=1 + +parameters: +[boosting: gbdt] +[objective: multiclass] +[metric: multi_logloss] +[tree_learner: serial] +[device_type: cpu] +[linear_tree: 0] +[data: ] +[valid: ] +[num_iterations: 40] +[learning_rate: 0.03] +[num_leaves: 31] +[num_threads: 0] +[deterministic: 0] +[force_col_wise: 0] +[force_row_wise: 0] +[histogram_pool_size: -1] +[max_depth: 10] +[min_data_in_leaf: 20] +[min_sum_hessian_in_leaf: 0.001] +[bagging_fraction: 1] +[pos_bagging_fraction: 1] +[neg_bagging_fraction: 1] +[bagging_freq: 0] +[bagging_seed: 3] +[feature_fraction: 1] +[feature_fraction_bynode: 1] +[feature_fraction_seed: 2] +[extra_trees: 0] +[extra_seed: 6] +[early_stopping_round: 0] +[first_metric_only: 0] +[max_delta_step: 0] +[lambda_l1: 0] +[lambda_l2: 0] +[linear_lambda: 0] +[min_gain_to_split: 0] +[drop_rate: 0.1] +[max_drop: 50] +[skip_drop: 0.5] +[xgboost_dart_mode: 0] +[uniform_drop: 0] +[drop_seed: 4] +[top_rate: 0.2] +[other_rate: 0.1] +[min_data_per_group: 100] +[max_cat_threshold: 32] +[cat_l2: 10] +[cat_smooth: 10] +[max_cat_to_onehot: 4] +[top_k: 20] +[monotone_constraints: ] +[monotone_constraints_method: basic] +[monotone_penalty: 0] +[feature_contri: ] +[forcedsplits_filename: ] +[refit_decay_rate: 0.9] +[cegb_tradeoff: 1] +[cegb_penalty_split: 0] +[cegb_penalty_feature_lazy: ] +[cegb_penalty_feature_coupled: ] +[path_smooth: 0] +[interaction_constraints: ] +[verbosity: 1] +[saved_feature_importance_type: 0] +[max_bin: 255] +[max_bin_by_feature: ] +[min_data_in_bin: 3] +[bin_construct_sample_cnt: 200000] +[data_random_seed: 1] +[is_enable_sparse: 1] +[enable_bundle: 1] +[use_missing: 1] +[zero_as_missing: 0] +[feature_pre_filter: 1] +[pre_partition: 0] +[two_round: 0] +[header: 0] +[label_column: ] +[weight_column: ] +[group_column: ] +[ignore_column: ] +[categorical_feature: ] +[forcedbins_filename: ] +[objective_seed: 5] +[num_class: 3] +[is_unbalance: 0] +[scale_pos_weight: 1] +[sigmoid: 1] +[boost_from_average: 1] +[reg_sqrt: 0] +[alpha: 0.9] +[fair_c: 1] +[poisson_max_delta_step: 0.7] +[tweedie_variance_power: 1.5] +[lambdarank_truncation_level: 30] +[lambdarank_norm: 1] +[label_gain: ] +[eval_at: ] +[multi_error_top_k: 1] +[auc_mu_weights: ] +[num_machines: 1] +[local_listen_port: 12400] +[time_out: 120] +[machine_list_filename: ] +[machines: ] +[gpu_platform_id: -1] +[gpu_device_id: -1] +[gpu_use_dp: 0] +[num_gpu: 1] + +end of parameters + +pandas_categorical:[] diff --git a/tests/test_dataprocessing.py b/tests/test_dataprocessing.py index 7502cc1..964c444 100644 --- a/tests/test_dataprocessing.py +++ b/tests/test_dataprocessing.py @@ -6,7 +6,7 @@ from lleaves.data_processing import ( data_to_ndarray, - extract_num_feature, + extract_n_features_n_classes, extract_pandas_traintime_categories, ndarray_to_ptr, ) @@ -57,9 +57,11 @@ def test_n_args_extract(tmp_path): (line for line in lines if not line.startswith("max_feature_idx")) ) - assert extract_num_feature(model_file) == 5 + res = extract_n_features_n_classes(model_file) + assert res["n_class"] == 1 + assert res["n_feature"] == 5 with pytest.raises(ValueError): - extract_num_feature(mod_model_file) + extract_n_features_n_classes(mod_model_file) def test_no_data_modification(): diff --git a/tests/test_tree_output.py b/tests/test_tree_output.py index 680927c..467d163 100644 --- a/tests/test_tree_output.py +++ b/tests/test_tree_output.py @@ -11,6 +11,7 @@ "tests/models/NYC_taxi/", "tests/models/single_tree/", "tests/models/tiniest_single_tree/", + "tests/models/multiclass/", ] @@ -55,6 +56,9 @@ def llvm_lgbm_model_cat(request): def test_attribute_similarity(llvm_lgbm_model): llvm_model, lightgbm_model = llvm_lgbm_model assert llvm_model.num_feature() == lightgbm_model.num_feature() + assert ( + llvm_model.num_model_per_iteration() == lightgbm_model.num_model_per_iteration() + ) @settings(deadline=1000)