주성분 분석이 비선형 데이터 취급할 수 없다고 이상하게?

1 주성분 분석은 선형 수법?



세상적으로는 「비선형 데이터를 취급할 때는 주성분 분석에서는 안된다」라고 하는 것이 그대로 시세가 되고 있다. 그러나 Unsupervised Feature Extraction Applied to Bioinformatics 이라는 제목의 책을 ​​작년 출판해, 바이오인포매틱스에 주성분 분석을 이용한 해석의 논문을 가득 내고 있는 저로서는 「생명 현상이 비선형 데이터의 가장 큰 것은 아닐까?」라고 하는 생각이 있어 , 내심, 망설이는 생각이 있다. 주성분 분석이 비선형 데이터 해석에 적합하지 않다면, 왜 나는 한 잔 논문을 쓸 수 있었는가? 그래서, 여기서는 간단한 예로 「주성분 분석이 비선형 데이터에 약하다」라고 하는 것은 일종의 「미신」인 것을 주장하고 싶다.

2 엔의 주성분 분석



우선 원을 생각하자. 구체적으로 $x_{i1} =\cos\left ( 2\pi\frac{i}{N}\right)\in\mathbb{R}^N$,$x_{i2} =\sin\left ( 2\pi\frac{i}{N}\right)\in\mathbb{R}^N$, 같은 것을 생각한다.

circle.R
N<-100
theta <- seq(0,2*pi,length=100)
x <- cbind(cos(theta),sin(theta))
plot(x) 


이런 느낌이다. 여기서 점 $i_1$과 점 $i_2$의 유클리드 거리 행렬 $d_{i_1 i_2} =\sqrt{\sum_{j=1}^2 (x_{i_1j} -x_{i_2j})^2}\in\mathbb{R}^{N\times N}$를 생각하고 특이값 분해를 적용해 봅시다.

SVD.R
D <- data.matrix(dist(x))
SVD<- svd(D)
plot(SVD$u[,2:3])


그건 재미있어? 원이 재현되었습니다. 거리에 고쳐진 단계에서 「비선형 데이터」가 되어 버렸기 때문에, 원은 재현되지 않는 것이 아니었던 것일까요?
아니, 이것은 유클리드 거리이기 때문입니까? 제곱 매우 제곱근이니까 결국, 거의 선형의 의존성이니까. 그렇네요, 그럼, $d^2_{ij}$를 특이값 ​​분해해 봅시다!

SVD2.R
SVD2 <- svd(D^2)
plot(SVD2$u[,2:3])


네. 역시 원이 재현되고 있습니다. 주성분 분석은 비선형 데이터를 다룰 수 없다는 것은 거짓말이었습니까?

아니, 이것이 원처럼 보이기 때문입니까? 좀 더 복잡하다면 안 되니?

3 정규 분포에 따른 난수의 주성분 분석



그렇네요, 그럼, 100개의 정규 난수를 늘어놓고, 유클리드 거리 행렬을 만들어 제곱하고 나서 특이값 분해를 해 봅시다. 과연 여기까지 하면 안되는 것은 아닌가?

normal.R
set.seed(0)
ran <- matrix(rnorm(200),ncol=2)
SVD0 <- svd(ran)
D2 <- data.matrix(dist(ran))
SVD3 <- svd(D2^2)
plot(SVD0$u[,1:2])
points(SVD3$u[,2],-SVD3$u[,3],col=2) 



검정이 원래 데이터, 빨강이 「유클리드 거리 행렬을 만들어 제곱하고 나서 특이값 분해」의 결과입니다. 훌륭하게 재현하고 있습니까?

그래서 "주성분 분석이 비선형 데이터를 다룰 수 없다"는 것은 미신이라는 것을 잘 알았지요?

고마워요!

좋은 웹페이지 즐겨찾기