划分交叉验证集

进行交叉validation时,划分交叉验证集,此处以五折交叉验证集的划分为例子(python实现)

# -*- coding: utf-8 -*-
import os,os.path as op
import numpy as np
import random
train_txt = '/media/dell/dell/data/huawei_remotesensing/train/train1.txt'
val_txt   = '/media/dell/dell/data/huawei_remotesensing/val/val.txt'
txt_tlpt  = '/home/dell/Desktop/train/folds_split/{}_{}.txt'

def GetLines(txt_path):
    return [line for line in open(txt_path).readlines() if len(line)>0]

TrainList = GetLines(train_txt)
ValList   = GetLines(val_txt)
AllList   = TrainList+ValList
random.shuffle(AllList)
def WriteTxt(List,txt_path):
    f = open(txt_path,'w+')
    for line in List:
        f.writelines(line)
    if op.exists(txt_path):
        print('{}\t{}'.format(txt_path,len(List)))

def ReAllocation(AllList,fold=5):
    unit = int(len(AllList)/fold)
    for i in range(fold):
        j = fold-i-1
        TrainList = AllList[:unit*j]+AllList[unit*(j+1):]
        ValList   = AllList[unit*j:unit*(j+1)]
        WriteTxt(TrainList,txt_tlpt.format('train',i+1))
        WriteTxt(ValList,txt_tlpt.format('val',i+1))

ReAllocation(AllList)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值