def load_model(model_desc: dict) -> ModelBase: model_name = model_desc['model_name'] model_name_parts = set(model_name.split('.')) if 'ConstLinearModel' in model_name_parts: return ConstLinearModel.load(model_desc) elif 'LinearRegression' in model_name_parts: return LinearRegression.load(model_desc) elif 'LassoRegression' in model_name_parts: return LassoRegression.load(model_desc) elif 'LogisticRegression' in model_name_parts: return LogisticRegression.load(model_desc) elif 'RandomForestRegressor' in model_name_parts: return RandomForestRegressor.load(model_desc) elif 'RandomForestClassifier' in model_name_parts: return RandomForestClassifier.load(model_desc) elif 'XGBRegressor' in model_name_parts: return XGBRegressor.load(model_desc) elif 'XGBClassifier' in model_name_parts: return XGBClassifier.load(model_desc) elif 'XGBTrainer' in model_name_parts: return XGBTrainer.load(model_desc) elif 'NvSVR' in model_name_parts: return NvSVRModel.load(model_desc) else: raise ValueError('{0} is not currently supported in model loader.'.format(model_name))
def test_linear_regression_persistence(self): model = LinearRegression(['a', 'b', 'c'], fit_intercept=False) model.fit(self.train_x, self.train_y) desc = model.save() new_model = LinearRegression.load(desc) calculated_y = new_model.predict(self.predict_x) expected_y = model.predict(self.predict_x) np.testing.assert_array_almost_equal(calculated_y, expected_y)
def load_model(model_desc: dict) -> ModelBase: model_name = model_desc['model_name'] model_name_parts = set(model_name.split('.')) if 'ConstLinearModel' in model_name_parts: return ConstLinearModel.load(model_desc) elif 'LinearRegression' in model_name_parts: return LinearRegression.load(model_desc) else: raise ValueError( '{0} is not currently supported in model loader.'.format( model_name))