Machine learning 基于scikit学习的快速ICA重建误差分析

Machine learning 基于scikit学习的快速ICA重建误差分析,machine-learning,scikit-learn,pca,dimensionality-reduction,Machine Learning,Scikit Learn,Pca,Dimensionality Reduction,我试图在scikitLearn中使用fastICA过程。出于验证目的,我试图理解基于PCA和ICA的信号重建之间的区别 原始观测信号数为6,我尝试使用3个重建独立分量。问题是无论我使用什么标准,ICA和PCA都会导致相同的重建错误。有人能解释一下这里发生的事情吗 代码如下: pca = PCA(n_components=3) icamodel = FastICA(n_components=3,whiten=True) Data = TrainingDataDict[YearSpan][R

我试图在scikitLearn中使用
fastICA
过程。出于验证目的,我试图理解基于
PCA
ICA
的信号重建之间的区别

原始观测信号数为6,我尝试使用3个重建独立分量。问题是无论我使用什么标准,
ICA
PCA
都会导致相同的重建错误。有人能解释一下这里发生的事情吗

代码如下:

 pca = PCA(n_components=3)
 icamodel = FastICA(n_components=3,whiten=True)

 Data = TrainingDataDict[YearSpan][RiskFactorNames]

 PCR_Dict[YearSpan] = pd.DataFrame(pca.fit_transform(Data), 
                                   columns=['PC1','PC2','PC3'],index=Data.index)

 ICR_Dict[YearSpan] = pd.DataFrame(icamodel.fit_transform(Data), 
                                   columns=['IC1','IC2','IC3'],index=Data.index)

'------------------------Inverse Transform of the IC and PCs -----------'

 PCA_New_Data_Df = pd.DataFrame(pca.inverse_transform(PCR_Dict[YearSpan]),
                                   columns =['F1','F2','F3'],index = Data.index)

 ICA_New_Data_Df = pd.DataFrame(icamodel.inverse_transform(ICR_Dict[YearSpan]),
                                   columns =['F1','F2','F3'],index = Data.index)
下面是我测量重建误差的方法

'-----------reconstruction errors------------------'
 print 'PCA reconstruction error L2 norm:',np.sqrt((PCA_New_Data_Df - Data).apply(np.square).mean())

 print 'ICA reconstruction error L2 norm:',np.sqrt((ICA_New_Data_Df - Data).apply(np.square).mean())

 print 'PCA reconstruction error L1 norm:',(PCA_New_Data_Df - Data).apply(np.absolute).mean()

 print 'ICA reconstruction error L1 norm:',(ICA_New_Data_Df - Data).apply(np.absolute).mean()
以下是
PC
IC
s的尾部说明

PC Stats :  ('2003', '2005') 
       Kurtosis  Skewness
PCR_1 -0.001075 -0.101006
PCR_2  1.057140  0.316163
PCR_3  1.067471  0.047946 

IC Stats :  ('2003', '2005') 
       Kurtosis  Skewness
ICR_1 -0.221336 -0.204362
ICR_2  1.499278  0.433495
ICR_3  3.654237  0.072480 
以下是重建的结果

PCA reconstruction error L2 norm: 
SPTR        0.000601
SPTRMDCP    0.001503
RU20INTR    0.000788
LBUSTRUU    0.002311
LF98TRUU    0.001811
NDDUEAFE    0.000135
dtype: float64 

ICA reconstruction error L2 norm : 
SPTR        0.000601
SPTRMDCP    0.001503
RU20INTR    0.000788
LBUSTRUU    0.002311
LF98TRUU    0.001811
NDDUEAFE    0.000135

即使是
L1
规范也是相同的。我有点糊涂了

很抱歉回复太晚,我希望这个答案仍然可以帮助您

fastICA可以看作是白化(可以通过PCA实现)加上正交旋转(正交旋转使得估计的源尽可能非高斯)

正交旋转不会影响ICA解决方案的重建误差,因此PCA和ICA的重建误差相同

旋转PCA解决方案通常在心理学中使用(例如Varimax旋转)。然而,fastICA中的正交旋转矩阵是通过迭代程序(Aapo Hyvärinen的定点迭代方案)估计的