
70
|
第
5
章
5.1.4
各种分类变量编码的优缺点
one-hot
编码、虚拟编码和效果编码彼此之间非常相似,它们都有各自的优缺点。
one-hot
编码有冗余,这会使得同一个问题有多个有效模型,这种非唯一性有时候比较难以解释。
它的优点是每个特征都明确对应一个类别,而且可以把缺失数据编码为全零向量,模型输
出也是目标变量的总体均值。
虚拟编码和效果编码没有冗余,它们可以生成唯一的可解释的模型。虚拟编码的缺点是不
太容易处理缺失数据,因为全零向量已经映射为参照类了。它还会将每个类别的效果表示
为与参照类的相对值,这看上去有点不直观。
效果编码使用另外一种编码表示参照类,从而避免了这个问题,但是全由
-
1
组成的向量
是个密集向量,计算和存储的成本都比较高。正是因为这个原因,像
Pandas
和
scikit-learn
这样的常用机器学习软件包更喜欢使用虚拟编码或
one-hot
编码,而不是效果编码。
当类别的数量变得非常大时,这
3
种编码方式都会出现问题,所以需要另外的策略来处理
超大型分类变量。
5.2
处理大型分类变量
互联网上的自动数据采集可以生成大型分类变量,在定向广告和欺诈检测这样的应用中,
这种情况非常常见。
在定向广告应用中,我们的任务是为一个用户匹配一组广告。这时的特征包括用户
ID
、广
告的站点域名、查询语句、当前页以及这些特征的所有成对组合。(查询语句是一个文本
字符串,可以被分解转换成一般的文本特征。但是,查询语句一般很短,而且通常由短语
组成,所以这时最好的做法是保持它们原封不动或者通过一个散列函数来传递,以使得存 ...