Was ist der Unterschied zwischen KFold und ShuffleSplit Lebenslauf?
Wie es scheint, KFold erzeugt die gleichen Werte, die jedes mal, wenn das Objekt der Iteration, während der Shuffle-Split erzeugt verschiedene Indizes zu jeder Zeit. Ist das richtig? Wenn ja, was sind die Anwendungen für einen über den anderen?
cv = cross_validation.KFold(10, n_folds=2,shuffle=True,random_state=None)
cv2 = cross_validation.ShuffleSplit(10,n_iter=2,test_size=0.5)
print(list(iter(cv)))
print(list(iter(cv)))
print(list(iter(cv2)))
print(list(iter(cv2)))
Ergibt sich die folgende Ausgabe:
[(array([1, 3, 5, 8, 9]), array([0, 2, 4, 6, 7])), (array([0, 2, 4, 6, 7]), array([1, 3, 5, 8, 9]))]
[(array([1, 3, 5, 8, 9]), array([0, 2, 4, 6, 7])), (array([0, 2, 4, 6, 7]), array([1, 3, 5, 8, 9]))]
[(array([4, 6, 3, 2, 7]), array([8, 1, 9, 0, 5])), (array([3, 6, 7, 0, 5]), array([9, 1, 8, 4, 2]))]
[(array([3, 0, 2, 1, 7]), array([5, 6, 9, 4, 8])), (array([0, 7, 1, 3, 8]), array([6, 2, 5, 4, 9]))]
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unterschied in KFold und ShuffleSplit Ausgabe
KFold teilen Sie Ihre Daten in vorgegebenen Anzahl von Falten, und jede Probe muss in einer und nur einer Falte. Eine Falte ist eine Teilmenge Ihres Datensatzes.
ShuffleSplit werden nach dem Zufallsprinzip Beispiel der gesamte Datenbestand bei jedem iteration zu generieren, die einen Trainingssatz und einen Testsatz. Die
test_size
undtrain_size
Parameter Steuern Sie, wie groß die test-und training test set sollte für jede iteration. Da Sie Proben aus dem gesamten dataset während jeder iteration werden die Werte ausgewählt, die während einer iteration, konnte erneut ausgewählt werden, während eine weitere iteration.Zusammenfassung: ShuffleSplit arbeitet iterativ, KFold nur teilt den Datensatz in k Falten.
Unterschied, wenn dabei die Validierung
In KFold, die in jeder Runde verwenden Sie eine Falte wie der test set-und alle die restlichen Falten als Ihre Ausbildung. Jedoch, in ShuffleSplit, die in jeder Runde
n
sollten Sie nur Verwendung der Trainings-und test-set von iterationn
. Als Datensatz wächst, cross-Validierung-Zeit erhöht, so dass shufflesplits eine weitere attraktive Alternative. Wenn Sie können, trainieren Sie Ihren Algorithmus mit einem bestimmten Prozentsatz Ihrer Daten im Gegensatz zur Verwendung aller k-1-Falten, ShuffleSplit ist eine attraktive option.