Найдите индексы для разделения меток в соответствии с заданными пропорциями
Используйте эту функцию, когда вы работаете над задачей классификации машин или глубокого обучения, и вы хотите разделить набор данных на наборы для обучения, проверки и валидации, которые содержат ту же долю значений меток.
задает дополнительные входные параметры, используя пары "имя-значение". Для примера, 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 функция возвращает любой из предыдущих типов данных.
A 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-й категории, первый элемент 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-й категории, первый элемент 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.