如何在matlab中从数据集中随机选择一些数据?
当我们使用randperm函数选择数据时,它们是随机且公平的吗?
答案 0 :(得分:1)
正如您已经建议的那样,假设您不想复制,可以使用k
从n
中选择randperm
统一随机选择的行。
示例:
dataSet = rand(1000,4);
idx = randperm(size(dataSet,1),10)
dataSet(idx,:)
答案 1 :(得分:1)
如果您有统计工具箱,则可以使用randsample
:
sample = randsample(data,k);
从k
向量中的值中随机均匀地采样data
值,而无需替换。有关其他选项,请参见上面的链接。
randperm
的等效代码:
ind = randperm(numel(data));
sample = data(ind(1:k));
是的,这些方法中的任何一种都会提供随机样本,是的,它们是 fair 。我假设“公平”是指“统一”:data
的每个条目都以相同的概率被选中。
答案 2 :(得分:0)
任何使用统一分配的东西都是“公平的”。因为输出应该在特定范围内随机分布。例如,matlab中的 rand 函数。