2019/02/27
在进行服务器信息的聚类过程中,出现的问题,是我没意料到的。
第一想法去使用kmeans算法直接操作,但数据中有字符串存在,无法直接使用,文章[1]及sklearn的文档都指出,kmeans只支持两种,其中一种是欧式距离;传统字符串可能用什么汉明距离就可以了,但这里因为数据存在一定的意义,想利用那种0-1距离。下面对问题进行描述。
问题描述
- 针对字符串的距离是如何定义的
目前找到两种距离,第一种汉明距离,这种直接计算两个字符串不同字符的个数;第二种,Levenshtein Distance[2],这种距离好像会计算各种编辑距离什么的。如果字符串中有意义,比如我这里使用的, 我希望他们前面几个字符相等即可,这种的貌似用汉明距离即可。
2.
- 哪些算法支持自定义距离函数
这个需要再对sklearn中聚类的算法看一看。
参考文献
[1]How-do-I-pass-custom-Distance-function-to-scikit-learn-K-Means-clustering
[2]python-Levenshtein