package quickml.supervised.tree.treeBuildContexts;
import com.google.common.base.Optional;
import quickml.data.instances.InstanceWithAttributesMap;
import quickml.supervised.tree.bagging.Bagging;
import quickml.supervised.tree.branchFinders.BranchFinderAndReducerFactory;
import quickml.supervised.tree.scorers.ScorerFactory;
import quickml.supervised.tree.summaryStatistics.ValueCounter;
import quickml.supervised.tree.summaryStatistics.ValueCounterProducer;
import quickml.supervised.tree.nodes.LeafBuilder;
import quickml.supervised.tree.branchingConditions.BranchingConditions;
import java.util.List;
/**
* Created by alexanderhawk on 3/20/15.
*/
public class TreeContext<I extends InstanceWithAttributesMap<?>, VC extends ValueCounter<VC>> {
public TreeContext(BranchingConditions<VC> branchingConditions, ScorerFactory<VC> scorerFactory,
List<? extends BranchFinderAndReducerFactory<I, VC>> branchFindersAndReducers, LeafBuilder<VC> leafBuilder,
ValueCounterProducer<I, VC> valueCounterProducer) {
this.scorerFactory = scorerFactory;
this.branchFindersAndReducers = branchFindersAndReducers;
this.leafBuilder = leafBuilder;
this.branchingConditions = branchingConditions;
this.valueCounterProducer = valueCounterProducer;
}
private ScorerFactory<VC> scorerFactory;
private BranchingConditions branchingConditions;
private final ValueCounterProducer<I, VC> valueCounterProducer;
private Optional<? extends Bagging> bagging;
private final List<? extends BranchFinderAndReducerFactory<I, VC>> branchFindersAndReducers;
private LeafBuilder<VC> leafBuilder;
public LeafBuilder<VC> getLeafBuilder() {
return leafBuilder;
}
public ValueCounterProducer<I, VC> getValueCounterProducer() {
return valueCounterProducer;
}
public ScorerFactory<VC> getScorerFactory() {
return scorerFactory;
}
public List<? extends BranchFinderAndReducerFactory<I, VC>> getBranchFindersAndReducers() {
return branchFindersAndReducers;
}
public BranchingConditions getBranchingConditions() {
return branchingConditions;
}
public Optional<? extends Bagging> getBagging() {
return bagging;
}
}