2011-11-26 15 views
5

Es10 * 10 veces la validación cruzada en scikit-learn?

class sklearn.cross_validation.ShuffleSplit(
    n, 
    n_iterations=10, 
    test_fraction=0.10000000000000001, 
    indices=True, 
    random_state=None 
) 

el camino correcto para 10 * de 10 veces CV en scikit-learn? (Cambiando la random_state 10 números diferentes)

Debido a que no encontrar cualquier random_state parámetro en Stratified K-Fold o K-Fold y la separada de K-Fold son siempre idénticos para los mismos datos.

Si ShuffleSplit es el derecho, una de las preocupaciones es que se menciona

Nota: al contrario de otras estrategias de validación cruzada, se divide al azar no garantía de que todos los pliegues será diferente, aunque esto sigue siendo muy probable para conjuntos de datos grandes

¿Siempre es así para 10 * 10 veces CV?

Respuesta

9

No estoy seguro de lo que quiere decir con una validación cruzada de 10 * 10. La configuración de ShuffleSplit que proporcione lo hará llamar al método de ajuste del estimador 10 veces. Si se llama a esto 10 veces utilizando explícitamente un bucle exterior o llamar 100 veces con 10% de los datos reservados para probar en un solo bucle si se utiliza en lugar de directamente:

>>> ss = ShuffleSplit(X.shape[0], n_iterations=100, test_fraction=0.1, 
...  random_state=42) 

Si usted quiere hacer 10 carreras de StratifiedKFold con k = 10 puede armar el conjunto de datos entre los tramos (que daría lugar a un total de 100 llamadas al método de ajuste con una división de prueba de 90% de tren/10% para cada llamada para encajar):

>>> from sklearn.utils import shuffle 
>>> from sklearn.cross_validation import StratifiedKFold, cross_val_score 
>>> for i in range(10): 
... X, y = shuffle(X_orig, y_orig, random_state=i) 
... skf = StratifiedKFold(y, 10) 
... print cross_val_score(clf, X, y, cv=skf) 
+0

Gracias, es exactamente lo que estaba buscando. Por cierto, vi 42 muchas veces en ejemplos en la página web, ¿alguna historia para eso? – Flake

+4

Usted está haciendo la pregunta incorrecta :) http://en.wikipedia.org/wiki/42_(Hitchhiker%27s_Guide_to_the_Galaxy)#Answer_to_the_Ultimate_Question_of_Life.2C_the_Universe.2C_and_Everything_.2842.29 – ogrisel

+0

¡Lo sabía! Pero se olvidó de 42 es el que ... – Flake