学习常用模型及算法:3.评价和预测

评价方法

1.加权平均法

最简单的方法,但不能忽视。

 

2.层次分析法

该题可划分为三层。

首先我们要求得准则层对目标层的权重。

我们可以引进判断矩阵的概念,以两两比较的方式判断每两个指标中哪个更为重要。

因为这里是4个判断标准,所以n = 4, RI(n) = 0.9。经过计算得出一致性比例。

将最大特征值所对应的特征向量归一化,即可得到本层次各因素的重要性的排序。

求出准则层对目标层的权重之后,我们再去求备选层对准则层的权重,方法同前述一致。

将两个步骤综合起来,可得归纳出AHP函数。此处记录下来,方便随时调用。

求出两层权重,并作卷积运算(矩阵相乘),可得到备选层对目标层的权重,也即综合得分的排名。

function [w, CR] = AHP(A)
% n= [ 1    2    3    4    5    6    7    8    9
RI = [ 0.00 0.00 0.58 0.90 1.12 1.24 1.32 1.41 1.45];

n = size(A,1);
[V, D] = eig(A);

[lamda, i] = max(diag(D));
CI=(lamda-n)/(n-1);
CR = CI/RI(n);

W = V(:,i);
w = W/sum(W);
A = [1/1  2/1  5/1  3/1 
     1/2  1/1  3/1  1/2 
     1/5  1/3  1/1  1/4
     1/3  2/1  4/1  1/1];
[w, CR] = AHP(A);

% face
A1 = [1/1  1/2  3/1
      2/1  1/1  5/1
      1/3  1/5  1/1];
[w1, CR1] = AHP(A1);

% body
A2 = [1/1  1/3  2/1
      3/1  1/1  5/1
      1/2  1/5  1/1];
[w2, CR2] = AHP(A2);

% voice
A3 = [1/1  2/1  1/5
      1/2  1/1  1/7
      5/1  7/1  1/1];
[w3, CR3] = AHP(A3);

% acting
A4 = [1/1  2/1  1/3
      1/2  1/1  1/5
      3/1  5/1  1/1];
[w4, CR4] = AHP(A4);


CRs = [CR1 CR2 CR3 CR4]
P = [w1 w2 w3 w4] * w
CRs =

    0.0032    0.0032    0.0122    0.0032


P =

    0.2634
    0.4394
    0.2972

由此可得排名为乙丙甲。

 

3.模糊综合评价

通过多项指标给出评价,即综合评价。

前一个矩阵的行和后一个矩阵的列先乘,再取最大值。

W = [0.4 0.2 0.1 0.3];
R = [0.38 0.34 0.17 0.11 0.00
     0.26 0.41 0.20 0.13 0.00
     0.27 0.23 0.21 0.15 0.14
     0.14 0.19 0.22 0.12 0.33];

% B = max(R .* W')
B = max(R .* repmat(W',1,size(R,2)) )
B =

    0.1520    0.1360    0.0680    0.0440    0.0990

因为第一项数字是最大的,因此我们判断,大家对仓井的综合评价是“超棒”。

模糊综合评价适用于权重和评分都比较容易获得的情况,层次分析法适用于权重和评分都不太容易获得的情况。

 

预测模型

1.拟合

2.时间序列

移动平均法,适用于平稳的数据。

 

3.灰色预测

具体原理此处省略。

案例分析(模仿https://blog.csdn.net/You_are_blind/article/details/107214157

GM11.m

function [X,c,error1,error2,A,B]=GM11(X0,k)
format long;
n=length(X0);
X1=[];
X1(1)=X0(1);
for i=2:n
    X1(i)=X1(i-1)+X0(i);
end
for i=1:n-1
    B(i,1)=-0.5*(X1(i)+X1(i+1));
    B(i,2)=1;
    Y(i)=X0(i+1);
end
alpha=(B'*B)^(-1)*B'*Y';
a=alpha(1,1);
b=alpha(2,1);
d=b/a;
c=X1(1)-d;
X2(1)=X0(1);
X(1)=X0(1);
for i=1:n-1
    X2(i+1)=c*exp(-a*i)+d;
    X(i+1)=X2(i+1)-X2(i);
end
for i=(n+1):(n+k)
    X2(i)=c*exp(-a*(i-1))+d;
    X(i)=X2(i)-X2(i-1);
end
for i=1:n
    error(i)=X(i)-X0(i);
    error1(i)=abs(error(i));
    error2(i)=error1(i)/X0(i);
end
c=std(error1)/std(X0);
A=(X0(1)-(b/a))*(1-exp(a));
B=-a;

yuce.m

t = 1999:2003;
X0 = [89, 99, 109, 120, 135];
[X1,c1,e1,e2,A,B]=GM11(X0,k)
t=1999:2003; 
X0 = [89, 99, 109, 120, 135];
p = 0:9;
X1 = A.*exp(B.*p);
hold on
plot(t,X0,'o')
t = 1999:2008;
plot(t,X1,'-+')
hold off

完成。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值