python/numpy随机选取训练集/测试集索引
在训练模型中, 往往需要对数据集进行处理,从数据集中随机选取部分数据作为训练集,而另一部分数据作为测试集,一个常用的方法是随机选取索引,下面介绍两种从0~n
中随机选取x
个不重复索引的方法。
注意下述两种方法选出来的都是整数。
方法一、用python的random
import random
def getRandomIndex(n, x):
# 索引范围为[0, n), 随机选x个不重复
index = random.sample(range(n), x)
return index
方法二、用numpy.random.choice
import numpy as np
def getRandomIndex(n, x):
# 索引范围为[0, n),随机选x个不重复,注意replace=False才是不重复,replace=True则有可能重复
index = np.random.choice(np.arange(n), size=x, replace=False)
return index
那么到这儿已经获取到测试集的索引了,那么得将其余的索引单独做一个数组作为训练集的索引,做法如下
import numpy as np
# 先根据上面的函数获取test_index
test_index = np.array(getRandomIndex(n, x))
# 再讲test_index从总的index中减去就得到了train_index
train_index = np.delete(np.arange(n), test_index)