• 无监督学习——KMeans使用


    在当我们获得的数据没有标签时,我们依然希望通过算法学习找到这些数据的特点,这时就用到了KMeans (k均值聚类)把数据点聚类成K个簇

    文档地址:

    http://scikit-learn.org/stable/modules/generated/sklearn.cluster.KMeans.html

     class sklearn.cluster.KMeans(n_clusters=8init=’k-means++’n_init=10max_iter=300tol=0.0001precompute_distances=’auto’verbose=0random_state=Nonecopy_x=Truen_jobs=1algorithm=’auto’)

    在以上所有的参数中其中有三个参数需要非常注意

    n_clusters=8  聚类的数量(簇的数量),默认是8.但这个我们一般都需要调整

    n_init=10      初始化的数量。 不同的初始化状况,聚心的位置不同,决定了算法聚类的结果。初始化10次,会得到10个聚类的集合。可以从中选择认为合适的聚类。在认为数据

          难以进行分配的时候,可以调大这个值。

    max_iter=300 算法迭代最大次数。每一次迭代都会重新 移动聚类中心 (聚心)的位置,和分配点,绝大部分情况下算法在达到最大值之前一般都停止了,

           所以这个大部分情况下不用调整,默认就行。

     1 from sklearn.cluster import KMeans
     2 import numpy as np
     3 X = np.array([[1, 2], [1, 4], [1, 0],
     4               [4, 2], [4, 4], [4, 0]])
     5 kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
     6 kmeans.labels_   #返回每个点的标签
      array([0, 0, 0, 1, 1, 1], dtype=int32)

    8 kmeans.predict([[0, 0], [4, 4]])
      array([0, 1], dtype=int32)
     9 kmeans.cluster_centers_  #返回聚心位置
       array([[ 1.,  2.],
             [ 4.,  2.]])
  • 相关阅读:
    Linux之Shell基本命令
    Linux之find命令
    C++11 auto类型说明符
    C++之类型转换
    C++中指针和引用的区别
    C++之引用
    [BUUCTF]PWN——[ZJCTF 2019]EasyHeap
    [BUUCTF]REVERSE——[WUSTCTF2020]level3
    [BUUCTF]REVERSE——[MRCTF2020]hello_world_go
    [BUUCTF]REVERSE——[GKCTF2020]BabyDriver
  • 原文地址:https://www.cnblogs.com/HL-blog/p/8904776.html
Copyright © 2020-2023  润新知