原始数据的主成分分析
加载示例数据集。
负载哈尔德
成分数据有4个变量的13个观察值。
找出成分数据的主成分。
多项式系数= pca(成分)
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 0.0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.309 -0.1085 0.4684 0.4844
的行多项式系数
包含四个成分变量的系数,其列对应四个主成分。
当数据集中存在缺失值时,找出主成分系数。
加载示例数据集。
负载进口- 85
数据矩阵X
在柱状体13个的连续变量为3〜15:轴距,长度,宽度,高度,遏制重量,发动机尺寸,内孔,冲程,压缩比,马力,峰值转速,城市-MPG,和公路-MPG。变量缸径与冲程以行缺少四个值56至59,并且变量马力和峰转速以行131和132缺失两个值。
执行主成分分析。
多项式系数= pca (X (:, 3:15));
默认情况下,主成分分析
执行由指定的操作“行”,“完成”
名称-值对的论点。此选项删除观察值南
计算前值。行南
重新插入分数
和tsquared
对应位置,即第56到59、131和132行。
使用“成对”
进行主成分分析。
多项式系数= pca (X (:, 3:15),“行”,“成对”);
在这种情况下,主成分分析
计算(我,j)元素的协方差矩阵使用的行不南
列中的值我或j的X
。注意,得到的协方差矩阵可能不是正的。此选项适用于算法主成分分析
采用的是特征值分解。当你不指定算法,因为在这个例子中,主成分分析
其设置为'EIG'
。如果您需要“圣言”
作为算法,与“成对”
选项,然后主成分分析
返回一条警告消息,将算法设置为'EIG'
和仍在继续。
如果你使用“行”,“所有”
名称-值对的论点,主成分分析
终止,因为此选项假设数据集中没有缺失值。
多项式系数= pca (X (:, 3:15),“行”,“所有”);
使用PCA(线180)的原始数据包含同时“行”选项被设置为“所有”的NaN缺失值误差。请考虑使用“完整的”或成对”选项来代替。
在进行主成分分析时,使用反变量方差作为权重。
加载示例数据集。
负载哈尔德
以各成分方差的倒数作为变权进行主成分分析。
[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 = inv(diag(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.0000 -0.0000 -0.0000 1.0000 0.0000 0.0000 -0.0000 0.0000 1.0000
当数据中有缺失值时,使用交替最小二乘(ALS)算法找到主成分。
加载示例数据。
负载哈尔德
成分数据有4个变量的13个观察值。
利用ALS算法进行主成分分析,并显示各成分系数。
[多项式系数,分数,潜伏,tsquared解释]= pca(成分);多项式系数
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 0.0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.309 -0.1085 0.4684 0.4844
随机引入缺失值。
Y =配料;RNG(“默认”);%,持续重现IX =随机(“互可操作性框架”,0,1,大小(Y))<0.30;Y(ⅸ)= NaN的
y =13×47 26 6 1的NaN 29 15 52楠楠8 20 11 31的NaN 47 7 52 6 33 55的NaN楠楠的NaN 71的NaN 6 1 31 44的NaN 2楠楠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 52.0000 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 = 9.1336 e-16
这个值很小。它表明,如果你使用的结果主成分分析
与“行”,“完成”
当没有丢失数据时以及如果使用主成分分析
与'算法', 'ALS'
名称 - 值时存在缺失的数据对参数是彼此接近的。
使用执行主成分分析“行”,“完成”
参数,并显示组件系数。
[coeff2 score2,潜伏,tsquared,解释说,mu2] = pca (y,…“行”,“完成”);coeff2
coeff2 =4×30.2054 0.8587 0.0492 0.6694 0.3720 0.5510 0.1474 -0.3513 -0.5187 0.6986 -0.0298 0.6518
在这种情况下,主成分分析
删除缺少值的行y
只有四行没有缺失值。主成分分析
只返回三个主要组成部分。你不能使用“行”,“配对”
选项,因为协方差矩阵不是正半定和主成分分析
返回错误消息。
查找找到了完整的数据,并使用列表删除缺失值数据的系数之间的角度(当“行”,“完成”
)。
子空间(系数_(:,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.0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.309 -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 -6.4615 30.0000 -19.1538 3.2308 22.0000 3.5385 7.8462 -3.7692 -10.0000 3.5385 -17.1538 -3.7692 17.0000 -0.4615 3.8462 -5.7692 3.0000 3.5385 6.8462 -2.7692 -8.0000 -4.4615 22.8462 5.2308 -24.0000 -6.4615 -17.1538 10.2308 14.0000 -5.4615 5.8462 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平方统计值。
加载示例数据集。
负载哈尔德
成分数据有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平方值。
tsq丢弃= tsquared - tsqreduce
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:轴距,长度,宽度,高度,遏制重量,发动机尺寸,内孔,冲程,压缩比,马力,峰值转速,城市-MPG,和公路-MPG。
查找百分比变化通过这些变量的主成分解释。
[多项式系数,分数,潜伏,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应用到另一个数据集。当你有一个训练数据集和机器学习模型的测试数据集此过程是非常有用的。例如,您可以通过使用PCA预处理训练数据集,然后训练的典范。要使用测试数据集测试训练的模型,您需要申请从训练数据的测试数据集获得的PCA转化。
这个例子还描述了如何生成C/ c++代码。因为主成分分析
万博1manbetx支持代码生成,您可以生成使用训练数据集和应用PCA的测试数据集执行PCA代码。然后部署的代码的装置。在这个工作流程,你必须通过训练数据,它可以是具有相当规模。要保存在设备上的内存,可以单独训练和预测。使用主成分分析
,并将PCA应用于设备上生成的代码中的新数据。
生成C / C ++代码需要MATLAB®编码器™。
对新数据应用PCA
通过使用加载的数据集到一个表readtable
。数据集在文件中CreditRating_Historical.dat
,其中包含历史信用评级数据。
creditrating = readtable (“CreditRating_Historical.dat”);企业资信(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:100,:);XTrain = X(101:结束,:);YTest = Y(1:100);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%以上的可变性。通过使用a程序查找解释至少95%可变性所需的组件数量而
循环。
sum_explained = 0;idx = 0;而sum_explained < 95 idx = idx + 1;sum_explained = sum_explained + explained(idx);结束IDX
IDX = 2
使用前两个部分训练的分类树。
scoreTrain95 = scoreTrain(:,1:IDX);MDL = fitctree(scoreTrain95,YTrain);
mdl
是ClassificationTree
模型。
为了使用测试集的训练模型,需要使用从训练数据集得到的主成分分析对测试数据集进行转换,通过减法得到测试数据集的主成分得分μ
从XTest
和乘以多项式系数
。只有前两个分量的分数是必要的,所以使用前两个系数多项式系数(:1:idx)
。
scoreTest95 = (XTest-mu) *多项式系数(:1:idx);
通过训练模型mdl
并设定变换后的测试数据scoreTest
到预测
函数来预测测试集的评分。
YTest_predicted =预测(MDL,scoreTest95);
生成代码
生成代码,将PCA应用于数据,并使用经过训练的模型预测评分。注意,生成C/ c++代码需要MATLAB®Coder™。
将分类模型保存到文件中myMdl.mat
通过使用saveLearnerForCoder
。
saveLearnerForCoder (mdl'myMdl');
定义一个入口点函数myPCAPredict
接受测试数据集(XTest
)和PCA信息(多项式系数
和μ
)和测试数据的返回的额定值。
添加% # codegen
指向函数签名之后的入口函数的编译器指令(或pragma),表示您打算为MATLAB算法生成代码。添加这个指令将指导MATLAB代码分析器帮助您诊断和修复在代码生成过程中可能导致错误的违规。
类型myPCAPredict%显示myPCAPredict.m的内容
使用PCA进行数据转换scoreTest = bsxfun(@ -,XTest,mu)*coeff;% Load training classification model mdl = loadLearnerForCoder('myMdl');%使用已加载模型标签的预测评分=预测(mdl,scoreTest);
myPCAPredict
将主成分分析应用于新数据多项式系数
和μ
,然后使用预测转换后的数据的收视率。这样一来,你不通过训练数据,它可以是具有相当规模。
注意:如果您单击位于此页面的右上部分的按钮,打开在MATLAB®这个例子中,然后打开MATLAB®的示例文件夹中。此文件夹包含入口点函数文件。
使用以下命令生成代码代码生成
。由于C和C ++的静态类型语言,你必须在编译时确定的入口点函数的所有变量的性质。要指定的数据类型和详细的输入数组大小,传递,通过使用表示与特定的数据类型和阵列尺寸的设定值的MATLAB®表达arg游戏
选择。如果在编译时观察的数量是未知的,您也可以通过使用将输入指定为可变大小coder.typeof
。有关详细信息,请参见为代码生成指定可变大小的参数。
代码生成myPCAPredictarg游戏{coder.typeof (XTest[正无穷,6],[1,0]),多项式系数(:,1:idx),μ}
代码生成
生成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 app来执行PCA和训练一个模型,以及如何根据训练好的模型生成C/ c++代码来预测新数据的标签。
X
- - - - - -输入数据针对其计算主成分的输入数据,指定为n——- - - - - -p矩阵。行X
对应观察值和列对应变量。
数据类型:单
|双
的可选逗号分隔对名称,值
参数。名称
参数名和价值
为对应值。名称
必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家
。
“算法”、“eig”、“集中”,假的,‘行’,‘所有’,‘NumComponents’, 3
该指定主成分分析
使用特征值分解算法,而不是中心数据,使用所有的意见,并仅返回前三个主成分。
“算法”
- - - - - -主成分算法“圣言”
(默认)|'EIG'
|“als”
主成分算法主成分分析
用于执行主成分分析,指定为逗号分隔对所组成“算法”
下面的一个。
价值 | 描述 |
---|---|
“圣言” |
默认。奇异值分解(SVD)的X 。 |
'EIG' |
协方差矩阵的特征值分解(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”
- - - - - -系数的初值系数矩阵的初始值多项式系数
,指定为逗号分隔的对,由“Coeff0”
和一个p——- - - - - -k矩阵,其中p变量的数量,和k为要求的主成分数量。
只能在以下情况下使用此名称-值对“算法”
是“als”
。
数据类型:单
|双
“Score0”
- - - - - -对于分数初始值为得分矩阵初始值分数
,指定为逗号分隔的对,由“Score0”
和一个n——- - - - - -k矩阵,其中n观察的次数是多少k为要求的主成分数量。
只能在以下情况下使用此名称-值对“算法”
是“als”
。
数据类型:单
|双
“选项”
- - - - - -对于迭代选项迭代的选项,指定为逗号分隔的对,由“选项”
以及由statset
函数。主成分分析
使用选项结构中的以下字段。
字段名 | 描述 |
---|---|
“显示” |
显示输出电平。的选择是“关闭” ,“最后一次” ,“通路” 。 |
“麦克斯特” |
允许的最大步骤数。默认值是1000。不像在优化设置中,达到麦克斯特 值视为收敛。 |
'TolFun' |
给出代价函数的终止容忍度的正数。默认值是1e-6。 |
'TolX' |
在渐冻人算法中,给出了左右因子矩阵中元素的相对变化的收敛阈值。默认值是1e-6。 |
只能在以下情况下使用此名称-值对“算法”
是“als”
。
您可以更改这些字段的值并在主成分分析
使用“选项”
名称-值对的论点。
例子:选择= statset( 'PCA');opt.MaxIter = 2000;系数_ = PCA(X, '选项',选择);
数据类型:结构体
霍特林T-方统计是从数据集的中心的每个观测多元距离的统计度量。
即使请求的组件数量少于变量的数量,主成分分析
使用所有主成分来计算t平方统计量(在全空间计算)。如果你想在缩减或丢弃的空间中得到t平方统计量,请执行下列操作之一:
对于简化空间中的t平方统计量,使用泰姬陵(得分,得分)
。
对于丢弃空间中的t平方统计量,首先使用[多项式系数,分数,潜伏,tsquared] = pca (X, NumComponents, k,…)
,使用简化空间计算t平方统计量tsqreduced =泰姬陵(得分,得分)
,然后取差值:tsquared
-tsqreduced
。
自由度,d,等于n- 1,如果数据居中和n否则,地点:
n没有的行数是多少南
■如果您使用“行”,“完成”
。
n没有的行数是多少南
具有最大行数的列对中的s南
■如果您使用“行”,“配对”
。
注意,当使用可变权重时,系数矩阵不是标准正交的。假设调用了您使用的可变权重向量varwei
和主分量系数矢量主成分分析
返回的wcoeff
。然后你可以使用变换计算标准正交系数诊断接头(sqrt (varwei)) * wcoeff
。
[1] Jolliffe, i.t。主成分分析。第2版,Springer,2002。
Krzanowski, w。多元分析原理。牛津大学出版社,1988。
[3] Seber, g.a.f。多变量的观察。威利,1984年。
杰克逊,j.e.。用户指南,以主成分。Wiley出版社,1988年。
《EM算法的PCA和SPCA》。1997年神经信息处理系统进展会议的会议记录。第10卷(NIPS 1997),美国麻州剑桥:麻省理工学院出版社,1998年,第626-632页。
[6] Ilin, A.和T. Raiko。“存在缺失值时主成分分析的实用方法。”j·马赫。学习。Res。。第11卷,2010年8月,1957-2000页。
此函数支持内存不足数据的高数万博1manbetx组,但有一些限制。
主成分分析
通过计算协方差矩阵和使用内存中直接工作tall数组pcacov
函数的主分量计算。
万博1manbetx支持的语法有:
多项式系数= pca (X)
[多项式系数,分数,潜伏]= pca (X)
[系数_,得分,潜,解释] = PCA(X)
[多项式系数,分数,潜伏,tsquared] = pca (X)
[多项式系数,分数,潜伏,tsquared解释]= pca (X)
不支持名称-值对参数。万博1manbetx
有关更多信息,请参见用于内存不足数据的高数组(MATLAB)。
用法说明和限制:
什么时候“算法”
是“als”
中,“显示”
对于价值“选项”
将被忽略。
的值“权重”
和“VariableWeights”
名称-值对参数必须为实。
该值“经济”
名称 - 值对参数必须是一个编译时间常数。例如,使用“经济”,假
生成的代码中的名称-值对参数,包括{coder.Constant(经济),coder.Constant (false)}
在arg游戏
的价值代码生成
。
名称-值对参数中的名称必须是编译时常量。
生成的代码总是返回第五个输出解释
作为列向量。
生成的代码总是返回第六个输出μ
作为行向量。
如果μ
是空的,主成分分析
返回μ
作为一个1×0的数组。主成分分析
不转换μ
到0逐0空数组。
生成的代码不处理输入矩阵X
,所有南
值是特殊情况。输出尺寸与相应的有限投入是相称的。
为了在将生成的代码部署到的设备上节省内存,可以将训练(从输入数据构造PCA组件)和预测(执行PCA转换)分开。在MATLAB中构造主成分分析组件®。然后,定义,使用主分量系数进行PCA转化的入口点函数(多项式系数
)及估计平均数(μ
),为的输出主成分分析
。最后,为入口点函数生成代码。例如,请参阅应用PCA到新的数据和生成的C / C ++代码。
您点击了对应于以下MATLAB命令的链接:
通过在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择网站:
选择最佳的网站性能的中国网站(在中国或英文)。其他MathWorks的国家网站都没有从您的位置访问进行了优化。