您将必须准备自己的序列化/反序列化方法。幸运的是,逻辑回归基本上可以通过系数和截距来捕获。但是,该
LogisticRegression对象还保留了一些其他元数据,我们也可以围绕这些元数据进行捕获。我汇集了以下功能来完成工作。请记住,这仍然很粗糙:
import numpy as npimport jsonfrom sklearn.linear_model import LogisticRegressiondef logistic_regression_to_json(lrmodel, file=None): if file is not None: serialize = lambda x: json.dump(x, file) else: serialize = json.dumps data = {} data['init_params'] = lrmodel.get_params() data['model_params'] = mp = {} for p in ('coef_', 'intercept_','classes_', 'n_iter_'): mp[p] = getattr(lrmodel, p).tolist() return serialize(data)def logistic_regression_from_json(jstring): data = json.loads(jstring) model = LogisticRegression(**data['init_params']) for name, p in data['model_params'].items(): setattr(model, name, np.array(p)) return model
注意,
'coef_', 'intercept_','classes_'由于逻辑回归是直接线性模型,因此您可以自己进行预测,因此它只是矩阵乘法。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)