关于pca降维后如何获得降维数据,想要降维后转成原始数据的
= princomp(data);如很多资料所说,这里主要看latent的贡献率,当贡献率大于90,即可。
然后score进就是降维后的数据,coef是特征值。
我的问题来了。
我的数据是这样的
0.473385880000000 0.132990077000000 0.595601595000000 0.271031457000000 0.00305840700000000
0.413886895000000 0.128654107000000 0.530385614000000 0.242902435000000 0.00264521200000000
0.415110959000000 0.130397166000000 0.522016097000000 0.229478549000000 0.00252292400000000
0.356224166000000 0.176539327000000 0.465276538000000 0.217994868000000 0.00231652500000000
0.364917114000000 0.175691546000000 0.476725241000000 0.223553578000000 0.00228710700000000
0.359385570000000 0.474872497000000 0.514548579000000 0.342507296000000 0.00331809000000000
0.362506763000000 0.506998151000000 0.542536253000000 0.354579963000000 0.00332248000000000
0.338539105000000 0.109359036000000 0.399189705000000 0.141768211000000 0.000769311000000000
0.303366789000000 0.0892933450000000 0.363138740000000 0.123966306000000 0.000655926000000000
0.486670333000000 0.216830411000000 0.572578575000000 0.207685528000000 0.00100159400000000
0.482856515000000 0.184537967000000 0.559623719000000 0.204820448000000 0.000987869000000000
0.403733634000000 0.291913250000000 0.485656443000000 0.181147377000000 0.000800856000000000
0.320295399000000 0.245833304000000 0.419054666000000 0.178492119000000 0.000818635000000000
0.353562094000000 0.900229638000000 0.489607925000000 0.290763300000000 0.00128621500000000
0.494852431000000 0.287490613000000 0.564993991000000 0.153814736000000 0.000410202000000000
0.136785534000000 0.0899611970000000 0.158816942000000 0.0454037580000000 0.000126449000000000
0.519717338000000 0.208734937000000 0.577772593000000 0.131158337000000 0.000294624000000000
0.511106943000000 0.270892991000000 0.572202427000000 0.152190384000000 0.000366745000000000
0.277140549000000 0.164898608000000 0.317250349000000 0.0840630190000000 0.000188073000000000
0.425351697000000 0.251184883000000 0.486667573000000 0.123069319000000 0.000269355000000000
这是归一化的数据。列数为特征值,行数为样本点。我的样本点中包含了3种类别(前7行一种,中7行一种,后6行一种),我的目的是 单纯 降低特征值的数据,然后用于分类3种类别。得到的大于95的贡献率后的数据如下 即score
-0.0498005878382795 0.181290750037749 0.0687523513008498
-0.0847402504607942 0.0955416487332162 0.0648434011864072
-0.0888554380398786 0.0879037772291203 0.0515882484877412
-0.0705079577626601 -0.00482035270241594 0.0507046239608557
-0.0658805891483421 0.00971994053882724 0.0530171540722969
0.251526807446804 -0.0427704175543043 0.0918172274783548
0.291783392077489 -0.0297192858752534 0.0952731318747872
-0.172204918430228 -0.0524672922723372 0.00239997870142880
-0.208664986531809 -0.0961399447862672 0.00333962561801626
0.00527480115830238 0.137642722519226 -0.0137444055471721
-0.0288875196500456 0.135983803137538 -0.00787128315475194
0.0357414113275537 -0.00256710689255424 -0.0269446579726253
-0.0335098084378811 -0.0873953386573305 0.0110118870365045
0.621290459072686 -0.205082142549744 -0.0536979659675355
0.0541487667554126 0.106982097775410 -0.0817903830866058
-0.300053047485941 -0.355124998957744 -0.0117191449858876
-0.0186320803648816 0.152681941444766 -0.0923631683911109
0.0420831968855103 0.127222395077863 -0.0853644156621162
-0.164776881901398 -0.174349979163889 -0.0420332344405473
-0.0153347686716183 0.0154677829181232 -0.0772189705088884
可以看出剩下3维数据 即可保证贡献率,但是问题来了,我原来的数据有明显的3种类别区分度, 但pca后剩下的这些数据则完全看不出有任何的三种类别区分度。
我想知道是不是不能直接用score?那么怎么还原这三列呢?我后续想用svm做分类的。
初学者 还望大家多多见谅我的无知。我不是搞数学的,我搞机械的,matlab只是一个工具,我不想去弄清一个算法什么的,因为没那么多时间,就相当于你平时吃饭 ,你还要搞清楚这菜是怎么种出来的一样,凡是不是说一味的去追求原理,机械有机械的任务,原理这东西是数学家的事吧。我希望大牛们能告诉我一种明确的答复,之前问过的东西,大牛们都是启发式答复,我也是自己一点点去查了。。但是大牛们 我搞机械设计的,我真没时间去整这数学原理的分析。。matlab只是整个设备过程中的一小步,恳请大神们能让我节省一些时间,感激不尽啊。
各位论坛的坛友们,难道没人懂这个么? 写错模块了,请在算法编程模块咨询! {:{39}:} 猫头鹰先生 发表于 2015-1-22 14:01
写错模块了,请在算法编程模块咨询!
啊 谢谢 我一直在这个板块混没去过别的。。。
页:
[1]