【发布时间】:2019-01-02 17:25:51
【问题描述】:
我有一个很大的元素列表(在这个例子中,我假设它是用数字填充的)。例如:l = [1,2,3,4,5,6,7,8,9,10]
现在我想从该列表中抽取 2 个样本,一个包含 80% 的元素(当然是随机选择的),另一个包含剩余元素(20%),所以我可以使用较大的用于训练机器学习工具,其余的用于测试该训练。我使用的函数来自random,我是这样使用的:
sz = len(l) #Size of the original list
per = int((80 * sz) / 100) #This will be the length of the sample list with the 80% of the elements (I guess)
random.seed(1) # As I want to obtain the same results every time I run it.
l2 = random.sample(l, per)
我不完全确定,但我相信使用该代码我会得到一个包含 80% 数字的随机样本。
l2 = [3,4,7,2,9,5,1,8]
尽管如此,我似乎无法找到使用剩余元素 l3 = [6,10] 获取另一个示例列表的方法(sample() 函数不会删除它从原始列表中获取的元素)。你能帮我么?提前谢谢你。
【问题讨论】:
-
您已标记此机器学习。您的机器学习库可能已经包含训练测试拆分功能。
-
如果你想随机选择,也可以在这里查看答案:stackoverflow.com/questions/43196649/…
-
如果它们有唯一值,那么
set(l)-set(l2) -
@Maria 谢谢! sci-kit 功能对我帮助很大,因为这是我用于机器学习的工具;)
标签: python python-3.x random sample