在我之前的一个堆栈溢出问题(here)中,有人建议我使用层次聚类来根据Hamming距离对列表中包含的字符串进行分组。我发现了其他几位对pythonsipy包有疑问的海报,特别是链接函数(here和{a3})也有类似的问题。在
如果我对SciPy链接函数的理解是正确的,那么我需要传入一个数组,并根据Hamming距离指定到集群的链接。但是,当我尝试在多个字符串的列表中实现此操作时:
import scipy.cluster.hierarchy as sch
X = [[i] for i in ['apples','applez','appelz','apppel','orange','oranze','oranqg','orangs']]
Z = sch.linkage(X,method='complete',metric='Hamming')
我收到以下错误:
^{pr2}$这显然表明链接的输入必须是一个数字数组,而不是字符串。在
有没有一种方法可以将字符串与SciPy的链接一起使用,还是需要提供一个具有链接的Hamming距离函数,以便它能够将字符串聚集起来?在
您需要对类别列为字符串的类别变量进行标签编码(在python中,这些类别也可以是字符串类型的数字)。在
在python中,我们有:
from sklearn.preprocessing import LabelEncoder.
查看文档并实施它。它将分别为每个类别将字符串类别标记为一个整数。在
示例:
然后可以将其用于分层/聚集聚类。 也可以检查所有变量是否都是数值形式,例如int或float。在
祝你今天愉快!在
相关问题 更多 >
编程相关推荐