云模型之正向云发生器

概述

云模型是云的具体实现方法,也是基于云的运算、推理和控制等的基础。它可以表示由定性概念到定量表示的过程(正向云发生器),也可表示由定量表示到定性概念的过程(逆向云发生器)。

该模型是由中国工程院院士李德毅于1995年提出云模型的概念,是处理定性概念与定量描述的不确定转换模型。自提出至今,已成功地应用到自然语言处理数据挖掘决策分析、智能控制、图像处理等领域  

云发生器

正向云发生器(Forward Cloud Generator)是从定性概念到其定量表示的映射,它根据云的数字特征(Ex,En,He)产生云滴,每个云滴都是该概念的一次具体实现。

一维正向正态云发生器的算法实现如下  :

输入:表示定型概念A的三个数字特征值Ex,En,He以及云滴数N;

输出:N个云滴的定量值,以及每个云滴代表概念A的确定度;

步骤:

(1)产生一个期望值为Ex,方差为En的正态随机数 ;

import numpy as np

np.random.seed(0)
x=np.random.normal(Ex,En)

(2)产生一个期望值为En,方差为He的正态随机数En’;

En2=np.random.normal(En,He)

(3)计算:

  ;

y=math.exp(-pow(x-Ex,2)/(2*pow(En2,2)))

(4)令  为一个云滴,它是该云表示的语言值在数量上的一次具体实现,其中x为定性概念在论域中这一次对应的数值,  为属于这个语言值的程度的量度;

(5)重复步骤(1)到步骤(4),直到产生满足要求数目的云滴数。

云生成器函数:

import math
import numpy as np
import matplotlib.pyplot as plt

#定义正向(forward)云发生器
def forwardCloud(Ex,En,He,N):
    cloudpoints=[]
    #numpy随机数发生器,指定种子为0
    np.random.seed(0)
    for i in range(N):
        x=np.random.normal(Ex,En)
        En2=np.random.normal(En,He)
        y=math.exp(-pow(x-Ex,2)/(2*pow(En2,2)))
        cloudpoints.append({'x':x,'y':y})
    return cloudpoints

绘制成散点图:

使用matplotlib将散点图绘出:

res=forwardCloud(0,10,1,10000)
x=[]
y=[]
for r in res:
    x.append(r['x'])
    y.append(r['y'])
plt.scatter(x,y)
plt.show()

全部代码:

import math
import numpy as np
import matplotlib.pyplot as plt

#定义正向(forward)云发生器
def forwardCloud(Ex,En,He,N):
    cloudpoints=[]
    #numpy随机数发生器,指定种子为0
    np.random.seed(0)
    for i in range(N):
        x=np.random.normal(Ex,En)
        En2=np.random.normal(En,He)
        y=math.exp(-pow(x-Ex,2)/(2*pow(En2,2)))
        cloudpoints.append({'x':x,'y':y})
    return cloudpoints

res=forwardCloud(0,10,1,10000)
x=[]
y=[]
for r in res:
    x.append(r['x'])
    y.append(r['y'])
plt.scatter(x,y)
plt.show()

 

  • 11
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值