云模型的理解及Matlab实例

云模型基础知识

  • 云模型属于不确定性人工智能范畴,主要用于定性与定量之间的相互转换。自然界中的不确定性从属性角度来说主要有随机性和模糊性
  • 举一个简单的例子,形容一个人是高个子是一件相当模型的事情,因为无法确定身高达到多少算高个子。但可以这样说:身高2m的人,100%属于高个子的人;身高1.7m的人,55%属于高个子的人;身高1.5m的人,10%属于高个子的人(几乎不认为他是高个子)
论域
  • 本例中,高个子是个定性概念,可以理解为身高1.7m的人属于高个子(论域 U U U)的符合程度为0.55
隶属度/确定度
  • 例子中的1,0.55,0.1表示对应的身高属于高个子的隶属度或者确定度,用来度量“属于高个子”这种倾向的稳定程度
云/云滴
  • “云”是指其在论域上的一个分布,可以用联合概率的形式 ( x , μ ) (x,\mu) (x,μ)来类比。比如: x = 2 , μ = 1.0 x=2,\mu=1.0 x=2,μ=1.0表示身高2m的人,100%属于高个子的人
  • 简单来说就是云就是一个种群,一个分布,而云滴就是其中的一个数据,一个具体的点,而这个点出现在这个分布中是有一定的概率的
数字特征
  • 期望:云滴在论域空间分布的期望,是最能够代表定性概念的点值,反映了这个概念的云滴群的云重心,一般用符号Ex表示
  • 熵:不确定性程度,由离散程度和模糊程度共同决定,代表云滴分布的不确定性和模糊性,一般用符号En表示
  • 超熵:用来度量熵的不确定性,亦即熵的熵。超熵越大,说明模型的不确定性越大,云的厚度越大,一般用符号He表示
云模型的理解及Matlab实例
文章图片

两种发生器
  • 云有两种发生器,正向云发生器和逆向云发生器,分别用来生成足够的云滴和计算云滴的云数字特征(Ex,En,He)
正向云发生器的触发机制
  1. 生成以En为期望,以He2为方差的正态随机数En’
  2. 生成以Ex为期望,以En’2为方差的正态随机数x
  3. 计算隶属度即确定度 μ = e x p ( ? ( x ? E x ) 2 2 E n ′ 2 ) \mu=exp(-\frac{(x-Ex)^2}{2En^{'2}}) μ=exp(?2En′2(x?Ex)2?),则 ( x , μ ) (x,\mu) (x,μ)便是相对于论域 U U U的一个云滴
  4. 重复1-3步骤,直到生成足够的云滴
逆向云发生器的触发机制
假设样本 x x x的容量为 n n n
  1. 计算样本均值 X ˉ \bar{X} Xˉ和方差 S 2 S^2 S2
  2. E x = X ˉ Ex=\bar{X} Ex=Xˉ
  3. E n = π 2 × 1 n ∑ 1 n ∣ x ? E x ∣ En=\sqrt{\frac{\pi}{2}}\times \frac{1}{n}\sum_1^n|x-Ex| En=2π? ?×n1?∑1n?∣x?Ex∣
  4. H e = S 2 ? E n 2 He=\sqrt{S^2-En^2} He=S2?En2 ?
云模型案例及MATLAB实现 题目
  • 下表为4组选手的成绩,通过分析选出一位发挥最出色的选手
云模型的理解及Matlab实例
文章图片

分析过程
  1. 发挥出色是一个定性概念,可以认为是论域。表中给出的是定量数据,所以要完成从定量到定性的转变
  2. 由样本数据可以先得到云模型的三个数字特征
  3. 再由数字特征得到更多云滴,行成云图
  4. 比较4组云图的分布
Matlab实现及结果
function [x,y,Ex,En,He] = cloud_transform(y_spor,n) % x 表示云滴 % y 表示隶属度(这里是“钟形”隶属度),意义是度量倾向的稳定程度 % Ex 云模型的数字特征,表示期望 % En 云模型的数字特征,表示熵 % He 云模型的数字特征,表示超熵 % 通过统计数据样本计算云模型的数字特征 Ex = mean(y_spor); En = mean(abs(y_spor-Ex)).*sqrt(pi./2); He = sqrt(var(y_spor)-En.^2); % 通过云模型的数字特征还原更多的“云滴” for q = 1:n Enn = randn(1).*He + En ; %randn(n) 返回由标准正态分布的随机数组成的 n×n 矩阵 x(q) = randn(1).*Enn + Ex ; y(q) = exp(-(x(q) - Ex).^2./(2 .* Enn.^2)); end x; y;

% 以下是主函数cloud_main.m clc; clear all; close all; % 每幅图生成N个云滴 N = 1500; % 射击成绩原始数据,这里数据按列存储所以要转置 Y = [9.5 10.3 10.1 8.1 10.3 9.7 10.4 10.1 10.6 8.6 9.2 10.0 10.5 10.4 10.1 10.1 10.9 9.8 10.0 10.1 10.6 9.8 9.7 10.0 10.4 10.5 10.6 10.3 10.1 10.2 10.8 8.4 9.3 10.2 9.6 10.0 10.5 10.0 10.7 9.9]; for i = 1:size(Y,2) subplot(size(Y,2)/2,2,i)%subplot(m,n,p) 将当前图窗划分为 m×n 网格,并在 p 指定的位置创建坐标区 % 调用函数 [x,y,Ex,En,He] = cloud_transform(Y(:,i),N); plot(x,y,'r.'); xlabel('射击成绩分布/环'); ylabel('确定度'); title(strcat('第',num2str(i),'人射击云模型还原图谱')); % 控制坐标轴的范围 % 统一坐标轴范围才会在云模型形态上具有可比性 axis([8,12,0,1]); end

【云模型的理解及Matlab实例】云模型的理解及Matlab实例
文章图片

结果分析
  1. 先看期望,只有4的期望小于10
  2. 再看熵(云滴分布的不确定程度),2和4的分布跨度较大,基本在8环和9环之间有很明显的分布倾向
  3. 最后看超熵(模型的不确定性程度),3的云滴凝聚抱合程度最高
  4. 综上分析,认为第3位射击手比赛最出色

    推荐阅读