当 ML 算法,例如 Vowpal Wabbit 或一些赢得点击率竞赛 ( Kaggle ) 的分解机器提到特征是“散列的”时,这对模型实际上意味着什么?假设有一个变量表示互联网添加的 ID,它采用诸如“236BG231”之类的值。然后我明白这个特性被散列为一个随机整数。但是,我的问题是:
- 是模型中现在使用的整数,作为整数(数字)或
- 散列值实际上仍然被视为分类变量和单热编码吗?因此,散列技巧只是以某种方式用大数据节省空间?
当 ML 算法,例如 Vowpal Wabbit 或一些赢得点击率竞赛 ( Kaggle ) 的分解机器提到特征是“散列的”时,这对模型实际上意味着什么?假设有一个变量表示互联网添加的 ID,它采用诸如“236BG231”之类的值。然后我明白这个特性被散列为一个随机整数。但是,我的问题是:
第二个项目符号是特征散列中的值。散列和稀疏数据的一种热编码可以节省空间。根据哈希算法,您可以有不同程度的冲突,这作为一种降维。
此外,在 Kaggle 特征散列和一种热编码的特定情况下,通过获取所有可能的特征元组(通常只是二阶但有时是三阶),然后通过冲突对这些特征进行散列处理,从而显式创建通常具有预测性的交互,从而有助于特征扩展/工程而个别特征不是。
在大多数情况下,这种技术与 LR 中的特征选择和弹性网络正则化相结合,与单隐藏层 NN 非常相似,因此它在比赛中表现得非常好。