主成分分析
原始数据的主成分分析
语法
描述
例子
数据集的主成分
加载样例数据集。
负载哈尔德
成分数据对4个变量有13个观测值。
找出成分数据的主成分。
多项式系数= pca(成分)
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844
的行多项式系数
包含四个成分变量的系数,其列对应四个主成分。
存在缺失数据的PCA
当数据集中缺少值时,找出主成分系数。
加载样例数据集。
负载进口- 85
数据矩阵X
有13个连续变量列3至15:轴距,长度,宽度,高度,路沿重量,发动机尺寸,镗孔,冲程,压缩比,马力,峰值转速,城市每加仑,公路每加仑。变量bore和stroke在56行到59行中缺少4个值,变量马力和peak-rpm在131行和132行中缺少2个值。
执行主成分分析。
多项式系数= pca (X (:, 3:15));
默认情况下,主成分分析
控件指定的操作“行”,“完成”
名称-值对的论点。该选项删除观察南
值计算。行南
S被重新插入分数
而且tsquared
在相应的位置,即56到59行,131行和132行。
使用“成对”
进行主成分分析。
多项式系数= pca (X (:, 3:15),“行”,“成对”);
在这种情况下,主成分分析
计算(我,j)元素的协方差矩阵使用的行南
列中的值我或j的X
.注意,得到的协方差矩阵可能不是正定的。此选项适用于算法主成分分析
采用的是特征值分解。当你不指定算法时,就像在这个例子中,主成分分析
将它设置为“eig”
.如果您需要“圣言”
作为算法,用“成对”
选项,然后主成分分析
返回一个警告消息,将算法设置为“eig”
和仍在继续。
如果您使用“行”,“所有”
名称-值对的论点,主成分分析
终止,因为此选项假定数据集中不缺少值。
多项式系数= pca (X (:, 3:15),“行”,“所有”);
使用pca错误(第180行)当“Rows”选项设置为“all”时,原始数据包含NaN缺失值。考虑使用“complete”或“pairwise”选项。
加权主成分分析
在进行主成分分析时,使用逆变量方差作为权重。
加载样例数据集。
负载哈尔德
使用成分方差的逆作为变量权重执行主成分分析。
[wcoeff, ~,潜伏,~,解释]= pca(成分,“VariableWeights”,“方差”)
wcoeff =4×4-2.7998 2.9940 -3.9736 1.4180 -8.7743 -6.4411 4.8927 9.9863 2.5240 -3.8749 -4.0845 1.7196 9.1714 7.5529 3.2710 11.3273
潜在的=4×12.2357 1.5761 0.1866 0.0016
解释了=4×155.8926 39.4017 4.6652 0.0406
注意系数矩阵wcoeff
不是正交。
计算标准正交系数矩阵。
coefforth =诊断接头(std(成分))\ wcoeff
coefforth =4×4-0.4760 0.5090 -0.6755 0.2411 -0.5639 -0.4139 0.3144 0.6418 0.3941 -0.6050 -0.6377 0.2685 0.5479 0.4512 0.1954 0.6767
检验新系数矩阵的正交性,coefforth
.
coefforth * coefforth’
ans =4×41.0000 0.0000 -0.0000 0.0000 0.0000 1.0000 0.0000 0 -0.0000 0.0000 0.0000 0 -0.0000 0.0000
使用ALS对缺失数据进行PCA
当数据中缺少值时,使用交替最小二乘(ALS)算法查找主成分。
加载样例数据。
负载哈尔德
成分数据对4个变量有13个观测值。
使用ALS算法进行主成分分析并显示分量系数。
[多项式系数,分数,潜伏,tsquared解释]= pca(成分);多项式系数
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844
随机引入缺失的值。
y =成分;rng (“默认”);%的再现性第九=随机(“unif”0 1大小(y)) < 0.30;y (ix) = NaN
y =13×47 26 6 NaN 1 29 15 52 NaN NaN 8 20 11 31 NaN 47 7 52 6 33 NaN 55 NaN NaN NaN NaN 71 NaN 6 1 31 NaN 44 2 NaN NaN 22 21 47 4 26 ` `
大约30%的数据现在有缺失的值,用南
.
使用ALS算法进行主成分分析并显示分量系数。
[coeff1 score1,潜伏,tsquared,解释说,mu1] = pca (y,...“算法”,“als”);coeff1
coeff1 =4×4-0.0362 0.8215 -0.5252 0.2190 -0.6831 -0.0998 0.1828 0.6999 0.0169 0.5575 0.8215 -0.1185 0.7292 -0.0657 0.1261 0.6694
显示估计的平均值。
mu1
mu1 =1×48.9956 47.9088 9.0451 28.5515
重构观测数据。
T = score1*coeff1' + repmat(mu1,13,1)
t =13×47.0000 26.0000 6.0000 51.5250 1.0000 29.0000 15.0000 520.000 10.7819 53.0230 8.0000 20.0000 11.0000 31.0000 13.5500 47.0000 7.0000 52.0000 6.0000 33.0000 10.4818 55.0000 7.8328 17.9362 3.0982 71.0000 11.9491 6.0000 1.0000 31.0000 -0.5161 44.0000 2.0000 53.7914 5.7710 22.0000 21.0000 47.0000 4.0000 26.0000
ALS算法估计数据中缺失的值。
另一种比较结果的方法是找出由系数向量张成的两个空间之间的夹角。使用ALS找到完整数据和缺失值数据的系数之间的角度。
子空间(多项式系数,coeff1)
ans = 8.3261 e-16
这是一个很小的值。它表明如果您使用主成分分析
与“行”,“完成”
参数时,名称-值对参数主成分分析
与“算法”、“als”
当缺少数据时,名称-值对参数彼此接近。
进行主成分分析“行”,“完成”
名称-值对参数并显示分量系数。
[coeff2 score2,潜伏,tsquared,解释说,mu2] = pca (y,...“行”,“完成”);coeff2
coeff2 =4×3-0.2054 0.8587 0.0492 -0.6694 -0.3720 0.5510 0.1474 -0.3513 -0.5187 0.6986 -0.0298 0.6518
在这种情况下,主成分分析
删除缺少值的行和y
只有四行,没有缺失值。主成分分析
只返回三个主组件。您不能使用“行”,“成对”
选项,因为协方差矩阵不是正半定的主成分分析
返回一个错误消息。
使用列表删除(when)查找为完整数据和缺失值数据找到的系数之间的角度“行”,“完成”
).
子空间(多项式系数(:1:3),coeff2)
ans = 0.3576
两个空间之间的角度要大得多。这表明这两个结果是不同的。
显示估计的平均值。
mu2
mu2 =1×47.8889 46.9091 9.8750 29.6000
这里,均值就是样本均值y
.
重构观测数据。
score2 * coeff2’
ans =13×4南南南南-7.5162 -18.3545 4.0968 22.0056南南南南南南南南南南南南南南南南-0.5644 5.3213 -3.3432 3.6040南南南南南南南南南南南南南南南南南南南南南南南南南南南南12.8315 -0.1076 -6.3333 -3.7758
这表明删除包含南
值的工作效果不如ALS算法。当数据缺少太多值时,使用ALS更好。
主成分系数,分数和方差
求出主成分的系数、分数和方差。
加载样例数据集。
负载哈尔德
成分数据对4个变量有13个观测值。
找出成分数据的主成分系数、得分和各成分的方差。
[多项式系数,分数,潜伏]= pca(成分)
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844
分数=13×436.8218 -6.8709 -4.5909 0.3967 29.6073 4.6109 -2.2476 -0.3958 -12.9818 -4.2049 0.9022 -1.1261 23.7147 -6.6341 1.8547 -0.3786 -0.5532 -4.4617 -6.0874 0.1424 -10.8125 -3.6466 0.9130 -0.1350 -32.5882 8.9798 -1.6063 0.0818 22.6064 10.7259 3.2365 0.3243 -9.2626 8.9854 -0.0169 -0.5437 -3.2840 -14.1573 7.0465 0.3405
潜在的=4×1517.7969 67.4964 12.4054 0.2372
每一列的分数
对应一个主成分。这个向量,潜在的
,存储四个主成分的方差。
重构居中成分数据。
Xcentered =分数*多项式系数的
Xcentered =13×4-0.4615 -22.1538 -5.7692 30.000 -6.4615 -19.1538 3.2308 22.0000 3.5385 7.8462 -3.7692 -10.0000 3.5385 3.8462 -5.7692 3.0000 3.4615 3.8462 3.0000 3.5385 6.8462 -2.7692 3.0000 3.5385 6.8462 -2.7692 3.0000 3.5385 6.8462 -2.7692 3.0000 3.5385 6.8462 -2.7692 3.0000 3.5385 6.8462 6.0000 -4.4615 22.8462 5.308 -24.0000 -6.4615 -17.1538 10.2308 14.0000 -5.4615 5.8415 6.2308 -8.0000 13.5385 -1.1538 -7.7692 -4.0000
的新数据Xcentered
是通过从相应的列中减去列的平均数来将原始成分数据居中。
将每个变量的标准正交主成分系数和每个观察的主成分得分可视化在一个单一的图中。
biplot(多项式系数(:,1:2),“分数”分数(:1:2),“varlabels”, {“v_1”,“v_2”,“v_3”,“两者”});
在这个双标图中,所有四个变量都用一个矢量表示,矢量的方向和长度表示每个变量对图中两个主要成分的贡献。例如,在横轴上的第一主成分,第三和第四个变量的系数为正。因此,矢量 而且 直接进入剧情的右半部分。第一个主成分中最大的系数是第四个,对应于变量 .
第二个主成分,在纵轴上,变量的系数是负的 , , ,变量的系数为正 .
这个二维双线图还包括13个观测值的每个点,用坐标表示图中两个主要组成部分的每个观测值的得分。例如,靠近图左边缘的点的第一主成分得分最低。这些点按照最大分数值和最大系数长度进行缩放,因此只能从图中确定它们的相对位置。
t方统计
求霍特林的t平方统计值。
加载样例数据集。
负载哈尔德
成分数据对4个变量有13个观测值。
执行主成分分析并请求t平方值。
[多项式系数,分数,潜伏,tsquared] = pca(成分);tsquared
tsquared =13×15.6803 3.0758 6.0002 2.6198 3.3681 0.5668 3.4818 3.9794 2.6086 7.4818
只请求前两个主成分,并在请求主成分的约简空间中计算t方值。
[多项式系数,分数,潜伏,tsquared] = pca(成分,“NumComponents”2);tsquared
tsquared =13×15.6803 3.0758 6.0002 2.6198 3.3681 0.5668 3.4818 3.9794 2.6086 7.4818
注意,即使您指定了减少的组件空间,主成分分析
计算整个空间中的t平方值,使用所有四个分量。
约简空间中的t方值对应约简空间中的马氏距离。
tsqreduced =泰姬陵(得分,得分)
tsqreduced =13×13.3179 2.0079 0.5874 1.7382 0.2955 0.4228 3.2457 2.6914 1.3619 2.9903
取全空间的t方值与约简空间的马氏距离之差,计算废弃空间的t方值。
Tsqdiscarded = tsquared - tsqreduced
tsqdiscarded =13×12.3624 1.0679 5.4128 0.8816 3.0726 0.1440 0.2362 1.2880 1.2467 4.4915
由主成分解释的变异百分比
找出由主成分解释的变化百分比。在主成分空间中显示数据表示。
加载样例数据集。
负载进口- 85
数据矩阵X
有13个连续变量列3至15:轴距,长度,宽度,高度,路沿重量,发动机尺寸,镗孔,冲程,压缩比,马力,峰值转速,城市每加仑,公路每加仑。
找出由这些变量的主成分解释的可变性百分比。
[多项式系数,分数,潜伏,tsquared解释]= pca (X (:, 3:15));解释
解释了=13×164.3429 35.4484 0.1550 0.0379 0.0078 0.0048 0.0013 0.0011 0.0005 0.0002
前三个成分解释了99.95%的变异。
在前三个主成分的空间中可视化数据表示。
scatter3(分数(:1),分数(:,2),得分(:,3)轴平等的包含(第一主成分的) ylabel (第二主成分的) zlabel (第三主成分的)
数据显示沿第一主成分轴的变异性最大。这是第一个轴的所有可能选项中最大的可能方差。在第二轴的所有可能选项中,沿第二主成分轴的变异性最大。第三主成分轴的变异性第三大,明显小于沿第二主成分轴的变异性。第四个到第十三个主成分轴不值得研究,因为它们只解释了数据中所有可变性的0.05%。
要跳过任何输出,可以使用~
而是在相应的元素中。例如,如果您不想获取t方值,请指定
[多项式系数,分数,潜伏,~,解释]= pca (X (:, 3:15));
应用PCA分析新数据并生成C/ c++代码
找到一个数据集的主成分,并将主成分分析应用到另一个数据集。当您拥有机器学习模型的训练数据集和测试数据集时,此过程非常有用。例如,可以使用PCA对训练数据集进行预处理,然后对模型进行训练。要使用测试数据集测试训练过的模型,需要将从训练数据获得的PCA转换应用到测试数据集。
这个例子还描述了如何生成C/ c++代码。因为主成分分析
支持代码生成,您可以生成使用训练数据集执行PCA的代码,并将PCA应用到测试数据集。然后将代码部署到设备上。在此工作流中,您必须传递训练数据,这些数据可能相当大。为了节省设备内存,可以将训练和预测分开。使用主成分分析
在MATLAB®中,并应用PCA对设备上生成的代码中的新数据。
生成C/ c++代码需要MATLAB®Coder™。
应用PCA分析新数据
使用将数据集加载到表中readtable
.数据集在文件中CreditRating_Historical.dat
,其中包含历史信用评级数据。
creditrating = readtable (“CreditRating_Historical.dat”);creditrating (1:5,:)
ans =5×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级_____ _____ _____ _______ ________ _____ ________ _______ 62394 0.013 0.104 0.036 0.447 0.142 3 {'BB'} 48608 0.232 0.335 0.062 1.969 0.281 8 {'A'} 42444 0.311 0.367 0.074 1.935 0.366 1 {'A'} 48631 0.194 0.263 0.062 1.017 0.228 4 {'BBB'} 43768 0.121 0.413 0.057 3.647 0.466 12 {'AAA'}
第一列是每个观察结果的ID,最后一列是评分。指定第二至第七列为预测数据,并指定最后一列(评级
)作为回应。
X = table2array (creditrating (: 2:7));Y = creditrating.Rating;
使用前100个观察值作为测试数据,其余的作为训练数据。
XTest = X (1:10 0,);XTrain = X(101年:,);欧美= Y (1:10 0);YTrain = Y(101:结束);
找出训练数据集的主成分XTrain
.
[多项式系数,scoreTrain, ~, ~,解释说,μ)= pca (XTrain);
这段代码返回四个输出:多项式系数
,scoreTrain
,解释
,μ
.使用解释
(被解释的总方差的百分比)来找出解释至少95%的可变性所需的成分数量。使用多项式系数
(主成分系数)和μ
(估计的方法XTrain
)将主成分分析应用于测试数据集。使用scoreTrain
(主成分分数)而不是XTrain
当你训练模特的时候。
显示由主成分解释的变化百分比。
解释
解释了=6×158.2614 41.2606 0.3875 0.0632 0.0269 0.0005
前两个组成部分解释了95%以上的所有变化。找出能够解释至少95%可变性的成分数量。
idx =找到(cumsum(解释)> 95,1)
idx = 2
使用前两个组件训练分类树。
scoreTrain95 = scoreTrain (:, 1: idx);mdl = fitctree (scoreTrain95 YTrain);
mdl
是一个ClassificationTree
模型。
要将训练过的模型用于测试集,需要使用从训练数据集获得的PCA对测试数据集进行转换。通过减法得到测试数据集的主成分得分μ
从XTest
,乘以多项式系数
.只有前两个分量的分数是必要的,所以使用前两个系数多项式系数(:1:idx)
.
scoreTest95 = (XTest-mu) *多项式系数(:1:idx);
通过经过训练的模型mdl
和转换后的测试数据集scoreTest
到预测
函数预测测试集的评级。
scoreTest95 YTest_predicted =预测(mdl);
生成代码
生成将PCA应用于数据并使用训练过的模型预测评级的代码。注意,生成C/ c++代码需要MATLAB®Coder™。
将分类模型保存到文件中myMdl.mat
通过使用saveLearnerForCoder
.
saveLearnerForCoder (mdl“myMdl”);
定义一个名为myPCAPredict
它接受一个测试数据集(XTest
)和主成分分析资料(多项式系数
而且μ
)并返回测试数据的评级。
添加% # codegen
编译器指令(或pragma)添加到函数签名后的入口点函数,以表明您打算为MATLAB算法生成代码。添加此指令将指导MATLAB代码分析器帮助您诊断和修复代码生成过程中可能导致错误的违反。
函数标签= myPCAPredict (XTest、多项式系数μ)% # codegen%使用PCA转换数据scoreTest = bsxfun (@minus XTest,μ)*多项式系数;负载训练的分类模型mdl = loadLearnerForCoder (“myMdl”);%使用加载模型预测评级标签=预测(mdl scoreTest);
myPCAPredict
应用PCA对新数据进行分析多项式系数
而且μ
,然后利用转换后的数据预测评级。通过这种方式,您不会传递训练数据,这些数据可能非常大。
注意:如果您单击位于此页右上角部分的按钮,并在MATLAB®中打开此示例,那么MATLAB®将打开示例文件夹。这个文件夹包括入口点函数文件。
通过使用codegen
(MATLAB编码器).因为C和c++是静态类型语言,所以必须在编译时确定入口点函数中所有变量的属性。参数来指定数据类型和精确的输入数组大小,传递一个MATLAB®表达式,该表达式表示具有特定数据类型和数组大小的值集arg游戏
选择。如果在编译时不知道观察的数量,还可以使用coder.typeof
(MATLAB编码器).有关详细信息,请参见为代码生成指定可变大小的参数.
codegenmyPCAPredictarg游戏{coder.typeof (XTest[正无穷,6],[1,0]),多项式系数(:,1:idx),μ}
代码生成成功。
codegen
生成MEX函数myPCAPredict_mex
使用一个平台相关的扩展。
验证生成的代码。
YTest_predicted_mex = myPCAPredict_mex (XTest多项式系数(:1:idx),μ);isequal (YTest_predicted YTest_predicted_mex)
ans =逻辑1
isequal
返回逻辑1 (真正的
),这意味着所有的输入是相等的。这一比较证实了预测
的函数mdl
和myPCAPredict_mex
函数返回相同的评级。
有关代码生成的更多信息,请参见代码生成简介而且代码生成和分类学习应用程序.后者描述了如何使用Classification Learner应用程序执行PCA和训练模型,以及如何生成C/ c++代码,根据训练过的模型预测新数据的标签。
输入参数
X
- - - - - -输入数据
矩阵
输入用于计算主成分的数据,指定为n——- - - - - -p矩阵。行X
对应观察结果和列到变量。
数据类型:单
|双
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。
在R2021a之前,名称和值之间用逗号隔开,并括起来的名字
在报价。
例子:“算法”、“eig”、“集中”,假的,‘行’,‘所有’,‘NumComponents’,3
指定主成分分析
采用特征值分解算法,不将数据居中,使用所有观测值,只返回前三个主成分。
算法
- - - - - -主成分算法
“圣言”
(默认)|“eig”
|“als”
主成分算法主成分分析
用于执行主成分分析,指定为逗号分隔的对“算法”
下面是其中之一。
价值 | 描述 |
---|---|
“圣言” |
违约。的奇异值分解X . |
“eig” |
协方差矩阵的特征值分解。EIG算法比SVD算法更快,当观察数,n,超过变量的数量,p的条件数,但不太准确,因为协方差的条件数是的条件数的平方X . |
“als” |
交替最小二乘(ALS)算法。该算法找到了最佳秩-k近似通过分解 ALS旨在更好地处理缺失值。最好是成对删除( |
例子:“算法”、“eig”
为中心的
- - - - - -对中柱指示器
真正的
(默认)|假
列的定心指示器,指定为逗号分隔的一对,由“中心”
其中一个逻辑表达式。
价值 | 描述 |
---|---|
真正的 |
违约。 |
假 |
在这种情况下 |
例子:“集中”,假的
数据类型:逻辑
经济
- - - - - -经济规模产出指标
真正的
(默认)|假
指标为经济规模产出时自由度,d,小于变量个数,p,指定为逗号分隔的对,由“经济”
其中一个逻辑表达式。
价值 | 描述 |
---|---|
真正的 |
违约。 当变量数量较多时,此选项可以显著加快速度p要比d. |
假 |
|
注意,当d<p,分数(d + 1:: p)
而且潜在的(d + 1: p)
必然为零,而的列多项式系数(d + 1:: p)
定义正交的方向X
.
例子:“经济”,假的
数据类型:逻辑
NumComponents
- - - - - -要求的组件数量
数量的变量(默认)|标量整数
请求的组件数量,指定为逗号分隔的对,由“NumComponents”
一个标量整数k满足0 <k≤p,在那里p原始变量的个数在吗X
.当指定时,主成分分析
返回第一个k列多项式系数
而且分数
.
例子:“NumComponents”,3
数据类型:单
|双
行
- - - - - -采取的行动南
值
“完成”
(默认)|“成对”
|“所有”
采取的行动南
数据矩阵中的值X
,指定为逗号分隔的对,由“行”
下面是其中之一。
价值 | 描述 |
---|---|
“完成” |
违约。观察与 |
“成对” |
此选项仅适用于算法为 当您指定 注意,得到的协方差矩阵可能不是正定的。在这种情况下, |
“所有” |
|
例子:“行”,“成对”
权重
- - - - - -观察权重
的(默认)|行向量
观察权值,用逗号分隔的对表示“重量”
还有一个长度向量n包含所有积极的元素。
数据类型:单
|双
VariableWeights
- - - - - -变量权重
行向量|“方差”
变量权重,指定为逗号分隔的对,由“VariableWeights”
下面是其中之一。
价值 | 描述 |
---|---|
行向量 |
向量的长度p包含所有积极的元素。 |
“方差” |
变量权重是样本方差的倒数。如果你也分配权重的观察使用 如果 |
例子:“VariableWeights”、“方差”
数据类型:单
|双
|字符
|字符串
Coeff0
- - - - - -系数的初值
随机值矩阵(默认)|p——- - - - - -k矩阵
系数矩阵的初值多项式系数
,指定为逗号分隔的对,由“Coeff0”
和一个p——- - - - - -k矩阵,p变量的个数,和k是请求的主成分的数量。
请注意
您只能在以下情况使用此名称-值对“算法”
是“als”
.
数据类型:单
|双
Score0
- - - - - -分数的初始值
随机值矩阵(默认)|k——- - - - - -米矩阵
分数矩阵的初始值分数
,指定为逗号分隔的对,由“Score0”
和一个n——- - - - - -k矩阵,n观察的次数和k是请求的主成分的数量。
请注意
您只能在以下情况使用此名称-值对“算法”
是“als”
.
数据类型:单
|双
选项
- - - - - -选择迭代
结构
选项,指定为逗号分隔的对,由“选项”
和一个由statset
函数。主成分分析
在选项结构中使用以下字段。
字段名 | 描述 |
---|---|
“显示” |
显示输出的级别。的选择是“关闭” ,“最后一次” ,“通路” . |
“麦克斯特” |
允许的最大步数。默认值是1000。与优化设置不同的是,到达麦克斯特 值被视为收敛。 |
“TolFun” |
给出代价函数终止公差的正数。默认值是1e-6。 |
“TolX” |
给出ALS算法中左右因子矩阵L和R元素相对变化的收敛阈值的正数。默认值是1e-6。 |
请注意
您只能在以下情况使用此名称-值对“算法”
是“als”
.
您可以更改这些字段的值并在中指定新结构主成分分析
使用“选项”
名称-值对的论点。
例子:选择= statset (pca);opt.MaxIter = 2000;多项式系数= pca (X,“选项”,选择);
数据类型:结构体
输出参数
更多关于
霍特林的丁字尺统计
霍特林的t平方统计量是对每个观测数据到数据集中心的多元距离的统计度量。
即使你请求的组件比变量的数量少,主成分分析
使用所有主成分计算t平方统计量(在全空间中计算)。如果你想在缩减空间或丢弃空间中得到t平方统计量,请执行以下操作之一:
对于简化空间中的t平方统计量,使用
泰姬陵(得分,得分)
.对于废弃空间中的t平方统计量,首先用计算t平方统计量
[多项式系数,分数,潜伏,tsquared] = pca (X, NumComponents, k,…)
,计算约简空间中的t平方统计量tsqreduced =泰姬陵(得分,得分)
,然后取差值:tsquared
-tsqreduced
.
自由度
自由度,d等于n- 1,如果数据居中且n否则,地点:
n行数是没有的吗
南
S如果你用“行”,“完成”
.n行数是没有的吗
南
S在列对中,它的最大行数是南
S如果你用“行”,“成对”
.
变量权重
注意,当使用可变权重时,系数矩阵不是标准正交的。假设你使用的变权向量叫做varwei
和主成分系数向量主成分分析
返回的是wcoeff
.然后可以使用变换计算标准正交系数诊断接头(sqrt (varwei)) * wcoeff
.
算法
的主成分分析
函数强制使用符号约定,强制使用每列中大小最大的元素系数
是积极的。改变系数向量的符号并不改变它的意义。
选择功能
应用程序
运行主成分分析
在实时编辑器中交互,使用降低维数住编辑任务。
参考文献
[1]马萨诸塞州乔利夫市主成分分析.第二版,施普林格,2002年。
Krzanowski, W. J。多元分析原理.牛津大学出版社,1988年。
Seber, g.a.f。多变量的观察.威利,1984年。
[4] J. E.杰克逊主成分用户指南.威利,1988年。
[5] Roweis, S. < PCA和SPCA的EM算法>。《1997年神经信息处理系统进展会议论文集》.第10卷(NIPS 1997),美国马萨诸塞州剑桥:麻省理工学院出版社,1998年,第626-632页。
伊林,A.和T.莱科。缺失值情况下主成分分析的实用方法j·马赫。学习。Res。.第11卷,2010年8月,1957-2000页。
扩展功能
高大的数组
使用行数超过内存容量的数组进行计算。
此函数支持内存不足数据的高数组,但有一些限制。
主成分分析
通过计算协方差矩阵和使用内存直接与高数组工作pcacov
函数来计算主成分。支持的语法是:
多项式系数= pca (X)
[多项式系数,分数,潜伏]= pca (X)
[多项式系数,分数,潜伏,解释]= pca (X)
[多项式系数,分数,潜伏,tsquared] = pca (X)
[多项式系数,分数,潜伏,tsquared解释]= pca (X)
不支持名称-值对参数。
有关更多信息,请参见用于内存不足数据的高数组.
C / c++代码生成
使用MATLAB®Coder™生成C和c++代码。
使用注意事项和限制:
当
“算法”
是“als”
,“显示”
值“选项”
将被忽略。的值
“重量”
而且“VariableWeights”
名称-值对参数必须为实数。的值。
“经济”
名值对参数必须是编译时常量。例如,要使用“经济”,假的
生成的代码中的名称-值对参数,包括{coder.Constant(经济),coder.Constant (false)}
在arg游戏
的价值codegen
(MATLAB编码器).名称-值参数中的名称必须是编译时常量。
生成的代码总是返回第五个输出
解释
作为列向量。生成的代码总是返回第六个输出
μ
作为行向量。如果
μ
是空的,主成分分析
返回μ
作为一个1 × 0的数组。主成分分析
不转换μ
到一个0 × 0的空数组。生成的代码不处理输入矩阵
X
,所有南
值作为一个特例。输出尺寸与相应的有限输入相适应。为了在部署生成代码的设备上节省内存,可以将训练(从输入数据构建PCA组件)和预测(执行PCA转换)分开。在MATLAB中构造PCA分量®.然后,定义一个入口点函数,使用主成分系数(
多项式系数
)和估计平均数(μ
),为的输出主成分分析
.最后,生成入口点函数的代码。示例请参见应用PCA分析新数据并生成C/ c++代码.
GPU数组
通过使用并行计算工具箱™在图形处理单元(GPU)上运行来加速代码。
版本历史
介绍了R2012b
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。