TrainNode trainRoot = new TrainNode(root, x, y, samples); if (trainRoot.findBestSplit()) { nextSplits.add(trainRoot); node.split(nextSplits); // Split the parent node into two children nodes
Node split = findBestSplit(n, count, falseCount, impurity, variables[j]); if (split.splitScore > node.splitScore) { node.splitFeature = split.splitFeature; Node split = findBestSplit(n, count, falseCount, impurity, variables[j]); if (split.splitScore > node.splitScore) { node.splitFeature = split.splitFeature;
node.falseChild = new Node(node.falseChildOutput, falseChildPosteriori); TrainNode trueChild = new TrainNode(node.trueChild, x, y, trueSamples); if (tc > nodeSize && trueChild.findBestSplit()) { if (nextSplits != null) { nextSplits.add(trueChild); } else { trueChild.split(null); TrainNode falseChild = new TrainNode(node.falseChild, x, y, samples); if (fc > nodeSize && falseChild.findBestSplit()) { if (nextSplits != null) { nextSplits.add(falseChild); } else { falseChild.split(null);
@Override public Node call() { // An array to store sample count in each class for false child node. int[] falseCount = new int[k]; return findBestSplit(n, count, falseCount, impurity, j); } }