云模型是一种比较新颖的学科,主要用于定性和定量之间的转换。
体现了一组数据的随机性,
云模型主要用三种数据来表示其特征:
期望Ex,熵En,超熵He
import numpy as np
import math
import matplotlib.pyplot as plt
def cloud_transform(ys,n):
Ex=np.mean(ys)
En=np.mean(abs(ys-Ex))*np.sqrt(np.pi/2)
He=np.sqrt(abs(np.var(ys)-En*En))
c=np.var(ys)
for q in range(n):
Enn=np.random.rand(1)*He+En
xq=np.random.rand(1)*Enn+Ex
yq=np.exp(-(xq-Ex)**2/(2*Enn**2))
c=np.array([[xq,yq]])
print(xq,yq)
plt.plot(xq,yq,'o')
Y=np.array([[5,6,7,6.5,5,5.6],
[7,7.1,7.2,7.3,7.4,7.5],
[8.1,8.5,8.6,8.7,8.2,8.5],
[4,7,8,1,2,3]])
fig=plt.figure()
for i in range(4):
y=Y[i,:]
plt.subplot(221+i)
cloud_transform(y,200)
plt.show()
利用四组数据来建立云模型,试图判别其大小特点
依次为
解析图像,纵坐标为1处的点代表着它的期望,最右端为其最大值,疏密程度表示其概率分布,如图可发现第三张图综合比较后是最大的一组数据,第四张则最小,在某些情况,云图会比较方便的识别数据情况。