Найдите, что индексы разделяют метки согласно заданным пропорциям
Используйте эту функцию, когда вы работаете над машиной или проблемой классификации глубокого обучения, и вы хотите разделить набор данных в обучение, тестирование и наборы валидации, которые содержат ту же пропорцию значений метки.
задает дополнительные входные параметры с помощью пар "имя-значение". Например, idxs
= splitlabels(___,Name,Value
)'UnderlyingDatastoreIndex',3
разделяет метки только в третьем базовом datastore объединенного datastore.
Сонеты Рида Уильяма Шекспира с fileread
функция. Извлеките все гласные из текста и преобразуйте их в нижний регистр.
sonnets = fileread("sonnets.txt"); vowels = lower(sonnets(regexp(sonnets,"[AEIOUaeiou]")))';
Считайте количество экземпляров каждого гласного.
cnts = countlabels(vowels)
cnts=5×3 table
Label Count Percent
_____ _____ _______
a 4940 18.368
e 9028 33.569
i 4895 18.201
o 5710 21.232
u 2321 8.6302
Разделите гласные в набор обучающих данных, содержащий 500 экземпляров каждого гласного, набор валидации, содержащий 300 и набор тестирования с остальными. Все гласные представлены равными весами в первых двух наборах, но не в третьем.
spltn = splitlabels(vowels,[500 300]); for kj = 1:length(spltn) cntsn{kj} = countlabels(vowels(spltn{kj})); end cntsn{:}
ans=5×3 table
Label Count Percent
_____ _____ _______
a 500 20
e 500 20
i 500 20
o 500 20
u 500 20
ans=5×3 table
Label Count Percent
_____ _____ _______
a 300 20
e 300 20
i 300 20
o 300 20
u 300 20
ans=5×3 table
Label Count Percent
_____ _____ _______
a 4140 18.083
e 8228 35.94
i 4095 17.887
o 4910 21.447
u 1521 6.6437
Разделите гласные в набор обучающих данных, содержащий 50% экземпляров, набор валидации, содержащий еще 30% и набор тестирования с остальными. Все гласные представлены тем же весом через все три набора.
spltp = splitlabels(vowels,[0.5 0.3]); for kj = 1:length(spltp) cntsp{kj} = countlabels(vowels(spltp{kj})); end cntsp{:}
ans=5×3 table
Label Count Percent
_____ _____ _______
a 2470 18.367
e 4514 33.566
i 2448 18.203
o 2855 21.23
u 1161 8.6333
ans=5×3 table
Label Count Percent
_____ _____ _______
a 1482 18.371
e 2708 33.569
i 1468 18.198
o 1713 21.235
u 696 8.6277
ans=5×3 table
Label Count Percent
_____ _____ _______
a 988 18.368
e 1806 33.575
i 979 18.2
o 1142 21.231
u 464 8.6261
Сонеты Рида Уильяма Шекспира с fileread
функция. Удалите все неалфавитные символы из текста и преобразуйте их в нижний регистр.
sonnets = fileread("sonnets.txt"); letters = lower(sonnets(regexp(sonnets,"[A-z]")))';
Классифицируйте буквы как согласные или гласные и составьте таблицу результатами. Покажите первые несколько строк таблицы.
type = repmat("consonant",size(letters)); type(regexp(letters',"[aeiou]")) = "vowel"; T = table(letters,type,'VariableNames',["Letter" "Type"]); head(T)
ans=8×2 table
Letter Type
______ ___________
t "consonant"
h "consonant"
e "vowel"
s "consonant"
o "vowel"
n "consonant"
n "consonant"
e "vowel"
Отобразите количество экземпляров каждой категории.
cnt = countlabels(T,'TableVariable',"Type")
cnt=2×3 table
Type Count Percent
_________ _____ _______
consonant 46516 63.365
vowel 26894 36.635
Разделите таблицу в два набора, один содержащий 60% согласных и гласных и другого содержащего 40%. Отобразите количество экземпляров каждой категории.
splt = splitlabels(T,0.6,'TableVariable',"Type"); sixty = countlabels(T(splt{1},:),'TableVariable',"Type")
sixty=2×3 table
Type Count Percent
_________ _____ _______
consonant 27910 63.366
vowel 16136 36.634
forty = countlabels(T(splt{2},:),'TableVariable',"Type")
forty=2×3 table
Type Count Percent
_________ _____ _______
consonant 18606 63.363
vowel 10758 36.637
Разделите таблицу в два набора, один содержащий 60% каждой конкретной буквы и другого содержащего 40%. Исключите букву Y, которая иногда действует как согласный и иногда как гласный. Отобразите количество экземпляров каждой категории.
splt = splitlabels(T,0.6,'Exclude',"y"); sixti = countlabels(T(splt{1},:),'TableVariable',"Type")
sixti=2×3 table
Type Count Percent
_________ _____ _______
consonant 26719 62.346
vowel 16137 37.654
forti = countlabels(T(splt{2},:),'TableVariable',"Type")
forti=2×3 table
Type Count Percent
_________ _____ _______
consonant 17813 62.349
vowel 10757 37.651
Разделите таблицу в два набора, одного размера. Включайте только буквы E и s. Рандомизируйте наборы.
halves = splitlabels(T,0.5,'randomized','Include',["e" "s"]); cnt = countlabels(T(halves{1},:))
cnt=2×3 table
Letter Count Percent
______ _____ _______
e 4514 64.385
s 2497 35.615
Создайте набор данных, который состоит из 100 Гауссовых случайных чисел. Маркируйте 40 чисел как A
, 30 как B
, и 30 как C
. Храните данные в объединенном datastore, содержащем два хранилища данных. Первый datastore имеет данные, и второй datastore содержит метки.
dsData = arrayDatastore(randn(100,1)); dsLabels = arrayDatastore([repmat("A",40,1); repmat("B",30,1); repmat("C",30,1)]); dsDataset = combine(dsData,dsLabels); cnt = countlabels(dsDataset,'UnderlyingDatastoreIndex',2)
cnt=3×3 table
Label Count Percent
_____ _____ _______
A 40 40
B 30 30
C 30 30
Разделите набор данных в два набора, один содержащий 60% чисел и другого с остальными.
splitIndices = splitlabels(dsDataset,0.6,'UnderlyingDatastoreIndex',2); dsDataset1 = subset(dsDataset,splitIndices{1}); cnt1 = countlabels(dsDataset1,'UnderlyingDatastoreIndex',2)
cnt1=3×3 table
Label Count Percent
_____ _____ _______
A 24 40
B 18 30
C 18 30
dsDataset2 = subset(dsDataset,splitIndices{2});
cnt2 = countlabels(dsDataset2,'UnderlyingDatastoreIndex',2)
cnt2=3×3 table
Label Count Percent
_____ _____ _______
A 16 40
B 12 30
C 12 30
lblsrc
— Введите источник меткиCombinedDatastore
объектВведите источник метки в виде одного из них:
Категориальный вектор.
Вектор строки или массив ячеек из символьных векторов.
Числовой вектор или массив ячеек числовых скаляров.
Логический вектор или массив ячеек логических скаляров.
Таблица с переменными, содержащими любой из предыдущих типов данных.
Datastore, чей readall
функция возвращает любой из предыдущих типов данных.
CombinedDatastore
объект, содержащий базовый datastore, чей readall
функция возвращает любой из предыдущих типов данных. В этом случае необходимо задать индекс базового datastore, который имеет значения метки.
lblsrc
должен содержать метки, которые могут быть преобразованы в вектор с дискретным набором категорий.
Пример: lblsrc = categorical(["B" "C" "A" "E" "B" "A" "A" "B" "C" "A"],["A" "B" "C" "D"])
создает источник метки как категориальный вектор с десятью выборками с четырьмя категориями: A
B
C
, и D
.
Пример: lblsrc = [0 7 2 5 11 17 15 7 7 11]
создает источник метки как числовой вектор с десятью выборками.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
| string
| table
| cell
| categorical
p
— Пропорции или количества метокПропорции или количества меток в виде целочисленного скаляра, скаляра в области значений (0, 1), вектор из целых чисел или вектор из частей.
Если p
скаляр, splitlabels
находит, что два разделяющих индекса устанавливают и возвращают двухэлементный массив ячеек в idxs
.
Если p
целое число, первый элемент idxs
содержит вектор из индексов, указывающих на первый p
значения каждой категории меток. Второй элемент idxs
содержит индексы, указывающие на остающиеся значения каждой категории меток.
Если p
значение в области значений (0, 1) и lblsrc
имеет элементы Ki в i th категория, первый элемент idxs
содержит вектор из индексов, указывающих на первый p
× значения Ki каждой категории меток. Второй элемент idxs
содержит индексы остающихся значений каждой категории меток.
Если p
вектор с элементами N формы p 1, p 2, …, pN, splitlabels
находит N +, 1 разделяющий индекс устанавливает и возвращается (N + 1) - массив ячеек элемента в idxs
.
Если p
вектор из целых чисел, первый элемент idxs
вектор из индексов, указывающих на первый p 1 значение каждой категории меток, следующий элемент idxs
содержит следующий p 2 значения каждой категории меток, и так далее. Последний элемент в idxs
содержит остающиеся индексы каждой категории меток.
Если p
вектор из частей и lblsrc
имеет элементы Ki i th категория, первый элемент idxs
вектор из индексов, конкатенирующих первый p 1 × значение Ki каждой категории, следующий элемент idxs
содержит следующий p 2 × K i значений каждой категории меток, и так далее. Последний элемент в idxs
содержит остающиеся индексы каждой категории меток.
Примечание
Если p
содержит части, затем сумма его элементов не должна быть больше того.
Если p
содержит количества значений метки, затем сумма ее элементов не должна быть больше самого маленького количества меток, доступных ни для одной из категорий меток.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
'TableVariable',"AreaCode",'Exclude',["617" "508"]
указывает, что функциональные метки разделения на основе телефонного кода области и исключают числа из Бостона и Натика.'Include'
— Метки, чтобы включать в наборы индексаМетки, чтобы включать в индекс устанавливают в виде векторного массива или массива ячеек категорий меток. Категории, заданные с этим аргументом, должны иметь тот же тип как метки в lblsrc
. Каждая категория в векторном массиве или массиве ячеек должна совпадать с одной из категорий меток в lblsrc
.
'Exclude'
— Метки, чтобы исключить из наборов индексаМетки, чтобы исключить из индекса устанавливают в виде векторного массива или массива ячеек категорий меток. Категории, заданные с этим аргументом, должны иметь тот же тип как метки в lblsrc
. Каждая категория в векторном массиве или массиве ячеек должна совпадать с одной из категорий меток в lblsrc
.
'TableVariable'
— Табличная переменная, чтобы читатьТабличная переменная, чтобы читать в виде вектора символов или строкового скаляра. Если этот аргумент не задан, то splitlabels
использует первую табличную переменную.
'UnderlyingDatastoreIndex'
— Лежание в основе индекса datastoreБазовый индекс datastore в виде целочисленного скаляра. Этот аргумент применяется когда lblsrc
CombinedDatastore
объект. splitlabels
считает метки в datastore полученными с помощью UnderlyingDatastores
свойство lblsrc
.
idxs
— Разделение индексовРазделение индексов, возвращенных как массив ячеек.
countlabels
| folders2labels
| labeledSignalSet
| Signal Labeler | signalLabelDefinition
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.