我想使用BernoulliNB()分类器,而我的数据不是二进制的。所以我想用GridsearchCV()来选择最佳的二值化阈值。 我的代码看起来像:
from sklearn.pipeline import Pipeline
from sklearn.naive_bayes import BernoulliNB
from sklearn.preprocessing import Binarizer
pipeline = Pipeline([('binarizer', Binarizer()), ('classifier', BernoulliNB())])
params = {'estimator__binarizer__threshold': np.logspace(0, 5, 20)}
clf = GridSearchCV(pipeline, param_grid=params, cv=5, refit=True)
clf.fit(X_train,y_train)
clf.best_estimator_.score(X_test, y_test)
它给了我错误:
^{pr2}$我不知道怎么了。在
是的,我的错。在评论中,我只是发现了
'treshold'
的拼写错误,很匆忙,没有注意估算部分。在对于管道,可以使用以下两部分访问参数:
binarizer
或classifier
等步骤的名称您不需要将
estimator
附加到上述部分。因此,在您的情况下,您需要使用以下方法:访问管道的
'binarizer'
步骤的'threshold'
参数。在相关问题 更多 >
编程相关推荐