빅 데이터의 첫 번째 단계 (


21

하루에 수십억 건의 관측치로 거대한 데이터 세트를 분석한다고 가정합니다. 각 관측치에는 수 천 개의 희소하고 중복되는 수치 및 범주 형 변수가 있습니다. 회귀 문제 하나, 불균형 이진 분류 문제 하나 및 "어떤 예측 변수가 가장 중요한지 알아내는 작업"이 있다고 가정하겠습니다. 문제에 접근하는 방법에 대한 내 생각은 다음과 같습니다.

다음과 같은 때까지 데이터의 점진적으로 더 크고 더 큰 (무작위) 서브 샘플에 일부 예측 모델을 맞 춥니 다.

  1. 모델의 적합 및 교차 검증은 계산이 어려워집니다 (예 : 랩톱에서 무리하게 느려짐, R에 메모리 부족 등). 또는

  2. 교육 및 테스트 RMSE 또는 정밀도 / 리콜 값이 안정화됩니다.

훈련 및 테스트 오류가 안정화되지 않은 경우 (1.) 더 간단한 모델을 사용하거나 모델의 멀티 코어 또는 멀티 노드 버전을 구현하고 처음부터 다시 시작하십시오.

훈련 및 시험 오류가 안정된 경우 (2.) :

  • 경우 (에 즉, 난 여전히 실행할 수있는 알고리즘 아직 너무 큰 아니에요으로), 기능 공간을 확장하거나 더 복잡한 모델을 사용하고 처음부터 다시 시작하여 성능을 개선하려고합니다.X s u b s e t에스에스이자형엑스에스에스이자형

  • 경우 는 '큰'및 상기 분석을 실행하는 것은 비용이 많이 들고, 가변 중요성과 끝을 분석한다.에스에스이자형

내가 좋아하는 패키지를 사용하려면 biglm, speedglm, multicore, 및 ffR의 처음과 나중에 필요에 따라 더 복잡한 알고리즘 및 / 또는 (EC2)에 다중 노드를 사용합니다.

이것이 합리적인 접근 방식처럼 들립니까? 그렇다면 특별한 조언이나 제안이 있습니까? 그렇지 않은 경우이 크기의 데이터 세트 대신 무엇을 시도 하시겠습니까?


1
그것은 합리적인 접근법처럼 들립니다. youtube.com/watch?v=X9YVSDWQokQ 와 비슷한 접근 방식에 대한 이야기를 찾았습니다 .
alfa

2
jmlr.csail.mit.edu/proceedings/papers/v7/miller09/miller09.pdf 도움이 될 수 있습니다. 수학에 대한 자세한 내용은 여기 : ms.unimelb.edu.au/~millerh/papers/gencor_JCGS.pdf
dcl

@ dcl : 감사합니다-아이디어는 계산이 저렴하고 비선형 변수 선택 방법으로 병렬화가 잘됩니다 (단일 변수 임에도 불구하고). 코딩이 빠르고 간단하기 때문에 시도해 볼 수 있습니다. 원래이 멋진 알고리즘 ( code.google.com/p/rf-ace) 을 사용할 생각이었습니다 .
잠금 오프

@alfa :이 아이디어가 정말 마음에 듭니다! 데이터의 더 큰 하위 집합에 대한 순차적 테스트를 사용하여 최악의 성능을 발휘하는 메타 매개 변수를 순차적으로 제거 이것은 상당히 올라 가야합니다. 감사! ps 여기에 대화의 종이 버전이 있습니다 : biglearn.org/files/papers/biglearn2011_submission_2.pdf
잠금 해제

답변:


2

이 크기의 데이터 집합에 대한 회귀 및 분류에 대한 온라인 방법을 확인해야합니다. 이러한 접근 방식을 사용하면 전체 데이터 세트를 메모리에로드하지 않고도 사용할 수 있습니다.

Vowpal Wabbit (VW)도 확인하십시오.

https://github.com/JohnLangford/vowpal_wabbit/wiki

핵심 온라인 방법을 사용하므로이 크기의 데이터 세트를 처리 할 수 ​​있어야합니다. 회귀 및 분류를 수행 할 수 있으며 희소 형식을 지원합니다. 또한 VW에서 벌칙 화 된 버전 (예 : 올가미 유형 회귀 / 분류)을 수행하여 모델의 정확도를 향상시킬 수 있습니다.


2

Hadoop과 RMR (R에서 Map Reduce의 특정 패키지)을 사용하는 것이 좋습니다. 이 전략을 사용하면 저렴한 구성으로 공동 컴퓨터에서 대용량 데이터 세트를 실행할 수 있습니다 (아마도 2 시간 내에 Hadoop 및 RMR (RHadoop)가 설치되어 실행 중임).

실제로 컴퓨터가 두 대 이상인 경우 클러스터를 생성하여 처리 시간을 줄일 수 있습니다.

내 제안을 뒷받침하는 몇 가지 링크를 제공합니다.

  • 링크 는 단일 노드 클러스터 (하나의 컴퓨터)에 Hadoop을 설치하기위한 자습서로 연결 됩니다.
  • 링크 와이 링크 는 Hadoop 클러스터에 RMR을 설치하는 방법을 보여줍니다.
  • 그리고 마지막으로, 여기 당신은 RHadoop을 이용하여 로지스틱 회귀 분석의 예를 찾을 수 있습니다.

따라서 제 조언은 데이터가 방대한 경우 이러한 지침을 따르는 것이 좋습니다.


0

이것은 답변보다 더 많은 의견이지만 의견으로 게시 할 수는 없습니다 (50 담당자 필요).

데이터 세트에서 PCA를 사용하려고 했습니까? 변수 공간을 줄이고 회귀 모형에서 변수를 제외 할 수있는 방향을 찾는 데 도움이됩니다. 그렇게하면 모델을 더 쉽게 계산할 수 있습니다. 범주 형 변수와 함께 PCA를 사용하는 것에 대한 흥미로운 토론을 찾을 수 있습니다. 주성분 분석을 연속 및 범주 형 변수가 혼합 된 데이터 세트에 적용 할 수 있습니까?

또한 여러 가지 이유로 R을 사용한다고 생각하지만 (R도 사용) SAS 또는 STATA와 같은 소프트웨어를 사용하는 것이 더 쉬울 수 있습니다. 빅 데이터에서 성능이 향상되며 멀티 코어 및 병렬 컴퓨팅을 처리 할 필요가 없습니다.

마지막으로 데이터 세트에서 가능한 한 많은 행을 사용하는 것이 합리적인지 생각하십시오. 이것은 모집단 데이터 집합, 준 집합 데이터 집합 또는 샘플링 된 데이터 집합입니까? 전체 데이터를 사용하는 것보다 데이터 세트에서 샘플링을 잘 수행하면 더 나은 결과를 얻을 수 있습니다. 이 게시물을 살펴보십시오. '빅 데이터'시점에서 샘플링이 관련이 있습니까?

이것이 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.