Svenstrup et. al. 2017提出了一种处理散列向量器中散列冲突的有趣方法:使用2个不同的散列函数,并在建模之前连接它们的结果。你知道吗
他们声称多个散列函数的组合近似于一个范围更大的散列函数(见本文第4节)。你知道吗
我想用我在sklearn中使用的一些文本数据来尝试一下。我们的想法是运行HashingVectorizer两次,每次使用不同的散列函数,然后将结果串联起来作为模型的输入。你知道吗
我该如何处理sklearn?没有一个选项可以更改所使用的哈希函数,但也许可以修改矢量器?你知道吗
或者我可以用SparseRandomProjection实现这个目标?你知道吗
scikit learn中的HashingVectorizer已经包含了一种机制,可以通过^{} 选项减轻哈希冲突。这在令牌求和期间添加了一个随机符号,从而改进了散列空间中距离的保存(有关详细信息,请参见scikit-learn#7513)。你知道吗
通过使用
N
散列函数并连接输出,可以将结果稀疏矩阵中的n_features
和非空项(nnz
)的数量增加N
。换句话说,每个标记现在将被表示为N个元素。这真是浪费记忆。此外,由于稀疏数组计算的运行时间直接依赖于nnz
(而不是n_features
),这将比只增加n_features
对性能产生更大的负面影响。我不确定这种方法在实践中是否有用。你知道吗如果您仍然想实现这样的矢量器,下面是一些注释。你知道吗
FeatureHasher
是在Cython中实现的,所以不编辑/重新编译代码就很难从Python修改它的功能。你知道吗相关问题 更多 >
编程相关推荐