主要内容

splitlabels

根据指定的比例查找索引来拆分标签

描述

在处理机器或深度学习分类问题时,如果希望将数据集分割成具有相同标签值比例的训练、测试和验证集,请使用此函数。

例子

idx= splitlabels (lblsrcp查找分隔标签的逻辑索引lblsrc中指定的标签比例或数量p

例子

idx= splitlabels (lblsrcp“随机”)随机分配指定比例的标签值到每个索引集idx

例子

idx= splitlabels (___名称,值使用名称-值对指定其他输入参数。例如,“UnderlyingDatastoreIndex”,3仅在组合数据存储的第三个底层数据存储中分割标签。

例子

全部折叠

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

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

计算每个元音的实例数。

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

将元音分割为包含每个元音的500个实例的训练集、包含300个实例的验证集和包含其余元音的测试集。在前两组中,所有元音的权重相等,但在第三组中则不同。

SPLTN = splitlabels(元音,[500 300]);Kj = 1:length(spltn) cntsn{Kj} = counlabels (vowels(spltn{Kj}));结束cntsn {:}
ans =5×3表标签数量百分比_____ _____ _______ a 500 20 e 500 20 i 500 20 o 500 20 u 500 20 20
ans =5×3表标签计数百分比_____ _____ _______ a 300 20 e 300 20 i 300 20 o 300 20 u 300 20 20
ans =5×3表标签数百分比_____ _____ _______ a 4140 18.083 e 8228 35.94 i 4095 17.887 o 4910 21.447 u 1521 6.6437

将元音分割为包含50%实例的训练集、包含另外30%实例的验证集和包含其余实例的测试集。在所有三组中,所有元音都用相同的权重表示。

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

阅读威廉·莎士比亚的十四行诗fileread函数。从文本中删除所有非字母字符并将它们转换为小写字母。

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

将字母分类为辅音或元音,并根据结果创建一个表格。显示表格的前几行。

类型= repmat (“辅音”、大小(字母));类型(正则表达式(字母',”“五个母音字母)) =“元音”;T =表(信件、类型“VariableNames”,(“信”“类型”]);头(T)
ans =8×2表字母类型______ ___________ t"辅音" h "辅音" e "元音" s "辅音" o "元音" n "辅音" n "辅音" e "元音"

显示每个类别的实例数。

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

将表分成两组,一组包含60%的辅音和元音,另一组包含40%。显示每个类别的实例数。

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

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

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

将表分成两个相同大小的集合。只包括信件e年代.随机集。

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

创建一个包含100个高斯随机数的数据集。把40个数字标记为一个, 30B, 30为C.将数据存储在包含两个数据存储的组合数据存储中。第一个数据存储具有数据,第二个数据存储包含标签。

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表标签数量百分比_____ _____ _______ A 40 40 B 30 30 C 30 30

将数据集分成两个集,一个包含60%的数字,另一个包含其余的数字。

splitIndices = splitlabels (dsDataset, 0.6,“UnderlyingDatastoreIndex”2);dsDataset1 =子集(dsDataset splitIndices {1});cnt1 = countlabels (dsDataset1,“UnderlyingDatastoreIndex”, 2)
cnt1 =3×3表标签计数百分比_____ _____ _______ A 24 40 B 18 30 C 18 30
dsDataset2 =子集(dsDataset splitIndices {2});cnt2 = countlabels (dsDataset2,“UnderlyingDatastoreIndex”, 2)
cnt2 =3×3表标签计数百分比_____ _____ _______ A 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”))将标签源创建为包含四个类别的10个示例类别向量:一个BC,D

例子:LBLSRC = [0 7 2 5 11 17 15 7 7 11]将标签源创建为10个示例数字向量。

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

标号的比例或数量,指定为整数标量、范围(0,1)内的标量、整数向量或分数向量。

  • 如果p是一个标量,splitlabels查找两个拆分索引集并返回中包含两个元素的单元格数组idx

    • 如果p第一个元素是整数吗idx包含一个指向第一个的索引向量p每个标签类别的值。第二个要素idx包含指向每个标签类别的其余值的索引。

    • 如果p值在(0,1)和lblsrcK元素第一类,第一个元素idx包含一个指向第一个的索引向量p×K每个标签类别的值。第二个要素idx包含每个标签类别的其余值的索引。

  • 如果p是一个向量N表单元素p1p2、……pNsplitlabels发现N+ 1拆分索引集并返回N+ 1)-元素单元格数组idx

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

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

请注意

  • 如果p如果包含分数,则其元素之和不能大于1。

  • 如果p包含标签值的个数,则其元素的和不能大于任何标签类别中可用标签的最小个数。

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

名称-值对的观点

指定可选的逗号分隔对名称,值参数。的名字参数名和价值是对应的值。的名字必须出现在引号内。您可以按如下顺序指定几个名称和值对参数Name1, Value1,…,的家

例子:“TableVariable”、“AreaCode中”,“排除”,(“617”“508”)指定该功能基于电话区号拆分标签,并排除来自波士顿和纳蒂克的号码。

要包含在索引集中的标签,指定为标签类别的向量或单元格数组。使用该参数指定的类别必须与中标签的类型相同lblsrc.vector或单元格数组中的每个类别必须与中的一个标签类别匹配lblsrc

从索引集中排除的标签,指定为标签类别的向量或单元格数组。使用该参数指定的类别必须与中标签的类型相同lblsrc.vector或单元格数组中的每个类别必须与中的一个标签类别匹配lblsrc

要读取的表变量,指定为字符向量或字符串标量。如果没有指定此参数,则splitlabels使用第一个表变量。

底层数据存储索引,指定为整数标量。这个论证适用于以下情况lblsrc是一个CombinedDatastore对象。splitlabels统计使用UnderlyingDatastores的属性lblsrc

输出参数

全部折叠

拆分索引,作为单元格数组返回。

介绍了R2021a