导入类库

 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. 好的java资源地址

    前人栽树,后人乘凉.想当初自己初学Java时为了解决一个很基础的问题,好多的朋友热心的回复我,帮我分析错误.现在为了方便那些Java新手,特给出自己感觉比较好的学习网站和论坛,希望对朋友们能有点帮助. ...

  2. centos 7.2 下 nginx 1.14.1 安装部署

    Nginx1.14.1安装部署 1.环境: 所有源码在跳板机kx的/web/soft下 2.安装依赖: [root@bogon src]# yum install -y libxml2 openssl ...

  3. jquery实现点击页面空白处,弹框消失

    要求:点击1,弹框2显示,点击空白处,弹框2消失 $("#AddDevices"):按钮1 $(".addDeviceBox")弹框2 //点击添加设备弹框 $ ...

  4. Python爬虫从入门到进阶(4)之xpath的使用

    官网地址:https://lxml.de/xpathxslt.html 导入: from lxml import etree lxml.tree 支持 ElementTree 和 Element 上的 ...

  5. #20175204 张湲祯 2018-2019-2《Java程序设计》第五周学习总结

    20175204 张湲祯 2018-2019-2<Java程序设计>第五周学习总结 教材学习内容总结 -第六章接口与实现要点: -接口: 1.使用关键字interface定义接口. 2.接 ...

  6. insert主键返回 selectKey使用

    有时候新增一条数据,知道新增成功即可,但是有时候,需要这条新增数据的主键,以便逻辑使用,再将其查询出来明显不符合要求,效率也变低了. 这时候,通过一些设置,mybatis可以将insert的数据的主键 ...

  7. Beta 冲刺(5/7)

    目录 摘要 团队部分 个人部分 摘要 队名:小白吃 组长博客:hjj 作业博客:beta冲刺(5/7) 团队部分 后敬甲(组长) 过去两天完成了哪些任务 ppt制作中 数据集标注 接下来的计划 制作p ...

  8. 简单python接口测试编写和django开发环境的搭建

    安装django环境 启动django D:\python\imooc>python manage.py runserver 0.0.0.0:8000 命令行下django新建app D:\py ...

  9. dataguard丢失归档日志处理

    检查alert日志发现报错如下 Wed Mar 27 15:40:30 2019Managed Standby Recovery not using Real Time ApplyParallel M ...

  10. C# 常用类型校验Validate

    using System.Text; using System.Text.RegularExpressions; namespace 落地页测试代码 { public class Validate { ...