特征哈希--数据特征处理
2021-10-07 20:23:38 0 举报
AI智能生成
机器学习特征工程,hash tricking
作者其他创作
大纲/内容
特征哈希(Feature Hashing/Hashing Trick)
大多数机器学习算法的输入要求都是实数矩阵,将原始数据转换成实数矩阵就是所谓的特征工程(Feature Engineering),而特征哈希(feature hashing,也称哈希技巧,hashing trick)就是一种特征工程技术。它的目标就是将一个数据点转换成一个向量。目的是降维;
分类数据(categorical data)和文本数据(text data)进行特征工程处理
分支主题
分类数据
分类变量(category variable)就是一组有有限值(finite number of values)的变量。如身份证号、广告类别等。
最常见的对分类变量的处理是使用one-hot encoding:创建NN个二元变量,其中NN是该分类变量所有可能的取值数量。
文本数据
最简单的方法是词袋模型(bag-of-word model):创建NN个二元变量,其中N是词汇的数量(即不同单词的数量)。
对于每个文档来说,创建一个NN维向量,文档中包含的某个词汇的数量即是这个向量中词汇对应的索引的值。
哈希表有如下特性
不同的输入可能有相同的输出(一般情况下比例不高)--碰撞
不同的输出一定对应不同的输入
正向计算很简单,反向计算很困难
根据输入查找输出效率很高
hashing trick,Feature hashing
将所有的原始数据转换成指定范围内的散列值
好处:即便对于不在词汇表中的单词,我们依然可以计算出一个散列值,因此不容易被规避,也不需要事先准备词汇表,新特征的转换对输入特征的长度不影响(因为事先已经定义好了散列范围)
只需要散列新来的数据,并不需要重新对所有数据进行哈希处理,所以支持在线学习
经过哈希特征工程之后,原来非常稀疏的向量可能会变得不那么稀疏
尽管有散列冲突,但是研究和实践表明,这种影响很小。
缺点:缺乏可解释性,因为特征被处理成无法解释的散列值了。尽管如此,这个技巧才很多时候非常有用。
特征哈希的使用技巧
使用哈希特征的时候需要选择散列的范围,这个并没有统一的标准。较小的散列范围会导致较多的冲突,影响准确性,较大的范围会占用较高的内存和花费较多的训练时间。因此,在实际情况中,要根据你的目标选择,如果不考虑训练时间的话,可以考虑使用较大范围的散列结果。
0 条评论
下一页