我想知道特征散列与 One Hot Encoding 有何不同。另外,我们是否以稀疏格式表示散列特征?
OHE 与特征散列
机器算法验证
机器学习
特征选择
2022-04-13 02:36:49
1个回答
一种热编码和特征散列都是特征工程的两种形式,其中数据科学家试图将分类信息(血型、国家、产品 ID、单词)表示为输入向量。
我们可以将阿富汗表示为 [1,0,0,0],白俄罗斯表示为 [0,1,0,0],加拿大表示为 [0,0,1,0],丹麦表示为 [0,0,0,1 ]。我们可以使这个向量足够大,以便为世界上每个国家提供一个位置。但是单词呢,有几千个,而且你的测试集中出现的一些单词可能不会出现在你的训练集中?散列函数将任意大小的数据映射到固定大小的数据。您可以使用 hash(string) mod n 返回一个介于 0 和 n - 1 之间的数字,然后这是您在输入向量中增加的索引。
来自https://www.quora.com/Can-you-explain-feature-hashing-in-an-easily-understandable-way的示例:
代表“快速棕色狐狸”:
h(the) mod 5 = 0
h(快速)模 5 = 1
h(棕色) mod 5 = 1
h(狐狸) mod 5 = 3
一旦我们有了这个,我们可以简单地将我们的向量构造为:
(1,2,0,1,0)
最后
另外,我们是否以稀疏格式表示散列特征?
对于足够大的向量,特征散列将产生稀疏向量(其中大部分值为零)。