分类方法,通常需要把数据的各个属性转换为一个向量表示,这样每条数据的特征就是一个向量,向量上的每个维度就表示了一个特征属性。
但是如果要转换的数据包含了3种属性,比如身高,体重,年龄。A是女,168cm,70kg,30岁;B是男,180cm,90kg,20岁,那么直接用数值做向量就变成了,0,168,70,30;1,180,90,20。而168和70或者30是不同的属性,更明显的是0或1表示的性别和其他维度差距更大。
有一种是对每个维度的数值进行无量纲的归一化,也就是说每个维度的数值都归一化处理到0-1或者-0.5-+0.5之间。
但是这样依然不好,比如表示性别的0,1与其他维度依然关联不大,所以有一种叫one-hot的编码方式,就是表示一项属性的特征编码,同一时间只有一个激活点(不为0)。这样A的性别变为【1,0】,B的性别编码为【0,1】。年龄,体重,身高等可以用更多数量的enum表示(数量不是一定要满足所有枚举,而是满足实际数据出现的类别就可以了,比如只有三种身高,那么身边表示的只需要[0,0,1]就可以)
然后将各个属性,串联起来,构建了一个非常稀疏的特征向量,比如性别和身高串联为【0,1,0,0,1】,保证了各种数据的离散性。
相关参考:
http://blog.csdn.net/google19890102/article/details/44039761
版权声明:本文为u010910436原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。