各种智能算法的总结汇总
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
7. 聚类算法
7.1 k-means (k 均值)
7.1.1算法定义以及原理:
定义:k 均值聚类算法(k -means clustering algorithm )是一种迭代求解的聚类分析算法,其步骤是随机选取K 个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。 原理:K -Means 算法是一种无监督分类算法,假设有无标签数据集:
()()()12...m x x X x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦
该算法的任务是将数据集聚类成K 个簇12k ,,...,C C C C =,最小化损失函数为: 21i k i
i x C E x μ=∈=-∑∑ (1) 其中i μ为簇i C 的中心点:
1
i i x C i x C μ∈=∑ (2) 要找到以上问题的最优解需要遍历所有可能的簇划分,K -Means 算法使用贪心策略求得一个近似解,具体步骤如下:
(1)在样本中随机选取k 个样本点充当各个簇的中心点{}12,,...,k μμμ。
(2)计算所有样本点与各簇中心之间的距离()()
,i j dist x μ,然后把样本点划入最近的簇中()i nearest x μ∈。
(3)根据簇中已有的样本点,重新计算簇中心
1
:i i x C i x C μ∈=∑
(4)重复2,3
7.1.2 算法特点
优点:容易实现。
缺点:可能收敛到局部最小值,在大规模数据上收敛较慢。
适合数据类型:数值型数据。
7.1.3聚类过程
(1)创建k个点作为k个簇的起始质心(经常随机选择)。
(2)分别计算剩下的元素到k个簇中心的相异度(距离),将这些元素分别划归到相异度最低的簇。
(3)根据聚类结果,重新计算k个簇各自的中心,计算方法是取簇中所有元素各自维度的算术平均值。
(4)将D中全部元素按照新的中心重新聚类。
(5)重复第4步,直到聚类结果不再变化。
(6)最后,输出聚类结果。
7.1.4算法实现
创建k个点作为K个簇的起始质心(经常随机选择)
当任意一个点的蔟分配结果发生变化时(初始化为True)
对数据集中的每个数据点,重新分配质心
对每个质心
计算质心到数据点之间的距离
将数据点分配到距其最近的蔟
对每个蔟,计算蔟中所有点的均值并将均值作为新的质心
7.1.5算法总结与讨论
虽然K-Means算法原理简单,但是也有自身的缺陷:
(1)首先,聚类的簇数K值需要事先给定,但在实际中这个K 值的选定是非常难以估计的,很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。
(2)K-Means需要人为地确定初始聚类中心,不同的初始聚类中心可能导致完全不同的聚类结果,不能保证K-Means算法收敛于全局最优解。针对此问题,在K-Means的基础上提出了二分K-Means算法。该算法首先将所有点看做是一个簇,然后一分为二,找到最小SSE 的聚类质心。接着选择其中一个簇继续一分为二,此处哪一个簇需要根据划分后的SSE值来判断。
(3)对离群点敏感。
(4)结果不稳定(受输入顺序影响)。
(5)时间复杂度高O(nkt),其中n是对象总数,k是簇数,t是迭代次数。
7.1.6确定K 个簇的初始质心的方法
(1) 选择批次距离尽可能远的K 个点
首先随机选择一个点作为第一个初始类簇中心点,然后选择距离该点最远的那个点作为第二个初始类簇中心点,然后再选择距离前两个点的最近距离最大的点作为第三个初始类簇的中心点,以此类推,直至选出K 个初始类簇中心点。
(2) 选用层次聚类或者Canopy 算法进行初始聚类,然后利用这些类簇的中心点作为K-Means 算法初始类簇中心点。
7.2模糊c-均值聚类算法
7.2.1 FCM 算法的概念
模糊c-均值聚类算法 fuzzy c-means algorithm (FCMA)或称( FCM )。在众多模糊聚类算法中,模糊C-均值( FCM ) 算法应用最广泛且较成功,它通过优化目标函数得到每个样本点对所有类中心的隶属度,从而决定样本点的类属以达到自动对样本数据进行分类的目的。
7.2.2 FCM 算法原理
假定我们有数据集X ,我们要对X 中的数据进行分类,如果把这些数据划分成C 个类的话,那么对应的就有C 类中心为i C ,每个样本j x 属于某一类i C 的隶属度定为ij u ,那么定义一个FCM 目标函数及其约束条件如下:
211c n m ij j i i j J u
x c ===-∑∑ (3)
11,1,2,...,c ij i u
j n ===∑ (4)
目标函数(式3)由相应样本的隶属度与该样本到各类中心的距离相乘组成的,式4为约束条件,也就是一个样本属于所有类的隶属度之和要为1。式1中的m 是一个隶属度的因子,一般为2 ,j i x c - 表示j x 到中心点i c 的欧式距离。
ij u 的迭代公式为:
2111
ij m i j C
k i k u x c x c -==⎛⎫- ⎪ ⎪-⎝⎭∑ (5)
i C 的迭代公式: