하루에 수십억 건의 관측치로 거대한 데이터 세트를 분석한다고 가정합니다. 각 관측치에는 수 천 개의 희소하고 중복되는 수치 및 범주 형 변수가 있습니다. 회귀 문제 하나, 불균형 이진 분류 문제 하나 및 "어떤 예측 변수가 가장 중요한지 알아내는 작업"이 있다고 가정하겠습니다. 문제에 접근하는 방법에 대한 내 생각은 다음과 같습니다.
다음과 같은 때까지 데이터의 점진적으로 더 크고 더 큰 (무작위) 서브 샘플에 일부 예측 모델을 맞 춥니 다.
모델의 적합 및 교차 검증은 계산이 어려워집니다 (예 : 랩톱에서 무리하게 느려짐, R에 메모리 부족 등). 또는
교육 및 테스트 RMSE 또는 정밀도 / 리콜 값이 안정화됩니다.
훈련 및 테스트 오류가 안정화되지 않은 경우 (1.) 더 간단한 모델을 사용하거나 모델의 멀티 코어 또는 멀티 노드 버전을 구현하고 처음부터 다시 시작하십시오.
훈련 및 시험 오류가 안정된 경우 (2.) :
경우 (에 즉, 난 여전히 실행할 수있는 알고리즘 아직 너무 큰 아니에요으로), 기능 공간을 확장하거나 더 복잡한 모델을 사용하고 처음부터 다시 시작하여 성능을 개선하려고합니다.X s u b s e t
경우 는 '큰'및 상기 분석을 실행하는 것은 비용이 많이 들고, 가변 중요성과 끝을 분석한다.
내가 좋아하는 패키지를 사용하려면 biglm
, speedglm
, multicore
, 및 ff
R의 처음과 나중에 필요에 따라 더 복잡한 알고리즘 및 / 또는 (EC2)에 다중 노드를 사용합니다.
이것이 합리적인 접근 방식처럼 들립니까? 그렇다면 특별한 조언이나 제안이 있습니까? 그렇지 않은 경우이 크기의 데이터 세트 대신 무엇을 시도 하시겠습니까?