【发布时间】:2018-03-09 01:10:27
【问题描述】:
我正在尝试对 MultinomialNB (1) 进行随机参数优化。现在我的参数有 3 而不是一个值,因为它是 'class_prior' 并且我确实有 3 个类。
from sklearn.naive_bayes import MultinomialNB
from sklearn.grid_search import RandomizedSearchCV
from scipy.stats import uniform
tuned_parameters = {'class_prior': [uniform.rvs(0,3), uniform.rvs(0,3),
uniform.rvs(0,3)]}
clf = RandomizedSearchCV(MultinomialNB(), tuned_parameters, cv=3,
scoring='f1_micro', n_iter=10)
但是错误日志看起来像:
...
File "/home/mark/Virtualenvs/python3env2/lib/python3.5/site-
packages/sklearn/naive_bayes.py", line 607, in fit
self._update_class_log_prior(class_prior=class_prior)
File "/home/mark/Virtualenvs/python3env2/lib/python3.5/site-
packages/sklearn/naive_bayes.py", line 455, in _update_class_log_prior
if len(class_prior) != n_classes:
TypeError: object of type 'numpy.float64' has no len()
还尝试删除 .rvs -->
TypeError: object of type 'rv_frozen' has no len()
随机搜索一个包含 3 个组件,即 3 个 class_priors 的变量是不可能的吗?
【问题讨论】:
标签: scikit-learn naivebayes grid-search