sklearn的已拟合模型的总和

时间:2020-02-18 16:44:46

标签: python scikit-learn linear-regression

我正在尝试做的事情涉及将两个拟合模型的和求和,以使输出是另一个LinearRegression类型的对象。我已经使用sklearn的标准LinearRegression方法拟合了这两个模型。

reg = reg_1 + reg_2

我希望能够产生类似的东西

reg.predict(X3)

这样我仍然可以执行诸如

之类的标准操作
reg_1

是否有一种简单的方法可以做到,显然我可以同时获得reg_2reg的系数,因此,如果我可以使用它们来定义from z3 import * a, b, c, d = Ints("a b c d") o = Optimize() list = [1,2,3,4,5,6,7,8] vars = [a, b, c, d] for v in vars: o.add(Or([v == e for e in list])) o.add(Distinct(*vars)) goal = Int("goal") o.add(goal == a+b+c+d) o.maximize(goal) if o.check() == sat: print o.model() else: print "not satisfiable" ,它会起作用,但我无法没有找到一种方法。

1 个答案:

答案 0 :(得分:1)

因为您这样做的原因是“它们只是具有相同功能的不同数据集”,所以我建议您简单地追加数据集并在所有数据上创建一个模型。

但是,如果由于某种原因无法实现,您可以通过将第三线性模型的messagecoef_属性手动设置为前两个平均值的方式来做到这一点,例如:< / p>

intercept_

然后,您可以照常使用reg = LinearRegression() reg.coef_ = np.array([np.mean(t) for t in zip(reg_1.coef_, reg_2.coef_)]) reg.intercept_ = np.mean([reg_1.intercept_, reg_2.intercept_]) 方法,根据两个线性模型项的组合平均值进行预测。

尽管这种方法存在危险,例如,如果用于拟合原始模型的一个数据集远大于另一个模型,则较小的数据集的截距和系数项将在组合模型中过重,并且您可能希望在对截距和系数项求平均时进行一些加权。