python实现k均值算法_python实现kMeans算法
聚类是一种无监督的学习,将相似的对象放到同一簇中,有点像是全自动分类,簇内的对象越相似,簇间的对象差别越大,则聚类效果越好。
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算法相关推荐
- 基于Python的k均值聚类不同规格的商品名
基于Python的k均值聚类不同规格的商品名 前言 聚类的目标是使得同一簇内的点之间的距离较短,而不同簇中点之间的距离较大.以此来区分不同的群体. 本篇讲述使用k均值算法对超市购物记录集中的商品名称进 ...
- 机器学习十大算法之一:K-means算法
K-means算法 (无监督算法,聚类算法) 1-1 基本流程 一.概念: 二.主要特点: 三.算法流程: kmeans作用:去除奇异值 小结: 1-2 算法效果衡量标准 一.K值确定: 二.轮廓系数 ...
- 标准K-means算法的缺陷、K-mean++初始化算法、初始化算法步骤、Kmeans++算法实现
标准K-means算法的缺陷.K-mean++初始化算法.初始化算法步骤.Kmeans++算法实现 目录 标准K-means算法的缺陷.K-mean&
- 聚类算法当中的K-means算法如何去做天猫淘宝的推广任务
5 人赞同了该回答 figure data-size="normal">data-size="normal"> 这个入口是全网人气新品池,我们今天所 ...
- python文本聚类分析_python机器学习kmeans算法——对文本进行聚类分析
#!/usr/bin/env python#-*- coding: utf-8 -*-#@File : kmeans.py#@Author: 田智凯#@Date : 2020/3/19#@Desc : ...
- python实现k均值聚类(kMeans)基于numpy
1.k均值聚类简介 k均值聚类是一种无监督学习方法,当数据量小,数据维度低时,具有简单.快速.方便的优点,但是当数据量较大时,其速度较慢,也容易陷入局部最优. 2. 步骤 和以前一样,kMeans聚类 ...
- 机器学习之聚类算法:K均值聚类(一、算法原理)
目录 一.Kmeans 二.Kmeans的流程 三.距离度量方式 3.1.闵可夫斯基距离 3.2.马哈拉诺比斯距离 3.3.其他 四.Kmeans聚类实例 五.Kmeans存在的问题 5.1.初始点的 ...
- 二分k均值 matlab,Matlab函数kmeans:K-均值聚类
转自:http://hi.baidu.com/lewutian/item/35dd29efec13d0f5e1a5d418K-means聚类算法采用的是将N*P的矩阵X划分为K个类,使得类内对象之间的 ...
- python实现排列组合公式算法_Python实现卡尔曼滤波算法之贝叶斯滤波
Python实现卡尔曼滤波算法之贝叶斯滤波 作者:yangjian 卡尔曼滤波器属于贝叶斯滤波器的一种特例,本文主要讲解贝叶斯滤波原理及其算法的python实现. 先来看下贝叶斯公式 贝叶斯公式 :后 ...
最新文章
- IT人士运动方式选择建议
- 窗口分析函数_1_生成不重复排名序号
- wps流程图怎么不能添加文字_windows不能访问共享文件夹,不能添加共享打印机时,怎么解决呢...
- Java中static final用法小结
- C#andSql获取当前日期格式
- 代码高亮与美化的工具
- 设计网站中的精品,你可能需要它--第二期
- tcp 三次握手和四次断连深入分析:连接状态和socket API的关系----BAT 李运华
- 梯形图c语言转换软件,梯形图转化为HEX软件
- ​【Flutter小记7】​Mac M1 使用 pod install编译常见两种错误解决方案(CocoaPod Error | LoadError)
- About Contest and Trainning
- nnU-Net论文笔记
- 蓝牙MESH网关_相对于米家多模网关,其实我更爱的是光照传感器
- 计算机提示无法识别usb,小编教你电脑出现无法识别usb设备怎么办
- docker安装calibre打造数字图书馆: 在线管理pdf等电子图书
- 关于ebay平台接口(php)对接示例
- 最牛黑科技!一度电能跑1230公里的电动车
- 【OS Pintos】Project1 项目要求说明 | 进程中止信息 | 参数传递 | 用户内存访问 | 有关项目实现的建议
- C++ 快速学习(一)
- 安卓日程表毕业设计源码
热门文章
- 手机全部零件名称图片_【直播课】一条记录中显示多张图片
- 自定义hibernate validation注解
- linux 那些事儿之我是 u 盘,《Linux那些事儿之我是USB》.PDF
- fedora 安装Linux源码,如何在 Fedora 29/30 上安装 VS Code
- ubuntu没有指纹登录_ubuntu安装指纹识别驱动
- 浏览器获取设备信息_一条命令获取 IE 浏览器保存网站的账号和密码信息
- UE4 HTC VIVE - 番外篇 - 局域网联机(一)
- snprintf函数用法
- js 获取鼠标在画布的位置_云凤蝶如何打造媲美 sketch 的自由画布
- Linux 编译 libc log,在Android的源码中添加LOG