package net.varkhan.data.learn.decision;
import net.varkhan.base.functor.Mapper;
import net.varkhan.base.functor.Ordinal;
import net.varkhan.data.learn.Classifier;
import java.util.Collection;
import java.util.List;
/**
* <b></b>.
* <p/>
*
* @author varkhan
* @date 12/26/13
* @time 7:32 PM
*/
public interface Decision<K,T,C> extends Classifier<K,T,C> {
public K invoke(T obs, C ctx);
public double confidence(K key, T obs, C ctx);
public Ordinal<T,C> partition();
public List<? extends Classifier<K,T,C>> classes();
public static interface Tree<K,T,C> extends Decision<K,T,C> {
public K invoke(T obs, C ctx);
public Decision<K,T,C> decision(T obs, C ctx);
public double confidence(K key, T obs, C ctx);
public Collection<? extends Mapper<?,T,C>> attributes();
}
}