云模型基础知识
- 云模型属于不确定性人工智能范畴,主要用于定性与定量之间的相互转换。自然界中的不确定性从属性角度来说主要有随机性和模糊性
- 举一个简单的例子,形容一个人是高个子是一件相当模型的事情,因为无法确定身高达到多少算高个子。但可以这样说:身高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表示
文章图片
两种发生器
- 云有两种发生器,正向云发生器和逆向云发生器,分别用来生成足够的云滴和计算云滴的云数字特征(Ex,En,He)
- 生成以En为期望,以He2为方差的正态随机数En’
- 生成以Ex为期望,以En’2为方差的正态随机数x
- 计算隶属度即确定度 μ = 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的一个云滴
- 重复1-3步骤,直到生成足够的云滴
假设样本 x x x的容量为 n n n
- 计算样本均值 X ˉ \bar{X} Xˉ和方差 S 2 S^2 S2
- E x = X ˉ Ex=\bar{X} Ex=Xˉ
- 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∣
- H e = S 2 ? E n 2 He=\sqrt{S^2-En^2} He=S2?En2 ?
- 下表为4组选手的成绩,通过分析选出一位发挥最出色的选手
文章图片
分析过程
- 发挥出色是一个定性概念,可以认为是论域。表中给出的是定量数据,所以要完成从定量到定性的转变
- 由样本数据可以先得到云模型的三个数字特征
- 再由数字特征得到更多云滴,行成云图
- 比较4组云图的分布
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实例】
文章图片
结果分析
- 先看期望,只有4的期望小于10
- 再看熵(云滴分布的不确定程度),2和4的分布跨度较大,基本在8环和9环之间有很明显的分布倾向
- 最后看超熵(模型的不确定性程度),3的云滴凝聚抱合程度最高
- 综上分析,认为第3位射击手比赛最出色
推荐阅读
- 数学建模算法与应用|整数规划,背包问题、指派问题、钢管切割问题的Matlab和python实现
- MATLAB|瑞利衰落条件下扩频通信系统误码率仿真
- ★教程2:fpga入门100例|【FPGA教程案例48】图像案例8——基于FPGA的RGB图像转化为HSV图像的实现,通过MATLAB进行辅助验证
- matlab|2、将图像转换为点云
- 功率谱估计|matlab中fft与periodogram函数的关系+周期性功率信号的知识整理(简议)
- 线性规划|基于食肉植物优化算法的线性规划问题求解matlab程序
- matlab实践|遗传算法(一) 遗传算法的基本原理
- 图像处理|肺部阴影识别检测 matlab算法技术
- 笔记|MATLAB在线编辑器online