zoukankan      html  css  js  c++  java
  • [聚类算法] K-means 算法

    聚类 和 k-means简单概括。

    • 聚类是一种 无监督学习 问题,它的目标就是基于 相似度 将相似的子集聚合在一起。
    • k-means算法是聚类分析中使用最广泛的算法之一。它把n个对象根据它们的属性分为k个聚类,以便使得所获得的聚类满足:

            同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。

    k - means的算法原理:

    (文/qinm08(简书作者) 原文链接:http://www.jianshu.com/p/32e895a940a2)

    使用K-Means算法进行聚类,过程非常直观:
    (a) 给定集合D,有n个样本点
    (b) 随机指定两个点,作为两个子集的质心
    (c) 根据样本点与两个质心的距离远近,将每个样本点划归最近质心所在的子集
    (d) 对两个子集重新计算质心
    (e) 根据新的质心,重复操作(c)
    (f) 重复操作(d)和(e),直至结果足够收敛或者不再变化

    Python demo:

    from sklearn.cluster import KMeans
    
    model=KMeans(n_clusters=4,random_state=0)
    X=[
     [50.0,50.0,9.0]
    ,[28.0, 9.0,4.0]
    ,[17.0,15.0,3.0]
    ,[25.0,40.0,5.0]
    ,[28.0,40.0,2.0]
    ,[50.0,50.0,1.0]
    ,[50.0,40.0,9.0]
    ,[50.0,40.0,9.0]
    ,[40.0,40.0,5.0]
    ,[50.0,50.0,9.0]
    ,[50.0,50.0,5.0]
    ,[50.0,50.0,9.0]
    ,[40.0,40.0,9.0]
    ,[40.0,32.0,17.0]
    ,[50.0,50.0,9.0]
    ]
    
    model.fit(X)
    
    for a in X:
        print(model.predict(a),a)

    结果:

    (array([1]), [50.0, 50.0, 9.0])
    (array([2]), [28.0, 9.0, 4.0])
    (array([2]), [17.0, 15.0, 3.0])
    (array([3]), [25.0, 40.0, 5.0])
    (array([3]), [28.0, 40.0, 2.0])
    (array([1]), [50.0, 50.0, 1.0])
    (array([0]), [50.0, 40.0, 9.0])
    (array([0]), [50.0, 40.0, 9.0])
    (array([0]), [40.0, 40.0, 5.0])
    (array([1]), [50.0, 50.0, 9.0])
    (array([1]), [50.0, 50.0, 5.0])
    (array([1]), [50.0, 50.0, 9.0])
    (array([0]), [40.0, 40.0, 9.0])
    (array([0]), [40.0, 32.0, 17.0])
    (array([1]), [50.0, 50.0, 9.0])

    两个缺点:
    1)初始聚类中心的个数需要事先给定,一般非常困难
    2)初始聚类中心的选取很随机,可能导致非常不同的聚类效果

    K-means++算法:

    改进了2)初始聚类中心的选取
    (a)从数据集中随机选择一个点,作为第一个中心C1
    (b)计算所有点到离它最近的中心的距离D(x),然后在此中心根据概率原则选择距离“比较大”的点作为下一个中心点。
    SUM(D(x))*random(0,1)>SUM(D(xi) && SUM(D(x))*random(0,1)<SUM(D(xi-1)
    (c)重复操作(b)直到找到k个中心点

    缺点:
    k个中心点,互相依赖,即内在的有序性。

     

  • 相关阅读:
    超简单tensorflow入门优化程序&&tensorboard可视化
    tf.random_normal()函数
    tensorflow中创建多个计算图(Graph)
    tensorflow中有向图(计算图、Graph)、上下文环境(Session)和执行流程
    配置错误 在唯一密钥属性“fileExtension”设置为“.log”时,无法添加类型为“mimeMap”的重复集合项
    取奇偶数
    DNS添加/修改/查询/删除A记录
    IE自动化
    Get-ChildItem参数之 -Exclude,Filter,Recurse应用
    自动下载
  • 原文地址:https://www.cnblogs.com/skyEva/p/5630820.html
Copyright © 2011-2022 走看看