如何将K均值算法应用于多维数组?

How to apply K-mean algorithm to multidimensional array?

我有一个矩阵 A = (a1,a2,a3,...,an)',其中 a1, a2,..., an 是行向量。我想将 k-means 算法应用于矩阵 A,以便将行向量 ai (i=1,2,3...,n) 聚类到 k 个或更多聚类。假设b1, b2, b3,...,bkk个簇的中心,随机选择k个样本作为k个簇的初始中心。所有样本(a1,a2,a3,...,an)根据它们到中心bi (i=1,2,3,...,k)的余弦距离被分类为k类,即k簇。重新计算k个簇的中心,对所有样本重新分类,直到中心不变,然后得到最终的中心b1,b2,b3,...,bk。对于每个簇,只保留最接近簇中心的向量。如何实现?

kmeans 函数(在 统计和机器学习工具箱 中)正是执行此操作。只需使用:

C = kmeans(A, k, 'Distance', 'cosine')

以获得所需的输出。

最佳,