2016-07-20 39 views
1

Mit caret Paket, wenn Datenpartition 75% Ausbildung und 25% Test erstellen, verwenden wir:Daten erstellen Partition in R

inTrain<- createDataPartition(y=spam$type,p=0.75, list=FALSE) 

Hinweis: Daten-Set spam genannt wird und Zielvariable type

benannt Meine Frage ist, was ist der Zweck der Einbeziehung y=spam$type Argument?

Ist es nicht das Ziel der Erstellung von Datenpartitionen, einfach den gesamten Datensatz basierend auf dem Verhältnis zu teilen, das Sie für Training oder Testen benötigen? Warum muss dieses Argument in den Code aufgenommen werden?

+0

nicht 100% aber ich glaube, das ist nur um den Befehl zu sagen, durch welche Variable Sie die Daten partitionieren. Ich bin mir nicht sicher, dass es von großer Bedeutung ist, außer zu klären, wie man partitioniert - einfacher für den Computer zu verstehen –

+0

Woher hast du diese Funktion 'createDataPartition'? Was gibt 'str (inTrain)' aus? – aichao

+0

@ a.powell Was meinst du mit "um zu sagen .. durch welche Variable partitionierst du die Daten?" Mein Verständnis von Partitionierung besteht einfach darin, die gesamten Daten zu teilen. Warum sollten wir darauf hinweisen, dass "Typ" meine Zielvariable in diesem Stadium ist? Verstehe ich konzeptionell die Idee der Datenpartitionierung falsch? – Aiden

Antwort

4

Ich habe angenommen, dass sich die in Frage stehende createDataPartition() auf das Caret-Paket bezieht.

Wenn das Argument sample$type ein Faktor ist, der im Allgemeinen der Fall ist, erfolgt die Stichprobenauswahl innerhalb jeder Klasse.

Einige weitere Erklärung: Zum Beispiel, wenn wir den iris Datensatz im gleichen Verhältnis wie in Ihrer Frage partitionieren würden.

attach(iris) 
summary(iris) 

beachten Sie die Nummern für jede Spezies. Jetzt mit dem folgenden Befehl:

library(caret) 
inTrain <- createDataPartition(y=Species, p=0.75, list=FALSE) 

ich Online ca. 75% Reihen von jeder Art nehmen würde, die durch die Ausgabe des folgenden Befehls überprüft werden kann:

summary(iris[inTrain,]) 

Es gibt 50 Arten in jeder Kategorie, und 38 (ca. 75%) wurden zufällig für den Trainingsdatensatz ausgewählt.

+0

Ja, ich beziehe mich auf das Caret-Paket. Beispiel $ type ist die Zielvariable, die ich später nach dem Erstellen eines linearen Modells vorhersagen möchte. Was meinst du mit "Stichproben in jeder Klasse"? – Aiden

+0

Ich habe die Antwort weiter erklärt. Sie können leicht verstehen, indem Sie einen anderen Wert von "p" wählen, z. 0.5 und prüfen, wie viele Zeilen für den Trainingssatz ausgewählt sind. –