【发布时间】:2019-08-15 13:12:44
【问题描述】:
我正在尝试解决使用 KNN 算法进行分类的问题。在使用管道时,我决定添加SelectKBest,但出现以下错误:
所有中间步骤都应该是转换器,并实现拟合和转换。
我不知道我是否可以将这种选择算法与 KNN 一起使用。但我也尝试了 SVM 并得到了相同的结果。这是我的代码:
sel = SelectKBest('chi2',k = 3)
clf = kn()
s = ss()
step = [('scaler', s), ('kn', clf), ('sel',sel)]
pipeline = Pipeline(step)
parameter = {'kn__n_neighbors':range(1,40,1), 'kn__weights':['uniform','distance'], 'kn__p':[1,2] }
kfold = StratifiedKFold(n_splits=5, random_state=0)
grid = GridSearchCV(pipeline, param_grid = parameter, cv=kfold, scoring = 'accuracy', n_jobs = -1)
grid.fit(x_train, y_train)
【问题讨论】:
标签: python scikit-learn pipeline