哈希技巧-实际发生了什么


12

当ML算法(例如Vowpal Wabbit或某些因式分解机器赢得点击率竞争(Kaggle))提到功能“散乱”时,这实际上对模型意味着什么?可以说有一个变量表示互联网添加的ID,该变量采用诸如“ 236BG231”之类的值。然后,我了解到此功能已哈希为一个随机整数。但是,我的问题是:

  • 是模型中现在使用的整数,是整数(数字)或
  • 哈希值是否仍然仍然像分类变量一样被一键编码?因此,哈希技巧只是为了以某种方式节省大数据的空间?

Answers:


7

第二个要点是特征哈希中的值。散列和一种稀疏数据的热编码节省了空间。根据哈希算法,您可能会有不同程度的冲突,这是一种降维。

此外,在Kaggle功能散列和一种热编码的特定情况下,通过获取所有可能的元组(通常仅是二阶,有时是三阶)特征,然后通过碰撞散列的特征会显式创建通常可预测的交互作用,从而有助于特征扩展/工程而个人特征则没有。

在大多数情况下,此技术与LR中的特征选择和弹性网正则化相结合,其行为与一个隐藏层NN非常相似,因此在比赛中表现良好。


因此,仍然仅对散列值使用“一键编码”,这可以节省空间并可能导致降维(给定的冲突)。那是对的吗?
B_Miner 2014年

1
主机编码不是哈希功能的必需部分,但通常与主机编码一起使用,因为它有助于提高预测能力。想到一种热编码的一种方法是将特征从一组N个离散值转换为一组N个二元问题。对我来说,也许知道特征J是2还是3而不是4也许对我来说并不重要。这对线性模型有很大帮助,而整体方法(如RF)将扫描特征中的断点以找到区别。
cwharland 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.