SVD / PCA에 대한“정규화”변수


17

우리가 가정 측정 변수 (A_1, A_2, \ ldots 단락, a_N을) , 우리는 수 할 M> N , 측정을 한 후 수행 할 특이 값 분해를 에 대한 가장 높은 분산의 축을 찾을 수있는 결과에 M의 포인트 의 N 차원 공간. ( 참고 : a_i 의 평균을 이미 뺀 것으로 가정 하여 모든 i에 대해 \ langle a_i \ rangle = 0 이라고 가정하십시오 .)N(a1,a2,,aN)M>NMNaiai=0i

이제 변수 중 하나 이상이 나머지 특성 크기와 상당히 다른 것으로 가정합니다. 예를 들어 a110-100 범위의 값을 가질 10100수 있지만 나머지는 0.11 입니다. 이것은 a1 의 축을 향한 가장 높은 분산 축을 매우 많이 기울 입니다.

크기의 차이는 불행히도 측정 단위의 불행한 선택 때문일 수 있습니다 (예 : 킬로미터 대 미터와 같은 물리적 데이터에 대해 이야기하는 경우). 실제로 다른 변수는 완전히 다른 치수 (예 : 무게 대 부피)를 가질 수 있습니다. "비교 가능한"단위를 선택하는 확실한 방법이 없을 수도 있습니다.

질문 : 이 문제를 피하기 위해 데이터를 정규화하는 표준 / 일반적인 방법이 있는지 알고 싶습니다. 나는 새로운 목적을 제시하기보다는 a1aN 대해 비슷한 크기를 만드는 표준 기술에 더 관심 이 있습니다.

편집 : 하나의 가능성은 표준 편차 또는 유사한 것으로 각 변수를 정규화하는 것입니다. 그러나 다음과 같은 문제가 나타납니다. 데이터를 N 차원 공간 에서 점 구름으로 해석해 봅시다 . 이 포인트 클라우드는 회전 할 수 있으며,이 유형의 정규화는 회전에 따라 SVD 이후에 다른 최종 결과를 제공합니다. (가장 극단적 인 경우 주축과 주축을 정렬하기 위해 데이터를 정확하게 회전한다고 상상해보십시오.)

나는 이것을 할 수있는 회전 불변의 방법은 없을 것으로 기대하지만, 누군가가 특히이 결과에 대한 해석에서주의 사항에 관한 문헌 에서이 문제에 대한 토론을 지적 할 수 있다면 고맙겠습니다.


4
각 변수는 적절한 측정 단위로 기록되므로 문제 자체는 일반적으로 회전 불변성이 아닙니다. 예를 들어, 은 피트, 마이크론, 리터 등일 수 있습니다. 모든 단위가 동일하더라도 변수가 다른 종류의 물건을 측정하더라도 변수의 양은 변수의 특성에 따라 달라질 수 있습니다. 다시 한번, 이것은 회전 불변이 아닙니다. 따라서 가이던스 원칙 또는 고려 사항으로 회전 불균형을 포기해야합니다. a 2 a 312
whuber

답변:


11

세 가지 일반적인 정규화는 센터링, 스케일링 및 표준화입니다.

하자 임의의 변수가 될.X

중심은

xi=xix¯.

결과 는 입니다.xx¯=0

스케일링은

xi=xi(ixi2).

결과 는 입니다.xixi2=1

표준화는 중심화 후 스케일링입니다. 결과 는 및 입니다.xx¯=0나는엑스나는2=1


"SS"를 정의 할 수 있습니까?
Szabolcs

제곱의 합. 제곱 Xi의 합
ttnphns 2016 년

분산이 아닌 제곱의 합을 1로 설정 한 이유는 실수 값이 주축을 따라 표준 편차에 해당하기 때문입니다 (실수하지 않은 한)?
Szabolcs

질문에 대한 편집 내용도 참조하십시오.
Szabolcs

@Szabolcs, 실제로 편집 지점을 놓칠 수 있습니다. 그러나 PCA (또는 SVD)는 회전 자체입니다 (축의 직교 회전의 특수한 경우). 구름의 평행 이동 (중심과 같은) 또는 수축 / 확장 (축소와 같은)은이 회전의 결과에 영향을 미칩니다.
ttnphns

7

분산이 매우 다른 개별 변수를 갖는 것이 PCA에 문제가 될 수 있습니다. 특히이 차이가 다른 단위 또는 다른 물리적 차원으로 인한 경우에는 매우 옳습니다. 따라서 변수가 모두 동일한 물리적 수량, 동일한 단위 인 경우를 제외하고 공분산 행렬 대신 상관 행렬에 대해 PCA를 수행하는 것이 좋습니다. 여길 봐:

상관 행렬에서 PCA를 수행 하는 것은 분석 전에 모든 변수 를 표준화 한 다음 공분산 행렬에서 PCA를 수행하는 것과 같습니다 . 표준화는 각 변수를 중심으로 한 다음 표준 편차로 나누어서 모든 변수가 단위 분산이되도록합니다. 이것은 모든 장치를 비교할 수 있도록 편리한 "장치 변경"으로 볼 수 있습니다.

변수를 "정규화"하는 더 좋은 방법이 있는지 물어볼 수 있습니다. 예를 들어, 원시 분산이 아닌 강력한 분산 추정치로 나눌 수 있습니다. 이것은 다음 스레드에서 요청되었으며, 다음 논의를 참조하십시오 (확실한 대답이 없었음에도 불구하고).

마지막으로 표준 편차 (또는 이와 유사한 것)에 의한 정규화가 회전 불변성이 아니라고 걱정했습니다. 글쎄요, 그렇지 않습니다. 그러나 @whuber가 위의 주석에서 언급했듯이 회전 불변 방법은 없습니다 : 개별 변수의 단위 변경 은 회전 불변 연산이 아닙니다 ! 여기서 걱정할 것은 없습니다.


나는 PCA를 위해 그것을 얻는다. 그러나 단일 값 분해를 실행하기 전에 모든 종류의 정규화를 수행하는 것이 좋습니다?
hipoglucido 2014

4

PCA를 적용하기 전의 일반적인 기술은 샘플에서 평균을 빼는 것입니다. 그렇게하지 않으면 첫 번째 고유 벡터가 평균이됩니다. 나는 당신이 그것을했는지 여부를 확신하지 못하지만 그것에 대해 이야기하겠습니다. MATLAB 코드로 말하면 :

clear, clf
clc
%% Let us draw a line
scale = 1;
x = scale .* (1:0.25:5);
y = 1/2*x + 1;

%% and add some noise
y = y + rand(size(y));

%% plot and see
subplot(1,2,1), plot(x, y, '*k')
axis equal

%% Put the data in columns and see what SVD gives
A = [x;y];
[U, S, V] = svd(A);

hold on
plot([mean(x)-U(1,1)*S(1,1) mean(x)+U(1,1)*S(1,1)], ...
     [mean(y)-U(2,1)*S(1,1) mean(y)+U(2,1)*S(1,1)], ...
     ':k');
plot([mean(x)-U(1,2)*S(2,2) mean(x)+U(1,2)*S(2,2)], ...
     [mean(y)-U(2,2)*S(2,2) mean(y)+U(2,2)*S(2,2)], ...
     '-.k');
title('The left singular vectors found directly')

%% Now, subtract the mean and see its effect
A(1,:) = A(1,:) - mean(A(1,:));
A(2,:) = A(2,:) - mean(A(2,:));

[U, S, V] = svd(A);

subplot(1,2,2)
plot(x, y, '*k')
axis equal
hold on
plot([mean(x)-U(1,1)*S(1,1) mean(x)+U(1,1)*S(1,1)], ...
     [mean(y)-U(2,1)*S(1,1) mean(y)+U(2,1)*S(1,1)], ...
     ':k');
plot([mean(x)-U(1,2)*S(2,2) mean(x)+U(1,2)*S(2,2)], ...
     [mean(y)-U(2,2)*S(2,2) mean(y)+U(2,2)*S(2,2)], ...
     '-.k');
title('The left singular vectors found after subtracting mean')

그림에서 알 수 있듯이 (공) 분산을 더 잘 분석하려면 데이터에서 평균을 빼야한다고 생각합니다. 그런 다음 값은 10-100과 0.1-1 사이가 아니지만 평균은 모두 0입니다. 분산은 고유 값 (또는 특이 값의 제곱)으로 나타납니다. 발견 된 고유 벡터는 우리가 그렇지 않은 경우만큼 평균을 빼는 경우에 대한 차원의 스케일에 영향을받지 않습니다. 예를 들어, 나는 당신의 사건에 중요한 평균을 빼는 것을 알려주는 다음을 테스트하고 관찰했습니다. 따라서 문제는 분산이 아니라 변환 차이로 인해 발생할 수 있습니다.

% scale = 0.5, without subtracting mean
U =

-0.5504   -0.8349
-0.8349    0.5504


% scale = 0.5, with subtracting mean
U =

-0.8311   -0.5561
-0.5561    0.8311


% scale = 1, without subtracting mean
U =

-0.7327   -0.6806
-0.6806    0.7327

% scale = 1, with subtracting mean
U =

-0.8464   -0.5325
-0.5325    0.8464


% scale = 100, without subtracting mean
U =

-0.8930   -0.4501
-0.4501    0.8930


% scale = 100, with subtracting mean
U =

-0.8943   -0.4474
-0.4474    0.8943

여기에 이미지 설명을 입력하십시오


1
평균에서 이미 차감되었다는 질문에 언급 했어야합니다. 그에 따라 편집하겠습니다.
Szabolcs

1
각 변수를 표준 편차로 간단히 나눌 수 있지만 사람들이하는 다른 일이 있는지 궁금합니다. 예를 들어이 데이터 세트를 차원 공간 의 점 구름으로 생각할 수 있습니다 . 이 -d 공간 의 회전에 의존하지 않는 방식으로 할 수 있습니까? 표준 편차로 나누면 표준 편차를 취하는 축을 따라 문제가됩니다 (즉, 회전 불변성이 아님). 주축을 따라 수행하면 변수가 서로 관련이 없다고 생각합니다.
Szabolcs

1
나는 회전 불변의 방법이 없다는 것을 알고 있지만 적어도이 문제에 대한 토론을 읽고 싶습니다 ... 어떤 포인터라도 환영합니다. 참고 : 응용 통계 (linalg, prob 이론과 같은 수학 만 해당)에 대한 교육이 없으므로 진행 하면서이 물건을 배우고 있습니다.
Szabolcs

1
표본을 중심에 두지 않으면 (열에서 평균을 빼기) 첫 번째 고유 벡터는 일반적 으로 평균 벡터 가 아닙니다 .
whuber

-1 Downvoted.이 답변은 중심에 관한 것이지만 질문은 스케일링에 관한 것입니다. 또한 @whuber가 지적한 것처럼 첫 번째 고유 벡터가 반드시 수단의 벡터라는 주장은 틀렸다.
amoeba는 Reinstate Monica

-5

PCA의 데이터를 정규화하기 위해 다음 공식도 사용되었습니다.

SC=100엑스(엑스)최대(엑스)(엑스)

여기서 는 년의 국가 에 대한 해당 지표의 원시 값 이고 는 모든 연도 에 해당 지표에 대한 모든 국가의 모든 원시 값을 설명합니다.엑스엑스


7
국가 나 연도에 대해 누가 말했습니까?
Nick Stauner
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.