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