聚类算法

20190619

1聚类算法

#分类和聚类区别

分类是有标签的,聚类是没有的

2K-MEANS

#算法接受参数k,然后将实现输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;不同聚类中的对象相似度较小。

例:k=3 就将对象聚类成三个类别

#算法设计思想:以空间中k个点为中心进行聚类,对最靠近他们的对象归类。通过迭代地方法,逐次更新各聚类中心的值,直至得到最好的聚类结果

#1先从没有标签的元素集合A中随机取k个元素,作为k个子集各自的重心

#2分别计算剩下的元素到k个子集重心的距离(可以使欧氏距离),根据距离将这些元素分别划归到最近的子集

#3根据聚类结果,重新计算重心(重心的计算方法是计算子集中所有元素各个维度的算术平均数)

#4将集合A中全部元素按照新的重心然后再重新聚类

#5重复第四步,直到聚类结果不再发生变化

3例子

4Mini Batch K-Means

#使用场景,当有100万个数据要聚类成5个类,要计算的距离500万次;Mini Batch K-Means通过选取其中1万个数据进行聚类,能大大提高效率。

5K-Means算法局限性

#对k个初始质心的选择比较敏感,容易陷入局部最小值

#k值的选择是用户指定的,不同的k得到的结果会有挺大的不同

#存在局限性,对于非球状的数据分布就搞不定

#数据比较大的时候,收敛比较慢(解决:使用Mini Batch)

20190622

1K-Means算法优化1

使用多次的随机初始化,计算每一次建模得到的代价函数的值,选取代价函数最小结果作为聚类结果

       2K-MEANS肘部法则(K值的选择)

#K值的选择可以根据肘部法则或者通过经验来进行选取

3DBSCAN(基于密度的方法)

#ε领域:给定对象半径ε内的区域称为该对象的ε邻域

#核心对象:如果给定ε邻域内的样本点数大于等于Minpoints(设置的参数),则该对象为核心对象

#直接密度可达:给定一个对象集合D,如果p在q的ε邻域,且q是一个核心对象,则我们说对象p从q出发是直接密度可达的(directly density-reachable)

#密度可达:集合D,存在一个对象链p1,p2…pn ,p1=q,pn=p,pi+1是从pi关于ε和Minipoints密度可达的,则称点p是从q关于ε和Minpoints密度可达的

#密度相连:集合D存在点o,使得点p,q是从o关于ε和Minpoints密度可达的,那么点p、q是关于ε和Minpoints密度相连的

#DBSCAN算法思想

       #指定合适的ε和Minpoints

#计算所有的样本点,如果点p的ε邻域里有超过Minpoints个点,则创建一个以p为核心点的新簇。

#反复寻找这些核心点直接密度可达(之后可能是密度可达)的点,将其加入到相应的簇,对于核心点发生“密度相连”状况的簇,给予合并

#当没有新的点可以被添加到任何簇时,算法结束

#算法缺点:

       #当数据量增大时,要求较大的内存支持I/O消耗也很大

       #当空间聚类的密度不均匀、聚类间距差很大时,聚类质量较差

#DBSCAN和K-MEANS比较:

       #DBSCAN不需要输入聚类个数

       #聚类簇的形状没有要求

       #可以在小时输入过滤噪声的参数(ε和Minpoints)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值