package quickml.supervised.crossValidation.utils; import com.google.common.base.Predicate; import com.google.common.hash.HashFunction; import com.google.common.hash.Hashing; import quickml.data.AttributesMap; import quickml.data.instances.Instance; import java.io.Serializable; /** * Created by ian on 2/28/14. */ public class AttributesHashSplitter implements Predicate<Instance<AttributesMap, Serializable>> { private static final HashFunction hashFunction = Hashing.murmur3_32(); private final int every; public AttributesHashSplitter(int every) { this.every = every; } @Override public boolean apply(final Instance<AttributesMap, Serializable> instance) { int hc = hashFunction.hashInt(instance.getAttributes().hashCode()).asInt(); return Math.abs(hc) % every == 0; } }