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)
posted @ 2020-02-05 11:40  _吟游诗人  阅读(3206)  评论(0编辑  收藏  举报