我有一个具有多个功能的数据集,这些功能之一是分类的,但其值具有树形结构。例如,如果此分类特征的值为a,b,c,d,e,f,g,h,I,j,k。然后下图显示了值的树关系:
原始功能不包含此关系(因此该功能仅占用一列)。现在,我想合并这种关系,但是我仍然希望该特征为矢量形式。
我的解决方案是:为每个节点创建一个二进制值列。因此在此示例中,特征可以由长度为11的二进制向量表示。特征值等于e的值可以表示为<1、1、0、1,0、0、0、0、0、0>(显示如下)
其中第一个元素表示第一级b;第二个元素表示第二级a;第三,第四,第五和第六个元素分别表示第三级d,e,g和j。第7个元素表示第二级c;第8,第9,第10和第11个元素分别表示第三级f,h,i和k。
我认为这行得通的原因是您可以从此向量表示中恢复树,因此我认为信息在此转换期间不会丢失。
这种转换的主要目的是我想在此数据集上使用一些机器学习算法,因此我希望数据集能提供更多信息。
我想知道此转换是否有效,如果无效,为什么?以及是否有更好的方法可以做到这一点。