2013-07-24 2 views
4

치수가 (100000,1024) 인 매트릭스에서 미백을 수행하려고합니다. sklearn.decomposition의 PCA 또는 RandomizedPCA가이 크기의 문제를 처리 할 수 ​​있는지 여부를 결정해야합니다. 그렇지 않은 경우 사용할 수있는 최대 기능 수는 약 24 시간 만에 끝나지 만 여전히 완료됩니다. 구현이 병렬 처리되지 않습니다.이 무작위 PCA 작업이 끝나나요?

the documentation for sklearn.decomposition.PCA에 따르면 PCA 변환의 시간 복잡도는 n ~ n_samples ~ n_features를 가정 할 때 'O (n ** 3)'입니다. 하지만 그 표기법이 무엇인지 확신 할 수 없습니다.

RandomizedPCA은 아마 근사치이기 때문에 더 효율적이라고 생각하지만, 그 정도는 얼마인지 알지 못합니다. 문서의 시간 복잡성에 대해서는 아무 것도 없습니다.

참고로 (100000, 2)로 변환을 수행했으며 약 2 분이 걸렸습니다. 저는 약 1 시간 동안 (100000, 1024)의 변환 (PCA와 RandomizedPCA)을 시작했습니다. 나는 그들이 끝날 것인가를 발견하고 싶다. 그러나 만약 내가 할 수 없다면, 아직도 달리면 24 시간 후에 끝낼 것이다.

+1

~ 의미. 이 수식은 실제로 샘플 (또는 그 반대)보다 훨씬 적은 기능을 가진 RandomizedPCA를 사용하기 때문에 실제로는 거의 쓸모가 없습니다. 하나는 정확한 복잡성을 얻기 위해 의사가 언급 한 논문을 봐야합니다 (저는 머리 끝에서 그것을 꺼내기 위해 100 %가 아닙니다). – ogrisel

답변

3

실험을 통해 랜덤 화 된 PCA가 선형 적으로 커지고 1024 개 기능에 대해 한 시간 만에 마친 것으로 나타납니다.