scikit learn cross validation section of the userguide 中有一组相当丰富的交叉验证例程和示例。
请注意,SK-Learn 0.14 版和 0.15 版之间的交叉验证似乎已经取得了很大进展,因此如果您还没有升级到 0.15,我建议您升级到 0.15。
正如 jme 在他的评论中所指出的,一些交叉验证功能也已被纳入 SK-learn 的网格搜索和管道功能中。
为了完整回答您的问题,这里是一个简单的示例,但更高级的 k-fold、leave-one-out、leave-p-out、shuffle-split 等都可用:
import numpy as np
from sklearn import cross_validation
from sklearn import datasets
from sklearn import svm
iris = datasets.load_iris()
iris.data.shape, iris.target.shape
((150, 4), (150,))
X_train, X_test, y_train, y_test = cross_validation.train_test_split(iris.data,
iris.target,
test_size=0.4,
random_state=0)
X_train.shape, y_train.shape
((90, 4), (90,))
X_test.shape, y_test.shape
((60, 4), (60,))
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
clf.score(X_test, y_test)
0.96...
我希望这会有所帮助...祝你好运!