【数学建模】数学建模算法学习其一(主成分分析法)

主成分分析法

简述

主成分分析中运用了多元统计分析中最重要的降维与分析评价方法,也就是为了去统计多变量的统计分析方法。主成分分析主要是为了希望用较少的变量去解释原来数据中大部分的差异。将我们手中许多相关性很高的变量转化成彼此相互独立或不相关的变量。通常是选出比原始变量个数少,能解释大部分数据的区别的几个新变量,即所谓主成分

数据压缩、消除冗余和数据噪音消除等领域都有广泛的应用,一般我们提到降维最容易想到的算法就是它。

计算步骤

  1. 对原始数据进行标准化处理
    【数学建模】数学建模算法学习其一(主成分分析法)_第1张图片其中在这里插入图片描述,即 x ˉ j , s j \bar{x}_j,s_j xˉj,sj为第 j j j个指标的样本均值和样本标准差

  2. 计算相关系数矩阵 R R R
    【数学建模】数学建模算法学习其一(主成分分析法)_第2张图片

  3. 计算特征值和特征向量
    特征值要由大到小排序

【数学建模】数学建模算法学习其一(主成分分析法)_第3张图片

  1. 选择合适的主成分,计算综合评价值
    【数学建模】数学建模算法学习其一(主成分分析法)_第4张图片
    【数学建模】数学建模算法学习其一(主成分分析法)_第5张图片

例:

【数学建模】数学建模算法学习其一(主成分分析法)_第6张图片
【数学建模】数学建模算法学习其一(主成分分析法)_第7张图片
【数学建模】数学建模算法学习其一(主成分分析法)_第8张图片
【数学建模】数学建模算法学习其一(主成分分析法)_第9张图片
【数学建模】数学建模算法学习其一(主成分分析法)_第10张图片
【数学建模】数学建模算法学习其一(主成分分析法)_第11张图片
代码如下

clc, clear
gj = load("pjsj.txt"); %读取原始数据
gj = zscore(gj); %进行标准化
r = corrcoef(gj); % 计算相关系数矩阵
% 利用相关系数矩阵进行主成分分析,x列为r的特征向量,即主成分的系数
[x, y, 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); % 计算综合得分
[stf, ind] = sort(tf, 'descend');
stf = stf',. ind = ind'

应用

主成分分析法主要可以用在对于含多个指标的一个评估模型上,通过计算主成分来对某种事物进行评价.

  • 比如说我有很多指标,然后我现在需要对于某一个事物进行评价,但因为这么多指标我们很难去进行一个综合的评估,如果只是三四个指标我们其实很容易就能进行一个评判.但往往现实中的问题并不是那么简单,所以利用主成分分析法就能够帮助我们评估一个含多个指标的问题,我们只要挑出几个主要的指标,就能够对问题进行评价了
  • 主成分分析法主要在数据上可以提取出局部的关键部分,能够忽略掉一些不必要的数据,减少计算量.
  • 通过

你可能感兴趣的:(数学建模,机器学习,数据分析,算法,数据挖掘)