主要内容

onehotencode

将数据标签编码为热点向量

    描述

    例子

    B= onehotencode (一个featureDim在分类数组中编码数据标签一个变成一个单热编码数组B.该函数替换了每个元素一个中唯一类的数量为长度的数字向量一个的尺寸featureDim.向量包含1在对应于类的位置上的标签一个和一个0在其他位置。任何<定义>值被编码为值。

    例子

    tblB= onehotencode (tblA在表中编码分类数据标签tblA转换成一个单热点编码数值表。函数替换的是单个变量tblA变量的数量和中唯一类的数量一样多tblA.每一行tblB包含一个1在对应于标签类的变量中tlbA和一个0在所有其他变量中。

    例子

    ___= onehotencode (___typename将标签编码为数据类型的数值typename.将此语法与前面语法中的任何输入和输出参数一起使用。

    例子

    ___= onehotencode (___“类名”,还指定要用于编码的类的名称。在以下情况下使用此语法一个或者tblA当您想要排除任何类标签而不被编码时,或者当您想要按照特定的顺序编码向量元素时,不包含分类值。任何标签一个或者tblA不存在的类的被编码成向量值。

    例子

    全部折叠

    将类标签的分类向量编码为表示标签的一个热点向量。

    创建一个标签列向量,其中向量的每一行表示一个单独的观察。将标签转换为分类数组。

    标签= [“红色”“蓝色”“红色”“绿色”“黄色”“蓝色”];=分类标签(标签);

    查看类别的顺序。

    类别(标签)
    ans =4 x1细胞{'蓝'}{'绿'}{'红'}{'黄'}

    将标签编码为一个热点向量。在第二个维度中将标签展开为向量,以对类进行编码。

    = onehotencode标签(标签,2)
    标签=6×40 0 1 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0

    每一个观察标签现在是一个行矢量1在与类标签类别对应的位置0在所有其他位置。该函数将标签按照与类别相同的顺序进行编码1在适当的位置1表示列表中的第一个类别,在这种情况下,“蓝'.

    一次性编码分类值表。

    创建一个分类数据标签表。表中的每一行都包含一个观察结果。

    颜色= [“蓝色”“红色”“蓝色”“绿色”“黄色”“红色”];颜色=分类(颜色);Color = table (Color);

    对类标签表进行一次性编码。

    颜色= onehotencode(颜色)
    颜色=6×4表蓝绿红黄____ _____ ___ ______ 1 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0

    表中的每一列代表一个类。函数用1在相应类的列中,和0其他地方。

    如果数据中的所有类都相关,则仅使用类的子集对数据标签进行编码。

    创建数据标签的行向量,其中向量的每一列表示单个观察

    宠物= [“狗”“鱼”“猫”“狗”“猫”“鸟”];

    定义要编码的类列表。这些类是观察中出现的类的子集。

    animalClasses = [“鸟”“猫”“狗”];

    一次性将观察结果编码到第一个维度。指定要编码的类。

    encPets = onehotencode(宠物,1,“类名”animalClasses)
    encPets =3×60 NaN 0 0 0 1 0 NaN 1 0 0 1 NaN 1 0 0 0

    如果一个类没有出现在要编码的类列表中,则将其编码为值。

    使用onehotencode对类标签矩阵进行编码,如图像的语义分割。

    定义一个简单的15 × 15像素的类标签分割矩阵。

    一个=“蓝色”;B =“绿色”;C =“黑色”;15 = repmat (8);B = repmat (B 7 5);C = repmat (C、7、5);seg = [A;B; C];

    将分段矩阵转换为分类数组。

    赛格=分类(凹陷);

    一次性将分割矩阵编码为类型数组.将编码的标签展开到第三维。

    encSeg = onehotencode(赛格3“单身”);

    检查编码段的大小。

    大小(encSeg)
    ans =1×315 15 3.

    分段矩阵中的三种可能的类别的类别被编码为第三维中的矢量。

    如果数据是包含多种类型的类变量的表,则可以分别对每个变量进行编码。

    创建一个表,其中包含对几种类别数据的观察。

    颜色= [“蓝色”“红色”“蓝色”“绿色”“黄色”“红色”];颜色=分类(颜色);宠物= [“狗”“鱼”“猫”“狗”“猫”“鸟”];宠物=分类(宠物);位置= [“美国”“可以”“可以”“美国”“来自”“美国”];位置=分类(位置);data =表(颜色、宠物、位置)
    data =6×3表颜色宠物位置______ ____ ________蓝狗美国红鱼CAN蓝猫CAN绿狗美国黄猫AUS红鸟美国

    使用一个循环对每个表变量进行一次热编码,并将其附加到包含编码数据的新表中。

    encData =表();i=1:宽度(数据)encData = [encData onehotencode(数据(:,i))];结束encData
    encData =6×11表蓝色绿色红色黄色小鸟猫狗鱼来自美国  ____ _____ ___ ______ ____ ___ ___ ____ ___ ___ ___ 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 1

    每一行的encData为每个观察结果编码三个不同的类别。

    输入参数

    全部折叠

    数据标签数组要对,指定为分类阵列,数字数组或字符串数​​组。

    • 如果一个是一个分类数组,一个热点编码向量的元素匹配相同的顺序类别(A)

    • 如果A不是分类数组,则必须使用'classnames'名称-值参数。函数按照类出现的顺序对向量进行编码

    • 如果一个包含未定义的值或中不存在的值,函数将这些值编码为的向量值。typename必须“双”或者“单一”

    数据类型:分类|数字|字符串

    要编码的数据标签表,指定为表。该表必须包含单个变量和每个观察的一行。每个条目必须包含一个类别标量、一个数字标量或一个字符串标量。

    • 如果tblA包含类别值,一次性编码向量的元素与类别的顺序相匹配;例如,相同的顺序类别(台(1,n))

    • 如果tblA如果不包含分类值,则必须使用'classnames'名称-值参数。函数按照类出现的顺序对向量进行编码

    • 如果tblA包含未定义的值或中不存在的值,函数将这些值编码为值。typename必须“双”或者“单一”

    数据类型:表格

    展开以编码标签的维度指定为正整数。

    featureDim必须指定一个单维一个,或大于n在哪里n的维数是多少一个

    已编码标签的数据类型,指定为字符向量或字符串标量。

    • 如果分类标签输入是分类数组、数字数组或字符串数组,则编码标签将作为数据类型数组返回typename

    • 如果分类标签输入是一个表,那么编码标签将作为一个表返回,其中每个条目都有数据类型typename

    有效的值typename是浮点数、有符号和无符号整数以及逻辑类型。

    例子:“int64”

    数据类型:字符|字符串

    类,指定为字符向量、字符串向量、数字向量或二维字符数组的单元格数组。

    • 如果输入一个或者tblA不包含分类值,则必须指定.你也可以用the参数以排除任何不被编码的类标签,或以特定的顺序编码vector元素。

    • 如果一个或者tblA包含未定义的值或中不存在的值,该函数将这些值编码为向量值。typename必须“双”或者“单一”

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64|字符串|细胞

    输出参数

    全部折叠

    已编码的标签,作为数字数组返回。

    已编码的标签,作为表返回。

    每一行的tblB包含用于单个观察的一次性编码标签,其顺序与tblA.每行包含一个1在对应于标签类的变量中tlbA和一个0在所有其他变量中。

    介绍了R2020b