K-means

聚类,与其说他是机器学习,不如说是数据挖掘,对数据直接进行处理

前提假设:
假设你的数据分布是均匀的,不希望你的数据是稀疏或密集时候,用k-means是不理想的;对异常值比较敏感,对初始化也很敏感。
假设数据特征之间的联合分布是椭圆的,这个条件在真实世界很难满足。

K-means算法:

初始化 :随机选择K个点,作为初始中心点,每个点代表一个group
交替更新:

  • 计算每个点到所有中心点的距离,把最近的距离记录下来并
    赋把group赋给当前的点
  • 针对于每一个group里的点,计算其平均并作为这个group的
    新的中心点。

问题4:K值如何选择:找Inertia的拐点

K-Means++

与k-means初始化不同:
1.从数据点中随机选择一个中心。
2. 对于每个数据点x, 计算D(x), 即x与已经选择的最接近中心之间的距离。
3. 使用加权概率分布随机选择一个新的数据点作为新的中心,其中选择点 x
的概率与D(x)^2成正比。
4. 重复步骤2和3,直到选择了k个中心。
5. 现在已经选择了初始中心,继续使用标准k均值聚类。

例子:假设k=3时,


-->
-->
-->

posted @ 2020-12-17 21:38  TOWERB  阅读(106)  评论(0编辑  收藏  举报