Sklearn set_params只接受一个参数?

2024-05-08 11:56:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用SkLearnBayes classification

 gnb = GaussianNB()
 gnb.set_params('sigma__0.2')
 gnb.fit(np.transpose([xn, yn]), y)

但我得到:

set_params() takes exactly 1 argument (2 given)

现在我尝试使用以下代码:

gnb = GaussianNB()
arr = np.zeros((len(labs),len(y)))
arr.fill(sigma)
gnb.set_params(sigma_ = arr)

得到:

ValueError: Invalid parameter sigma_ for estimator GaussianNB

参数名或值是否错误?


Tags: lennpparamssigmafitclassificationtransposearr
3条回答

我刚刚无意中发现了这个问题,所以这里有一个字典中多个参数的解决方案:

from sklearn import svm
params_svm = {"kernel":"rbf", "C":0.1, "gamma":0.1, "class_weight":"auto"}
clf = svm.SVC()
clf.set_params(**params_svm)

set_params()只接受关键字参数,如文档中所示。它被声明为set_params(**params)

因此,为了使其工作,您只需要使用关键字参数来调用它:gnb.set_params(some_param = 'sigma__0.2')

文档中的语法是:

set_params(**params)

这两颗星意味着您需要给出关键字参数(read about it here)。所以你需要在form your_param = 'sigma__0.2'中完成它

相关问题 更多 >

    热门问题