如何将多个拟合的LinearRegression模型合并为一个模型,以从组合模型中获得预测值?

时间:2019-05-20 16:37:13

标签: python machine-learning scikit-learn regression linear-regression

我是sklearn库的新手。我想合并已经拟合的LinearRegression模型,以从合并模型中获得预测值。我想创建一个函数或新的估计器类,将数据集分为几个较小的子集来创建子空间。然后(将模型拟合后)将它们合并为一个,并在测试数据集上预测值。

我了解了VotingRegressor,但这并不是我真正需要的,因为该类适合给定的整个数据集上的估计量(它不使用子空间(或子集-我遇到了很多关于此方法的指示))

假设: X.shape =(100,16)和y.shape =(100,)

def fit_regressor(X, y):
    n_splits = 5
    scores = np.zeros(n_splits)
    skf = KFold(n_splits=n_splits, shuffle=True, random_state=True)
    for f, (train, test) in enumerate(skf.split(X)):
        X_train, X_test = X[train], X[test]
        y_train, y_test = y[train], y[test]

        lr = LinearRegression()
        lr.fit(X_train, y_train)
        y_pred = lr.predict(X_test)

        score = r2_score(y_test, y_pred)
        scores[f] = score
    print(scores)
    mean_score = np.mean(scores)
    std_score = np.std(scores)
    print("%.3f (+-%.2f)" % (mean_score, std_score))

我尝试将LinearRegression的已拟合模型合并为一个,但无法处理。上面是我的代码,适用于一种模型。如何将更多的拟合回归模型合并为一个,然后开始对合并模型进行预测?

0 个答案:

没有答案