使用numpy和matplotlib进行主成分分析

时间:2013-08-16 13:55:48

标签: python numpy matplotlib

我有一个数组,代表这种表:

Grid Type

我试图通过PCA获得结果,其中元素(e1,e2,e3)彼此相似,其中关注点(c1,c2,c3)彼此相似。为了达到这个目的,我正在使用matplotlib和numpy:

var_grid = np.array(matrixAlternatives)
#Create the PCA node and train it
pcan = mdp.nodes.PCANode(output_dim=2, svd=True)
pcar = pcan.execute(var_grid)

fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(pcar[:, 0], pcar[:, 1], 'bo')
ax.plot(pcan.v[:,0], pcan.v[:,1], 'ro') #eigenvectors: pcan.v

但是我得到了这样的结果: myResult

正如您所看到的,关注点彼此太接近,这使得无法分析。

矩阵:

pcar
[[-54.84 -14.21],
 [-10.35  22.58],
 [ 65.19  -8.37]]

eigenvectors:
[[-0.05  0.96],
 [-0.54 -0.25],
 [ 0.84 -0.11]]

当我使用Idiogrid工具进行相同的分析时,结果会更好:

Idio

Elemnts与我的PCA处于相同的位置(只是镜像),但问题太多了。他们的价值观:

con_1 0.19 0.98,con_2 0.98 -0.19,con_3 -1.00 0.00

ele_1 0.87 -0.53,ele_2 0.22 0.80,ele_3 -1.09 -0.27

你觉得我做错了什么?

0 个答案:

没有答案