Sklearn set_params benötigt genau 1 Argument?

8

Ich versuche SkLearn Bayes-Klassifizierung zu verwenden .

%Vor%

Aber ich verstehe:

%Vor%

Jetzt versuche ich diesen Code zu verwenden:

%Vor%

Und holen:

%Vor%

Ist der Parametername oder -wert falsch?

    
Leonid 25.11.2014, 09:18
quelle

5 Antworten

4

set_params() verwendet nur Schlüsselwortargumente, wie in der Dokumentation zu sehen ist. Es wird als set_params(**params) deklariert.

Damit es funktioniert, müssen Sie es nur mit Schlüsselwortargumenten aufrufen: gnb.set_params(some_param = 'sigma__0.2')

    
Mezgrman 25.11.2014, 09:22
quelle
13

Ich bin gerade darüber gestolpert, also hier ist eine Lösung für mehrere Argumente aus einem Wörterbuch:

%Vor%     
Kam Sen 13.03.2015 09:19
quelle
2

Es ist in der Dokumentation geschrieben, dass die Syntax lautet:

  

set_params (** params)

Diese zwei Sterne bedeuten, dass Sie Schlüsselwortargumente geben müssen ( lesen Sie hier ). Sie müssen es also in form your_param = 'sigma__0.2'

tun     
Salvador Dali 25.11.2014 09:25
quelle
0

Das Problem hier ist, dass GaussianNB nur einen Parameter hat und das ist priors .

Aus der Dokumentation

%Vor%

Der gesuchte sigma -Parameter ist tatsächlich ein Attribut der Klasse GaussianNB und kann nicht von den Methoden set_params() und get_params() aufgerufen werden.

Sie können die Attribute sigma und theta manipulieren, indem Sie% Priors an GaussianNB übergeben oder an einen bestimmten Trainingssatz anpassen.

    
Pedro Baracho 06.12.2016 04:55
quelle
0

sigma_ ist ein Instanzattribut, das während des Trainings berechnet wird. Sie sind wahrscheinlich nicht dazu gedacht, es direkt zu ändern.

%Vor%

Ausgabe:

%Vor%

Mehr Code:

%Vor%

Ausgabe:

%Vor%

Nach dem Training ist es möglich, den Wert sigma_ zu ändern. Dies könnte die Ergebnisse der Vorhersage beeinflussen.

%Vor%     
nobar 17.02.2017 17:15
quelle

Tags und Links