最近在做客流预测,期间遇到文字型特征编码的问题,对于该问题总结了一些自己的经验,以供参考。
文字型特征十分常见,以我做的博物馆客流预测为例,如“天气”,“风”等特征都是文字描述,并不能直接用于预测,所以要将这些文字编码为数值。
这种类型的编码常见有两种,分别是数值型编码和向量型编码。
数值型编码就是根据特征种类的不同赋予不同的数字,如“天气”特征有“晴天”、“阴天”、“雨天”等多种类型,可以将这些与数值0、1、2等进行映射。
向量型编码也是根据特征种类的不同进行划分,不过不同的种类映射时对应不同的维度,依旧以“天气”为例,可以将“天气”特征映射到3个维度,这3个维度为是否是“晴天”、“阴天”、“雨天”,是赋值1,否则赋值0,那么“晴天”就可以映射为(1,0,0),以此类推。
上述两种方法都有其缺陷。
数值型编码的缺陷是过于简单粗暴,编码会损失一部分信息,这会导致预测效果变差。
向量型编码会在特征种类过多时出现问题,因为种类过多,编码后的向量的维度也会过大,这将导致数据的维度被稀释,造成“维度灾难”,这同样也会使预测效果变差。
综上所述,选择何种方法要事先观察文字型特征,了解文字型特征的信息。
如种类比较少时,向量编码更合适,种类多时,选择树枝编码。或者可以将二者结合在一起,如“风”特征包括“风向”(东南风、东北风等4种)和“风速”(1级、2级、3级、4级)两种信息,特征的格式为“XX风 X级”,该特征的种类多达16种,那么我们可以对“风向”和“风速”分别进行映射,“风向”和“风速”各对应一个维度(每个维度有0、1、2、3四个数值),将该文字型特征编码为一个二维向量。
最后,关注b站 贝拉bella 咕噜咕噜