terça-feira, 15 de março de 2016

Recuperação dos Dados Originais PCA

Hoje, fiz a recuperação dos dados originais a partir dos dados finais do PCA. Mas antes de tudo acho importante explicar o processo de recuperação dos dados originais.

O passo final para chegar nos dados finais do PCA é dados da seguinte forma:

FinalData = RowFeatureVector x RowZeroMeanData

Onde RowFeatureVector é a matriz com os eigenvectors e RowZeroMeanData é a matriz transposta dos dados depois de ter a média subtraída. Para recuperar essa matriz transposta dos dados com a média subtraída devemos fazer:

RowZeroMeanData = RowFeatureVector^-1 x  FinalData

Onde RowFeatureVector^-1  é a matriz inversa de RowFeatureVector.

Logo, para recuperar os dados originais, o procedimento é o seguinte:

RowOriginalData = (RowFeatureVector^-1 x  FinalData) + OriginalMean

Esse é o processo para recuperação dos dados originais. Se reduzirmos a dimensionalidade, obviamente, quando os dados são reconstruídos perderemos alguma informação devido a redução de dimensionalidade. Como no meu caso eu não reduzi a dimensionalidade, meu resultado tem que ser igual aos dados originais, caso contrário, meus cálculos estão incorretos. O resultado que obtive foi:

Dados originais do Dataset ISIS:

5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
4.6,3.1,1.5,0.2,Iris-setosa
5.0,3.6,1.4,0.2,Iris-setosa
5.4,3.9,1.7,0.4,Iris-setosa
4.6,3.4,1.4,0.3,Iris-setosa
5.0,3.4,1.5,0.2,Iris-setosa
4.4,2.9,1.4,0.2,Iris-setosa
4.9,3.1,1.5,0.1,Iris-setosa
5.4,3.7,1.5,0.2,Iris-setosa
4.8,3.4,1.6,0.2,Iris-setosa
4.8,3.0,1.4,0.1,Iris-setosa
4.3,3.0,1.1,0.1,Iris-setosa
5.8,4.0,1.2,0.2,Iris-setosa
5.7,4.4,1.5,0.4,Iris-setosa
5.4,3.9,1.3,0.4,Iris-setosa
5.1,3.5,1.4,0.3,Iris-setosa
5.7,3.8,1.7,0.3,Iris-setosa
5.1,3.8,1.5,0.3,Iris-setosa
5.4,3.4,1.7,0.2,Iris-setosa
5.1,3.7,1.5,0.4,Iris-setosa
4.6,3.6,1.0,0.2,Iris-setosa
5.1,3.3,1.7,0.5,Iris-setosa
4.8,3.4,1.9,0.2,Iris-setosa
.
.
.
5.9,3.0,5.1,1.8,Iris-virginica



Dados originais recuperados do PCA sem as classes:

5.1 3.5 1.4 0.20000000000000007 
4.9 3.0 1.4 0.19999999999999996 
4.7 3.2 1.2999999999999994 0.19999999999999984 
4.6 3.1 1.4999999999999996 0.19999999999999973 
5.0 3.6 1.4 0.19999999999999996 
5.4 3.9 1.7000000000000002 0.40000000000000013 
4.6 3.4 1.4 0.30000000000000004 
5.0 3.4 1.4999999999999996 0.19999999999999996 
4.4 2.9 1.4 0.19999999999999973 
4.9 3.1 1.5000000000000004 0.09999999999999987 
5.4 3.7 1.5 0.19999999999999973 
4.8 3.4 1.6000000000000005 0.19999999999999984 
4.8 3.0 1.4000000000000004 0.10000000000000031 
4.300000000000001 3.0 1.1 0.09999999999999987 
5.8 4.0 1.2000000000000006 0.19999999999999984 
5.7 4.4 1.5 0.3999999999999999 
5.4 3.9 1.2999999999999998 0.40000000000000013 
5.1 3.5 1.4 0.30000000000000027 
5.7 3.8 1.7000000000000006 0.30000000000000016 
5.1 3.8 1.4999999999999996 0.29999999999999993 
5.4 3.4 1.7000000000000006 0.20000000000000007 
5.1 3.7 1.5 0.3999999999999999 
4.6 3.6 1.0 0.19999999999999996 
5.1 3.3 1.7000000000000002 0.5 
4.8 3.4 1.9000000000000004 0.19999999999999984 
.
.
.
5.9 3.0 5.1 1.8 


Como se pode observar, os dados foram recuperados corretamente, apenas com algumas diferenças no arrendondamento.

Nenhum comentário:

Postar um comentário