Wie kann ich das zuweisen einer class_weight in Keras in einer einfachen Art und Weise?
Kann mir jemand sagen, was ist die einfachste Möglichkeit, um class_weight
im Keras, wenn der Datensatz ist unbalanciert bitte?
Habe ich nur zwei Klassen, die in meine Zielgruppe.
Dank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
class_weight
parameter derfit()
Funktion wird ein dictionary-Zuordnung von Klassen zu einem Gewicht Wert.Können sagen, Sie haben 500 Proben der Klasse 0 und 1500 Proben der Klasse 1 als Einspeisung in class_weight = {0:3 , 1:1}. Das gibt Klasse 0 drei mal das Gewicht der Klasse 1.
train_generator.classes
gibt Ihnen den richtigen Klassen-Namen für Ihre Gewichtung.Wenn Sie berechnen wollen, dies programmgesteuert können Sie scikit-lernt sklearn.utils.compute_class_weight().
Die Funktion sucht bei der Verteilung von Etiketten und produziert GEWICHTE gleichmäßig zu bestrafen, unter-oder überrepräsentiert Klassen in der trainingsmenge.
Siehe auch dieser nützliche thread hier: https://github.com/fchollet/keras/issues/1875
... Und dieser thread könnte auch helfen: Ist es möglich, automatisch zu folgern, der class_weight von flow_from_directory in Keras?
Mit class_weight von sklearn kit.
Im auch mit dieser Methode zu behandeln das Ungleichgewicht Daten
dann Modell.fit
Sind Sie mit der Frage nach der richtigen Gewichtung zu gelten oder wie man das in den code? Der code ist einfach:
und dann übergeben Sie das argument
class_weight=class_weights
immodel.fit
.Die richtige Gewichtung zu verwenden, wäre eine Art inverse frequency; Sie können auch ein bisschen von Versuch und Irrtum.
1 - Definieren Sie ein Wörterbuch, mit dem Sie Ihre Etiketten und Ihre zugehörigen GEWICHTE
2 - Futter das Wörterbuch als parameter:
Klasse GEWICHTE nimmt ein Wörterbuch geben.