Sembra che KFold generi gli stessi valori ogni volta che viene ripetuto l'oggetto, mentre Shuffle Split genera indici diversi ogni volta. È corretto? Se sì, quali sono gli usi per uno rispetto all'altro?Qual è la differenza tra KFold e ShuffleSplit CV?
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)))
produce il seguente output:
[(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]))]
Ottima risposta, grazie! Ora sembra che quando crei un nuovo generatore KFold e lo shuffle sia vero, produrrà un output diverso, ma non quando chiami il generatore più volte. Perché è così? – rb612
Hai appena deciso di fare una nuova domanda per il tuo commento per evitare che questo diventi troppo lungo. [È qui] (http://stackoverflow.com/questions/34940465/why-does-calling-the-kfold-generator-with-shuffle-give-the-same-indices/34940524#34940524). Spero che sia d'aiuto! – imp9