def transform_pca(clf_list):
'''
From classifier list to pipeline list of the same classifiers and PCA.
'''
pca = PCA()
params_pca = {"pca__n_components":[2, 3, 4, 5, 10, 15, 20], "pca__whiten": [False]}
for j in range(len(clf_list)):
name = "clf_" + str(j)
clf, params = clf_list[j]
# Parameters in GridSearchCV need to have double underscores
# between specific classifiers.
new_params = {}
for key, value in params.iteritems():
new_params[name + "__" + key] = value
new_params.update(params_pca)
clf_list[j] = (Pipeline([("pca", pca), (name, clf)]), new_params)
return clf_list
评论列表
文章目录