2013-11-23 36 views
0

我试图实现K-最近邻居算法。我的数据集有类似的值:查找字符串功能上的欧氏距离

164  5.60 3.17 30.98 Present 44 25.99 43.20 53 1 

178  0.95 4.75 21.06 Absent 49 23.74 24.69 61 0 

我计划用欧氏距离来计算两个向量之间的距离。对于如何计算两个字符串之间的ED来说,我有疑问。上例中的“存在”和“缺席”?

+0

我试图将它映射到数值,如下面的评论中所建议的。然后完成它。一旦完成,我会更新! –

回答

0

根据具体的问题域,例如“Absent”,“Present”,“Unknown”等,您应该确定可能的值列表。然后,您应该将数值映射到每个字符串值, 问题域。您应该考虑映射数值的距离。例如,我会比“缺席”和“未知”更认为“缺席”和“现在”更远远处。因此,我会将这些值映射为“Absent”:1,“Unknown”:0,“Present”: - 1。这在很大程度上取决于具体问题的领域。

然后,您将使用数值计算欧氏距离。

希望我帮了忙!

+0

是的,我同意 - 这是一个好方法。您也可以计算字符串之间的差异,但是需要将第一个字符串转换为第二个字符串(Levenstheim距离)需要进行多少更改,而不是意义上的距离。因此,改变数字应该有所帮助。 – xhudik

+0

你说得对。你描述的方法计算两个字符串之间的距离。但是你所指的距离,**没有我的距离**的语义。你的意思是词汇距离(如果这个词是正确的)实际上表达了将第一个字符串转换为第二个字母转换有多困难。我提出的距离将根据整个单词的语义和问题的领域来任意定义。只是为了澄清... –