独热编码(One-Hot Encoding)是一种常用的分类变量编码方法。在独热编码中,每个类别都被转换为一个独特的二进制向量,其中只有一个元素为1,其余元素都为0。这种编码方式允许算法将分类变量作为数值输入进行处理,同时保留了类别之间的独立性。
例如,假设有一个名为“颜色”的分类变量,它有三个可能的类别:“红色”、“绿色”和“蓝色”。在独热编码中,这三个类别将被转换为以下二进制向量:
红色:[1, 0, 0]
绿色:[0, 1, 0]
蓝色:[0, 0, 1]
这样,每个类别都被转换为了一个唯一的数值表示,使得算法能够处理这些分类数据。独热编码特别适用于处理具有有限数量的可能类别的分类变量。然而,当类别的数量非常大时,独热编码可能会导致数据稀疏性和维度过高的问题,这时可以考虑使用其他编码方法,如标签编码或嵌入编码。
% 标记处分类数据
categoricalPredictorNames = ["Para.1" "Para.2" "Para.3"];
dataTable1 = convertvars(dataTable1,categoricalPredictorNames,"categorical");
% 数据转换成独热码
for i = 1:numel(categoricalPredictorNames)
name = categoricalPredictorNames(i);
dataTable1.(name) = onehotencode(dataTable1.(name),2);
end