【发布时间】:2016-07-29 07:13:04
【问题描述】:
Geohash 字符串是我的稀疏逻辑回归模型中的一个特征。所以我使用 java string hashCode 在 geohash 字符串上生成 int 值以获得特征 ID。但我发现 hashCode 方法在类似的 geohash 字符串上表现不佳。这会导致不同的特征具有相同的特征 id,即使特征相似,这也可能对模型优化不利。 例如,那些相似的 geohash 字符串对具有相同的 hashCode。
<"wws8vw", "wws8x9">
"wws8vw".hashCode() = -774715770
"wws8x9".hashCode() = -774715770
<"wmxy0", "wmxwn">
"wmxy0".hashCode() = 113265337
"wmxwn".hashCode() = 113265337
我猜geohash生成器方法和java hashCode方法之间有一些关系。那么,任何人都可以向我解释真正的原因以及如何减少 geohash 字符串上的冲突?
【问题讨论】:
-
为什么?因为这就是
String.hashCode的实现方式,而且它通常适用于字符串。现在另一个为什么的问题:你为什么在乎?遇到了什么问题? -
这些是什么物品?如果取为
Strings,则hashCodes不同。 -
@DaDaDom 我认为 OP 的意思是
"wws8vw".hashCode() == "wws8x9".hashCode()等。见this。 -
哦,好的。我认为这对本身是匹配的。好吧,我同意你的第一条评论:看起来@formath 正在尝试解决错误的问题。
-
@formatth 你能说一下为什么你关心这些冲突吗?
标签: java hashcode geohashing