k 均值聚类中的汉明距离
我想在 Matlab 中的 kmeans 聚类中使用汉明距离,但收到一条错误消息,指出我的数据必须是二进制的。
这附近还有吗?我使用的数据矩阵不能是二进制的(它的物理解释必须允许值 0,1,2,3),但使用汉明距离很重要。
I want to use the hamming distance in kmeans clustering in Matlab, but I get an error saying that my data must be binary.
Is there anyway around this? The data matrix that I use can't be binary (it has a physical interpretation that must allow for values 0,1,2,3) but it's important that I use the Hamming distance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据 MATLAB 文档,
kmeans< 的汉明距离测量/code> 只能与二进制数据一起使用,因为它是不同位百分比的度量。
在使用该函数之前,您可以尝试将数据映射为二进制表示形式。如果可能的话,您还可以考虑使用城市街区距离作为替代方案,因为它适合非二进制输入。
Per the MATLAB documentation, the Hamming distance measure for
kmeans
can only be used with binary data, as it's a measure of the percentage of bits that differ.You could try mapping your data into a binary representation before using the function. You could also look at using the city block distance as an alternative if possible, as it is suitable for non-binary input.
要聚类的数据必须是逻辑类型。您可以通过单个命令转换 0/1 double、single、uintX 数据:
如果要将 uint8 类型数据转换为二进制,请检查函数 uint8tobit()。看一下 de2bi() 和 bi2de() 函数。
The data to cluster must be of type logical. You can convert your 0/1 double, single, uintX data by a single command:
If you want to convert uint8 type data to binary, check the function uint8tobit(). Take a look at de2bi() and bi2de() functions.