信息扩散原理: 已知论域
U
U
U:
U
=
{
u
1
,
u
2
,
.
.
.
,
u
m
}
U= \left\{ u_1, u_2, ..., u_m \right\}
U={u1,u2,...,um}
一个单值观测样本点
x
x
x 依
f
(
u
j
)
=
1
h
2
π
e
−
(
x
−
u
j
)
2
2
h
2
f(u_j)=\frac{1}{h\sqrt{2\pi}}e^{-\frac{(x-u_j)^2}{2h^2}}
f(uj)=h2π1e−2h2(x−uj)2可以将其所携带的信息扩散给
U
U
U 中的所有点。
在
f
(
u
j
)
=
1
h
2
π
e
−
(
x
−
u
j
)
2
2
h
2
f(u_j)=\frac{1}{h\sqrt{2\pi}}e^{-\frac{(x-u_j)^2}{2h^2}}
f(uj)=h2π1e−2h2(x−uj)2 中,
h
h
h 为扩散系数,可根据样本中的最大值
b
b
b 和最小值
a
a
a 及样本点个数
n
n
n 来确定。 令
s
=
max
1
≤
j
≤
m
{
f
(
u
j
)
}
s=\max_{1\leq j \leq m} \left\{ f(u_j)\right\}
s=1≤j≤mmax{f(uj)}
则
μ
x
(
u
j
)
=
f
(
u
j
)
s
\mu_x(u_j)=\frac{f(u_j)}{s}
μx(uj)=sf(uj)
就将单值样本点
x
x
x 变成
μ
x
(
u
j
)
\mu_x(u_j)
μx(uj) 为隶属函数的模糊子集
χ
\chi
χ。 在进行风险评估时,为了使每一个集值样本点的地位均相同,需对
s
=
max
1
≤
j
≤
m
{
f
(
u
j
)
}
s=\max_{1\leq j \leq m} \left\{ f(u_j)\right\}
s=1≤j≤mmax{f(uj)}作适当的调整,所得的模糊子集也不再是
μ
x
(
u
j
)
=
f
(
u
j
)
s
\mu_x(u_j)=\frac{f(u_j)}{s}
μx(uj)=sf(uj)中的最大隶属度为
1
1
1 的正规化模糊子集。 设对第
i
i
i 个样本点
x
i
x_i
xi 按照
f
(
u
j
)
=
1
h
2
π
e
−
(
x
−
u
j
)
2
2
h
2
f(u_j)=\frac{1}{h\sqrt{2\pi}}e^{-\frac{(x-u_j)^2}{2h^2}}
f(uj)=h2π1e−2h2(x−uj)2进行扩散,得
f
i
(
u
j
)
=
1
h
2
π
e
−
(
x
−
u
j
)
2
2
h
2
f_i(u_j)=\frac{1}{h\sqrt{2\pi}}e^{-\frac{(x-u_j)^2}{2h^2}}
fi(uj)=h2π1e−2h2(x−uj)2
令
C
i
=
∑
j
=
1
m
f
i
(
u
j
)
C_i=\sum_{j=1}^m f_i(u_j)
Ci=j=1∑mfi(uj)
相应的模糊子集的隶属函数是
μ
x
(
u
j
)
=
f
i
(
u
j
)
C
i
\mu_x(u_j)=\frac{f_i(u_j)}{C_i}
μx(uj)=Cifi(uj)
称
μ
x
(
u
j
)
\mu_x(u_j)
μx(uj) 为样本点
x
i
x_i
xi 的归一化信息分布。 令
q
(
u
j
)
=
∑
i
=
1
n
μ
x
i
(
u
j
)
q(u_j)=\sum_{i=1}^n \mu_{x_i}(u_j)
q(uj)=i=1∑nμxi(uj)
再令
Q
=
∑
j
=
1
m
q
(
u
j
)
Q=\sum_{j=1}^m q(u_j)
Q=j=1∑mq(uj)
Q
Q
Q 事实上就是各
u
j
u_j
uj 点上样本点数的总和,从理论上讲,必有
Q
=
n
Q=n
Q=n(计算中可能存在一些误差)。
p
(
u
j
)
=
q
(
u
j
)
Q
p(u_j)=\frac{q(u_j)}{Q}
p(uj)=Qq(uj)
即样本点落在
u
j
u_j
uj 处的频率值,可以作为概率的估计值。超越
u
j
u_j
uj 的概率值为
P
(
u
j
)
=
∑
k
=
j
m
p
(
u
k
)
P(u_j)=\sum_{k=j}^m p(u_k)
P(uj)=k=j∑mp(uk)
x =[-2.5875,-2.5621,-1.1896,-1.1882,-1.2074,-1.7865,-1.0498,-2.0894,-1.6859,-1.3128,-1.1729,-1.9419,-1.6125,-1.9118,-2.5795,-1.2603];
u =[-3,-2.5,-2,-1.5,-1,-0.5,0];
xlength =length(x);
ulength =length(u);
maxX =max(x);
minX =min(x);if xlength ==5
h =0.8146*(maxX - minX);
elseif xlength ==6
h =0.5690*(maxX - minX);
elseif xlength ==7
h =0.4560*(maxX - minX);
elseif xlength ==8
h =0.3860*(maxX - minX);
elseif xlength ==9
h =0.3362*(maxX - minX);
elseif xlength ==10
h =0.2986*(maxX - minX);
elseif xlength >10
h =2.6851*(maxX - minX)/(xlength -1);else
h =0;
end
f =zeros(xlength, ulength);
C =zeros(xlength,1);
q =zeros(ulength,1);for i =1: xlength
for j =1: ulength
f(i, j)=1.0/(h *sqrt(2* pi))*exp(-(x(i)-u(j))^2/(2* h ^2));C(i)=C(i)+f(i, j);
end
end
for i =1: xlength
for j =1: ulength
f(i, j)=f(i, j)/C(i);q(j)=q(j)+f(i, j);
end
end
Q =sum(q);
p = q ./ Q;
P =zeros(ulength,1);for i =1: ulength
for j = i : ulength
P(i)=P(i)+p(j);
end
end