k-mean算法是一种聚类算法。他的优化目标是 起中rnk为一如果第n个数据属于第k类。
我们使用坐标下降法,对uk求导数为0得到uk = 1/m*∑(xi),xi明显是标记为最近的中心点是函数最小化,不断迭代直到收敛。
问题是,算法开始时我们先要指定分类数K,这是一个不确定的数。我采取的做法是不断尝试K,取轮廓系数最小的K为最优K。
轮廓系数为
还有个问题是初始化中心点,这里我采用k-mean++的方法。
- 先从我们的数据库随机挑个随机点当“种子点”
- 对于每个点,我们都计算其和最