Я не уверен, что вы имеете в виду под перекрестной проверкой 10 * 10. Предоставленная вами конфигурация ShuffleSplit заставит вас вызвать метод подбора оценщика 10 раз. Если вы вызываете это 10 раз, явно используя внешний цикл, или напрямую вызываете его 100 раз с 10% данных, зарезервированных для тестирования в одном цикле, если вы используете вместо этого:
>>> ss = ShuffleSplit(X.shape[0], n_iterations=100, test_fraction=0.1,
... random_state=42)
Если вы хотите сделать 10 прогонов StratifiedKFold с k = 10, вы можете перетасовать набор данных между прогонами (что приведет к 100 вызовам в методе fit с 90% поездом / 10% тестового разделения для каждого вызова соответствовать):
>>> 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)