zoukankan      html  css  js  c++  java
  • 机器学习之K-Means(聚类分析)

    K-Means属于非监督分类,在数据聚类中是相对容易也是非常经典的算法。通常用在大量数据需要进行分类的时候。K表示要把数据分类K类。

    其计算步骤为(以K=3为例):

    1、随机在数据当中抽取3个样本,当做三个类别的中心点(绿、红、蓝)。

    2、其次,计算其余的点分别到这三个中心点的距离,这样每一个样本都会有三个距离,从中选出距离(欧式距离)最近的一个点最为自己的标记,形成三个族群。

     3、然后,分别计算这三个族群的平均值,例如:A(x1,y1),B(x2,y2)两个点的平均值为((x1+x2)/2, (y1+y2)/2)。把三个平均值与之前的三个旧中心点比较,如果都相同,那么久结束聚类;如果不相同,把这三个平均值当做新的中心店,重复第二步。

    API: sklearn.cluster.KMeans

     评估标准:轮廓系数

     API:

     以python官方自带的数据集为例:

    from sklearn.cluster import KMeans
    from sklearn.metrics import silhouette_score
    from sklearn.datasets import load_digits
    
    def kmeans():
        """
        手写数字聚类过程
        :return: None
        """
        ld = load_digits()
        print(ld.target[:20])
    
        #进行聚类
        km = KMeans(n_clusters= 8)
        km.fit_transform(ld.data)
        print(km.labels_[:20])
        print('轮廓系数为:', silhouette_score(ld.data, km.labels_))
    
        return None
    
    if __name__ == "__main__":
        kmeans()

     最后轮廓系数大于0,应该算是不错的效果。

    K-Means聚类方法的缺点应该比较明显,就是有一个超参数K,有时候在进行聚类时往往不知道K的值。

    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    linux基本命令之grep
    Linux在线练习网站
    MySql分表分库思路
    SqlServer触发器
    SqlServer存储过程
    Spring常用注解总结
    SpringMVC的HelloWorld
    XML基础和Web基本概念(JavaWeb片段一)
    红黑树-结点的删除(C语言实现)
    红黑树-结点的插入
  • 原文地址:https://www.cnblogs.com/GouQ/p/12391090.html
Copyright © 2011-2022 走看看