测试集和训练集8:2切分
最近接到个需求:测试集和训练集8:2切分,翻阅了很多资料封装了一个切分方法。
首先介绍下shuffle()函数
shuffle() 方法将序列的所有元素随机排序。
import randomrandom.shuffle (lst )
注意:shuffle()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
切分对象是一个列表
def split(full_list, shuffle=False, ratio=0.2):
n_total = len(full_list)
offset = int(n_total * ratio)
if n_total == 0 or offset < 1:
return [], full_list
if shuffle:
random.shuffle(full_list)
sublist_1 = full_list[:offset]
sublist_2 = full_list[offset:]
return sublist_1, sublist_2
if __name__ == "__main__":
li = range(5)
sublist_1,sublist_2 = split(li,shuffle=True,ratio=0.2)
print sublist_1,len(sublist_1)
print sublist_2,len(sublist_2)