我正在使用scikit学习库的Pipeline和GridSearchCV。
我知道,例如,功能选择方法可以由FeatureUnion组合。在这种情况下,结果是连接的。我正在寻找的是一种或多功能,以便网格搜索并行执行并且不会在最后结合。
在下面的(无效)示例中,应执行SelectKBest()+ SVC()和VarianceThreshold()+ SVC()。
pipeline = Pipeline([
[('kbest', SelectKBest()),
('variance', VarianceThreshold())],
('svm', SVC())
])
parameters = {
'kbest__k': [3, 5],
'variance__threshold': [0.1, 0.2],
'svm__C': [1],
'svm__gamma': [0.1, 0.01]
}
grid_search = GridSearchCV(pipeline, parameters)
grid_search.fit(X, y)
如果是,是否可以使用相同的功能来生成多个估算器?
答案 0 :(得分:0)
方法如下:
[None]
即可跳过一个工作示例:
from sklearn.feature_selection import VarianceThreshold
from sklearn.svm import SVC
from sklearn.datasets import load_iris
pipeline = Pipeline([
('kbest', SelectKBest()),
('variance', VarianceThreshold()),
('svm', SVC())
])
iris = load_iris()
X = iris.data
y = iris.target
parameters = [
{
'variance': [None],
'kbest__k': [1, 2],
'svm__C': [1],
'svm__gamma': [0.1, 0.01]
},
{
'kbest': [None],
'variance__threshold': [0.1, 0.2],
'svm__C': [1],
'svm__gamma': [0.1, 0.01]
}
]
grid_search = GridSearchCV(pipeline, parameters)
grid_search.fit(X, y)