Ich habe einen Datensatz mit 10.000 Beobachtungen. Meine Zielgröße hat zwei Klassen - „Y“ und „N. Im Folgenden ist die Verteilung von‚Y‘und‚N‘:Wie erstellt man ein ausgeglichenes Training und einen unsymmetrischen Testdatensatz in R?
> table(data$Target_Var)
Y N
2000 8000
Jetzt habe ich ein ausgewogenen Trainingsdaten so eingestellt, dass 50% erstellt werden soll (1000) die „Y“ ist in der Ausbildung. Da der Trainingsdatensatz soll ausgeglichen werden, wird es weitere 1000 Zeilen mit „N“. Gesamtzahl der Beobachtungen hat = 2000.
table(Training$Target_Var)
Y N
1000 1000
der Testdatensatz ist unausgeglichen, aber mit dem gleichen Verhältnis von "Y" und "N" wie in der Population, dh der Test wird 5000 Reihen von Beobachtungen mit 1000 "Y" und 4000 Reihen von "N" haben.
Jetzt kann ich eine Funktion schreiben, um es zu tun, aber gibt es irgendeine integrierte R-Funktion, die das tun kann? Ich untersuchte Sampling-Funktionen von Caret- und Sampling-Paketen, konnte aber keine Funktion finden, die einen Trainingsdatensatz erstellen könnte. SMOTE tut dies, indem er eine neue Beobachtung erstellt.
Sie mit 'Probe (Level versuchen können (Training $ Target_Var), 2000, ersetzen = TRUE, prob = c (0,2, 0,8)) ' – akrun