4.5 空间离散度

 

多维空间中的点可能是“聚集”的,也可能是散布在空间中的,怎么衡量空间中点分布的“离散程度”呢?

....

观察这两幅图,第一幅图有明显的聚集效应,多数点“聚集”在下方,少数点散布在上方,“离散程度”小;第二幅图聚集效应不太明显,分散在空间中的各个位置,“离散程度”大。

描述多维空间中点分布“离散程度”的量称为空间离散度。空间离散度越大,分布越离散,聚集效应越差。反之则分布集中,聚集效应越明显。

空间离散度可以这样描述:将多维空间切成若干个小空间,当点均匀落在这些小空间时,空间离散度大;当点集中落在某几个小空间中时,空间离散度小。

信息熵是描述信息源各可能事件发生的不确定性的量,不确定性越大,信息熵越大,不确定性越小,信息熵越小;空间离散度是描述点落入小空间可能性差别大小的量,落入各小空间的可能性差别越小(不确定性越大),空间离散度越大,落入各小空间的可能性差别越大(不确定性越小),空间离散度越小,因此可以用信息熵计算公式来计算空间离散度。

H(U)=sum(-P(u)*log2(P(u))),uU

其中H(U)是信息熵,U是所有事件的集合,u是某个事件,P(u)是事件u发生的概率。

多维时间序列X

..

1. 均分各维度

将各维度平均切成h段,整个空间会被分为hm个小空间。

P(j)=[p(j)1, p(j)2,…, p(j)h]

p(j)l=min(Xcj)+(max(Xcj)-min(Xcj))/h*(l-1)l[1,h]

其中P(j)是第j维时间序列的切分点序列,p(j)l是均分Xcj的第l个切分点值。

2. 按切分空间为点标记位置信息

..

xij= P(j).pseg(xij)

其中xijxijP(j)中的位置。比如p(j)1xij< p(j)2,则xij’=1,说明xij属于在第j维度属于第1小段。

3. 统计同一小空间中点的个数

Sp=X’.group(~)

spds=count(sps)

其中Sp是有点落入的空间组,一个组就是1个小空间,spds是第s个组sps中点的个数。我们知道切分的总空间数是hm个,但可能有些空间没有点落入,所以通常情况下Sp内的组数是小于hm的。

4. 点落入各小空间的概率

把各空间落入的点数占总点数的比例作为落入该小空间的概率。

spps= spds/n

其中spps是落入第s个组的点数占总点数的比例。

5. 信息熵

etp=sum(-spps *log2(spps))

6. 空间离散度

信息熵有个特点,有点落入的空间组数越多,信息熵越大。通常情况下各维度切分的小空间数越多,有点落入的空间组数就越多,在单维度分段数相同的情况下,维度数越多,小空间数就越多,这导致维度数越多,信息熵越大。为了消除维度数对信息熵的影响,我们除以一个与维度相关的值就可以把维度数对信息熵的影响消除,把消除影响的值作为空间离散度。

dsp=etp/-log2(1/n)

SPL例程


A

B

1

=file(“DSP0.csv”).import@tci()

/第一维数据

2

=file(“DSP1.csv”).import@tci()

/第二维数据

3

10

/维度切分数

4

=[A1,A2]

/XT

5

=A4.(~.max())


6

=A4.(~.min())


7

=A6.((idx=#,m=(A5(#)-~)/A3,mi=~,A3.(mi+m*(#-1))))

/P(j)

8

=A4.((idx=#,~.(A7(idx).pseg(~))))

/XT

9

=transpose(A8)

/X

10

=A9.group(~)


11

=A10.(~.len()/A9.len())

/概率spps

12

=-A11.sum(if(~==0,0,~*lg(~,2)))

/信息熵

13

=n=power(A3,A4.len()),A12/(-lg(1/n,2))

/空间离散度

计算结果示例:

....

第一幅图是“DSP0.csv”“DSP1.csv”两个维度数据呈现的二维图,计算出的空间离散度是0.560

第二幅图是“DSP0.csv”“DSP2.csv”两个维度数据呈现的二维图,计算出的空间离散度是0.818

计算的结果和我们直观的感受一样,第二幅图空间离散度大于第一幅图。