`LEARNING_RATE_TYPES` and `ALGORITHM_TYPES` are actually not really needed. 

It would make things simpler if you removed them and rewrite these checks as ` if self.learning_rate not in ["constant", "invscaling"]`. Explicit is better than implicit :)