Поиск индексов для разделения меток в соответствии с заданными пропорциями
Используйте эту функцию, когда вы работаете над проблемой классификации машинного или глубокого обучения и хотите разделить набор данных на наборы обучения, тестирования и проверки, которые содержат одинаковую долю значений меток.
задает дополнительные входные аргументы с использованием пар имя-значение. Например, idxs = splitlabels(___,Name,Value)'UnderlyingDatastoreIndex',3 разделяет метки только в третьем базовом хранилище данных объединенного хранилища данных.
Читайте сонеты Уильяма Шекспира с 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. Храните данные в объединенном хранилище данных, содержащем два хранилища данных. Первое хранилище данных содержит данные, а второе хранилище данных содержит метки.
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 объектИсточник входной метки, указанный как один из следующих:
Категориальный вектор.
Строковый вектор или клеточный массив символьных векторов.
Числовой вектор или клеточный массив числовых скаляров.
Логический вектор или клеточный массив логических скаляров.
Таблица с переменными, содержащая любой из предыдущих типов данных.
Хранилище данных, readall функция возвращает любой из предыдущих типов данных.
A CombinedDatastore объект, содержащий нижележащее хранилище данных, readall функция возвращает любой из предыдущих типов данных. В этом случае необходимо указать индекс базового хранилища данных со значениями метки.
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 элементами вида p1, p2,..., pN ,splitlabels находит N + 1 наборов разделяющих индексов и возвращает (N + 1) -элементный массив ячеек вidxs.
Если p - вектор целых чисел, первый элемент idxs - вектор индексов, указывающих на первые значения p1 каждой категории меток, следующий элемент idxs содержит следующие значения p2 каждой категории меток и т. д. Последний элемент в idxs содержит остальные индексы каждой категории меток.
Если p является вектором дробей и lblsrc имеет элементы Ki i-ой категории, первый элемент idxs - вектор индексов, объединяющих первые значения p1 × Ki каждой категории, следующий элемент idxs содержит следующие значения p2 × Ki каждой категории меток и т.д. Последний элемент в 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' - Базовый индекс хранилища данныхБазовый индекс хранилища данных, заданный как целочисленный скаляр. Этот аргумент применяется, когда lblsrc является CombinedDatastore объект. splitlabels подсчитывает метки в хранилище данных, полученные с помощью UnderlyingDatastores имущество lblsrc.
idxs - Индексы разделенияРазбиение индексов, возвращаемых в виде массива ячеек.
countlabels | folders2labels | labeledSignalSet | Маркировщик сигналов | signalLabelDefinition
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.