聚类算法讲解精品PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
步骤一:取得k个初始初始中心点
Kmeans算法详解(2)
步骤二:把每个点划分进相应的簇
Min of three due to the EuclidDistance
Kmeans算法详解(3)
步骤三:重新计算中心点
Min of three due to the EuclidDistance
Kmeans算法详解(4)
3
聚类手段:传统聚类算法 ①划分法 ②层次方法 ③基于密 度方法 ④基于网络方法 ⑤基于模型方法
什么是Kmeans算法?
Q1:K是什么?A1:k是聚类算法当中类的个数。 Q2:means是什么?A2:means是均值算法。
Summary:Kmeans是用均值算法把数 据分成K个类的算法!
Kmeans算法详解(1)
带canopy预处理的kmeans 算法
(1)将数据集向量化得到一个list后放 入内存,选择两个距离阈值:T1和T2。 (2)从list中任取一点P,用低计算成 本方法快速计算点P与所有Canopy之 间的距离(如果当前不存在Canopy, 则把点P作为一个Canopy),如果点P 与某个Canopy距离在T1以内,则将点 P加入到这个Canopy; (3)如果点P曾经与某个Canopy的距 离在T2以内,则需要把点P从list中删 除,这一步是认为点P此时与这个 Canopy已经够近了,因此它不可以再 做其它Canopy的中心了; (4)重复步骤2、3,直到list为空结 束
我们主要研究的三个方面因素。
初始中心点的划分
讨论初始中心点意义何在?下面的例子一目了然吧?
初始中心点
收敛后
你
懂
的
…
如何衡量Kmeans算法的精确度 ?
在进一步阐述初始中心点选择 之前,我们应该先确定度量 kmeans的算法精确度的方法。 一种度量聚类效果的标准是: SSE(Sum of Square Error, 误差平方和) SSE越小表示数据点越接近于 它们的质心,聚类效果也就越 好。因为对误差取了平方所以 更重视那些远离中心的点。 一种可以肯定降低SSE的方法 是增加簇的个数。但这违背了 聚类的目标。因为聚类是在保 持目标簇不变的情况下提高聚 类的质量。 现在思路明了了我们首先以缩 小SSE为目标改进算法。
决定性因素
Input & centroids
①数据的采集和抽象 ②初始的中心选择
Selected k
① k值的选定
MaxIterations & Convergence
①最大迭代次数 ②收敛值
factors?
Meassures
①度量距离的手段
主要讨论
初始中 心点
输入的数 据及K值 的选择
距离度 量
步骤四:迭代计算中心点
Kmeans算法详解(5)
步骤五:收敛
Kmeans算法流程
1.从数据中随机抽取k个点作为初始聚类 的中心,由这个中心代表各个聚类 2.计算数据中所有的点到这k个点的距离, 将点归到离其最近的聚类里 3.调整聚类中心,即将聚类的中心移动到 聚类的几何中心(即平均值)处,也就是 k-means中的mean的含义 4.重复第2步直到聚类的中心不再移动, 此时算法收敛 最后kmeans算法时间、空间复杂度是: 时间复杂度:上限为O(tKmn),下限为Ω (Kmn)其中,t为迭代次数,K为簇的数 目,m为记录数,n为维数 空间复杂度:O((m+K)n),其中,K为簇 的数目,m为记录数,n为维数
从前面的讲解可以看到二分 kmeans算法的思想有点类 似于贪心思想。但是我们会 发现贪心的过程中有不确定 的因素比如:二分一个聚类 时选取的两个中间点是随机 的,这会对我们的策略造成 影响。那么如此一来二分 kmeans算法会不会达到全 局最优解呢?答案是:会! 尽管你可能惊诧于下面的说 法,但全局最小值的定义却 是:可能的最好结果。
带canopy预处理的kmeans 算法的优点
带canopy预处理的kmeans 算法的新挑战
Canopy预处理这么好, 我们以后就用它好了!
我看不见得,它虽然解决 kmeans当中的一些问题, 但其自身也引进了新的问题: t1、t2的选取。
一组实验结果
一组不好的初始点产生的 Kmeans算法结果
二分kmeans产生的结果
要强调的是尽管只是这一组实验不得以得出二分kmeans的 优越性,但是经过大量实验得出的结论却是在大多数情况下 二分kmeans确实优于朴素的kmeans算法。
全局最小值
二分kmeans真 的能使SSE达 到全局最小值 吗?
主要内容:
聚类算法简介 KmeansBaidu Nhomakorabea法详解 Kmeans算法的缺陷及若干改进 Kmeans的单机实现与分布式实现策略
Kmeans实战
聚类算法简介
1
聚类的目标:将一组向量分成若干组,组内数据是相似的, 而组间数据是有较明显差异。
2 与分类区别:分类与聚类最大的区别在于分类的目标事先已 知,聚类也被称为无监督机器学习
计算总误差 在给定的簇上面进行K均值聚类(K=2) 计算将该簇一分为二后的总误差 选择使得误差最小的那个簇进行划分操作
二分Kmeans算法的效果
既然是改进算法就要体现改 进算法的优越性。为此控制 变量,在相同的实验环境下, ①取相同的k值取。 ②选取相同的的距离度量标 准(欧氏距离)
③在相同的数据集下进行测 试。
K值的选择以及坏点的剔除
讨论k值、剔除坏点的意义何在?下面以一个例 子来说明k值的重要性。
为什么会出错?
究竟哪里错 了!!!
上面的例子当中出错的原因 很明显。凭直觉我们很容易 知道不可能有这样的天气— —它的气温是100℃,湿度 是1100%。可见坏点对 kmeans的影响之大。另一 方面,季节有春夏秋冬之分, 而我们强行的把它们分为夏 冬两个类也是不太合理的。 如果分为四个类我们也许可 以“中和”掉坏点的影响。
改进的算法——二分 Kmeans算法
为了克服k均值算法收敛于局部的问题,提出了二分k 均值算法。该算法首先将所有的点作为一个簇,然后 将该簇一分为二。之后选择其中一个簇继续划分,选 择哪个簇进行划分取决于对其划分是否可以最大程度 降低SSE值。 伪代码如下: 将所有的点看成一个簇 当簇数目小于k时 对于每一个簇
Kmeans算法详解(2)
步骤二:把每个点划分进相应的簇
Min of three due to the EuclidDistance
Kmeans算法详解(3)
步骤三:重新计算中心点
Min of three due to the EuclidDistance
Kmeans算法详解(4)
3
聚类手段:传统聚类算法 ①划分法 ②层次方法 ③基于密 度方法 ④基于网络方法 ⑤基于模型方法
什么是Kmeans算法?
Q1:K是什么?A1:k是聚类算法当中类的个数。 Q2:means是什么?A2:means是均值算法。
Summary:Kmeans是用均值算法把数 据分成K个类的算法!
Kmeans算法详解(1)
带canopy预处理的kmeans 算法
(1)将数据集向量化得到一个list后放 入内存,选择两个距离阈值:T1和T2。 (2)从list中任取一点P,用低计算成 本方法快速计算点P与所有Canopy之 间的距离(如果当前不存在Canopy, 则把点P作为一个Canopy),如果点P 与某个Canopy距离在T1以内,则将点 P加入到这个Canopy; (3)如果点P曾经与某个Canopy的距 离在T2以内,则需要把点P从list中删 除,这一步是认为点P此时与这个 Canopy已经够近了,因此它不可以再 做其它Canopy的中心了; (4)重复步骤2、3,直到list为空结 束
我们主要研究的三个方面因素。
初始中心点的划分
讨论初始中心点意义何在?下面的例子一目了然吧?
初始中心点
收敛后
你
懂
的
…
如何衡量Kmeans算法的精确度 ?
在进一步阐述初始中心点选择 之前,我们应该先确定度量 kmeans的算法精确度的方法。 一种度量聚类效果的标准是: SSE(Sum of Square Error, 误差平方和) SSE越小表示数据点越接近于 它们的质心,聚类效果也就越 好。因为对误差取了平方所以 更重视那些远离中心的点。 一种可以肯定降低SSE的方法 是增加簇的个数。但这违背了 聚类的目标。因为聚类是在保 持目标簇不变的情况下提高聚 类的质量。 现在思路明了了我们首先以缩 小SSE为目标改进算法。
决定性因素
Input & centroids
①数据的采集和抽象 ②初始的中心选择
Selected k
① k值的选定
MaxIterations & Convergence
①最大迭代次数 ②收敛值
factors?
Meassures
①度量距离的手段
主要讨论
初始中 心点
输入的数 据及K值 的选择
距离度 量
步骤四:迭代计算中心点
Kmeans算法详解(5)
步骤五:收敛
Kmeans算法流程
1.从数据中随机抽取k个点作为初始聚类 的中心,由这个中心代表各个聚类 2.计算数据中所有的点到这k个点的距离, 将点归到离其最近的聚类里 3.调整聚类中心,即将聚类的中心移动到 聚类的几何中心(即平均值)处,也就是 k-means中的mean的含义 4.重复第2步直到聚类的中心不再移动, 此时算法收敛 最后kmeans算法时间、空间复杂度是: 时间复杂度:上限为O(tKmn),下限为Ω (Kmn)其中,t为迭代次数,K为簇的数 目,m为记录数,n为维数 空间复杂度:O((m+K)n),其中,K为簇 的数目,m为记录数,n为维数
从前面的讲解可以看到二分 kmeans算法的思想有点类 似于贪心思想。但是我们会 发现贪心的过程中有不确定 的因素比如:二分一个聚类 时选取的两个中间点是随机 的,这会对我们的策略造成 影响。那么如此一来二分 kmeans算法会不会达到全 局最优解呢?答案是:会! 尽管你可能惊诧于下面的说 法,但全局最小值的定义却 是:可能的最好结果。
带canopy预处理的kmeans 算法的优点
带canopy预处理的kmeans 算法的新挑战
Canopy预处理这么好, 我们以后就用它好了!
我看不见得,它虽然解决 kmeans当中的一些问题, 但其自身也引进了新的问题: t1、t2的选取。
一组实验结果
一组不好的初始点产生的 Kmeans算法结果
二分kmeans产生的结果
要强调的是尽管只是这一组实验不得以得出二分kmeans的 优越性,但是经过大量实验得出的结论却是在大多数情况下 二分kmeans确实优于朴素的kmeans算法。
全局最小值
二分kmeans真 的能使SSE达 到全局最小值 吗?
主要内容:
聚类算法简介 KmeansBaidu Nhomakorabea法详解 Kmeans算法的缺陷及若干改进 Kmeans的单机实现与分布式实现策略
Kmeans实战
聚类算法简介
1
聚类的目标:将一组向量分成若干组,组内数据是相似的, 而组间数据是有较明显差异。
2 与分类区别:分类与聚类最大的区别在于分类的目标事先已 知,聚类也被称为无监督机器学习
计算总误差 在给定的簇上面进行K均值聚类(K=2) 计算将该簇一分为二后的总误差 选择使得误差最小的那个簇进行划分操作
二分Kmeans算法的效果
既然是改进算法就要体现改 进算法的优越性。为此控制 变量,在相同的实验环境下, ①取相同的k值取。 ②选取相同的的距离度量标 准(欧氏距离)
③在相同的数据集下进行测 试。
K值的选择以及坏点的剔除
讨论k值、剔除坏点的意义何在?下面以一个例 子来说明k值的重要性。
为什么会出错?
究竟哪里错 了!!!
上面的例子当中出错的原因 很明显。凭直觉我们很容易 知道不可能有这样的天气— —它的气温是100℃,湿度 是1100%。可见坏点对 kmeans的影响之大。另一 方面,季节有春夏秋冬之分, 而我们强行的把它们分为夏 冬两个类也是不太合理的。 如果分为四个类我们也许可 以“中和”掉坏点的影响。
改进的算法——二分 Kmeans算法
为了克服k均值算法收敛于局部的问题,提出了二分k 均值算法。该算法首先将所有的点作为一个簇,然后 将该簇一分为二。之后选择其中一个簇继续划分,选 择哪个簇进行划分取决于对其划分是否可以最大程度 降低SSE值。 伪代码如下: 将所有的点看成一个簇 当簇数目小于k时 对于每一个簇