K Means为什么不能收敛到全局最优点?

  统计/机器学习 最优化 无监督学习    浏览次数:9717        分享
1

做K Means的时候,我们需要多次随机选取初始点,进行迭代,从而得到一个最佳的聚类。这么做是为了防止K Means陷入局部最小值。

我的问题是K Means为什么不能收敛到全局最优点?它的目标函数不是凸的吗?

 

dsjobhunter   2018-09-03 12:57



   1个回答 
9

Kmeans不是Convex optimization。参考这里

$\min J=\min\sum_{i=1}^{N}\min_{k=1}^{K}||x_i-\mu_k||_2^2$

这里$\mu_k$是第$k$均值。

Kmeans分为两步交替进行:

1.确定每个点属于哪个cluster,$\min_{k=1}^{K}||x_i-\mu_k||_2^2$

2.更新均值$\mu_k=mean_{i\in c_k}(x_i)$

注意第一步里的优化问题,如果一个函数求两个convex函数的最小值,那么它不是convex函数。举个例子,$\mu_1=[1,1],\mu_2=[-1,-1]$,

$$z=\min_{k=1}^{2}||x_i-\mu_k||_2^2$$

$z$的等高线是


这明显有两个全局最低点,不是convex/concave。

Kmeans对初始均值$\mu_k$的选择非常敏感,所以会尝试选择多个初始值,并选一个结果最好的。

有一些研究是对$\mu_k$加一些限制,把整个问题变成宽松的convex。


SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-09-11 01:01

感谢!链接也很有帮助! - dsjobhunter   2018-09-13 03:04


  相关讨论

kernal kmeans是什么意思?和一般的kmeans的区别是什么?

kmeans可以用在三维数据上吗?

通俗地解释c-means以及fuzzy c-means是什么意思

kmeans可以做并行化计算达到加速效果吗?

K Means初始点必须是样本中的点吗

Jenks和K Means在一维数据时,是不是等价的?

k-medoids和k-means区别

K-MEANS初始点选择的问题

关于小批量K均值(mini-batch K Means)的问题

关于online KMeans步骤中成员更新分类的问题?

  随便看看

为什么LASSO可以做特征选择,而Ridge却不行?

如何检验两个样本是同分布的?

怎么对pandas dataframe做转置?

xgboost怎么调参?

如何获取pyspark DataFrame的行数和列数?