딥 러닝 vs 그라디언트 부스팅 : 언제 무엇을 사용해야합니까?


30

큰 데이터 세트에 큰 데이터 문제가 있습니다 (예 : 5 천만 행 및 200 열 사용). 데이터 집합은 약 100 개의 숫자 열과 100 개의 범주 열 및 이진 클래스 문제를 나타내는 응답 열로 구성됩니다. 각 범주 열의 카디널리티는 50보다 작습니다.

딥 러닝 방법 또는 앙상블 트리 기반 방법 (예 : 그라디언트 부스팅, adaboost 또는 임의의 포리스트)을 수행해야하는지 여부를 미리 알고 싶습니다. 탐색 적 데이터 분석이나 다른 방법을 결정하는 데 도움이되는 다른 기술이 있습니까?


2
데이터 속성에 대한 좋은 직관이 없으면 옵션 (아마도 500,000 행)과 교차 유효성 검사를 탐색하게됩니다. 그러나 직관력을 얻는 데 도움이되는 시각화 또는 기타 분석이있을 수 있습니다.
닐 슬레이터

1
실제로 이번 주 실제 데이터에 대한 자체 연구를 위해 큰 모델 비교를 계획하고 있습니다. 결과를 약간 정리하고 여기에 게시하겠습니다. 또한 적어도 한 명의 CS 학생이 academia.edu/3526056/…
shadowtalker

1
@NeilSlater 나는 그 직관이 무엇을 할 수 있고 /해야하는지에 대한 답변을보고 싶습니다
shadowtalker

1
나는 아직도 당신의 원래 질문에 짧은 의견을 넣을만큼 충분한 평판을 가지고 있지 않으며 이것은 실제로 대답이 아닙니다. 어쨌든, 나는이 논문이이 이슈와 관련이 있다고 생각하고 싶다 : Fernández-Delgado, M., Cernadas, E., Barro, S., & Amorim, D. (2014). 실제 분류 문제를 해결하려면 수백 개의 분류 기가 필요합니까? 기계 학습 연구 저널, 15, 3133–3181. 원본 주소 dl.acm.org/citation.cfm?id=2697065
호세 마리아 마테오

탐색 적 데이터 분석이나 다른 방법을 결정하는 데 도움이되는 다른 기술이 있습니까? 일반적으로 '아니요 무료 점심 정리'는 이것을 증명합니다. 그러나 올바른 방향으로 안내 할 수있는 휴리스틱이 있습니다. 예 : scikit-learn.org/stable/tutorial/machine_learning_map/…
Simon

답변:


32

왜이 두 가지 접근 방식으로 자신을 제한합니까? 그들은 시원하기 때문에? 나는 항상 간단한 선형 분류기 \ 회귀로 시작합니다. 따라서이 경우 선형 SVM 또는 로지스틱 회귀 분석은 데이터 크기로 인해 희소성을 활용할 수있는 알고리즘 구현이 바람직합니다. 해당 데이터 세트에서 DL 알고리즘을 실행하는 데 시간이 오래 걸리며 일반적으로 데이터에 이미지 또는 텍스트와 같은 계층 구조가있는 전문가 문제에 대해서만 딥 러닝을 시도합니다. 많은 간단한 학습 문제로 인해 과잉이며, 배우는 데 많은 시간과 전문 지식이 필요하며 DL 알고리즘은 훈련 속도가 매우 느립니다. 또한 50M 개의 행이 있다고해서 좋은 결과를 얻기 위해 전체 데이터 세트를 사용해야한다는 의미는 아닙니다. 데이터에 따라 수십만 개의 행 또는 수백만 개의 샘플로 좋은 결과를 얻을 수 있습니다. 작은 샘플과 선형 분류기로 간단하게 시작하고 결과가 만족스럽지 않으면 더 복잡해집니다. 최소한 그런 식으로 기준을 얻습니다. 우리는 종종 대부분의 작업에서 더 복잡한 모델을 수행하기 위해 간단한 선형 모델을 찾았으므로 항상 시작하고 싶습니다.


4
간단한 모델과 서브 샘플링으로 시작하는 +1
Matt

나는 희소 데이터에 svm을 사용하는 것에 동의하지만 svm이 거대한 차원의 데이터 세트를 훈련시키는 데 많은 시간이 걸릴 것이라고 생각하지 않습니다!
blitu12345

아니요, 특히 희박하고 선형 커널을 사용하는 경우에는 아닙니다. 그러나 많은 행에 문제가있을 수 있습니다. 어느 쪽이든 DL 모델보다 훨씬 빠릅니다. 그러나 로지스틱 회귀 분석도 권장했습니다.
Simon

내 주요 요점은 간단한 선형 모델로 시작하고 전체 데이터 세트를 사용하지 않는 것입니다. 좋은 성능을 얻으려면 전체 데이터 세트가 필요하지 않을 것입니다. 100k 행을 사용하는 것과 몇 백만을 사용하는 것 사이에 정확성에 많은 차이가 있는지 의심합니다.
Simon

데이터에 일부 계층 구조가있는 전문가 문제에 대한 딥 러닝을 시도해 보면 +1
eric2323223

4

다른 답변 외에도 (댓글에 좋은 링크가 있습니다) 문제의 유형이나 대답하려는 질문의 종류에 따라 다릅니다. 내 경험을 바탕으로 제안 할 수 있으므로 분류 작업의 경우 가능한 데이터 세트의 클래스 균형에 따라 가능한 방법이 심각하게 제한 될 수 있습니다.

1:10 클래스 불균형보다 큰 값으로 가면 대부분의 분류 방법이 작동을 멈 춥니 다. 임의의 숲과 신경망을 기반으로 한 방법이 남아 있습니다 (아직 시도하지 않았습니다). 나는 1 : 500에서 1 : 1000의 범위에서 수업 균형으로 일하고 다운 샘플링이나 업 샘플링이 작동하지 않는다는 것을 알았습니다. 운 좋게도 내 데이터 세트는 200 개의 변수에 의한 "6mln"관측치이며 합리적인 시간에 전체 세트에서 부스트 트리를 실행할 수 있습니다.

따라서 귀하의 질문에 직접 대답하려면 :

  • 당신은 당신이 대답하고자하는 많은 질문을 생각해 내야하고 분류의 경우 목표 변수의 클래스 균형을 확인하십시오.

  • 모든 데이터에서 결 측값의 분포 (수학적 의미가 아님)를 확인하고 찾은 것을 문서화해야합니다. 일부 ML 방법은 결 측값이있는 반면 다른 방법은 그렇지 않으며 데이터 대치 (자체적 인 규칙과 지침 및 문제가 있음)를 조사해야합니다.


1
class_weight = "balanced"인 sklearn에서 SGD 분류기를 사용해보십시오.
Diego

4

내 관점에서 볼 때, 5 백만 개의 인스턴스에는 일반화가 잘 되려면 많은 나무가 필요합니다 (평신도 용어로는 좋은 모델). 이것이 문제가 아니라면 문제를 해결하십시오. 정확한 대답조차도 문제의 본질에 의존합니다. 범주 형, 숫자 형 등의 피처 유형이 혼합 된 경우 GBT가 특히 좋습니다. 또한 신경망에 비해 튜닝 할 하이퍼 파라미터 수가 적습니다. 따라서 최상의 설정 모델을 갖는 것이 더 빠릅니다. 병렬 훈련의 대안이 하나 더 있습니다. 좋은 CPU로 여러 트리를 동시에 훈련시킬 수 있습니다. 결과에 만족하지 않으면 신경망으로 이동하십시오. 즉, 모델이 더 광범위하고 데이터를 통해 더 높은 차수 정보를 학습해야하기 때문입니다. 그것은 다른 학습 알고리즘에 비해 NN 때문입니다.


4

@Simon이 이미 말한 내용 :

  1. 딥 러닝 접근법은 기능 엔지니어링이 까다 롭고 많은 노력이 필요한 비전, 언어 및 언어 모델링의 문제를 해결하는 데 특히 유용했습니다.
  2. 잘 정의 된 기능이 있고 기능 상호 작용 등이 필요하기 때문에 해당되지 않는 응용 프로그램의 경우.
  3. 딥 러닝 모델에는 현재 많은 컴퓨팅 리소스가 필요하고 코딩에 과학자 시간이 필요하다는 점을 감안할 때 딥 러닝 방식을 선택하는 것이 좋습니다.

귀하의 문제에 대한 노력 대 이익 상충 관계는 딥 러닝의 호의가 아닌 것 같습니다. DL은 과잉 일 것이다


1

이러한 큰 데이터 세트가 있으면 통계 및 머신 러닝 모델링 기술을 사용할 수 있으며 이는 매우 권장됩니다. 다른 사람들이 제안했듯이 데이터에서 수백만 개의 무작위 샘플을 가져 와서 재생할 것을 권장합니다. 이것이 분류 문제이기 때문에 먼저 간단한 분류 기술을 따른 다음 나중에 더 복잡한 기술을 사용합니다. 로지스틱 회귀는 시작하기에 좋습니다.

생성 모델 도 시도해야 한다고 덧붙이고 싶습니다 . Naive Bayes 분류기 는 가장 간단한 확률 적 분류기 중 하나이며 많은 작업에서 지원 벡터 시스템과 같은 많은 복잡한 방법보다 성능이 우수합니다. 당신은 볼 수 있습니다 NB의 간단한 구현하고 로지스틱 회귀에 NB의 비교에 대한 링크.

NB (Nive Bayes) 분류기를 기본 모델로 구축 한 다음 SVM (Support Vector Machine) 또는 MLP (Multilayer Perceptron)와 같은 모든 머신 러닝 기술을 사용할 수 있습니다. 여기서의 단점은 NB가 MLP보다 계산 비용이 저렴하므로 MLP의 더 나은 성능이 필요하다는 것입니다.

정확한 쿼리 제공 : 딥 러닝 및 그라디언트 트리 부스팅은 데이터의 모든 종류의 관계를 모델링 할 수있는 매우 강력한 기술입니다. 그러나 귀하의 경우 간단한 로지스틱 회귀 또는 NB가 원하는 정확도를 제공한다면 어떨까요? 따라서 간단한 기술을 먼저 시도하고 기본 성능을 유지하는 것이 좋습니다. 그런 다음 복잡한 모델로 가서 기준선과 비교할 수 있습니다.

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