首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么java字符串hashCode在不同但相似的Geo散列字符串上有许多冲突?

为什么java字符串hashCode在不同但相似的Geo散列字符串上有许多冲突?
EN

Stack Overflow用户
提问于 2016-07-29 07:13:04
回答 1查看 963关注 0票数 1

Geo散列字符串是我的稀疏逻辑回归模型中的一个特性。因此,我使用java字符串hashCode在Geo散列上生成int值,以获得特性id。但是我发现hashCode方法在类似的地哈希字符串上表现很差。它导致不同的特征具有相同的特征id,这在模型优化中可能存在缺陷,即使是相似的特征也是如此。例如,这些相似的地哈希字符串对具有相同的hashCode。

代码语言:javascript
运行
复制
<"wws8vw", "wws8x9">
    "wws8vw".hashCode() = -774715770
    "wws8x9".hashCode() = -774715770
<"wmxy0", "wmxwn">
    "wmxy0".hashCode() = 113265337
    "wmxwn".hashCode() = 113265337

我猜它在Geo散列生成器方法和java hashCode方法之间有一定的关系。所以,任何人都可以解释我的真正原因,以及如何减少地哈希字符串上的碰撞?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-29 07:43:43

我认为您误解了 method的目的--一般不是散列,而是为什么对象有这种方法:

哈希表(如HashMap提供的哈希表)支持此方法。

因此,如果您试图将此方法用作机器学习模型的输入,则没有将其用于其预期目的。

答案是相当明显的:您需要设计自己的散列方法--或者选择一个预先存在的方法--为您的预期输入提供所需的碰撞配置文件。你不能改变String.hashCode()使用的那种。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38652644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档