导入类库

 from sklearn.cluster import KMeans
from sklearn.datasets import make_blobs
import numpy as np
import matplotlib.pyplot as plt

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

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

代码

 plt.figure(figsize=(6, 3))
n_samples = 1500
random_state = 170
'''
make_blobs聚类数据生成器:用来生成聚类算法的测试数据
n_samples:待生成的样本的总数
n_features:每个样本的特征数
centers:类别数
cluster_std:每个类别的方差,放在列表中
'''
X, y = make_blobs(n_samples=n_samples, random_state=random_state)
'''
KMeans是结果受初始值影响的局部最优的迭代算法
n_clusters:K值,类别数
max_iter:最大迭代次数,凸数据集可忽略该值,非凸数据集可能很难收敛,可指定最大迭代次数让算法可以及时推出循环
n_init:用不同的初始化质心运行算法的次数,默认是10,K值较大时,可适当增大该值
init:初始值选择的方式,默认为k-means++
algorithm:auto、full、elkan;auto自动选择,数据值稀疏时选择full,数据稠密时选择elkan
'''
y_pred = KMeans(n_clusters=2, random_state=random_state).fit_predict(X) # print(X[:, 0])
# print(y)
# for i in y_pred:
# print(i) # 根据颜色画出散点图
plt.subplot(121)
plt.scatter(X[:, 0], X[:, 1], c=y_pred)
plt.subplot(122)
plt.scatter(X[:, 0], X[:, 1], c=y)
plt.show()

机器学习——KMeans的更多相关文章

  1. 视觉机器学习------K-means算法

    K-means(K均值)是基于数据划分的无监督聚类算法. 一.基本原理       聚类算法可以理解为无监督的分类方法,即样本集预先不知所属类别或标签,需要根据样本之间的距离或相似程度自动进行分类.聚 ...

  2. 机器学习——KMeans聚类,KMeans原理,参数详解

    0.聚类 聚类就是对大量的未知标注的数据集,按数据的内在相似性将数据集划分为多个类别,使类别内的数据相似度较大而类别间的数据相似度较小,聚类属于无监督的学习方法. 1.内在相似性的度量 聚类是根据数据 ...

  3. 机器学习-kmeans的使用

    import numpy as np import pandas as pd import matplotlib from matplotlib import pyplot as plt %matpl ...

  4. 机器学习--k-means聚类原理

    “物以类聚,人以群分”, 所谓聚类就是将相似的元素分到一"类"(有时也被称为"簇"或"集合"), 簇内元素相似程度高, 簇间元素相似程度低. ...

  5. Python之机器学习K-means算法实现

    一.前言: 今天在宿舍弄了一个下午的代码,总算还好,把这个东西算是熟悉了,还不算是力竭,只算是知道了怎么回事.今天就给大家分享一下我的代码.代码可以运行,运行的Python环境是Python3.6以上 ...

  6. 机器学习K-Means

    1.K-Means聚类算法属于无监督学习算法. 2.原理:先随机选择K个质心,根据样本到质心的距离将样本分配到最近的簇中,然后根据簇中的样本更新质心,再次计算距离重新分配簇,直到质心不再发生变化,迭代 ...

  7. 09-赵志勇机器学习-k-means

    (草稿) k-means: 1. 随机选取n个中心 2. 计算每个点到各个中心的距离 3. 距离小于阈值的归成一类. 4. 计算新类的质心,作为下一次循环的n个中心 5. 直到新类的质心和对应本次循环 ...

  8. 机器学习-K-means聚类及算法实现(基于R语言)

    K-means聚类 将n个观测点,按一定标准(数据点的相似度),划归到k个聚类(用户划分.产品类别划分等)中. 重要概念:质心 K-means聚类要求的变量是数值变量,方便计算距离. 算法实现 R语言 ...

  9. 机器学习 - k-means聚类

    k-means简介 k-means是无监督学习下的一种聚类算法,简单说就是不需要数据标签,仅靠特征值就可以将数据分为指定的几类.k-means算法的核心就是通过计算每个数据点与k个质心(或重心)之间的 ...

随机推荐

  1. input下拉带输入框

    html5 自带的datalist实现 html代码: <input list="students"> <datalist id="students&q ...

  2. python核心编程(多线程编程)

    1.全局解释器锁 2.threading模块 thread类

  3. Springboot项目打包后的页面丢失问题(thymeleaf报错)

    遇到的问题目前找到两种: 返回视图路径以/开头,例如 /test/hello 在thymeleaf页面中,引入的页面以/开头,例如:<footer th:replace="/index ...

  4. python时间模块小结

    1.datetime 模块 为日期和时间处理同时提供了简单和复杂的方法.支持日期和时间算法的同时,实现的重点放在更有效的处理和格式化输出.该模块还支持时区处理: 简单例子: from datetime ...

  5. 【转】一文掌握 Linux 性能分析之 I/O 篇

    [转]一文掌握 Linux 性能分析之 I/O 篇 这是 Linux 性能分析系列的第三篇,前两篇分别讲了 CPU 和 内存,本篇来看 IO. IO 和 存储密切相关,存储可以概括为磁盘,内存,缓存, ...

  6. eclipse新建工作空间后的常用设置

    1.设置字体 一般主要设置下面三个地方(其他可以按需进行设置): Window->Preferences->(可以直接搜索font)General -> Appearance -&g ...

  7. pycharm安装package时报错

    在pycharm pip 包时,提示报错:module 'pip' has no attribute 'main' 原因:由于我的是pip 18.1 版本里没有main() 解决方法: 如不降级 pi ...

  8. 【算法】BILSTM+CRF中的条件随机场

    BILSTM+CRF中的条件随机场 tensorflow中crf关键的两个函数是训练函数tf.contrib.crf.crf_log_likelihood和解码函数tf.contrib.crf.vit ...

  9. powermock单元测试小结

    最近时不时的需要单元测试来写覆盖率.简单总结一下日常心得: 1.首先指明需要测试的类:@PrepareForTest({ RewardGoldServiceImpl.class }) 2.其次在测试类 ...

  10. webpack 学习小结

    webpack 是一个模块打包工具(前提要安装 node使用npm来安装webpack) 1.安装webpack,webpack-cli , webpack-dev-server //全局安装 npm ...