主要内容

splitlabels

发现指数将标签根据指定的比例

自从R2021a

描述

使用这个函数当你正在做一个机器或深度学习分类问题,你想将数据集分为训练、测试和验证集保持同样比例的标签值。

例子

idx= splitlabels (lblsrc,p)发现逻辑索引,将标签lblsrc基于比例或数量的标签中指定p

例子

idx= splitlabels (lblsrc,p“随机”)随机分配指定的标签值的比例每个索引idx

例子

idx= splitlabels (___,名称,值)指定附加的输入参数使用名称-值对。例如,“UnderlyingDatastoreIndex”, 3将标签只有在第三底层数据存储的数据存储相结合。

例子

全部折叠

读莎士比亚的十四行诗fileread函数。从文本中提取所有的元音,将它们转换为小写。

十四行诗= fileread (“sonnets.txt”);元音=低(十四行诗(正则表达式(十四行诗,“[AEIOUaeiou]”)));

每个元音的计算实例的数量。

碳纳米管= countlabels(元音)
碳纳米管=5×3表标签数百分比_____ _____ _________ e 9028 33.569 4895 18.368 4940 18.201 5710 21.232 u 2321 8.6302

把元音分割成每个元音的包含500个实例的训练集,验证集包含了300年,并与其余的一组测试。所有的元音都是用相等的权重表示前两集而不是第三。

spltn = splitlabels(元音,300 [500]);kj = 1:长度(spltn) cntsn {kj} = countlabels(元音(spltn {kj}));结束cntsn {:}
ans =5×3表标签数百分比_____ _____ _________ 500 20 e 500 500 500 20 o 500 20 u 20
ans =5×3表标签数百分比_____ _____ _________ 300 20 e 300 300 300 20 o 300 20 u 20
ans =5×3表标签数百分比_____ _____ _________ e 8228 35.94 4095 18.083 4140 17.887 4910 21.447 u 1521 6.6437

把元音分成训练集,其中包含50%的情况下,一组验证包含另一个30%,一组测试与其他。所有的元音都代表相同的体重各三套。

spltp = splitlabels(元音,[0.5 - 0.3]);kj = 1:长度(spltp) cntsp {kj} = countlabels(元音(spltp {kj}));结束cntsp {:}
ans =5×3表标签数百分比_____ _____ _________ e 4514 33.566 2448 18.367 2470 18.203 2855 21.23 u 1161 8.6333
ans =5×3表标签数百分比_____ _____ _________ e 2708 33.569 1468 18.371 1482 18.198 1713 21.235 u 696 8.6277
ans =5×3表标签数百分比_____ _____ _________ e 1806 33.575 979 18.368 988 18.2 1142 21.231 u 464 8.6261

读莎士比亚的十四行诗fileread函数。从文本和删除所有nonalphabetic字符转换为小写的。

十四行诗= fileread (“sonnets.txt”);信=低(十四行诗(正则表达式(十四行诗,“[a - z]”)));

分类与辅音或元音字母和创建一个表的结果。显示表的前几行。

类型= repmat (“辅音”、大小(字母));类型(正则表达式(字母',”“五个母音字母))=“元音”;T =表(信件、类型“VariableNames”,(“信”“类型”]);头(T)
信…………t“辅音”h型“辅音”e“元音”“辅音”啊“元音”n“辅音”“辅音”e“元音”

显示每个类别的实例的数量。

问= countlabels (T)“TableVariable”,“类型”)
问=2×3表类型数百分比_____ _____ _________辅音元音26894 63.365 46516 36.635

把表分成两组,一个包含60%的辅音和元音和其他含有40%。显示每个类别的实例的数量。

splt = splitlabels (0.6 T),“TableVariable”,“类型”);60 = countlabels (T (splt {1},,),“TableVariable”,“类型”)
60 =2×3表类型数百分比_____ _____ _________辅音元音16136 63.366 27910 36.634
40 = countlabels (T (splt {2},,),“TableVariable”,“类型”)
40 =2×3表类型数百分比_____ _____ _________辅音元音10758 63.363 18606 36.637

把表分成两组,一个包含60%的每个特定字母和其他含有40%。排除这封信y,有时作为一个辅音,有时作为一个元音。显示每个类别的实例的数量。

splt = splitlabels (0.6 T),“排除”,“y”);sixti = countlabels (T (splt {1},,),“TableVariable”,“类型”)
sixti =2×3表类型数百分比_____ _____ _________辅音元音16137 62.346 26719 37.654
forti = countlabels (T (splt {2},,),“TableVariable”,“类型”)
forti =2×3表类型数百分比_____ _____ _________辅音元音10757 62.349 17813 37.651

把表分成两组相同的大小。只包含字母e年代。随机集。

半= splitlabels (0.5 T),“随机”,“包括”,(“e”“s”]);问= countlabels (T(半{1},:))
问=2×3表信数百分比_____ _____ e 4514 64.385 2497 35.615

创建一个数据集,包括100高斯随机数。40的数字标签一个,30B,30C。将数据存储在一个数据存储包含两个数据存储相结合。第一数据存储的数据和第二数据存储包含标签。

dsData = arrayDatastore (randn (100,1));dsLabels = arrayDatastore ([repmat (“一个”,40岁,1);repmat (“B”,30岁,1);repmat (“C”,30岁,1)]);dsDataset =结合(dsData dsLabels);问= countlabels (dsDataset,“UnderlyingDatastoreIndex”,2)
问=3×3表标签数百分比_____ _____ _________ 40 30 30 C 30 30 40 B

将数据集分为两组,一个包含60%的数字和其他与其他。

splitIndices = splitlabels (dsDataset, 0.6,“UnderlyingDatastoreIndex”2);dsDataset1 =子集(dsDataset splitIndices {1});cnt1 = countlabels (dsDataset1,“UnderlyingDatastoreIndex”,2)
cnt1 =3×3表标签数百分比_____ _____ _________ 24 40 B 18 18 30 30度
dsDataset2 =子集(dsDataset splitIndices {2});cnt2 = countlabels (dsDataset2,“UnderlyingDatastoreIndex”,2)
cnt2 =3×3表标签数百分比_____ _____ _________ 16 40 B 12 30 C 12 30

输入参数

全部折叠

输入标签来源,指定为其中的一个:

  • 一个分类向量。

  • 一个字符串特征向量的向量或一个单元阵列。

  • 一系列数值向量或一个细胞的数字标量。

  • 的逻辑向量或一个单元阵列逻辑标量。

  • 表变量包含的任何先前的数据类型。

  • 的数据存储readall函数返回的任何先前的数据类型。

  • 一个CombinedDatastore对象包含一个底层的数据存储readall函数返回的任何先前的数据类型。在这种情况下,您必须指定索引的底层数据存储的标签值。

lblsrc必须包含标签,可以转换为一个向量和一组离散的类别。

例子:lblsrc =分类([“B”“C”“A”“E”“B”“A”“A”“B”“C”“A”), (“A”“B”“C”“D”))创建源作为ten-sample标签分类向量和四类:一个,B,C,D

例子:lblsrc = [0 7 2 5 11 17 15 7 7 11)创建标签源ten-sample数值向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|逻辑|字符|字符串||细胞|分类

比例或数量的标签,指定为一个整数标量,标量范围(0,1),一个整数向量或一个向量的分数。

  • 如果p是一个标量,splitlabels发现两双元素细胞分裂指数集和返回一个数组idx

    • 如果p是一个整数,第一个元素的idx包含一个指向第一个向量的指标p每个标签的值类别。第二个元素的idx包含指标指向每个标签的剩余价值范畴。

    • 如果p是一个值的范围(0,1)和lblsrcK元素th类别,的第一个元素idx包含一个指向第一个向量的指标p×K每个标签的值类别。第二个元素的idx包含每个标签的剩余价值的指标类别。

  • 如果p是一个向量,N表单的元素p1,p2、…pN,splitlabels发现N+ 1并返回一个分裂指数集(N+ 1)元胞数组中idx

    • 如果p整数是一个向量的第一个元素吗idx是一个向量指标指向第一个吗p1每个标签的值类别,下一个元素idx包含下一个p2每个标签的值类别,等等。在最后一个元素idx包含每个标签的剩余指标类别。

    • 如果p是一个向量的分数和lblsrcK的元素th类别,的第一个元素idx是一个向量的指数连接第一p1×K每个类别的值,下一个元素的idx包含下一个p2×K每个标签的值类别,等等。在最后一个元素idx包含每个标签的剩余指标类别。

请注意

  • 如果p包含分数,那么它的元素之和不得大于1。

  • 如果p包含标签的数量值,那么其元素之和不得大于最小的可用的标签数量的任何标签类别。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“TableVariable”、“AreaCode中”,“排除”,(“617”“508”)指定的函数分割标签基于电话区号和排除数字从波士顿和纳蒂克。

标签包含在索引集,指定为一个向量或标签分类单元阵列。指定的类别,这种观点必须是相同类型的标签lblsrc。每个类别向量或单元阵列必须匹配的标签类别之一lblsrc

标签从索引集,排除指定为一个向量或标签分类单元阵列。指定的类别,这种观点必须是相同类型的标签lblsrc。每个类别向量或单元阵列必须匹配的标签类别之一lblsrc

表变量来读,指定为一个特征向量或字符串标量。如果没有指定这个参数,那么splitlabels使用第一个表变量。

底层数据存储索引,指定为一个整数标量。这个论点适用于当lblsrc是一个CombinedDatastore对象。splitlabels数量的标签使用获得的数据存储UnderlyingDatastores的属性lblsrc

输出参数

全部折叠

分裂指数,作为细胞数组返回。

版本历史

介绍了R2021a