【发布时间】:2019-04-30 02:00:07
【问题描述】:
我想使用 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)
它给了我错误:
ValueError: Check the list of available parameters with estimator.get_params().keys().
我不知道怎么了。
【问题讨论】:
-
estimator__binarizer__treshold应该是estimator__binarizer__threshold。"threshold"的拼写错误。 -
这不是原因。它仍然给我这个错误: ValueError: Invalid parameter estimator for estimator Pipeline(memory=None, steps=[('binarizer', Binarizer(copy=True, threshold=0.0)), ('classifier', BernoulliNB(alpha=1.0 , 二值化=0.0, class_prior=None, fit_prior=True))])。使用
estimator.get_params().keys()检查可用参数列表。 -
请不要将 cmets 空间用于此目的 - 编辑和更新您的帖子!
标签: python scikit-learn classification naivebayes