是否可以使用带有sklearn的make_pipeline的gridsearchCV执行超参数调整



目前,我可以通过使用make_column_transformermake_pipeline来构建一个模型,看起来像:

from sklearn.compose import make_column_transformer
from sklearn.model_selection import cross_val_score
from sklearn.preprocessing import OneHotEncoder
from sklearn.tree import DecisionTreeClassifier
from sklearn.pipeline import make_pipeline
[in]: dtc = DecisionTreeClassifier()
[in]: column_trans = make_column_transformer(
(OneHotEncoder(handle_unknown='ignore'), ['var1', 'var2',
'var3', 'var4', 'var5', 'var6'
]),
remainder='passthrough')
[in]: column_trans.fit_transform(X)
[in] pipe = make_pipeline(column_trans, dtc)
[in]: cross_val_score(pipe, X_train, y_train, cv=5, scoring='accuracy').mean()
[out]: ... prediction

我已经浏览了文档,似乎找不到任何可以将流程简化为gridsearchCV 的内容

以下是scikit learn的一个示例,其中GridSearchCV在管道中使用:https://scikit-learn.org/stable/tutorial/statistical_inference/putting_together.html

您提到的CCD_ 3方法是";Pipeline构造函数的简写";(引用(,它只返回管道对象。因此,最后,直接使用管道构造函数将导致相同的结果,您可以用他们的示例来定位自己。

我假设,您希望在cross_val_score()方法调用之前执行GridSearchCV,以确定最佳参数。

因此,你可以将你的代码调整为类似于他们的代码:

search = GridSearchCV(pipe, your_param_grid)
search.fit(X_train, y_train)
print(search.best_params_)

最新更新