zoukankan      html  css  js  c++  java
  • 非监督学习之k-means

    K-means通常被称为劳埃德算法,这在数据聚类中是最经典的,也是相对容易理解的模型。算法执行的过程分为4个阶段:

    1、随机设置K个特征空间内的点作为初始的聚类中心

    2、对于其他每个点计算到K个中心的距离,未知的点选择最近的一个聚类中心点作为标记类别

    3、接着对着标记的聚类中心之后,重新计算出每个聚类的新中心点(平均值)

    4、如果计算得出的新中心点与原中心点一样,那么结束,否则重新进行第二步过程

     

    sklearn.cluster.KMeans

     

    class sklearn.cluster.KMeans(n_clusters=8, init='k-means++', n_init=10, max_iter=300, tol=0.0001, precompute_distances='auto', verbose=0, random_state=None, copy_x=True, n_jobs=1, algorithm='auto')
    """
    :param n_clusters:要形成的聚类数以及生成的质心数

     

    :param init:初始化方法,默认为'k-means ++',以智能方式选择k-均值聚类的初始聚类中心,以加速收敛;random,从初始质心数据中随机选择k个观察值(行

     

    :param n_init:int,默认值:10使用不同质心种子运行k-means算法的时间。最终结果将是n_init连续运行在惯性方面的最佳输出。

     

    :param n_jobs:int用于计算的作业数量。这可以通过并行计算每个运行的n_init。如果-1使用所有CPU。如果给出1,则不使用任何并行计算代码,这对调试很有用。对于-1以下的n_jobs,使用(n_cpus + 1 + n_jobs)。因此,对于n_jobs = -2,所有CPU都使用一个。

     

    :param random_state:随机数种子,默认为全局numpy随机数生成器
    """

     

    from sklearn.cluster import KMeans
    import numpy as np
    X = np.array([[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]])
    kmeans = KMeans(n_clusters=2, random_state=0)

    方法

    fit(X,y=None)

    使用X作为训练数据拟合模型

    kmeans.fit(X)
    predict(X)

    预测新的数据所在的类别

    kmeans.predict([[0, 0], [4, 4]])
    array([0, 1], dtype=int32)

    属性

    clustercenters

    集群中心的点坐标

    kmeans.cluster_centers_
    array([[ 1., 2.],
    [ 4., 2.]])
    labels_

    每个点的类别

    kmeans.labels_
    k-means ++

     

  • 相关阅读:
    高精度加法
    高精度计算(一)
    算法总结
    崛起之路
    2015浙江高考满分作文汇总(9篇)
    努力
    NOIP2015总结
    P3197 [HNOI2008]越狱[组合数学]
    【原创】SPFA判负环
    P1351 联合权值[鬼畜解法]
  • 原文地址:https://www.cnblogs.com/lax-17xu/p/11804914.html
Copyright © 2011-2022 走看看