簡體   English   中英

將轉換器添加到 sklearn 管道中,以進行交叉驗證

[英]Adding transformers into sklearn pipeline, for cross validation

我想將目標變量轉換器添加到我的 sklearn 管道中。 通常對於 PCA 或任何類型的回歸分類器之類的操作,sklearn 支持 CV 的參數網格,例如:

        param_grid = [{
            "pca__n_components": [5, 10, 25, 50, 125, 250, 625, 1500, 3000],
            "rdf__n_estimators": n_estimators,
            "rdf__bootstrap": bootstrap,
            "rdf__max_depth": max_depth,
            "rdf__class_weight": class_weight}]

是否也可以向該電網添加可變變壓器? 例如,我想先訓練我的回歸器而不轉換目標變量,然后使用PowerTransformer() ,我想縮放我的目標變量並想看看它是否能改善我的結果。 是否也可以將這些集成到參數網格中?

是的,可以將不同的轉換器集成到您的 param_grid 字典中:

from sklearn.datasets import make_classification
from sklearn.preprocessing import PowerTransformer
from sklearn.model_selection import GridSearchCV
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC

X, y = make_classification(random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state=0)
pipe = Pipeline([('transformer', PowerTransformer()), ('svc', SVC())])

param_grid  = {"svc__C":[1, 10], "transformer":[PowerTransformer(), StandardScaler()]}

clf = GridSearchCV(pipe, param_grid )
clf.fit(X_train, y_train)

print(clf.best_params_)

暫無
暫無

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

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