`__init__` isn't supposed to do any validation and all of this should go in `fit`.
http://scikit-learn.org/dev/developers/index.html#parameters-and-init

Of course you can do it this way but you'd have to override set_params too and it's messy.