云模型主要用于定性与定量之间的转换,自然界的不确定性从属性角度来说主要有随机性和模糊性,这跟单色光的“波粒二象性”相似。“云”是云模型的基本单元,是指在其论域上的分布,可以以联合概率的形式(x,μ)来类比。
我们可以用简单的例子的来说明,比如x代表身高,μ来表示高个子的隶属度或者说确定度,用来度量某种倾向的稳定性,U代表高个子这个定性概念。
下面是通过四个选手的60发气枪比赛用云模型分析选出发挥最好的选手。
主函数cloud_main函数如下:
clc;
clear all;
close all;
N=1500;%每幅图生成1500个云滴
%射击成绩原始数据按列存储,所以要转置,转置之后每行分别代表A,B,C,D的十次射击成绩
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,1) %代表Y的第一个维度的数据
subplot(size(Y,1)/2,2,i)
%调用云模型函数
[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
其中函数clloud_transform函数来计算样本的云模型数字特征:
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));%var返回每行的的方差
%通过云模型的数字特征来还原更多的云端
for q=1:n
Enn=randn(1).*He+En; %randn指生成正态分布数组
x(q)=randn(1).*Enn+Ex;
y(q)=exp(-(x(q)-Ex).^2./(2.*Enn.^2));
end
x;
y;
下面是运行结果
我们分析云模型图谱之前,我们先明确分析的维度及其意义。首先是云模型的期望,其次是确定度(隶属度),表示倾向的稳定的程度,图谱上表现为云滴是否集中,最后是离群程度,也就是随机性,显然第2位和第4位环数分布跨度大,基本在8环和9环之间都有很显著的分布倾向,且第4位射击手更差,期望位于10环的左侧。第1位比第3位云滴凝聚抱和程度更高,所以可以认为第3位在本次射击比赛中表现更加出色。