Seite 1 von 1

k-Fold Kreuzvalidierung

Verfasst: So Jun 23, 2024 10:59 am
von RMaphia_97
Hallo Zusammen,

ich möchte eine Kreuzvalidierung für einen Datensatz mit einer binären Zielvariable machen. Meine Formel sieht wie folgt aus:

Code: Alles auswählen

train_control<-trainControl(method="repeatedcv",number=10,repeats=1)
model<-train(zielvariable~v1+v2,data=Datensatz,method="glm",family="binomial",trControl=train_control)
print(model)
Ich bekomme folgende Fehlermeldung:

Code: Alles auswählen

Warning message:
In train.default(x, y, weights = w, ...) :
  You are trying to do regression and your outcome only has two possible values Are you trying to do classification? If so, use a 2 level factor as your outcome column.
Ich möchte die Werte "Accuracy" und "kappa" erhalten. Funktioniert aber nicht. R macht eine Kreuzvalidierung wie für ein Regressionsmodell, ich brauche aber Klassifikationsmodell.
Ich habe alles aus ChatGPT versucht (summaryfunction, classProbs, Metric=Accuracy), nur Fehlermeldungen.

Kann mir jemand helfen?

Danke!

Ma

Re: k-Fold Kreuzvalidierung

Verfasst: So Jun 23, 2024 7:23 pm
von bigben
Hallo Ma,
RMaphia_97 hat geschrieben: So Jun 23, 2024 10:59 am

Code: Alles auswählen

train_control <- trainControl(method="repeatedcv", number=10, repeats=1)
model <- train(zielvariable~v1 + v2, data = Datensatz, method = "glm", family = "binomial", trControl = train_control)
print(model)
Also das könnte Code aus dem Paket caret sein, aber das müsstest Du selbst wissen. Im Allgemeinen ist es empfehlenswert dazu zu sagen, zu welchen speziellen Paketen man Fragen hat.
Ich habe alles aus ChatGPT versucht
ChatGPT ist ein Intelligenzsimulator. Ich komme mir so alt vor, auf die Methoden der jungen Leute zu schimpfen, aber ChatGPT ist ein Wichtigtuer, ein schlau klingender Simulant.
Ich bekomme folgende Fehlermeldung:
Hast Du Sie gelesen? Enthält sie einen Hinweis, was Du tun sollst und hast Du versucht, den umzusetzen? Lies lieber, was caret sagt als was ChatGPT sagt.

Code: Alles auswählen

[...]Are you trying to do classification? If so, use a 2 level factor as your outcome column.
[...], ich brauche aber Klassifikationsmodell.
:shock: :o :D

LG,
Bernhard

Re: k-Fold Kreuzvalidierung

Verfasst: So Jun 23, 2024 9:28 pm
von RMaphia_97
Danke. Mittlerweile geht es. Hinweis für alle Nutzer:

Bei einer binären abhängigen Variable sollte die entsprechende Variable zunächst als Factor definiert werden mit der Funktion „as.factor“.

Danach funktioniert es!

Viele Grüße
Ma