Java 在字符串特征上寻找欧氏距离

Java 在字符串特征上寻找欧氏距离,java,machine-learning,classification,Java,Machine Learning,Classification,我正在尝试实现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,例如上面的示例中的“存在”和“不存在”您应该根据具体的问题域确定可能的值列表,例如

我正在尝试实现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,例如上面的示例中的“存在”和“不存在”

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

然后,您将使用数值计算欧几里德距离


希望我能帮忙

是的,我同意——这是一个好办法。您也可以计算字符串之间的差异,但将第一个字符串转换为第二个字符串(Leventheim距离)需要多少更改,而不是意义上的距离。因此,改变数字应该会有所帮助。你是对的。您描述的方法计算两个字符串之间的距离。但是你所指的距离,没有我的距离所具有的语义。您指的是词汇距离(如果术语是正确的),它实际上表示通过字母转换将第一个字符串转换为第二个字符串有多困难。我提议的距离将根据整个词的语义和问题的领域任意定义。我只是想澄清一下……我正试图将其映射为下面评论中建议的数值。还没有完成。我完成后将更新!