@pwendell This train method can be called external especially if you want to specify categorical input. I think keeping this method public is fine.