最近在学习吴恩达的机器学习,遇到K-means算法,并做了笔记。
K-means算法原理:
K-means聚类算法是一种将相似的数据样本自动聚集到一起的方法。更具体的,如果给出训练集,其中每个样本x都属于n维的实数向量,然后我们希望将这些数据分组到少数的簇中去。K-means背后的原理是一个迭代的过程,首先随机给出K个初始的聚类中心,将m个样本数据分别分配给离该数据最近的聚类中心。然后根据移动后的数据再次求得聚类中心的位置。
K-means算法过程:
首先随机的初始化K个聚类中心都属于n维的实数向量。
迭代重复以下步骤:
有两个内循环:
1、簇的分配 :将所有的样本数据分配给K个簇中心,将每个点划分给属于自己簇的过程。
c^(i)是一个在1到K之间的数,表示当前样本下x(i)所属的那个簇的索引号或者序号。
2、移动簇中心:计算每个