我想:
但是我不确定scikit-learn的功能应该是什么样。实际上,在这一系列测试结束之前,我想知道在所有测试及其相关参数中性能最好的分类器是什么。
在this tutorial from scikit-learn之后,这是我到目前为止的内容:
首先,我的代码的主要部分:
inner_cv = KFold(n_splits=3, shuffle=False, random_state=SEED1)
outer_cv = KFold(n_splits=3, shuffle=False, random_state=SEED2)
model = create_pipeline(inner_cv)
# Nested CV with parameter optimization
scores = cross_validate(model, X, y, cv=outer_cv, scoring='f1_macro')
下面是创建我的管道的函数(create_vectorizer()仅返回将CountVectorizer应用于我的DataFrame某些列的ColumnTransformer)。在此函数中,我仅包含KNeighborsClassifier,但我想评估多个分类器。
def create_pipeline(cross_validator):
# create a dictionary of all values we want to test for n_neighbors
param_grid = {'n_neighbors': np.arange(1, 10)}
# use GridSearch to test all values for n_neighbors
knn = KNeighborsClassifier()
knn_gscv = GridSearchCV(knn, param_grid, cv=cross_validator)
vectorizer = create_vectorizer()
pipeline = Pipeline(memory=None,
steps=[
('vectorizer', vectorizer),
('knn_gscv', knn_gscv)
])
return pipeline
我不确定传递多个分类器的位置。
谢谢。