PCA主成分分析

主成分分析

摘要

在数据挖掘中,一个常见的问题就是特征选择或特征提取,理论上我们要选择与原始数据空间相同的维数。但是为了简化运算,设计一种变换使得数据集由维数较少的“有效”特征来表示。找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。

关键词:特征选择,降维

1.问题描述

下表为我国各地区普通高等教育发展评价表,在此我们选取了10个指标来评价30个省市他们的普通高等教育发展。请分析主要成分并计算主成分综合得分。

PCA主成分分析_第1张图片

2.基本术语解释及基本理论阐述

(1)、矩阵的特征值和特征向量

若A为n阶实矩阵,如果存在实数λ与n维非零列向量X,使得AX=λX,则称λ是矩阵A的特征值,X是对应于特征值λ的特征向量。

(2)、协方差矩阵

协方差矩阵的每个元素是各个向量元素之间的协方差。假设X是以n个标量随机变量组成的列向量,并且μk是其第k个元素的期望值,即μk=E[Xk],协方差矩阵然后被定义为:

PCA主成分分析_第2张图片

(3)、标准差

标准差,在概率统计中最常使用作为统计分布程度上的测量。标准差定义是总体各单位标准值与其平均数离差平方的算术平均数的平方根。它反映组内个体间的离散程度。标准差公式如下:


3.数据降维的基本方法简述

设有m条n维数据。

(1)   将原始数据按列组成n行m列矩阵X;

(2)   对数据进行标准化处理,使得X的每一列数据均值为零,标准差为1,得到矩阵Y;

(3)   求出协方差矩阵C=YTY/(n-1);

(4)   求出协方差矩阵的特征值及对应的特征向量;

(5)   将特征向量按对应特征值的从大到小依次从左到右按列组成矩阵,取前k列组成矩阵P;

(6)   Z= YP即为降维到k维后的数据,也就是想要得到的主成分数据。

4.实验数据和结果

由于本题中数据量比较大,因此所有结果都由matlab求得。

(1)将原始数据数据组成30行10列的矩阵X;

PCA主成分分析_第3张图片

(2)将X的每一列(代表一个属性字段)进行标准化处理,使其均值为零,标准差为1,得到矩阵Y;

PCA主成分分析_第4张图片

(3)求出协方差矩阵C=YTY/(m-1)

PCA主成分分析_第5张图片

(4)求出协方差矩阵的特征值及对应的特征向量,将特征向量做标准化处理,并将特征向量按特征值的从大到小依次从左到右按列组成矩阵。得到的特征值矩阵为:

PCA主成分分析_第6张图片

得到的特征值向量矩阵为:

PCA主成分分析_第7张图片

计算特征值的贡献率:

(λ1+λ2+λ3+λ4)/  特征值之和=98.1%

因此我们可以用特征向量矩阵M的前4列特征向量组成矩阵P对原始数据进行降维处理。

(5)Z= YP即为降维到4维后的数据,也就是想要得到的主成分数据。

Z=YP=[Y1Y2 Y3 Y4 Y5 Y6 Y7Y8 Y9 Y10] *[P1P2 P3P4]=[Z1 Z2 Z3 Z4]

(6)分别以四个主成分的贡献率为权重,计算主成分综合得分:

四个主成分的贡献率分别为:

α1=λ1/特征值之和=0.75

α2=λ2/特征值之和=0.16

α3=λ3/特征值之和=0.054

α4=λ4/特征值之和=0.021

计算主成分综合得分,即我国各城市的综合评价:

S=α1* Z1+α2*Z2+α3*Z3+α4*Z4

得到的我国各地区普通高等教育发展综合评价如下表所示:

PCA主成分分析_第8张图片

matlab 程序如下:

X=[
5.96    310    461    1557    931    319    44.36    2615    2.2        13631;
3.39    234    308    1035    498    161    35.02    3052    0.9        12665;
2.35    157    229    713        295    109    38.4    3031    0.86    9385;
1.35    81    111    364        50    58    30.45    2699    1.22    7881;
1.5        88    128    421        144    58    34.3    2808    0.54    7733;
1.67    86    120    370        153    58    33.53    2215    0.76    7480;
1.17    63    93    296        117    44    35.22    2528    0.58    8570;
1.05    67    92    297        115    43    32.89    2835    0.66    7262;
0.95    64    94    287        102    39    31.54    3008    0.39    7786;
0.69    39    71    205        61    24    34.5    2988    0.37    11355;
0.56    40    57    177        61    23    32.62    3149    0.55    7693;
0.57    58    64    181        57    22    32.95    3202    0.28    6805;
0.71    42    62    190        66    26    28.13    2657    0.73    7282;
0.74    42    61    194        61    24    33.06    2618    0.47    6477;
0.86    42    71    204        66    26    29.94    2363    0.25    7704;
1.29    47    73    265        114    46    25.93    2060    0.37    5719;
1.04    53    71    218        63    26    29.01    2099    0.29    7106;
0.85    53    65    218        76    30    25.63    2555    0.43    5580;
0.81    43    66    188        61    23    29.82    2313    0.31    5704;
0.59    35    47    146        46    20    32.83    2488    0.33    5628;
0.66    36    40    130        44    19    28.55    1974    0.48    9106;
0.77    43    63    194        67    23    28.81    2515    0.34    4085;
0.7        33    51    165        47    18    27.34    2344    0.28    7928;
0.84    43    48    171        65    29    27.65    2032    0.32    5581;
1.69    26    45    137        75    33    12.1    810           1    14199;
0.55    32    46    130        44    17    28.41    2341    0.3        5714;
0.6        28    43    129        39    17    31.93    2146    0.24    5139;
1.39    48    62    208        77    34    22.7    1500    0.42    5377;
0.64    23    32    93        37    16    28.12    1469    0.34    5415;
1.48    38    46    151        63    30    17.87    1024    0.38    7368;
];%原始数据
%A = X - repmat(mean(X),30,1);
%M=repmat(mean(X),30,1);
A=zscore(X);
C=(A'*A)/29;
X=cov(A);
[e,lamda1]=eig(C);
P=e(:,10:-1:11-4);
Z=A*P;
B=[0.94;0.054;0.011;0.00011];
S=Z*B;


参考文献;

http://blog.csdn.net/Lu597203933/article/details/41544547

http://www.cnblogs.com/wl142857/p/3220421.html


你可能感兴趣的:(数据挖掘)