Декодируйте векторы вероятности в метки класса
декодирует каждый вектор вероятности в A
= onehotdecode(B
,classes
,featureDim
)B
к самому вероятному классу помечают от меток заданный classes
. featureDim
задает размерность, по которой заданы векторы вероятности. Функция декодирует векторы вероятности в метки класса путем соответствия с положением самого высокого значения в векторе с меткой класса в соответствующем положении в classes
. Каждый вектор вероятности в A
заменяется значением classes
это соответствует самому высокому значению в векторе вероятности.
Закодируйте набор меток в векторы вероятности, и затем декодируйте их назад в метки.
Создайте вектор из категориальных меток, задающих типы цвета.
colorsOriginal = ["red","blue","red","green","yellow","blue"]; colorsOriginal = categorical(colorsOriginal)
colorsOriginal = 1x6 categorical
red blue red green yellow blue
Определите классы в категориальном векторе.
classes = categories(colorsOriginal)
classes = 4x1 cell
{'blue' }
{'green' }
{'red' }
{'yellow'}
Одногорячий кодируют метки в векторы вероятности при помощи onehotencode
функция. Закодируйте метки в первую размерность, так, чтобы каждая строка соответствовала классу, и каждый столбец соответствует вектору вероятности.
colorsEncoded = onehotencode(colorsOriginal,1)
colorsEncoded = 4×6
0 1 0 0 0 1
0 0 0 1 0 0
1 0 1 0 0 0
0 0 0 0 1 0
Декодируйте векторы вероятности при помощи onehotdecode
функция.
colorsDecoded = onehotdecode(colorsEncoded,classes,1)
colorsDecoded = 1x6 categorical
red blue red green yellow blue
Декодируемые метки совпадают с исходными метками.
Создайте фиктивные переменные, и затем декодируйте их назад в исходные данные.
Создайте вектор-столбец категориальных данных, задающих типы цвета.
colorsOriginal = ["red";"blue";"red";"green";"yellow";"blue"]; colorsOriginal = categorical(colorsOriginal)
colorsOriginal = 6x1 categorical
red
blue
red
green
yellow
blue
Определите классы в категориальном векторе.
classes = categories(colorsOriginal);
Создайте фиктивные переменные для каждого типа цвета при помощи dummyvar
функция.
dummyColors = dummyvar(colorsOriginal)
dummyColors = 6×4
0 0 1 0
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
1 0 0 0
Декодируйте фиктивные переменные во втором измерении при помощи onehotdecode
функция.
colorsDecoded = onehotdecode(dummyColors,classes,2)
colorsDecoded = 6x1 categorical
red
blue
red
green
yellow
blue
Декодируемые переменные совпадают с типами исходного цвета.
Декодируйте набор векторов вероятности в самый вероятный класс для каждого наблюдения.
Создайте набор 10 случайных векторов вероятности. Векторы описывают вероятность, что наблюдение принадлежит одному из пяти классов.
numObs = 10; numClasses = 5; prob = rand(numObs,numClasses); tot = sum(prob,2); prob = prob./tot
prob = 10×5
0.2938 0.0568 0.2365 0.2546 0.1582
0.3895 0.4174 0.0154 0.0137 0.1641
0.0427 0.3217 0.2854 0.0931 0.2573
0.2878 0.1529 0.2943 0.0145 0.2505
0.2640 0.3341 0.2834 0.0405 0.0780
0.0422 0.0614 0.3280 0.3564 0.2120
0.1078 0.1632 0.2876 0.2689 0.1725
0.1940 0.3249 0.1392 0.1125 0.2293
0.2356 0.1949 0.1613 0.2338 0.1745
0.3345 0.3326 0.0593 0.0119 0.2616
Задайте набор пяти классов.
classes = ["Red","Yellow","Green","Blue","Purple"];
Декодируйте вероятности в самые вероятные классы при помощи onehotdecode
функция. Векторы вероятности закодированы во второе измерение (каждый столбец соответствует уникальному классу), поэтому задайте размерность, содержащую закодированные вероятности как 2
. Получите самые вероятные классы как вектор строки.
result = onehotdecode(prob,classes,2,"string")
result = 10x1 string
"Red"
"Yellow"
"Yellow"
"Green"
"Yellow"
"Blue"
"Green"
"Yellow"
"Red"
"Red"
Декодируйте предсказанные баллы класса в предсказанные метки.
Загрузите fisheriris
набор данных. Создайте X
как числовая матрица, которая содержит четыре лепестковых измерения для 150 ирисовых диафрагм. Создайте S
как вектор из категориальных меток, который содержит соответствующие ирисовые разновидности.
load fisheriris
X = meas;
S = categorical(species);
Одногорячий кодируют метки в векторы вероятности при помощи onehotencode
функция. Закодируйте векторы вероятности во второе измерение.
Y = onehotencode(S,2);
Вычислите подходящие коэффициенты простого линейного классификатора.
B = X\Y
B = 4×3
0.0834 0.2117 -0.1481
0.2533 -0.3059 0.1412
-0.2270 0.1888 0.0181
-0.0635 -0.5749 0.5873
Предскажите баллы класса от подходящих коэффициентов и гарантируйте, что баллы находятся в области значений [0,1].
scores = X*B; scores = min(1,max(0,scores));
Декодируйте предсказанные баллы класса в предсказанные метки при помощи onehotdecode
функция. Затем создайте график беспорядка, чтобы выдержать сравнение, истина маркирует S
с предсказанными метками label
.
label = onehotdecode(scores,categories(S),2); confusionchart(S,label)
B
— Векторы вероятностиВекторы вероятности, чтобы декодировать в виде числового массива.
Значения в B
должен быть между 0
и 1
. Если вектор вероятности в B
содержит NaN
значения, функция декодирует то наблюдение к классу с самой большой вероятностью, которая не является NaN
. Если наблюдение содержит только NaN
значения, функция декодирует то наблюдение к метке первого класса в classes
.
Типы данных: single
| double
classes
КлассыКлассы в виде массива ячеек из символьных векторов, вектора строки, числового вектора или двумерного символьного массива.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| string
| cell
| char
featureDim
— Размерность, содержащая векторы вероятности Размерность, содержащая векторы вероятности в виде положительного целого числа.
Используйте featureDim
задавать размерность в B
это содержит векторы вероятности. Функция заменяет каждый вектор в B
в заданном измерении с элементом classes
в той же позиции самого высокого значения вдоль вектора.
Размерность B
заданный featureDim
должен иметь длину, равную количеству классов, заданных classes
.
typename
— Тип данных декодируемых меток'categorical'
(значение по умолчанию) | вектор символов | строковый скалярТип данных декодируемых меток в виде вектора символов или строкового скаляра.
Допустимые значения typename
'categorical'
Строка
, и числовые типы, такие как 'single'
и 'int64'
. Если вы задаете числовой тип, classes
должен быть числовой вектор.
Пример: 'double'
Типы данных: char |
string
A
— Декодируемые метки классаДекодируемые метки класса, возвращенные как категориальный массив, массив строк или числовой массив.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.