聚类是一种无监督的学习,将相似的对象放到同一簇中,有点像是全自动分类,簇内的对象越相似,簇间的对象差别越大,则聚类效果越好。

1、k均值聚类算法

k均值聚类将数据分为k个簇,每个簇通过其质心,即簇中所有点的中心来描述。首先随机确定k个初始点作为质心,然后将数据集分配到距离最近的簇中。然后将每个簇的质心更新为所有数据集的平均值。然后再进行第二次划分数据集,直到聚类结果不再变化为止。

伪代码为

随机创建k个簇质心

当任意一个点的簇分配发生改变时:

对数据集中的每个数据点:

对每个质心:

计算数据集到质心的距离

将数据集分配到最近距离质心对应的簇

对每一个簇,计算簇中所有点的均值并将均值作为质心

2、二分k均值算法

K均值算法可能会收敛到局部最小值,而非全局最小。一种用于度量聚类效果的指标为误差平方和(SSE)。因为取了平方,更加重视原理中心的点。为了克服k均值算法可能会收敛到局部最小值的问题,有人提出来二分k均值算法。

首先将所有点作为一个簇,然后将该簇一分为二,然后选择所有簇中对其划分能够最大程度减低SSE的值的簇,直到满足指定簇数为止。

伪代码

将所有点看成一个簇

计算SSE

while 当簇数目小于k时:

for 每一个簇:

计算总误差

在给定的簇上进行k均值聚类(k=2)

计算将该簇一分为二的总误差

选择使得误差最小的那个簇进行划分操作

python实现

代码及数据集下载:K-means

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:http://blog.csdn.net/weixin_37895339/article/details/78634144

python实现k均值算法_python实现kMeans算法相关推荐

  1. 基于Python的k均值聚类不同规格的商品名

    基于Python的k均值聚类不同规格的商品名 前言 聚类的目标是使得同一簇内的点之间的距离较短,而不同簇中点之间的距离较大.以此来区分不同的群体. 本篇讲述使用k均值算法对超市购物记录集中的商品名称进 ...

  2. 机器学习十大算法之一:K-means算法

    K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: 二.主要特点: 三.算法流程: kmeans作用:去除奇异值 小结: 1-2 算法效果衡量标准 一.K值确定: 二.轮廓系数 ...

  3. 标准K-means算法的缺陷、K-mean++初始化算法、初始化算法步骤、Kmeans++算法实现

    标准K-means算法的缺陷.K-mean++初始化算法.初始化算法步骤.Kmeans++算法实现 目录 标准K-means算法的缺陷.K-mean&

  4. 聚类算法当中的K-means算法如何去做天猫淘宝的推广任务

    5 人赞同了该回答 figure data-size="normal">data-size="normal"> 这个入口是全网人气新品池,我们今天所 ...

  5. python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析

    #!/usr/bin/env python#-*- coding: utf-8 -*-#@File : kmeans.py#@Author: 田智凯#@Date : 2020/3/19#@Desc : ...

  6. python实现k均值聚类(kMeans)基于numpy

    1.k均值聚类简介 k均值聚类是一种无监督学习方法,当数据量小,数据维度低时,具有简单.快速.方便的优点,但是当数据量较大时,其速度较慢,也容易陷入局部最优. 2. 步骤 和以前一样,kMeans聚类 ...

  7. 机器学习之聚类算法:K均值聚类(一、算法原理)

    目录 一.Kmeans 二.Kmeans的流程 三.距离度量方式 3.1.闵可夫斯基距离 3.2.马哈拉诺比斯距离 3.3.其他 四.Kmeans聚类实例 五.Kmeans存在的问题 5.1.初始点的 ...

  8. 二分k均值 matlab,Matlab函数kmeans:K-均值聚类

    转自:http://hi.baidu.com/lewutian/item/35dd29efec13d0f5e1a5d418K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的 ...

  9. python实现排列组合公式算法_Python实现卡尔曼滤波算法之贝叶斯滤波

    Python实现卡尔曼滤波算法之贝叶斯滤波 作者:yangjian 卡尔曼滤波器属于贝叶斯滤波器的一种特例,本文主要讲解贝叶斯滤波原理及其算法的python实现. 先来看下贝叶斯公式 贝叶斯公式 :后 ...

最新文章

  1. IT人士运动方式选择建议
  2. 窗口分析函数_1_生成不重复排名序号
  3. wps流程图怎么不能添加文字_windows不能访问共享文件夹,不能添加共享打印机时,怎么解决呢...
  4. Java中static final用法小结
  5. C#andSql获取当前日期格式
  6. 代码高亮与美化的工具
  7. 设计网站中的精品,你可能需要它--第二期
  8. tcp 三次握手和四次断连深入分析:连接状态和socket API的关系----BAT 李运华
  9. 梯形图c语言转换软件,梯形图转化为HEX软件
  10. ​【Flutter小记7】​Mac M1 使用 pod install编译常见两种错误解决方案(CocoaPod Error | LoadError)
  11. About Contest and Trainning
  12. nnU-Net论文笔记
  13. 蓝牙MESH网关_相对于米家多模网关,其实我更爱的是光照传感器
  14. 计算机提示无法识别usb,小编教你电脑出现无法识别usb设备怎么办
  15. docker安装calibre打造数字图书馆: 在线管理pdf等电子图书
  16. 关于ebay平台接口(php)对接示例
  17. 最牛黑科技!一度电能跑1230公里的电动车
  18. 【OS Pintos】Project1 项目要求说明 | 进程中止信息 | 参数传递 | 用户内存访问 | 有关项目实现的建议
  19. C++ 快速学习(一)
  20. 安卓日程表毕业设计源码

热门文章

  1. 手机全部零件名称图片_【直播课】一条记录中显示多张图片
  2. 自定义hibernate validation注解
  3. linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
  4. fedora 安装Linux源码,如何在 Fedora 29/30 上安装 VS Code
  5. ubuntu没有指纹登录_ubuntu安装指纹识别驱动
  6. 浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息
  7. UE4 HTC VIVE - 番外篇 - 局域网联机(一)
  8. snprintf函数用法
  9. js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
  10. Linux 编译 libc log,在Android的源码中添加LOG