Train converts the Attributes into equivalently named FloatAttributes, leaves FloatAttributes unmodified and processes CategoricalAttributes as follows.
If the CategoricalAttribute has two values, one of them is designated 0.0 and the other 1.0, and a single identically-named FloatAttribute is returned.
If the CategoricalAttribute has more than two (n) values, the Filter generates n FloatAttributes and sets each of them if the value's observed.
bFilt.AddAttribute(a) } bFilt.Train() // Construct a LazilyFilteredInstances to handle it
fFilt.AddAttribute(a) } fFilt.Train() insts := base.NewLazilyFilteredInstances(X, fFilt) return insts