Lesson 7.1 无监督学习算法与K-Means快速聚类

在这里插入图片描述
在这里插入图片描述
KNN与K-Means的区别
在这里插入图片描述

from sklearn.cluster import KMeans
NameDescription
n_clusters聚类类别总数
init初始中心点创建方法
n_init初始化几次中心点
max_iter最大迭代次数
tol收敛条件
precompute_distances是否提前预计算距离
algorithm优化距离计算的方法选取

  尽管此前例子中K-Means的迭代过程快速高效,但实际上,当面对复杂数据集时,K-Measn很有可能陷入“局部最小值陷进”或者“震荡收敛”。所谓落入局部最小值陷进,指的是尽管可能有更好的划分数据集的方法(SSE取值更小),但根据K-Means的收敛条件却无法达到,算法会在另外一种划分情况时停止迭代;而所谓“震荡收敛”,指的是算法会在两种不同的划分方法中来回震荡(尽管SSE取值可能有差别)。前种情况非常类似于参数进行梯度下降求解过程中,如果采用BGD,并且参数在一个局部最小值点附近,则最终参数会收敛到局部最小值点类似,而后面一种情况则非常类似于学习率过大导致无法收敛、一直处于震荡状态。

  而出现这种问题的根本原因,其实在于初始中心点的随机选取。因此sklearn中其实集成了两种技术手段来避免上述两种问题的出现。其一是采用k-means++算法来计算初始中心点,经过这种算法生成的中心点,能够大概率在后续的迭代过程中让模型保持平稳,相关说明可参考论文:“k-means++: The advantages of careful seeding” 。而无论k-means++是否生效,为了保险起见,sklearn中都采用了多次初始化中心点、多次训练模型、然后找到最优数据集划分的方法,这就是n_init参数的意义。在这双重保证下,sklearn的K-means快速聚类能够整体保持非常平稳的状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值