我想在Matlab中使用kmeans聚类中的汉明距离,但是我得到一个错误,说我的数据必须是二进制的。
这周围有吗?我使用的数据矩阵不能是二进制的(它有一个必须允许值为0,1,2,3的物理解释),但重要的是我使用汉明距离。
答案 0 :(得分:1)
根据MATLAB documentation,kmeans
的汉明距离度量只能用于二进制数据,因为它是衡量不同比特百分比的指标。
在使用该函数之前,您可以尝试将数据映射为二进制表示。如果可能的话,您还可以考虑使用城市街区距离,因为它适用于非二进制输入。
答案 1 :(得分:1)
要集群的数据必须是逻辑类型。您可以通过一个命令转换0/1 double,single,uintX数据:
x = logical( y );
如果要将uint8类型数据转换为二进制,请检查函数 uint8tobit ()。看一下 de2bi ()和 bi2de ()函数。