이 질문은feature selection
절차와 관련이 있으며, 기능이 큰 행렬이있는 절차이며 빠른 속도와 원유 속도 feature selection
random forest
또는 boosting
classifier
을 사용할 것이므로 각 기능 쌍과 응답 사이의 바깥 쪽 제품과 correlation
을 측정하면됩니다.대형 행렬과 벡터의 각 열 사이의 상관 관계가 메모리와 시간이 효율적으로 경쟁합니다.
지형지 물의 수는 ~ 60,000이며 응답 수는 ~ 2,200,000입니다. 이것에 대해 갈 수있는 가장 빠른 방법 아마 무제한 메모리 감안할 때
은 열 기능의 모든 쌍의 외부 제품은 어디 matrix
를 생성하고 응답에 대한 그 matrix
의 cor
을 사용하는 것입니다. 작은 치수 예를 들어 :
set.seed(1)
feature.mat <- matrix(rnorm(2200*100),nrow=2200,ncol=100)
response.vec <- rnorm(2200)
#generate indices of all unique pairs of features and get the outer products:
feature.pairs <- t(combn(1:ncol(feature.mat),2))
feature.pairs.prod <- feature.mat[,feature.pairs[,1]]*feature.mat[,feature.pairs[,2]]
#compute the correlation coefficients
res <- cor(feature.pairs.prod,response.vec)
하지만 내 실제 크기 feature.pairs.prod
에 대한 것은 분명히 메모리에 저장 될 수 없다 1799970000에 의해 2,200,000입니다.
그럼 내 질문은 합리적인 계산 시간에 모든 상관 관계를 얻는 것이 가능한지 여부입니다.
나는 아마도 메모리에 맞지 다음 한 번에 사이cor
및
response.vec
하나를 수행 덩어리에
feature.pairs.prod
를 분해하는 것이 가장 빠른하지만 자동으로
R
어떤 차원에서 테스트하는 방법을 잘 모르겠어요 것이라고 생각했다
I 이 덩어리가 필요합니다.
다른 옵션 apply
에 외적을 계산한다 feature.pairs
위에 기능과 그 사이 response.vec
다음 cor
이다.
제안 사항?
을 그것은 가장 합리적인 해결책이 있다는 점에서 매우 유사 feature.pairs.prod 행렬을 청크 (chunk)로 분해하고 반복 해내는 첫 번째 제안. 그래도 feature.mat를 사용하여 시스템 자원에서 청크 크기를 파악하는 R 방법이 있습니까? – dan