1

我在Python中使用sklearn来做主成分分析。使用PCA计算原始数据集和转换后的数据之间的数据丢失

我的意图之一是生成一个4分量模型,另一个模型8,并使用inverse_transform与原始数据进行比较。

的代码是这样的:

pca4 = PCA(n_components=4) 
pca4.fit(parkinsonData) 
scores4=pca.transform(parkinsonData) 
reconstruct4=pca.inverse_transform(scores4) 

要计算原始数据和重建我做的区别:

differenceMatrix=parkinsonData-reconstruct4 

现在我有分歧,但我想计算数据丢失了尊重原始数据集。要做到这一点,我想计算原始数据集的每个元素与重建的元素之间的差异的平均值2。

在上一条语句中,我计算原始数据集和重构数据集中每个元素之间的差异,但现在我必须计算功效。我不知道该怎么做,因为当我使用时:

power=differenceMatrix** 

我得到一个错误:这个矩阵不是方形的。

为了解决这个我用

np.power(differenceMatrix,differenceMatrix) 

它的工作原理,但有些元素是NAN。我明白这是由于缺少方形。

任何人都知道如何解决这个问题,并使用PCA计算原始数据集和变换数据之间的数据丢失?

谢谢。

回答

2

坊(我想这就是你的意思与“搭载2”)的矩阵中的每个元素,使用:

np.square(differenceMatrix) 

此作品元素方面,并且不限制你方形矩阵。矩阵中的NaN在输出中作为NaN返回。

+0

这是解决方案。 谢谢@acidtobi – Maik