in core/src/main/scala/com/spotify/featran/transformers/OneHotEncoder.scala [59:79]
override def prepare(a: String): Set[String] = Set(a)
override def buildFeatures(
a: Option[String],
c: SortedMap[String, Int],
fb: FeatureBuilder[_]
): Unit =
a match {
case Some(k) =>
c.get(k) match {
case Some(v) =>
fb.skip(v)
fb.add(name + '_' + k, 1.0)
fb.skip(math.max(0, c.size - v - 1))
if (encodeMissingValue) fb.skip()
case None =>
addMissingItem(c, fb)
fb.reject(this, FeatureRejection.Unseen(Set(k)))
}
case None => addMissingItem(c, fb)
}