Ich möchte einen Wert vorhersagen und ich versuche, eine Vorhersage zu erhalten, bei der so niedrig wie möglich ist, aber immer noch größer als . Mit anderen Worten: Y ( x ) , Y ( x ) Kosten { Y ( x ) ≳ Y ( x ) } > > Kosten { Y ( x ) ≳ Y ( x ) }
Ich denke, eine einfache lineare Regression sollte völlig in Ordnung sein. Ich weiß also etwas, wie man dies manuell implementiert, aber ich glaube, ich bin nicht der erste, der mit dieser Art von Problem konfrontiert ist. Gibt es Pakete / Bibliotheken (vorzugsweise Python), die das tun, was ich tun möchte? Nach welchem Schlüsselwort muss ich suchen?
Was wäre, wenn ich eine Funktion wüsste, wobei . Wie können diese Einschränkungen am besten umgesetzt werden?Y ( x ) > Y 0 ( x )
machine-learning
logistic-regression
asPlankBridge
quelle
quelle
Antworten:
Wenn ich dich richtig verstehe, willst du auf der Seite der Überschätzung irren. In diesem Fall benötigen Sie eine entsprechende asymmetrische Kostenfunktion. Ein einfacher Kandidat besteht darin, den quadratischen Verlust zu optimieren:
Dabei ist- 1 < α < 1 ein Parameter, mit dem Sie die Strafe der Unterschätzung gegen die Überschätzung austauschen können. Positive Werte von α beeinträchtigen die Überschätzung, daher sollten Sie α negativ setzen. In Python sieht das so aus
def loss(x, a): return x**2 * (numpy.sign(x) + a)**2
Als nächstes generieren wir einige Daten:
Schließlich werden wir unsere Regression in
tensorflow
einer maschinellen Lernbibliothek von Google durchführen, die die automatisierte Differenzierung unterstützt (wodurch die gradientenbasierte Optimierung solcher Probleme einfacher wird). Ich werde dieses Beispiel als Ausgangspunkt verwenden.cost
ist der reguläre quadratische Fehler, währendacost
die oben erwähnte asymmetrische Verlustfunktion ist.Wenn Sie verwenden, erhalten
cost
SieWenn Sie verwenden, erhalten
acost
Sieacost
versucht eindeutig nicht zu unterschätzen. Ich habe nicht auf Konvergenz geprüft, aber Sie haben die Idee.quelle
acost
Funktion. Ist es wichtig, dass Siey_model-Y
zweimal kalkulieren ?Wählen Sie eine asymmetrische Verlustfunktion. Eine Option ist die Quantilregression (linear, jedoch mit unterschiedlichen Steigungen für positive und negative Fehler).
quelle