文档

datasample

从数据中随机抽样,有或没有替换

语法

Y = datasample(data,k)
Y = datasample(data,k,dim)
Y = datasample(___、名称、值)
Y = data ample(s,___
[y,idx] = datasample(___

描述

例子

y= datasample (数据k返回k从数据中均匀随机抽样,并进行替换的观测值数据

例子

y= datasample (数据k昏暗的返回沿维度采集的样本昏暗的数据

例子

y= datasample (___名称,值返回前面语法中任何输入参数的示例,并带有由一个或多个名-值对参数指定的附加选项。例如,“替换”,假的指定不替换的抽样。

例子

y= datasample (年代___使用随机数流年代生成随机数。的选项年代可以放在前面语法中的任何输入参数之前。

例子

yidx= datasample(___还返回指示哪些值的索引向量datasample从采样数据使用前面语法中的任何输入参数。

例子

全部折叠

为重现性创建随机数流。

s = RandStream(“mlfg6331_64”);

从整数中抽取5个惟一值110

Y = datasample(s,1:10,5,“替换”假)
y =1×59 8 3 6 2

为重现性创建随机数流。

s = RandStream(“mlfg6331_64”);

生成48序列中的随机字符ACGT每个特定的概率。

Seq = datasample(s,“ACGT”现年48岁的“重量”,[0.15 0.35 0.35 0.15])
seq = 'GGCGGCGCAAGGCGCCGGACCTGGCTGCACGCCGTTCCCTGCTACTCG'

为结果的重现性设置随机种子。

rng (10,“旋风”

生成一个10行1000列的矩阵。

X = randn(10,1000);

创建随机数流内的再现性datasample

s = RandStream(“mlfg6331_64”);

从。中随机选择五列X

Y = datasample(s,X,5,2,“替换”假)
Y =10×50.4317 -0.3327 0.9112 -2.3244 0.9559 -0.7422 0.4578 -1.3745 -0.8634 -0.8543 -0.3105 0.9836 -0.6434 -0.4457 0.1686 0.6609 -0.0553 -0.1202 -1.3699 -1.7649 -1.1607 -0.3513 -1.5533 0.0597 -0.3821 - 0.5696 -1.6264 -0.2104 -1.5486 -1.6844 0.7148 -0.6876 -0.4447 -1.4615 -0.4170 1.3696 1.1874 -0.9901 -2.5003 -1.1321 -1.8451 0.6212 -0.4518 0.8697 0.8093

从数据集数组中重新采样观察结果以创建引导复制数据集。看到引导重采样有关引导的更多信息。

加载示例数据集。

负载医院

类型大小相同的数据集医院数据集,包含随机样本选择与替换从医院数据集。

Y = datasample(医院,size(医院,1));

根据从另一个向量中选择的样本的指标,从数据中选择样本。

生成两个随机向量。

X1 = randn(100,1);X2 = randn(100,1);

选择一个样本10来自vector的元素x1,并返回样本在向量中的指标idx

[y1,idx] = datasample(x1,10);

选择一个样本10来自vector的元素x2利用向量的下标idx。

Y2 = x2(idx);

输入参数

全部折叠

输入要从中采样的数据,指定为向量、矩阵、多维数组、表或数据集数组。默认情况下,datasample的第一个非单维的样本数据.例如,如果数据是矩阵吗datasample从行中抽取样本。方法更改此行为昏暗的输入参数。

数据类型:||逻辑|字符|字符串|表格

样本数,指定为正整数。

例子:datasample(100年数据)返回100个从数据中均匀随机采样的观测值数据

数据类型:|

样本的尺寸,指定为正整数。例如,如果数据是一个矩阵昏暗的2y中的列的选择数据.如果数据表或数据集是数组和昏暗的2y中所选的变量数据.使用昏暗的确保沿着特定的维度采样,不管是否数据是向量,矩阵,还是N维数组。

数据类型:|

随机数字流,指定为全局流或RandStream.例如,s = RandStream('mlfg6331_64')创建一个使用乘法滞后斐波那契生成器算法的随机数流。详细信息请参见创建和控制随机数流(MATLAB)。

rng函数提供了一种控制全局流的简单方法。例如,rng(种子)使用非负整数种子为随机数生成器播种。详细信息请参见管理全球流(MATLAB)。

名称-值对参数

的可选逗号分隔对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在单引号内(' ').您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“替换”,假的,“权重”,那些(datasize, 1)样本不需要替换,且与元素的概率成正比权重,在那里datasize正在采样的维度的大小。

全部折叠

用于替换采样的指示器,指定为逗号分隔的一对,由“替换”,要么真正的

如果有替换的样品“替换”真正的,或无需更换“替换”.如果“替换”,然后k不能大于正在采样的维度的大小。例如,如果数据= [1 3 Inf;2 4 5]而且y = datasample(data,k,'Replace',false),然后k不能大于2

数据类型:逻辑

采样权重,由逗号分隔的对组成“重量”和一个非负数值的向量。向量有大小datasize,在那里datasize正在采样的维度的大小。向量必须至少有一个正数值且不能包含值。的datasample函数样本的概率与元素成正比“重量”

例子:'Weights',[0.1 0.5 0.35 0.46]

数据类型:|

输出参数

全部折叠

样本,作为向量、矩阵、多维数组、表或数据集数组返回。

  • 如果数据是向量吗y是一个包含k数据

  • 如果数据是一个矩阵昏暗的1,然后y是一个包含k所选行数据.或者,如果昏暗的2,然后y是一个包含k数据

  • 如果数据是一个N-维数组和昏暗的1,然后y是一个N的第一个非单维样本的-维数组数据.或者,如果您为昏暗的名值对参数,datasample沿着维度的样本昏暗的

  • 如果数据是一个表,并且昏暗的1,然后y是一个表,其中包含k所选行数据.或者,如果昏暗的2,然后y是一个表,其中包含k数据

  • 如果数据数据集是数组和昏暗的1,然后y数据集数组是否包含k所选行数据.或者,如果昏暗的2,然后y数据集数组是否包含k数据

如果输入数据包含表示为的缺失观测值值,datasample整个输入的示例,包括值。例如,y = datasample([NaN 6 14],2)可以返回y = NaN 14

当样本被替换(默认)时,y可以包含重复的观察数据.设置取代到的名称-值对参数取样而不更换。

索引,作为指示元素的向量返回datasample选择从数据创建y.例如:

  • 如果数据是向量吗Y = data(id)

  • 如果数据是一个矩阵昏暗的1,然后Y = data(idx,:)

  • 如果数据是一个矩阵昏暗的2,然后Y = data(:,idx)

提示

  • 若要从范围中对随机整数进行替换抽样,请使用兰迪

  • 要对随机整数进行抽样而不进行替换,请使用randpermdatasample

  • 从数据中随机抽样,有或没有替换,使用datasample

算法

datasample使用randperm兰德,或兰迪生成随机值。因此,datasample改变MATLAB的状态®全局随机数生成器。控制随机数发生器使用rng

选择加权样本无需替换,datasample使用Wong和Easton的算法[1]

选择功能

你可以使用兰迪randperm为随机抽样分别生成有或没有替换的指标。然而,datasample可以更方便地使用,因为它直接从数据中进行抽样。datasample也允许加权抽样。

参考文献

[1]王正坤和m.c.伊斯顿。一种有效的无替换加权抽样方法。计算学报9(1),pp. 111-113, 1980。

扩展功能

在R2011b中引入

这个话题有用吗?