티스토리 뷰
Jason Brownlee's blog 번역
165개의 Dataset에서 13개의 ML 알고리즘 비교 (Hint : 그라디언트 부스팅 사용)
기내식은수박바 2019. 10. 1. 16:30반응형
원문
어떤 머신러닝 알고리즘을 사용해야 하는가 ?
- 머신 러닝을 적용하는 데 있어서 중심 질문임.
- Randal Olson 등의 최근 논문에서, 그들은 더 넓은 알고리즘 집합을 확인하기 전에, 당신의 문제를 먼저 시도할 알고리즘과 파라미터에 대해 가이드를 제공하고 그 문제에 답을 하기 위해 시도함.
- 이 포스트에서, 당신은 많은 수의 머신러닝 Dataset에 따라 여러 머신러닝 알고리즘을 평가하여 얻은 연구와 이 연구에서 제시된 권장 사항을 발견하게 될 것임.
- 이 포스트를 읽은 후에, 당신은 알게 될 것임 :
- 앙상블 트리 알고리즘들이 넓은 범위의 Dataset에서 좋은 수행을 낸다는 것.
- Silver Bullet 알고리즘 (일종의 만병통치약) 은 없기 때문에 문제에 대해 알고리즘 집합을 테스트하는 것은 매우 중요함.
- 주어진 알고리즘에 대한 설정 집합 (Suite of Configuration)을 테스트하는 것이 일부 문제에 대해서 50% 까지 개선될 수 있기 때문에 매우 중요함.
The Paper
- 2017년, Randal Olson 등은 "생명정보학 문제에 머신 러닝을 적용하기 위한 데이터 기반 조언 (Data-Driven Advice for Applying Machine Learning to Bioinfomatics Problems)" 라는 제목의 논문을 위한 사전 인쇄물을 발표 했음.
- 이 사람들의 연구 목표는 모든 실무자들이 예측 모델링 문제를 시작할 때 직면하는 질문 (Question) 을 다루는 것이었으며, 즉, 아래와 같음.
무슨 알고리즘을 사용해야 하는가 ?
- 저자는 이 문제를 다음과 같이 선택 과부하로 설명함 :
- 비록 일부 쉽게 사용 가능한 머신러닝 알고리즘 구현을 가지는 것이 단순한 통계를 넘어서려는 생물정보학 연구자들에게 유리하지만, 많은 연구자들은 "선택 과부하 (Choice Overload)" 를 겪으며, 그들이 당면한 문제에 적절한 머신러닝 알고리즘을 선택하는 데 있어서 어려움을 발견함.
- 그들은 일반적으로 어떤 알고리즘과 파라미터가 가장 잘 동작하는지 보기 위해서 많은 표준 머신러닝 Dataset의 샘플에 걸쳐 적절한 알고리즘의 샘플을 실행함으로써 문제에 접근함.
- 그들은 논문을 다음과 같이 설명함 :
- 현재 연구자들에게 데이터 기반 알고리즘 추천을 제공하기 위해 165개의 대중적으로 사용가능한 분류 문제 집합에서 최첨단이며, 흔하게 사용되는 13개의 머신러닝 알고리즘의 철저한 분석 ...
- 방법론과 발견 모두에서 포스트 "랜덤 포레스트 사용: 121개의 Dataset에서 179개의 분류기를 테스팅 (Use Random Forest: Testing 179 Classifiers on 121 Datasets)" 에서 다뤄진 "실세계 분류 문제를 해결하기 위해서 수백 개의 분류기가 필요한가? (Do We Need Hundreds of Classifiers to Solve Real World Classification Problems?)" 의 논문과 매우 유사함.
Machine Learning Algorithms
- 총 13개의 서로 다른 알고리즘이 연구에서 선택되었음.
- 알고리즘들은 타입 또는 기존 가정의 혼합을 제공하기 위해 선택되었음.
- 목표는 최신 알고리즘들 뿐만 아니라 최근 문헌에서 사용된 가장 일반적인 종류의 알고리즘을 나타내는 것이었음.
- 전체 알고리즘 리스트는 아래에 제공됨 :
- Gaussian Naive Bayes (GNB).
- Bernoulli Naive Bayes (BNB).
- Multinomial Naive Bayes (MNB).
- Logisitic Regression (LR).
- Stochastic Gradient Descent (SGD).
- Passive Aggressive Classifier (PAC).
- Support Vector Machine (SVC).
- K-Nearest Neighbor (KNN).
- Decision Tree (DT).
- Random Forest (RF).
- Extra Trees Classifier (ERF).
- AdaBoost (AB).
- Gradient Tree Boosting (GTB).
- 사이킷런 라이브러리는 이러한 알고리즘들의 구현에 사용되었음.
- 각 알고리즘은 0 또는 더 많은 파라미터를 가지고 있으며, 민감한 파라미터 값에 대해 그리드 서치 (Grid Search) 가 각 알고리즘에 수행되었음.
- 각 알고리즘의 경우, 하이퍼 파라미터들은 고정된 그리드 서치를 사용하여 튜닝되었음.
- 알고리즘과 추정된 하이퍼파라미터 테이블은 아래에 나열되며, 논문에서 가져옴.
- 알고리즘들은 10-fold 교차 검증과 Balanced Accuracy Measure를 사용하여 평가되었음.
- 교차 검증은 반복되지 않았고, 아마 결과에 약간의 통계적인 노이즈가 도입 (Introducing) 되었음.
Machine Learning Datasets
- 165개의 표준 머신러닝 문제들이 연구를 위해 선택되었음.
- 모든 Dataset이 이 연구 분야에 속하지는 않지만, 많은 수의 문제들이 생물정보학 (Bioinformatics) 에서 도출되었음.
- 모든 예측 문제들은 두 개 또는 더 많은 클래스에 대한 분류 형태의 문제들이었음.
- 알고리즘들은 Penn Machine Learning Benchmark (PMLB) 에서 165개의 지도 분류 Dataset에서 비교되었음.
PMLB는 대중적으로 사용 가능한 분류 문제의 집합으로, 동일한 형식으로 표준화되어 파이썬을 통해 쉽게 접근할 수 있는 중앙 위치에 수집되었음.
- Dataset은 Penn Machine Learning Benchmark (PMLB) 집합에서 도출되었으며, 이 것은 간단한 파이썬 API에 의해 사용가능하도록 만들어졌으며, 동일한 형식에서 표준 머신러닝 Dataset을 제공하는 프로젝트임.
- 당신은 Github 프로젝트에서 이 Dataset 카탈로그에 대해 더 배울 수 있음.
- 모든 Dataset은 모델에 적합하기 전에 표준화 되었음.
- 각 머신러닝 알고리즘을 평가하기 전에, 우리는 모든 Dataset의 Feature에서 평균을 뺀 다음 Feature를 단위 분산 (Unit Variance) 으로 확장하여 스케일했음.
- 다른 데이터 준비는 수행되지 않았으며, Feature Selection, Feature Engineering 또한 마찬가지로 수행되지 않았음.
Analysis of Results
- 수행된 실험의 수가 많아 분석해야 할 스킬 점수가 많았음.
- 결과 분석은 잘 다뤄졌으며, 흥미로운 질문들을 하고 쉽게 이해할 수 있는 차트 형식으로 제공함.
- 전체 실험 디자인은 총 550만개의 머신러닝 알고리즘과 파라미터 추정으로 구성되었으며, 그 결과가 여러 관점에서 분석되는 풍부한 데이터 집합을 끌어냈음.
- 알고리즘 성능은 각 Dataset에 대해 순위가 매겨졌으며, 그런 다음 각 알고리즘의 평균 순위가 계산되었음.
- 이 것은 알고리즘들이 평균적으로 잘 수행되는지 또는 아닌지에 대한 거칠고 쉽게 이해할 수 있는 아이디어를 제공했음.
- 결과들은 평균적으로 그라디언트 부스팅과 랜덤 포레스트 둘 다 가장 낮은 순위 (가장 잘 수행) 를 가졌고, 나이브 베이즈 접근들이 가장 높은 순위 (가장 잘 수행 X) 를 가졌다는 것을 보여줌.
- Post-hoc 테스트는 그라디언트 트리 부스팅의 인상적인 성능을 강조하며, 이는 p < 0.01 수준에서 랜덤 포레스트를 제외하고 모든 알고리즘을 능가하는 상당히 좋은 성능을 발휘한다는 것임.
- 이 것은 논문에서 가져온 것이며, 좋은 차트를 이용하여 설명됨.
- 어떤 단일 알고리즘도 가장 좋은 성능을 발휘하거나 가장 나쁜 성능을 발휘하지 않음.
- 이러한 점은 머신러닝 실무자들에게 알려져 있지만, 그 분야에서 초심자들의 경우 이해하기에는 어려움.
- Silver Bullet은 없으며, 당신은 어떤 것이 가장 잘 작동하는지 보기 위해서 주어진 Dataset에서 알고리즘들의 집합을 테스트 해야함.
- 165개의 Dataset 모두에서 잘 작동하는 머신러닝 알고리즘은 없다는 것은 없음.
예를 들어, Multinomial NB와 그라디언트 트리 부스팅이 개별적으로 종합적인 최악과 최고 수준의 알고리즘임에 불구하고 Multinomail NB가 그라디언트 트리 부스팅 보다 더 나은 성능을 발휘하는 Dataset이 9개 있음.
따라서, 머신러닝을 새로운 Dataset에 적용할 때, 서로 다른 머신러닝 알고리즘을 고려하는 것이 여전히 중요함.
- 게다가, 적절한 알고리즘을 고르는 것만으로는 충분하지 않음. 당신은 또한 당신의 Dataset에 대해 적절한 알고리즘 설정을 선택해야함.
- 적절한 머신러닝 알고리즘을 선택하는 것과 파라미터를 튜닝하는 것 둘 다 대부분의 문제에서 필수적으로 중요함.
- 결과들은 알고리즘 튜닝이 Dataset과 알고리즘에 따라 방법의 스킬이 3% 부터 50%까지 향상된 것을 발견했음.
- 결과들은 디폴트 머신러닝 알고리즘 파라미터를 사용하는 것은 현명하지 못한 이유를 증명함 :
튜닝은 알고리즘에 따라 종종 알고리즘의 정확도를 3 ~ 5% 개선시킴.
일부 사례에서는, 파라미터 튜닝이 CV (Cross-Validation) 정확도를 50% 개선시키기도 했음.
- 각 알고리즘의 파라미터 튜닝에 의해 제공된 개선의 산포도를 보여주는 논문의 차트를 이용하여 보여줌.
- 모든 알고리즘들이 요구되지 않음.
- 결과들은 5가지 알고리즘과 특정한 파라미터들이 165개의 테스트 Dataset에서 106개에 대해 상위 1%의 성능을 달성했다는 것을 발견했음.
- 이러한 5개의 알고리즘은 생물정보학에서 주어진 Dataset의 Spot 검사 알고리즘의 출발점 (Starting Point) 으로 추천되지만, 본인은 또한 더 일반적으로 다음과 같이 제시하고 싶음 :
- 그라디언트 부스팅 (Gradient Boosting).
- 랜덤 포레스트 (Random Forest).
- 서포트 벡터 머신 (Support Vector Machine).
- 엑스트라 트리 (Extra Trees).
- 로지스틱 회귀 (Logistic Regression).
- 논문은 이러한 알고리즘들의 테이블을 제공하며, 이는 추천 파라미터 설정과 Dataset의 수를 포함함 (ex, 알고리즘과 구성이 상위 1%의 성능을 달성한 곳).
Practical Findings
- 이 논문에서 두 개의 커다란 발견이 있으며, 특별하게 시작하거나 (Starting out) 자신의 예측 모델링 문제에 결과를 얻어야 한다는 부담을 느끼는 그러한 실무자들에게 가치가 있음.
1. Use Ensemble Trees
- 시간적인 부담이나 의문을 가진다면, 당신의 Dataset에 랜덤 포레스트와 그라디언트 부스팅 같은 앙상블 트리 알고리즘을 사용하셈.
- 이 분석은 최첨단 트리 기반 앙상블 알고리즘의 강점을 증명하는 동시에 머신러닝 알고리즘 성능의 문제 의존성을 보여줌.
2. Spot Check and Tune
- 아무도 당신의 문제를 보고 어떤 알고리즘을 사용해야 할지 말해줄 수 없으며, Silver Bullet 알고리즘 또한 없음.
- 당신은 당신의 특정한 문제에 대해 어떤 것이 가장 잘 작동하는 지를 보기 위해서 알고리즘과 각 알고리즘에 대한 파라미터 집합을 테스트 해야함.
- 게다가, 이 분석은 적절한 머신러닝 알고리즘 선택과 이 알고리즘의 파라미터를 철저하게 튜닝하는 것이 대부분의 문제의 예측 정확도에 대해 상당한 개선을 이끌 수 있다는 것을 보여주며, 모든 머신러닝 응용프로그램에서 중요한 단계임.
- 본인은 계속 이 것에 대해 얘기함. 이 포스터를 보셈 :
반응형
'Jason Brownlee's blog 번역' 카테고리의 다른 글
Keras에서 LSTM(Long Short Term Memory) 네트워크에 대한 입력 데이터를 재구성 하는 방법 (0) | 2019.08.06 |
---|---|
머신 러닝에 관한 부스팅과 AdaBoost (0) | 2019.07.29 |
머신 러닝의 그라디언트 부스팅 알고리즘에 대한 친절한 소개 (1) | 2019.07.17 |
댓글