int bestSplitIndex = bestSplit.getSplitAttributeIndex();
if (featureTypes[bestSplitIndex].isNominal()) {
TIntHashSet uniqueFeatures = getNominalValues(bestSplitIndex, features);
NominalNode node = new NominalNode(bestSplitIndex, uniqueFeatures.size());
int cIndex = 0;
for (int nominalValue : uniqueFeatures.toArray()) {
node.nominalSplitValues[cIndex] = nominalValue;
Tuple<List<DoubleVector>, List<DoubleVector>> filtered = filterNominal(
features, outcome, bestSplitIndex, nominalValue);
TIntHashSet newPossibleFeatures = new TIntHashSet(
possibleFeatureIndices);