Ich führe eine Kreuzvalidierung mit der Methode "Auslassen" durch. Ich habe eine binäre Antwort und benutze das Boot-Paket für R und die cv.glm-Funktion . Mein Problem ist, dass ich den Teil "Kosten" in dieser Funktion nicht vollständig verstehe. Nach meinem Verständnis ist dies die Funktion, die entscheidet, ob ein geschätzter Wert als 1 oder als 0 klassifiziert werden soll, dh der Schwellenwert für die Klassifizierung. Ist das richtig?
Und in der Hilfe in R sie verwenden diese Funktion für einen Binomialmodells: cost <- function(r, pi = 0) mean(abs(r-pi) > 0.5)
. Wie interpretiere ich diese Funktion? so kann ich es für meine Analyse richtig modifizieren.
Jede Hilfe wird gebeten, ich möchte keine Funktion verwenden, die ich nicht verstehe.
quelle
Zunächst haben Sie einen Grenzwert von 0,5 festgelegt. Ihr r ist 0/1, aber pi ist Wahrscheinlichkeit. Die Einzelkosten sind also 1, wenn der absolute Fehler größer als 0,5 ist, andernfalls 0. Diese Funktion berechnet dann die durchschnittliche Fehlerrate. Denken Sie jedoch daran, dass der Grenzwert festgelegt wurde, bevor Sie Ihre Kostenfunktion definieren.
Eigentlich halte ich es für sinnvoller, wenn die Wahl des Cut-Offs durch die Kostenfunktion bestimmt wird.
quelle
Die Antwort von @SLi erklärt bereits sehr gut, was die von Ihnen definierte Kostenfunktion bewirkt. Ich dachte jedoch, ich würde hinzufügen, dass die Kostenfunktion verwendet wird, um den
delta
Wert zu berechnencv.glm
, der ein Maß für den Kreuzvalidierungsfehler ist. Kritischdelta
ist jedoch der gewichtete Durchschnitt des Fehlers jeder Falte, der durch die Kosten gegeben ist. Wir sehen dies, indem wir das relevante Bit des Codes untersuchen:und der von der Funktion zurückgegebene Wert ist:
quelle