[英]StackingCVClassifier pre-trained base models
我無法找到有關 StackingCVClassifiers 是否接受預訓練模型的任何信息。
可能不會。 StackedCVClassifiers
和StackingClassifier
目前采用基本估計量列表,然后對它們應用擬合和預測。
不過,實現它非常簡單。 堆疊背后的主要思想是使用早期模型的預測來擬合“最終模型”。
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_train
和y_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.