`
huiminchen
  • 浏览: 73282 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

读书笔记:基于模糊c-means算法的空间数据分类和预测-胡彩平、秦小麟

阅读更多

读书笔记:基于模糊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-meansFuzzy c-means,下面着重介绍在论文中的改进策略和创新点。

 

空间分类

 

概念

一个包含n个空间对象{s1,s2,…,sn}的空间框架S,在它基础上存在一个邻域关系N∈S*S。sisj互为邻域对象当且仅当(sisj)∈N,且i不等于jsi的邻域用NBsi={sj:(sisj)∈N}来表示。

每一个空间对象si都有一个d维的自变量xi=xsi)∈Rd和需要预测的因变量yi=ysi)∈R,记y=(y1,y2,…,yn)T

目标

期望找到一个分类和预测函数fRdR,并使得真实值y和估计值的均方误差最小。

约束

但是因为空间对象yi不仅受到自身自变量xi的影响,而且受到邻域对象sjNB(si)的因变量yj和自变量xj的影响。

 

空间模糊c-means算法

对于空间数据挖掘而言,模糊c-means算法并没有考虑空间关系,可以对原始算法加入空间信息。
定义空间函数如下:
 
(6)

同时,修改模糊划分矩阵U如下:
 
(7)
按照新的模糊划分矩阵执行Fuzzy c-means的操作步骤。

基于空间模糊c-means方法的空间分类和预测算法

模糊隶属度:任意空间对象sk对于模块聚类ci的模糊隶属度,记为PMskci),通过公式8表示


 8

其中,djk是空间对象sk的属性变量(xkyk)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、  对于每个空间对象skk=1,2…n):

a)         计算sk对于每个模糊聚类ci的模糊隶属度PMskci

b)         PMskcm=max{PM(sk,ci)}

若为预测,则取y的估计值为vm,d+1

若为分类,则取y的估计值为vm,d+1向上取整。

4、  计算真实值y和估计值的均方误差,是否小于阈值ε,如果是则算法结束;如果不是,c=c+1,转到第2步。

 

 

  • 大小: 2.5 KB
  • 大小: 4.7 KB
  • 大小: 9.9 KB
  • 大小: 3.4 KB
  • 大小: 2.9 KB
  • 大小: 2.8 KB
  • 大小: 3.2 KB
  • 大小: 5.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics