2017-10-24 34 views
-1

행의 차원에서 정규화 할 수있는 간단한 코드가 있습니다.정규화 된 배열에서 원본 데이터를 얻는 방법

import numpy as np 
from sklearn import preprocessing 

X = np.asarray([[-1,2,1], 
       [4,1,2]], dtype=np.float) 

X_normalized = preprocessing.normalize(X, norm='l2') 

X- 정규화 된 X를 다시 변환 할 수 있습니까?

+0

왜 정상화 했습니까? 당신은 되돌릴 수없는 정보를 버렸습니다. – user2357112

+0

SVM을 연속 및 범주 속성이 모두있는 데이터 세트에 적용합니다. 나는 하나의 핫 인코더를 범주 형 데이터에 적용한 다음 샘플을 기반으로 모든 데이터를 표준화 할 것을 제안하는 문서를 따르고 있습니다. 그러나 나중에, 나는 원래 속성을 되 찾을 필요가있다. – user3104352

+1

X_normalized가 아닌 X를 다시 참조 할 수 없습니까? 벡터를 "눈에 띄지 않게"할 수는 없습니다. – James

답변

0

정규화 된 버전 이상에서 X를 복구 할 수 없습니다. 2 개 개의 다른 요소와 여러 데이터 세트의 사소한 경우, 각을 고려

[3, 4] 
[-18, 20] 
[0, 0.0001] 

같은 데이터 세트에이 정규화의 각 :

[-1, 1] 

를 매핑은 전단 사 함수되지 않습니다 : 그것은이다 다 대일. 따라서, 그것은 유일하게 역행 할 수 없습니다.

그러나 간단한 기술의 부부와 함께 원래의 설정을 복구 할 수 있습니다

  1. 가 (예 쉬운 것을) 그대로 설정 원본 데이터를 보관하십시오.
  2. 표준화 매개 변수를 저장하십시오 : 평균 및 표준 편차 (또는 제곱, 분산). 이것은 각 원본 요소를 정규화 된 요소로 변환하는 선형 방정식을 제공합니다. 그 방정식을 반전하는 것은 사소한 일입니다.