Sklearn set_params dauert genau 1 argument?
Ich versuche, SkLearn Bayes-Klassifizierung.
gnb = GaussianNB()
gnb.set_params('sigma__0.2')
gnb.fit(np.transpose([xn, yn]), y)
Aber ich bekommen:
set_params() takes exactly 1 argument (2 given)
nun ich versuche es mal mit diesem code:
gnb = GaussianNB()
arr = np.zeros((len(labs),len(y)))
arr.fill(sigma)
gnb.set_params(sigma_ = arr)
Und erhalten:
ValueError: Invalid parameter sigma_ for estimator GaussianNB
Ist es falsch, Parametername oder-Wert?
Du musst angemeldet sein, um einen Kommentar abzugeben.
set_params()
dauert nur keyword-Argumente, da kann man in der Dokumentation. Es ist deklariert alsset_params(**params)
.So, in Ordnung, damit es funktioniert, müssen Sie rufen es mit keyword-Argumenten nur:
gnb.set_params(some_param = 'sigma__0.2')
sigma_
: array, shape = [n_classes, n_features], wie es geschrieben in Google docs. So, wie soll ich es einstellen?gnb.set_params(sigma_ = 0.2)
funktionieren sollte.print gnb.get_params()
, und finden Sie, wenn Sie den Namen der parameter, die Sie benötigen.Ich habe gerade stolperte über dieses, so ist hier eine Lösung für mehrere Argumente, die aus einem Wörterbuch:
Es ist geschrieben in der Dokumentation, die die syntax ist:
Diese zwei Sterne bedeuten, dass Sie brauchen zu geben Schlüsselwort-Argumente (darüber Lesen Sie hier). So dass Sie brauchen, um es in die
form your_param = 'sigma__0.2'
Hier das problem, dass
GaussianNB
hat nur einen parameter und das istpriors
.Aus der Dokumentation
Den
sigma
parameter, die Sie suchen, ist in der Tat ein Attribut der Klasse GaussianNB, und kann nicht zugegriffen werden, indem die Methodenset_params()
undget_params()
.Können Sie manipulieren
sigma
undtheta
Attribute, durch die Fütterung einigePriors
zu GaussianNB oder durch Anpassung an eine bestimmte Ausbildung festgelegt.sigma_
ist eine Instanz Attribut berechnet wird, die während der Ausbildung. Sie sind wohl nicht beabsichtigt, ändern Sie es direkt.Ausgabe:
Mehr code:
Ausgabe:
Nach dem training, ist es möglich, ändern Sie die
sigma_
Wert. Dies könnte Einfluss auf die Ergebnisse der Vorhersage.