Sklearn set_params只需1个参数?

Leo*_*nid 15 python scikit-learn

我正在尝试使用SkLearn Bayes分类.

 gnb = GaussianNB()
 gnb.set_params('sigma__0.2')
 gnb.fit(np.transpose([xn, yn]), y)
Run Code Online (Sandbox Code Playgroud)

但我得到:

set_params() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)

现在我尝试使用此代码:

gnb = GaussianNB()
arr = np.zeros((len(labs),len(y)))
arr.fill(sigma)
gnb.set_params(sigma_ = arr)
Run Code Online (Sandbox Code Playgroud)

得到:

ValueError: Invalid parameter sigma_ for estimator GaussianNB
Run Code Online (Sandbox Code Playgroud)

参数名称或值是错误的吗?

Kam*_*Sen 31

我只是偶然发现了这一点,所以这里有一个来自字典的多个参数的解决方案:

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)
Run Code Online (Sandbox Code Playgroud)


Mez*_*man 9

set_params()只接受关键字参数,如文档中所示.它被宣布为set_params(**params).

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