zoukankan      html  css  js  c++  java
  • scikit-learn 中的 KMeans

    语法

    sklearn.cluster.KMeans(n_clusters=8,    # 簇的个数, 默认为 8 
                           init='k-means++',  # 初始簇中心的获取方法 
                           n_init=10,    # 初始簇中心的更迭次数, 默认为 10 
                           max_iter=300,    # 最大迭代次数,默认为 300 
                           tol=0.0001,      # 容忍度,即kmeans运行准则收敛的条件 
                           precompute_distances='auto',  # 是否需要提前计算距离 
                           verbose=0,    # 冗长模式 
                           random_state=None,    # 随机生成簇中心的状态条件 
                           copy_x=True,
                           n_jobs=1,     # CPU 内核并行数, 默认为 1 
                           algorithm='auto'   # kmeans的实现算法,有:’auto’, ‘full’, ‘elkan’, 其中 ‘full’表示用EM方式实现 
                          ) 

    具体的参数含义:

    n_clusters:簇的个数,即你想聚成几类
    
    init: 初始簇中心的获取方法
    
    n_init: 获取初始簇中心的更迭次数,为了弥补初始质心的影响,算法默认会初始10次质心,实现算法,然后返回最好的结果。
    
    max_iter: 最大迭代次数(因为kmeans算法的实现需要迭代)
    
    tol: 容忍度,即kmeans运行准则收敛的条件
    
    precompute_distances:是否需要提前计算距离,这个参数会在空间和时间之间做权衡,如果是True 会把整个距离矩阵都放到内存中,auto 会默认在数据样本大于featurs*samples 的数量大于12e6 的时候False,False 时核心实现的方法是利用Cpython 来实现的
    
    verbose: 冗长模式(不太懂是啥意思,反正一般不去改默认值)
    
    random_state: 随机生成簇中心的状态条件。
    copy_x: 对是否修改数据的一个标记,如果True,即复制了就不会修改数据。bool 在scikit-learn 很多接口中都会有这个参数的,就是是否对输入数据继续copy 操作,以便不修改用户的输入数据。这个要理解Python 的内存机制才会比较清楚。
    
    n_jobs: 并行设置
    
    algorithm: kmeans的实现算法,有:’auto’, ‘full’, ‘elkan’, 其中 ‘full’表示用EM方式实现
    

     

     

     

    相关阅读:

    https://www.cnblogs.com/mfryf/p/9007530.html

  • 相关阅读:
    【BZOJ 3309】DZY Loves Math
    【51Nod 1239】欧拉函数之和
    【51Nod 1244】莫比乌斯函数之和
    莫比乌斯反演与杜教筛
    【BZOJ 3993】【SDOI 2015】星际战争
    【BZOJ 3876】【AHOI 2014】支线剧情
    【hihoCoder 1454】【hiho挑战赛25】【坑】Rikka with Tree II
    【BZOJ 1061】【Vijos 1825】【NOI 2008】志愿者招募
    【BZOJ 1016】【JSOI 2008】最小生成树计数
    【BZOJ 1005】【HNOI 2008】明明的烦恼
  • 原文地址:https://www.cnblogs.com/shanger/p/12068484.html
Copyright © 2011-2022 走看看