在数据挖掘中,一个常见的问题就是特征选择或特征提取,理论上我们要选择与原始数据空间相同的维数。但是为了简化运算,设计一种变换使得数据集由维数较少的“有效”特征来表示。找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。
关键词:特征选择,降维
下表为我国各地区普通高等教育发展评价表,在此我们选取了10个指标来评价30个省市他们的普通高等教育发展。请分析主要成分并计算主成分综合得分。
(1)、矩阵的特征值和特征向量
若A为n阶实矩阵,如果存在实数λ与n维非零列向量X,使得AX=λX,则称λ是矩阵A的特征值,X是对应于特征值λ的特征向量。
(2)、协方差矩阵
协方差矩阵的每个元素是各个向量元素之间的协方差。假设X是以n个标量随机变量组成的列向量,并且μk是其第k个元素的期望值,即μk=E[Xk],协方差矩阵然后被定义为:
(3)、标准差
标准差,在概率统计中最常使用作为统计分布程度上的测量。标准差定义是总体各单位标准值与其平均数离差平方的算术平均数的平方根。它反映组内个体间的离散程度。标准差公式如下:
设有m条n维数据。
(1) 将原始数据按列组成n行m列矩阵X;
(2) 对数据进行标准化处理,使得X的每一列数据均值为零,标准差为1,得到矩阵Y;
(3) 求出协方差矩阵C=YTY/(n-1);
(4) 求出协方差矩阵的特征值及对应的特征向量;
(5) 将特征向量按对应特征值的从大到小依次从左到右按列组成矩阵,取前k列组成矩阵P;
(6) Z= YP即为降维到k维后的数据,也就是想要得到的主成分数据。
由于本题中数据量比较大,因此所有结果都由matlab求得。
(1)将原始数据数据组成30行10列的矩阵X;
(2)将X的每一列(代表一个属性字段)进行标准化处理,使其均值为零,标准差为1,得到矩阵Y;
(3)求出协方差矩阵C=YTY/(m-1);
(4)求出协方差矩阵的特征值及对应的特征向量,将特征向量做标准化处理,并将特征向量按特征值的从大到小依次从左到右按列组成矩阵。得到的特征值矩阵为:
得到的特征值向量矩阵为:
计算特征值的贡献率:
(λ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
得到的我国各地区普通高等教育发展综合评价如下表所示:
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