scikit-learnのSVMでクロスバリデーション

scikit-learnのSVMでクロスバリデーションするサンプルです。5-foldの場合。
StratifiedKFoldに正解ラベルを渡すと、クラスのサイズを考慮した分割になるようです。
(データは適当です。)

import numpy as np
from sklearn import cross_validation
from sklearn import svm
from sklearn.cross_validation import StratifiedKFold

X = np.array([[-3,-2],
              [-1,0],
              [-4,2],
              [3,1],
              [4,-1],
              [-1,0],
              [-2,-5],
              [3,5],
              [10,1],
              [0,1]])
y = np.array([0,0,0,1,1,0,0,1,1,1])

skf = StratifiedKFold(y, 5)
for train, test in skf:
    print "training data indices", train
    print "test data indices", test
    clf = svm.SVC(kernel='linear', C=1)
    clf.fit(X[train], y[train])
    predict = clf.predict(X[test])
    print "prediction", predict
    print "ground truth", y[test]
    print "accuracy", (predict == y[test]).sum() / float(predict.size)
    print "----"