> Somewhat subjective point, but if we want to fail hard on invalid arguments,
> shouldn't we do it at constructor time and not at fit/transform

No, because people may be modifying those arguments after instantiating
the objects.