使用留一验证法进行分析
由于交叉验证法每次选取的测试集是随机的,因此每次运算结果未必相同。此时可采用留一验证法进行分析。
选取第0组作为测试集,其它为训练集重新训练模型,对第0组数据进行预测并验证是否正确。
选取第1组作为测试集,其它为训练集重新训练模型,对第1组数据进行预测并验证是否正确。
...
选取第n-1组作为测试集,其它为训练集重新训练模型,对第n-1组数据进行预测并验证是否正确。
统计这n组结果的准确率
from sklearn import datasets #鸢尾花数据集被sklearn的datasets所包含,需要引用
from sklearn.cross_validation import train_test_split
from sklearn.svm import SVC
from numpy import *
def data_svc_test(data, target, index): #3个参数分别为数据、类型编号标签、被选取的编号
x_train = vstack((data[0:index],data[index+1:-1])); #除第index号之外的数据为训练集
x_test = data[index]; #第index号数据为测试集
y_train = hstack((target[0:index],target[index+1:-1])); #除第index号之外标签为训练集
y_test = target[index]; #第index号标签为测试集
SVC_0 = SVC(kernel='rbf'); #建立SVC模型
SVC_0.fit(x_train,y_