综合评价与决策方法(五)——主成分分析法

主成分分析法的评价步骤

1、对原始数据进行标准化处理。将各指标值 a i j a_{ij} aij转化为标准化指标:
在这里插入图片描述
其中:在这里插入图片描述
μ j , s j μ_j,s_j μj,sj为第 j j j个指标的样本均值和样本标准差。对应地,称:
在这里插入图片描述
为标准化指标变量。
2、计算相关系数矩阵 R \R R。相关系数矩阵 R = ( r i j ) 5 ∗ 5 \R=(r_{ij})_{5*5} R=(rij)55,有:

在这里插入图片描述
其中, r i i = 1 , r i j = r j i r_{ii}=1,r_{ij}=r_{ji} rii=1,rij=rji r i j r_{ij} rij是第 i i i个指标与第 j j j个指标的相关系数。
3、计算特征值和特征向量。计算相关系数矩阵 R \R R的特征值 λ 1 > = λ 2 > . . . > = λ 5 > = 0 λ_1>=λ_2>...>=λ_5>=0 λ1>=λ2>...>=λ5>=0,及对应的标准化特征向量 u 1 , u 2 , . . . u 5 u_1,u_2,...u_5 u1,u2,...u5,其中 u j = [ u 1 j , u 2 j , . . . , u 5 j ] T u_j=[u_{1j},u_{2j},...,u_{5j}]^T uj=[u1j,u2j,...,u5j]T,由特征向量组成5个新的指标变量:
在这里插入图片描述
其中, y 1 y_1 y1是第一主成分, y 2 y_2 y2是第二主成分,…, y 5 y_5 y5是第五主成分。
4、选择 p ( p < = 5 ) p(p<=5) p(p<=5)个主成分,计算综合评价值。
(1)计算特征值 λ j ( j = 1 , 2 , . . . , 5 ) λ_j(j=1,2,...,5) λj(j=1,2,...,5)的信息贡献率和累积贡献率。称为:
在这里插入图片描述
为主成分 y j y_j yj的信息贡献率,而且称:
在这里插入图片描述
为主成分 y 1 , y 2 , . . . y p y_1,y_2,...y_p y1,y2,...yp的累积贡献率。当 α p α_p αp接近于1( α p = 0.85 , 0.90 , 0.95 ) α_p=0.85,0.90,0.95) αp=0.85,0.90,0.95时,则选择前 p p p个指标变量 y 1 , y 2 , . . . y p y_1,y_2,...y_p y1,y2,...yp作为 p p p个主成分,代替原来的5个指标变量,从而可对 p p p个主成分进行综合分析。
(2)计算综合得分:在这里插入图片描述
其中, b j b_j bj为第 j j j个主成分的信息贡献率,根据综合得分值就可进行评价。

自行封装函数

1、该函数需要使用者自行定义想要选取的主成分的个数,但选择主成分个数时受到人的主观意愿影响较强。

function [stf,ind] = main_element_analyzing(gj,num)
%   main_element_analyzing 该函数用于进行主成分分析
%   输入的gj矩阵要求每一列代表评价指标,每一行代表评价对象
%   num为选取的主成分的个数
gj=zscore(gj); %数据标准化
r=corrcoef(gj);  %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系数
[x,~,z]=pcacov(r); %y为r的特征值,z为各个主成分的贡献率
f=repmat(sign(sum(x)),size(x,1),1); %构造与x同维数的元素为±1的矩阵
x=x.*f; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
% num=3;  %num为选取的主成分的个数
df=gj*x(:,[1:num]);  %计算各个主成分的得分
tf=df*z(1:num)/100; %计算综合得分
[stf,ind]=sort(tf,'descend');  %把得分按照从高到低的次序排列
stf=stf';
ind=ind';
end

2、该函数需要使用者自行设定选择主成分个数的阈值大小,这样可以使主成分的个数选择更加合理化

function [stf,ind,num] = main_element_analyzing(gj,alpha_p)
%   main_element_analyzing 该函数用于进行主成分分析
%   输入的gj矩阵要求每一列代表评价指标,每一行代表评价对象
%   num为选取的主成分的个数
%   alpha_p为自主设定的、用于选择主成分的阈值大小,注意其单位是百分比
gj=zscore(gj); %数据标准化
r=corrcoef(gj);  %计算相关系数矩阵
%下面利用相关系数矩阵进行主成分分析,x的列为r的特征向量,即主成分的系数
[x,y,z]=pcacov(r); %y为r的特征值,z为各个主成分的贡献率
for i=1:length(z)  %通过确定累积贡献率的大小判断出要选择主成分的个数
    temp=sum(z(1:i,1),1);
    if temp>alpha_p
        num=i-1;
        break;
    elseif temp==alpha_p
        num=i;
        break;
    end
end
f=repmat(sign(sum(x)),size(x,1),1); %构造与x同维数的元素为±1的矩阵
x=x.*f; %修改特征向量的正负号,每个特征向量乘以所有分量和的符号函数值
df=gj*x(:,[1:num]);  %计算各个主成分的得分
tf=df*z(1:num)/100; %计算综合得分
[stf,ind]=sort(tf,'descend');  %把得分按照从高到低的次序排列
stf=stf';
ind=ind';
end

提示:在使用时一定要注意 α p α_p αp的单位是百分比!!!

参考文献

司守奎,孙玺菁. 数学建模算法与应用. 北京:国防工业出版社,2011.

  • 8
    点赞
  • 118
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
主成分分析(Principal Component Analysis,PCA)是一种常用的特征提取方法。它通过线性变换将原始数据投影到一个新的坐标系中,使得投影后的数据具有最大的方差。这些新的坐标轴被称为主成分,它们是原始数据中最能区分样本之间差异的方向。 PCA的基本思想是找到一个最佳的投影方向,使得数据在该方向上的投影具有最大的方差,然后找到一个与第一个方向正交的第二个方向,使得数据在该方向上的投影具有次大的方差,依此类推。通过选择前k个主成分,就可以将原始数据降维到k维空间中。 PCA具有以下几个应用和优点: 1. 数据降维:通过PCA可以将高维数据降低到低维空间,减少特征数量,同时保留了原始数据中最重要的信息。 2. 去除冗余信息:PCA可以去除原始数据中的冗余信息,提取出最相关的特征。 3. 数据可视化:PCA可以将高维数据映射到二维或三维空间中,便于可视化观察和分析。 4. 数据预处理:PCA可以在机器学习任务前对数据进行预处理,减少噪声和冗余信息对模型的影响。 5. 特征选择:基于PCA的方差解释率,可以选择保留多少个主成分,从而选择最具代表性的特征。 需要注意的是,PCA是一种线性降维方法,对于非线性的数据分布效果可能不好。在这种情况下,可以考虑使用非线性降维方法,如核主成分分析(Kernel PCA)等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值