Python实现 交叉验证

交叉验证

交叉验证(Cross Validation)是常用的机器学习训练手段,可以有效检验一个模型的泛化能力。交叉验证需要将原始数据集平等地划分为若干份,例如 5-folds CV 指的是将数据集分为5份,然后进行5次训练,每次取出一份数据作为测试集,剩下的作为训练集,得到5个模型,最终将5个模型的预测值做一个平均。

CV的第一步就是划分数据集

trainingSet :储存训练集索引
index :数据集总数
all_data:储存测试集索引

trainingSet = list(range(all_data))		       #创建存储训练集的索引值的列表

testSet = []            			       #储存测试集的索引值的列表                           

for i in range(test_num):                              #从all_data个数据中,随机挑选出(all_data- test_num)个作为
							#训练集,test_num个做测试集        

	randIndex = int(random.uniform(0, len(trainingSet)))   #随机选取索索引值        

	testSet.append(trainingSet[randIndex])                 #添加测试集的索引值        

	del(trainingSet	[randIndex])                           #在训练集列表中删除添加到测试集的索引值

然后testSet就可以用作测试集了

你可能感兴趣的:(Python零基础,机器学习,sklearn)