Frage

Ok, also hier ist ein Problem für mein Problem analog (I auf das eigentliche Problem unten erarbeiten werde, aber ich denke, diese Analogie einfacher zu verstehen).

Ich habe eine seltsame zweiseitige Münze, die nur Köpfe aufkommt (zufällig) 1 in alle 1.001 Würfen (wobei der Rest aus tails). Mit anderen Worten, je 1.000 Schwänze ich sehe, wird es 1 Kopf sein.

Ich habe eine eigenartige Krankheit, wo ich merke, nur 1 von 1.000 Schwänzen ich sehe, aber ich merke, alle Köpfe, und so scheint es mir, dass die Rate einen Kopf oder Zahl zu bemerken ist 0,5. Natürlich bin ich von dieser Krankheit bewusst und seine Wirkung, so kann ich es kompensieren.

Jemand gibt mir jetzt eine neue Münze, und ich bemerkte, dass der Rate Köpfe zu bemerken jetzt 0,6. Da meine Krankheit nicht verändert hat (ich immer noch nur Bekanntmachung 1 von 1.000 Schwänzen), wie berechne ich das tatsächliche Verhältnis von Köpfen zu Schwänzen, dass diese neue Münze produziert?


Ok, so was ist das eigentliche Problem? Nun habe ich eine Reihe von Daten der Eingabe besteht, und Ausgänge, die 1en und 0en sind. Ich möchte einen überwachten Maschinen-Lernalgorithmus lehren, die erwartete Ausgabe (einen Schwimmer zwischen 0 und 1) Da eine Eingabe vorauszusagen. Das Problem ist, dass der 1s sehr selten ist, und diese Schrauben auf die internen Mathematik, weil es sehr anfällig für Rundungsfehler -. Auch mit hochpräzisen Gleitkommamathematik

So normalisieren ich die Daten nach dem Zufallsprinzip die meisten der 0 Trainingsmuster weggelassen, so dass es scheint, dass es ein etwa gleiches Verhältnis von 1 und 0 ist. Natürlich bedeutet dies, dass nun die Maschine Lernalgorithmus die Ausgabe nicht-mehr eine Wahrscheinlichkeit vorherzusagen, dh. statt der Vorhersage 0,001 wie es sein sollte, ist es nun 0,5 vorhersagen würde.

ich brauche einen Weg, um die Leistung der Maschine Lernalgorithmus zu konvertieren, um eine Wahrscheinlichkeit wieder in dem ursprünglichen Trainingssatz.

Anmerkung des Autors (2015.10.07): Später entdeckte ich, dass diese Technik gemeinhin als "Downsampling"

bekannt ist,
War es hilfreich?

Lösung

Sie sind der Berechnung der folgenden

calculatedRatio = heads / (heads + tails / 1000)

und Sie müssen

realRatio = heads / (heads + tails)

Lösen beiden Gleichungen für tails ergibt die folgenden Gleichungen.

tails = 1000 / calculatedRatio - 1000
tails = 1 / realRatio - 1

Die Kombination von beiden ergibt die folgende.

1000 / calculateRatio - 1000 = 1 / realRatio - 1

Und schließlich die Lösung für realRatio.

realRatio = 1 / (1000 / calculatedRatio - 999)

Es scheint korrekt zu sein. calculatedRatio 0,5 Ausbeuten realRatio 1/1001, 0,6 Ausbeuten 3/2003.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top