Grundsätzlich möchte ich Ähnlichkeitsmaße in Gewichte umwandeln, die als Prädiktoren verwendet werden. Die Ähnlichkeiten werden auf [0,1] sein, und ich werde die Gewichte so einschränken, dass sie auch auf [0,1] liegen. Ich hätte gerne eine Parameterfunktion, die dieses Mapping ausführt, das ich wahrscheinlich mithilfe des Gradientenabfalls optimieren werde. Die Anforderungen sind, dass 0 Karten auf 0, 1 Karten auf 1 und es streng erhöht wird. Eine einfache Ableitung wird ebenfalls geschätzt. Danke im Voraus
Edit: Danke für die bisherigen Antworten, die sind sehr hilfreich. Um meinen Zweck klarer zu machen, ist die Aufgabe die Vorhersage. Meine Beobachtungen sind extrem spärliche Vektoren mit einer einzigen Dimension, die vorhergesagt werden kann. Meine Eingabedimensionen werden verwendet, um die Ähnlichkeit zu berechnen. Meine Vorhersage ist dann eine gewichtete Summe des Wertes anderer Beobachtungen für den Prädiktor, wobei das Gewicht eine Funktion der Ähnlichkeit ist. Der Einfachheit halber beschränke ich meine Gewichte auf [0,1]. Es ist jetzt hoffentlich offensichtlich, warum ich 0 benötige, um 0 zuzuordnen, 1, um 1 zuzuordnen, und damit es streng zunimmt. Wie Whuber darauf hingewiesen hat, erfüllt die Verwendung von f (x) = x diese Anforderungen und funktioniert tatsächlich ziemlich gut. Es sind jedoch keine Parameter zu optimieren. Ich habe viele Beobachtungen, so dass ich viele Parameter tolerieren kann. Ich werde den Gradientenabstieg von Hand codieren, daher bevorzuge ich eine einfache Ableitung.
Zum Beispiel sind viele der gegebenen Antworten symmetrisch um 0,5. Es wäre nützlich, Parameter zum Verschieben nach links / rechts zu haben (z. B. bei der Beta-Verteilung).
quelle
Antworten:
Hier ist eine:
wo ist > 0β > 0
] 2
quelle
Wie bereits von @whuber kommentiert, erfüllt die Funktion die drei von Ihnen genannten Anforderungen (dh 0 entspricht 0, 1 entspricht 1 und die Funktion nimmt strikt zu). Im Titel Ihrer Frage scheinen Sie darauf hinzuweisen, dass Sie auch daran interessiert sind, dass die Funktion S-förmig ist, wie in der Sigmoid / Logistic-Kurve. Ist das richtig? In diesem Fall sollten Sie auf jeden Fall die folgende Logistikfunktion ausprobieren, die ungefähr alle 4 von Ihnen angegebenen Kriterien erfüllt: 1f( x ) = x .
Das in dieser Gleichung steuert die Steigung Ihrer Kurve. Durch Ändern von k können Sie auch steuern, wie nahe f ( 0 ) und f ( 1 ) an 0 bzw. 1 liegen. Zum Beispiel für k = 20 ist f ( 0 ) = 4,539787 e - 05 und f ( 1 ) = 0,9999546 .k k f( 0 ) f( 1 ) k = 20 f( 0 ) = 4,539787 e - 05 f( 1 ) = 0,9999546
Die Ableitung dieser Funktion kann leicht berechnet werden als:
quelle
Lassen Sie mich die allgemeinste Lösung anbieten, die den Anforderungen entspricht: Sie erhalten die größtmögliche Flexibilität bei der Auswahl und Optimierung.
Wir können "S-förmig" als eine monoton ansteigende Kurve interpretieren (weil die Transformation eins zu eins sein sollte), die aus einem Teil besteht, der nach oben konkav ist, und einem anderen Teil, der nach unten konkav ist. Wir können uns darauf konzentrieren, die linke Hälfte nach unten konkav zu machen, da der andere Typ (mit der linken Hälfte nach oben konkav) durch Invertieren solcher Transformationen erhalten wird.
Diese zweite Ableitung kann praktisch alles : Alles, was wir brauchen, ist das
es ist integrierbar,
und
R
quelle
Wofür Sie dies verwenden möchten, ist mir nicht besonders klar, daher kann ich nicht sagen, ob dies sinnvoll ist, aber die Erfüllung all Ihrer Kriterien scheint ziemlich trivial zu sein.
Warum also nicht einfach eine geeignete spezifische Familie kontinuierlicher unimodaler * Verteilungen auf [0,1] nehmen, deren PDF "einfach" ist? Das scheint jeden Teil dessen zu erfüllen, was Sie dort auflisten.
* (dessen Modus von den Endpunkten entfernt ist)
s-förmige Kurve - garantiert durch Unimodalität (mit Modus nicht an Endpunkten)
parametrisch - durch Angabe einer bestimmten Familie mit Parametern
0 Karten auf 0, 1 Karten auf 1 nehmen streng zu - das ist, was Verteilungsfunktionen auf [0,1] tun; Sie brauchen nur die Dichte> 0 in (0,1)
einfache Ableitung - das ist das PDF. Wenn das PDF also nach einem für Sie geeigneten Kriterium "einfach" ist, sind Sie fertig.
Es gibt (wie Alex R sagte) unendlich viele davon. Die Beta, die er erwähnt, ist offensichtlich, aber das PDF ist die unvollständige Beta-Funktion. Sie benötigen also etwas, um dies zu bewerten. Es ist eine Standardfunktion in vielen Paketen (einschließlich fast aller anständigen Statistikpakete), daher bezweifle ich, dass dies der Fall ist schwierig sein. Beachten Sie jedoch, dass nicht alle Betas unimodal sind (mit dem Modus nicht am Ende), sodass die Familie auch CDFs umfasst, die nicht "s" geformt sind.
Hier sind Bilder von drei einigermaßen einfachen Familien:
Es gibt viele andere Möglichkeiten und neue können leicht konstruiert werden.
- -
Als Antwort auf die Bearbeitung der Frage:
quelle