Python 3.x K模式计算每个点和簇质心之间的距离

Python 3.x K模式计算每个点和簇质心之间的距离,python-3.x,scikit-learn,cluster-analysis,data-mining,k-means,Python 3.x,Scikit Learn,Cluster Analysis,Data Mining,K Means,我有一组要聚类的分类变量,所以我使用的是从a中选取的k模式。我想得到每个观测(点)到它所属簇的质心的距离 这就是我迄今为止所实施的: kmodes_cao = kmodes.KModes(n_clusters=6, init='Cao', verbose=1) kmodes_cao.fit_predict(data) # Print cluster centroids of the trained model. print('k-modes (Cao) centroids:') print(k

我有一组要聚类的分类变量,所以我使用的是从a中选取的k模式。我想得到每个观测(点)到它所属簇的质心的距离

这就是我迄今为止所实施的:

kmodes_cao = kmodes.KModes(n_clusters=6, init='Cao', verbose=1)
kmodes_cao.fit_predict(data)

# Print cluster centroids of the trained model.
print('k-modes (Cao) centroids:')
print(kmodes_cao.cluster_centroids_)

# Print training statistics
print('Final training cost: {}'.format(kmodes_cao.cost_))
print('Training iterations: {}'.format(kmodes_cao.n_iter_))

我不能使用欧氏距离,因为变量是分类的。计算每个点到其簇形心的距离的理想方法是什么?

例如,如果有两个变量V1,可以取A或B,V2可以取C或D 如果质心为V1=A和V2=D

对于每个变量i,当Vi=Ci(质心i)

如果实例V1=A和V2=C,则与质心的距离为1 这是一个二进制距离
如果有两个变量V1可以取A或B,V2可以取C或D,那么这将有帮助 如果质心为V1=A和V2=D

对于每个变量i,当Vi=Ci(质心i)

如果实例V1=A和V2=C,则与质心的距离为1 这是一个二进制距离
您可以使用库中的方法
matching_disim()

要与数据集中的行进行比较,一个可以是您的质心,另一个可以是任何人。首先必须安装库
Panda
,然后使用以下行导入方法:

from kmodes.util.dissim import matching_dissim

您可以使用库中的方法
matching_disim()

要与数据集中的行进行比较,一个可以是您的质心,另一个可以是任何人。首先必须安装库
Panda
,然后使用以下行导入方法:

from kmodes.util.dissim import matching_dissim

谢谢你的回答,但有点不清楚。你能详细说明一下吗?Kmods计算每个变量的模式值(最具代表性的类别)。因此,在学习结束时,假设数据集中有两个变量C1=(V1=category1,V2=category2)。。。C6=(V1=categoryX,V2=categoryY)如果要预测新实例的群集,则返回群集,该群集为您提供了计算实例与群集质心C之间距离的最小距离:如果Vi的值为,则可以对每个变量Vi使用此公式distance=0!=Ci距离+=1返回距离谢谢你的回答,但有点不清楚。你能详细说明一下吗?Kmods计算每个变量的模式值(最具代表性的类别)。因此,在学习结束时,假设数据集中有两个变量C1=(V1=category1,V2=category2)。。。C6=(V1=categoryX,V2=categoryY)如果要预测新实例的群集,则返回群集,该群集为您提供了计算实例与群集质心C之间距离的最小距离:如果Vi的值为,则可以对每个变量Vi使用此公式distance=0!=Ci距离+=1返回距离查看
KModes
函数的源代码。不要重新发明方向盘。我查看了它,但找不到距离是如何计算的。我在使用数据挖掘方面是新手,请您指导一下好吗?它甚至在文档中,即
cat_dissim
参数中。我正在尝试应用它,但不知道如何准确地使用它。代码可以贴在这里吗?谢谢你,我不用它,所以不用。你必须自己学习python。请看
KModes
函数的源代码。不要重新发明方向盘。我查看了它,但找不到距离是如何计算的。我在使用数据挖掘方面是新手,请您指导一下好吗?它甚至在文档中,即
cat_dissim
参数中。我正在尝试应用它,但不知道如何准确地使用它。代码可以贴在这里吗?提前谢谢。我不使用它,所以不用。你必须自己学习python。