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的值。

    --------------------成功,肯定是需要一点一滴积累的--------------------
  • 相关阅读:
    吐槽下博客园
    关于爱情
    CCD 驱动 时序理解
    写在博客的第一天
    51单片机最小系统
    swing之登陆功能
    TDSQL | 在整个技术解决方案中HTAP对应的混合交易以及分析系统应该如何实现?
    TDSQL | 深度解读HTAP系统的问题与主义之争
    硬核干货!TDSQL全局一致性读技术详解|
    35w奖金池,腾讯云TDSQL精英挑战赛等你来战!
  • 原文地址:https://www.cnblogs.com/GouQ/p/12391090.html
Copyright © 2011-2022 走看看