hash trick在机器学习中的使用

本文探讨了在大规模高维数据的机器学习问题中,如何使用哈希技巧(hash trick)进行有效的降维。哈希技巧包括直接对每个特征哈希和所有特征哈希到同一空间两种策略,例如Count-Min Sketch和Vowpal Wabbit方法。通过哈希,可以减少数据处理的复杂性和存储需求,同时保持较好的学习效果。虽然哈希后的模型难以直接解释,但在实践中表现出色,尤其适用于处理大规模的categorical特征。
摘要由CSDN通过智能技术生成

一、为什么需要hash trick?

在工业界,数据经常不仅是量大,而且维度也很高,所以出现很多具体的大规模的机器学习问题,比如点击率预测问题。在CTR中,特征涉及到广告主和用户等。大多特征都可以看做categorical。对categorical feature一般使用1-of-c编码方式(统计里称为dummy coding)。对于取值为实数的特征我们可以进行离散化处理(实际应用中一般也不直接把连续值的特征直接交由模型处理)。可能有的特征对应的取值非常多,所以这种编码方式就容易导致维度非常高(维数灾难问题)。当然也有其他原因造成该问题维度很高,比如将不同特征做笛卡尔积产生新的特征(参考链接6中提到很多广告公司宣称使用的几十上百亿特征都是用这个方法搞出来的)。

那如何降维呢?我们可以首先去除特征中不频繁的值,这样特征对应的取值减少,维数会降低。但是这种方法需要对数据进行预处理。至于PCA等常见的降维方法,由于数据量实在太大而不太适合使用。而hash trick是一种越来越受欢迎的降维方法。它不需要进行数据预处理,实现简单直接。

对于一些非线性问题,我们可以将输入空间映射到高维的特征的空间,使问题变成一个线性问题。使用kernel trick可以通过低维度的样本点的核函数计算得到高维度中向量的内积。但是在文本分类问题中,就会碰到一个问题。文本分类问题也是一个典型的高维问题,而且由于手工添加的一些非线性特征,原始的输入空间就线性可分,这样就没必要在将输入映射到更高位的特征空间了。而是需要使用降维方法。hash trick和ker

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值