2011-11-26 17 views
5

Czy10 * 10-krotny sprawdzian krzyżowy w nauce scikit?

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

właściwa droga dla 10 * 10fold CV w scikit-learn? (Zmieniając random_state do 10 różnych numerów)

Bo nie znaleźliśmy żadnego parametru random_state w Stratified K-Fold lub K-Fold i oddzielone od K-Fold są zawsze identyczne do tych samych danych.

Jeśli ShuffleSplit jest w porządku, jeden problemem jest to, że jest ona wymieniona

Uwaga: w przeciwieństwie do innych strategii cross-walidacji, przypadkowe podziały nie gwarancji, że wszystkie fałdy będzie inaczej, choć jest to nadal bardzo prawdopodobne w przypadku dużych zestawów danych

Czy ma to zawsze miejsce w przypadku 10 * 10-krotnego CV?

Odpowiedz

9

Nie jestem pewien, co masz na myśli, sprawdzając krzyżowo 10 * 10. Udostępniona przez ciebie konfiguracja ShuffleSplit wywoła 10 razy metodę dopasowania estymatora. Jeśli zadzwonisz to 10 razy jawnie przy użyciu zewnętrznej pętli lub bezpośrednio wywołać ją 100 razy z 10% danych zastrzeżone dla testów w pojedynczej pętli, jeśli używasz zamiast:

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

Jeśli chcesz zrobić 10 przebiegów z StratifiedKFold k = 10 można tasować zestawu danych między przebiegów (które doprowadziłyby do całkowitej 100 połączeń do dopasowania metodą z 90% pociąg/10% badanej rozłamu na każde wywołanie fit):

>>> 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

Dzięki, właśnie tego szukałem. BTW, widziałem 42 razy w przykładach na stronie internetowej, jakąś historię na ten temat? – Flake

+4

Zadajesz niewłaściwe pytanie :) 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

Znam to! Ale zapomniałem 42 jest tym ... – Flake