簡體   English   中英

StackingCVClassifier 預訓練基礎模型

[英]StackingCVClassifier pre-trained base models

我無法找到有關 StackingCVClassifiers 是否接受預訓練模型的任何信息。

可能不會。 StackedCVClassifiersStackingClassifier目前采用基本估計量列表,然后對它們應用擬合和預測。

不過,實現它非常簡單。 堆疊背后的主要思想是使用早期模型的預測來擬合“最終模型”。

import numpy as np
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

X, y = make_regression(n_samples=1000)
X_train, X_test, y_train, y_test = train_test_split(X, y)

這里X_train(750, 100)X_test(250, 100)

我們將模擬“預訓練”的三個適合X_trainy_train的模型,並使用訓練集和測試集生成預測:

from sklearn.linear_model import RidgeCV, LassoCV
from sklearn.neighbors import KNeighborsRegressor

# Emulate "pre-trained" models
models = [RidgeCV(), LassoCV(), KNeighborsRegressor(n_neighbors=5)]

X_train_new = np.zeros((X_train.shape[0], len(models)))    # (750, 3)
X_test_new = np.zeros((X_test.shape[0], len(models)))      # (250, 3)

for i, model in enumerate(models):
    model.fit(X_train, y_train)
    X_train_new[:, i] = model.predict(X_train)
    X_test_new[:, i] = model.predict(X_test)

最終的 model 適合X_train_new並且可以使用我們的基礎模型生成的(N, 3)矩陣進行預測:

from sklearn.ensemble import GradientBoostingRegressor

clf = GradientBoostingRegressor()
clf.fit(X_train_new, y_train)
clf.score(X_test_new, y_test)
# 0.9998247

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM