Python 基于混合型数据帧的K均值

Python 基于混合型数据帧的K均值,python,pandas,cluster-analysis,k-means,Python,Pandas,Cluster Analysis,K Means,我有以下数据集,我想对其应用聚类(特别是k-means) 我想做的是创建id的集群。例如,每个集群都应该包含一些基于类别值计算的相似性度量的id 例如:C1{122,145,148}C2{225,222,221} 你知道如何处理这类问题吗?我假设A-Z中有多个类别,并且有许多行属于同一类别。K-means算法的工作原理如下所述。从你的问题来看,不清楚什么是相似性度量。一旦我对集群目标有了更多的了解,我会更新我的答案 更新:在再次查看数据并注意到@Anony Mouse的评论后,我假设问题是:给定

我有以下数据集,我想对其应用聚类(特别是k-means)

我想做的是创建id的集群。例如,每个集群都应该包含一些基于类别值计算的相似性度量的id

例如:C1{122,145,148}C2{225,222,221}


你知道如何处理这类问题吗?

我假设A-Z中有多个类别,并且有许多行属于同一类别。K-means算法的工作原理如下所述。从你的问题来看,不清楚什么是相似性度量。一旦我对集群目标有了更多的了解,我会更新我的答案

更新:在再次查看数据并注意到@Anony Mouse的评论后,我假设问题是:给定三个类别a、B、C及其各自的值和标签(ID),根据某种相似性度量对它们进行聚类(可以是欧几里德距离、余弦距离或其他)。我正在更新我以前的答案,以符合上述假设

解析数据并生成三个数字或一个热编码特征,这些特征表示每个Id的类别A、B和C的值

K:输入

重复上述步骤,直至收敛:

  • 将三维簇质心U1随机初始化为Uk
  • 对于每个Id,找到类别值和簇质心之间的欧几里德距离的最小和。将该簇质心指定为 当前Id的新群集中心
  • 对于每个簇,通过平均分配给它的所有样本(ID)的特征,重新计算其质心
当簇质心不变或每个质心的变化小于作为输入提供的小值时,可能会发生收敛。

将数据转换为适当的形状:

类别应该是列,而不是单独的行

     id          A          B         C
1    122         3          4         9
2    145         19         22        90
..

不要忘记排除ID列进行分析!在群集时不要包含ID。对于分析,您的数据应该只有A、B、C列;每个ID一行。这样你就有了一个nx3矩阵,那么你就可以很好地使用k-均值。

相似性标准是什么?不。那样的话,他每个ID仍然有三行!我假设数据将首先被清理,并删除重复项,编辑我的答案以包含该细节。这些不是重复项。每个id对于每个类别都有一个值。看到我的答案了…这不是OP想要的,他想要创建一个ID集群。是的,ID每个有三行,为每个ID存储三个值a、B和C。。。我没有安排枢轴操作。这是一个内置的。。。看看它是做什么的,你会发现在这里做这件事是正确的。
     id          A          B         C
1    122         3          4         9
2    145         19         22        90
..