Is this done in BaseEstimator.set_params? If so, setting solver_type in __init__ is in inappropriate because set_params will not update it. Checking solver_type is also inappropriate in __init__ because no check is done when changing parameters. Maybe we should only check type in fit.