Thursday, August 19, 2010

对机器学习中枚举型特征的通用处理方法

机器学习算法需要能计算两个特征向量之间的距离,这是最低要求。大部分机器学习算法需要特征向量具有欧式空间特性(满足勾股定理)。这对一般的实数型特征是合适的,但考虑枚举型特征,就不合适。比如一个枚举型特征叫做颜色{红,黄,绿},如果允许我们定义任意两个不同值之间的差别为1,那么我们对齐编号,比如0,1,2,都是不合适的,无法保证这一点。比如红,绿之间的距离就是2。
一种通用的做法是把每一个值作为一个维度,如果一个特征有k个枚举值,那么就把这个特征扩展为k-维的一个特征。比如取值为红,特征为[1, 0, 0],取值为黄就是[0, 1, 0]。这样就能保证任意两个不同的枚举值之间的距离为1。
这说明一个问题,一个枚举特征本身并不是一个1维的特征,而是要大于1维。枚举特征的出现会明显的增大特征空间的维度,从而产生更强的描述能力,但同时也带来对样本的更大的需求,甚至是泛化能力方面的问题。

No comments:

Post a Comment