Wie spezifiziert man die vorherige Wahrscheinlichkeit für Naiv Bayes von scikit-learn?

9

Ich benutze die scikit-learn Machine-Lernbibliothek (Python) für ein maschinelles Lernprojekt. Einer der Algorithmen, die ich verwende, ist die Gaussian Naive Bayes Implementierung. Eines der Attribute der Funktion GaussianNB () lautet wie folgt:

%Vor%

Ich möchte die Klasse manuell ändern, da die Daten, die ich verwende, sehr verzerrt sind und der Aufruf einer der Klassen sehr wichtig ist. Indem Sie dieser Klasse eine hohe Prior-Wahrscheinlichkeit zuweisen, sollte der Rückruf erhöht werden.

Ich kann jedoch nicht herausfinden, wie man das Attribut richtig setzt. Ich habe die folgenden Themen bereits gelesen, aber ihre Antworten funktionieren nicht für mich.

Wie können die vorherigen Wahrscheinlichkeiten für die Naiven Bayes in scikit-learn manuell eingestellt werden?

Woher weiß ich, welchen Prior ich dem sci-kit lerne? (Naive-Bayes Klassifikatoren.)

Das ist mein Code:

%Vor%

Ich dachte, das wäre die richtige Syntax und ich könnte herausfinden, welche Klasse zu welcher Stelle im Array gehört, indem ich mit den Werten spiele, aber die Ergebnisse bleiben unverändert. Auch wurden keine Fehler angegeben.

Wie werden die Attribute des GaussianNB -Algorithmus in der scikit-learn-Bibliothek richtig eingestellt?

Link zur scikit Dokumentation von GaussianNB

    
pevadi 17.06.2015, 15:45
quelle

2 Antworten

7

Die in scikit-learn implementierte GaussianNB () erlaubt es Ihnen nicht, die Klasse vorher zu setzen. Wenn Sie die Online-Dokumentation lesen, sehen Sie, dass .class_prior_ ein Attribut ist und nicht Parameter . Sobald Sie die GaussianNB () angepasst haben, können Sie auf das Attribut class_prior_ zugreifen. Es wird berechnet, indem einfach die Anzahl der verschiedenen Etiketten in Ihrer Trainingseinheit gezählt wird.

%Vor%

Sie sehen, dass der Schätzer intelligent genug ist, um das Problem des unausgewogenen Gewichts zu berücksichtigen. Sie müssen also die Prioren nicht manuell angeben.

    
Jianxun Li 17.06.2015, 16:14
quelle
6

@Jianxun Li: Es gibt tatsächlich eine Möglichkeit, vorhergehende Wahrscheinlichkeiten in GaussianNB zu setzen. Es heißt "priors" und es ist als Parameter verfügbar. Siehe Dokumentation: "Parameter: priors: Array-like, Form (n_classes,)     Vorherige Wahrscheinlichkeiten der Klassen. Wenn angegeben, werden die Prioren nicht entsprechend den Daten angepasst. " Lassen Sie mich Ihnen ein Beispiel geben:

%Vor%

Aber wenn Sie die vorherigen Wahrscheinlichkeiten geändert haben, wird es eine andere Antwort geben, nach der Sie suchen, glaube ich.

%Vor%     
Ram Seshadri 04.05.2017 17:28
quelle