zoukankan      html  css  js  c++  java
  • 机器学习——KMeans

    导入类库

    1 from sklearn.cluster import KMeans
    2 from sklearn.datasets import make_blobs
    3 import numpy as np
    4 import matplotlib.pyplot as plt

      KMeans算法的过程:(假如有两类)

    1. 随机选择两个点作为聚类的中心
    2. 计算所有点距离两个中心的距离,选择距离较近的点作为类别。(例如:距离蓝点近,类别是蓝色)
    3. 计算已经分好类的各组数据的平均值,使用各组数据的平均值中心作为新的中心
    4. 以新的中心为依据跳转至第2步
    5. 直到收敛(两次迭代的数值没有明显的变化:新中心点距离上一次中心点的距离小于某个阈值,例如:0.03)

    代码

     1 plt.figure(figsize=(6, 3))
     2 n_samples = 1500
     3 random_state = 170
     4 '''
     5 make_blobs聚类数据生成器:用来生成聚类算法的测试数据
     6 n_samples:待生成的样本的总数
     7 n_features:每个样本的特征数
     8 centers:类别数
     9 cluster_std:每个类别的方差,放在列表中
    10 '''
    11 X, y = make_blobs(n_samples=n_samples, random_state=random_state)
    12 '''
    13 KMeans是结果受初始值影响的局部最优的迭代算法
    14 n_clusters:K值,类别数
    15 max_iter:最大迭代次数,凸数据集可忽略该值,非凸数据集可能很难收敛,可指定最大迭代次数让算法可以及时推出循环
    16 n_init:用不同的初始化质心运行算法的次数,默认是10,K值较大时,可适当增大该值
    17 init:初始值选择的方式,默认为k-means++
    18 algorithm:auto、full、elkan;auto自动选择,数据值稀疏时选择full,数据稠密时选择elkan
    19 '''
    20 y_pred = KMeans(n_clusters=2, random_state=random_state).fit_predict(X)
    21 
    22 # print(X[:, 0])
    23 # print(y)
    24 # for i in y_pred:
    25 #     print(i)
    26 
    27 # 根据颜色画出散点图
    28 plt.subplot(121)
    29 plt.scatter(X[:, 0], X[:, 1], c=y_pred)
    30 plt.subplot(122)
    31 plt.scatter(X[:, 0], X[:, 1], c=y)
    32 plt.show()
  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/siplips/p/9806489.html
Copyright © 2011-2022 走看看