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算法介绍及实现的更多相关文章

  1. 字符串查找算法总结(暴力匹配、KMP 算法、Boyer-Moore 算法和 Sunday 算法)

    字符串匹配是字符串的一种基本操作:给定一个长度为 M 的文本和一个长度为 N 的模式串,在文本中找到一个和该模式相符的子字符串,并返回该字字符串在文本中的位置. KMP 算法,全称是 Knuth-Mo ...

  2. WordCount作业提交到FileInputFormat类中split切分算法和host选择算法过程源码分析

    参考 FileInputFormat类中split切分算法和host选择算法介绍  以及 Hadoop2.6.0的FileInputFormat的任务切分原理分析(即如何控制FileInputForm ...

  3. 词性标注算法之CLAWS算法和VOLSUNGA算法

    背景知识 词性标注:将句子中兼类词的词性根据上下文唯一地确定下来. 一.基于规则的词性标注方法 1.原理 利用事先制定好的规则对具有多个词性的词进行消歧,最后保留一个正确的词性. 2.步骤 ①对词性歧 ...

  4. (转)两种高效过滤敏感词算法--DFA算法和AC自动机算法

    原文:https://blog.csdn.net/u013421629/article/details/83178970 一道bat面试题:快速替换10亿条标题中的5万个敏感词,有哪些解决思路? 有十 ...

  5. SQL的循环嵌套算法:NLP算法和BNLP算法

    MySQL的JOIN(二):JOIN原理 表连接算法 Nested Loop Join(NLJ)算法: 首先介绍一种基础算法:NLJ,嵌套循环算法.循环外层是驱动表,循坏内层是被驱动表.驱动表会驱动被 ...

  6. 最长不下降子序列的O(n^2)算法和O(nlogn)算法

    一.简单的O(n^2)的算法 很容易想到用动态规划做.设lis[]用于保存第1~i元素元素中最长不下降序列的长度,则lis[i]=max(lis[j])+1,且num[i]>num[j],i&g ...

  7. 【页面置换算法】LRC算法和FIFS算法

    算法介绍 FIFO:该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰.该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针, ...

  8. 软件——机器学习与Python,聚类,K——means

    K-means是一种聚类算法: 这里运用k-means进行31个城市的分类 城市的数据保存在city.txt文件中,内容如下: BJ,2959.19,730.79,749.41,513.34,467. ...

  9. 最小路径算法(Dijkstra算法和Floyd算法)

    1.单源点的最短路径问题:给定带权有向图G和源点v,求从v到G中其余各顶点的最短路径. 我们用一个例子来具体说明迪杰斯特拉算法的流程. 定义源点为 0,dist[i]为源点 0 到顶点 i 的最短路径 ...

随机推荐

  1. [C#] 使用 NAudio 实现音频可视化

    预览: 捕捉声卡输出: 实现音频可视化, 第一步就是获得音频采样, 这里我们选择使用计算机正在播放的音频作为采样源进行处理: NAudio 中, 可以借助 WasapiLoopbackCapture ...

  2. Docker配置阿里云镜像加速器及开启远程连接

    适用于CentOS-7版本 mkdir /etc/docker vim /etc/docker/deamon.json 添加以下内容配置镜像 { "registry-mirrors" ...

  3. spring boot pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  4. 【死磕JVM】用Arthas排查JVM内存 真爽!我从小用到大

    Arthas是啥 当我们系统遇到JVM或者内存溢出等问题的时候,如何对我们的程序进行有效的监控和排查,就发现了几个比较常用的工具,比如JDK自带的 jconsole.jvisualvm还有一个最好用的 ...

  5. Redis 集群伸缩原理

    Redis 节点分别维护自己负责的槽和对应的数据.伸缩原理:Redis 槽和对应数据在不同节点之间移动 环境:CentOS7 搭建 Redis 集群 一.集群扩容 1. 手动扩容 (1) 准备节点 9 ...

  6. Java 进行时间处理

    Java 进行时间处理 一.Calendar (1).Calender介绍 Calendar的中文翻译是日历,实际上,在历史上有着许多种计时的方法.所以为了计时的统一,必需指定一个日历的选择.那现在最 ...

  7. 使用CSS样式的三种方法

    一.内联样式 内联样式通过style属性来设置,属性值可以任意的CSS样式. 1 <!DOCTYPE html> 2 <html lang="en"> 3 ...

  8. [bug] idea 导入多个 maven 项目

    参考 https://www.cnblogs.com/qinxu/p/9649267.html

  9. head元素的内容

    一.head元素 head元素的内容用来向浏览器提供一些文档信息,此外还可以包含js脚本和css层叠样式单.head中一般包含title.meta.css.js等内容,head中元素的内容在浏览器中不 ...

  10. too many open files问题详解

    too many open files问题详解 feelgood3000关注0人评论2616人阅读2018-08-23 09:47:52   一  单个进程打开文件句柄数过多 ulimit中的nofi ...