聚类算法K-Means算法和Mean Shift算法介绍及实现
Question:什么是聚类算法
1、聚类算法是一种非监督学习算法
2、聚类是在没有给定划分类别的情况下,根据数据相似度进行样本分组的一种方法
3、理论上,相同的组的数据之间有相同的属性或者是特征,不同组数据之间的属性或者特征1相差就会比较大
聚类算法分类:
1、划分方法(k-means)
划分方法通过优化一个划分标准的方式将数据集D组织成k个簇
2、层次方法(sahn)
层次方法在不同粒度水平上为数据集D创造层次聚类,其中每层特定的聚类结果由相应粒度水平的阈值决定
3、基于密度的方法(Mean Shift)
基于密度的方法从密度的角度构造簇类
4、基于网格的方法(STING)
基于网格的方法是将数据集D量化进数量有限的网格单元中,量化过程通常是多分辨率的
5、基于模型的方法(GMM)
假设存在一个数学模型能够对数据集D的性质进行描述,通过对数据和该模型的符合程度进行优化,可以得到优化的结果
K-Means算法
1、核心思想K-Means聚类算法也称K均值聚类算法,它采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度也越大。
2、算法实现
1)首先确定一个K值,即我们希望将数据集经过聚类得到K个集合
2)将数据集中随机选择K个数据点作为质心
3)对数据集中每个点,计算其与每一个质心的距离(如欧式距离),离哪个质心近,就划到哪个质心所属的集合
4)把所有数据归好集合后,一共有k个集合,然后重新计算每个集合的质心(数据均值)
5)如果新计算出来的质心和原来的质心的距离小于某一个设置的阈值,我们可以认为聚类已经达到期望的结果,算法终止
6)如果新质心和原质心距离变化很大,需要迭代3-5步骤
2、Mean Shift算法
聚类算法K-Means算法和Mean Shift算法介绍及实现的更多相关文章
- 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)
字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置. KMP 算法,全称是 Knuth-Mo ...
- WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析
参考 FileInputFormat类中split切分算法和host选择算法介绍 以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...
- 词性标注算法之CLAWS算法和VOLSUNGA算法
背景知识 词性标注:将句子中兼类词的词性根据上下文唯一地确定下来. 一.基于规则的词性标注方法 1.原理 利用事先制定好的规则对具有多个词性的词进行消歧,最后保留一个正确的词性. 2.步骤 ①对词性歧 ...
- (转)两种高效过滤敏感词算法--DFA算法和AC自动机算法
原文:https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十 ...
- SQL的循环嵌套算法:NLP算法和BNLP算法
MySQL的JOIN(二):JOIN原理 表连接算法 Nested Loop Join(NLJ)算法: 首先介绍一种基础算法:NLJ,嵌套循环算法.循环外层是驱动表,循坏内层是被驱动表.驱动表会驱动被 ...
- 最长不下降子序列的O(n^2)算法和O(nlogn)算法
一.简单的O(n^2)的算法 很容易想到用动态规划做.设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i&g ...
- 【页面置换算法】LRC算法和FIFS算法
算法介绍 FIFO:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰.该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针, ...
- 软件——机器学习与Python,聚类,K——means
K-means是一种聚类算法: 这里运用k-means进行31个城市的分类 城市的数据保存在city.txt文件中,内容如下: BJ,2959.19,730.79,749.41,513.34,467. ...
- 最小路径算法(Dijkstra算法和Floyd算法)
1.单源点的最短路径问题:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径. 我们用一个例子来具体说明迪杰斯特拉算法的流程. 定义源点为 0,dist[i]为源点 0 到顶点 i 的最短路径 ...
随机推荐
- 获取InputStream对象的方法
获取InputStream对象的方法 getResourceAsStream(String path) 默认path路径位于Class所在Module的src目录下 . InputStream is ...
- Mac SSH工具-Termius
全平台,功能强大 SSH连接.SFTP连接.端口转发.多设备同步 官方网站
- java+selenium使用JS、键盘滑动滚动条
本篇文章介绍如何使用JS和键盘对象对页面进行滑动滚动条-------------主要针对java做自动化测试的同学 一:使用键盘对象操作滚动条 //导包 import org.openqa.selen ...
- 【java框架】SpringBoot(7) -- SpringBoot整合MyBatis
1.整合MyBatis操作 前面一篇提到了SpringBoot整合基础的数据源JDBC.Druid操作,实际项目中更常用的还是MyBatis框架,而SpringBoot整合MyBatis进行CRUD也 ...
- 【Redis破障之路】四:Jedis基本使用
在前面我们已经学习了Redis命令行客户端redis-cli的使用,接下来我们了解一下Redis基于Java编程语言的客户端. 在Java语言体系下,有三个常用的Redis客户端Jedis.Redis ...
- [拒绝Visual Studio] 团队博客目录
零.项目展示 Alpha版本项目展示 Beta版本项目展示 一.Scrum Meeting 会议记录 1. Alpha阶段 总体时间安排(粗略): 全部原始会议记录请移步 Google Docs ,这 ...
- [bug] Maven:No valid Maven installation found.maven
原因 从别处复制来的项目,maven路径没有改过来 参考 https://blog.csdn.net/qq_40846086/article/details/81252736
- cent 7 识别exfat
cent 7 识别exfat install fuse-exfat exfat-utils
- 【山外笔记-工具框架】SVN版本控制系统
[山外笔记-框架工具]SVN版本控制系统 学习资料: 1.本文打印版下载地址:[山外笔记-框架工具笔记]SVN版本控制工具-打印版.pdf 2.SVN和TortoiseSVN在线中文文档:http:/ ...
- 图解CSS布局(一)- Grid布局
图解CSS布局(一)- Grid布局 先上图 简介 Grid 布局是将容器划分成"行"和"列",产生单元格,然后指定"项目所在"的单元格,可 ...