读书笔记:基于模糊c-means算法的空间数据分类和预测-胡彩平、秦小麟
背景知识简介
c-means
c-means方法是聚类中的最常见和最常用的方法,在《数据挖掘概念与技术》一书中称为k均值。
假设数据集对象为n,要求聚类成c个簇。利用c-means完成聚类步骤如下:
1、随机在数据集n中选择c个对象,作为簇中心。
2、计算其他对象与这c个簇中心的距离,并将其划入相应的簇中。
3、重新计算c个簇的簇中心。
4、判断新的簇中心是否变化,如果没有变化算法结果;如果有变化则跳到第2步。
模糊c-means
模糊c-means即Fuzzy c-means,与c-means 算法相比,引入了模糊的概念。每一个数据集中的对象x不再直接属于某一簇,而是介于0-1之间的数字来表示x隶属于某一簇的程度。
假设对于c个簇(c1,c2,...,cc),数据集中有n个对象(x1,x2,...xn),可以建立一个c*n的模糊划分矩阵U表示每个对象x隶属于每个簇的程度。其中,对于每一个对象xi而言,
(1)
从而,我们可以得到目标函数J如下:
(2)
其中,m∈[1, ∞],决定了目标函数的模糊程度,dist(ci,xj)代表了簇中心ci与xj距离,一般可采用欧几里得距离。
为了同时满足公式1和公式2,利用Lagrange乘子λ转化成新的目标函数Jnew:
(3)
为了使得目标函数即公式3最小化,通过采用微分求导的方式,求得当c和u分别满足如下公式时,目标函数最小.
(4)
(5)
下面,给出采用模糊c-means完成聚类的步骤如下:
1、随机的给出U矩阵中的数值。
2、根据公式5计算簇中心。
3、根据公式3计算Jnew。
4、判断Jnew是否达到某个阈值或者变化范围已经小于某个误差ε,如果是,算法结束。
5、根据公式4重新计算U矩阵,转到2。
正文介绍
在背景知识中,我们简要介绍了c-means和Fuzzy c-means,下面着重介绍在论文中的改进策略和创新点。
空间分类
概念
一个包含n个空间对象{s1,s2,…,sn}的空间框架S,在它基础上存在一个邻域关系N∈S*S。si和sj互为邻域对象当且仅当(si,sj)∈N,且i不等于j。si的邻域用NB(si)={sj:(si,sj)∈N}来表示。
每一个空间对象si都有一个d维的自变量xi=x(si)∈Rd和需要预测的因变量yi=y(si)∈R,记y=(y1,y2,…,yn)T
目标
期望找到一个分类和预测函数f:Rd→R,并使得真实值y和估计值的均方误差最小。
约束
但是因为空间对象yi不仅受到自身自变量xi的影响,而且受到邻域对象sj∈NB(si)的因变量yj和自变量xj的影响。
空间模糊c-means算法
对于空间数据挖掘而言,模糊c-means算法并没有考虑空间关系,可以对原始算法加入空间信息。
定义空间函数如下:
(6)
同时,修改模糊划分矩阵U如下:
(7)
按照新的模糊划分矩阵执行Fuzzy c-means的操作步骤。
基于空间模糊c-means方法的空间分类和预测算法
模糊隶属度:任意空间对象sk对于模块聚类ci的模糊隶属度,记为PM(sk,ci),通过公式8表示
(8)
其中,djk是空间对象sk的属性变量(xk,yk)T与模糊聚类cj的属性变量cj=(cj1,cj2,…cjd+1)之间的内积距离。
基于空间模糊c-means方法的空间分类和预测算法如下:
数据:训练数据集{zk|k=1,2…n},其中zk={xk,yk}。
1、 设定聚类数目初值c=1;
2、 对于数据集{zk|k=1,2…n}调用空间模糊c-means算法,进行模糊划分。
3、 对于每个空间对象sk(k=1,2…n):
a) 计算sk对于每个模糊聚类ci的模糊隶属度PM(sk,ci)
b) 取PM(sk,cm)=max{PM(sk,ci)}。
若为预测,则取y的估计值为vm,d+1
若为分类,则取y的估计值为vm,d+1向上取整。
4、 计算真实值y和估计值的均方误差,是否小于阈值ε,如果是则算法结束;如果不是,c=c+1,转到第2步。