랜덤 포레스트란 무엇입니까?

랜덤 포레스트는 지도 머신 러닝 알고리즘입니다. 정확성, 단순성 및 유연성으로 인해 가장 많이 사용되는 알고리즘 중 하나입니다. 분류 및 회귀 작업에 사용할 수 있다는 사실과 비선형 특성을 결합하면 다양한 데이터 및 상황에 매우 적합합니다.

랜덤 포레스트 다이어그램

"랜덤 의사결정 포레스트"라는 용어는 1995년 Tin Kam Ho에 의해 처음 제안되었습니다. Ho는 예측을 생성하기 위해 랜덤 데이터를 사용하는 공식을 개발했습니다. 그후 2006년에 Leo Breiman과 Adele Cutler가 알고리즘을 확장하여 오늘날 우리가 알고 있는 랜덤 포레스트를 만들었습니다. 이것은 이 기술과 그 이면의 수학과 과학이 여전히 비교적 새로운 것임을 의미합니다.

의사 결정 트리의 숲이 자라기 때문에 "포레스트"라고 합니다. 그런 다음 이 트리의 데이터를 병합하여 가장 정확한 예측을 보장합니다. 단독 의사 결정 트리는 하나의 결과와 좁은 범위의 그룹을 갖지만, 포레스트는 더 많은 수의 그룹 및 결정으로 보다 정확한 결과를 보장합니다. 랜덤 기능 하위 집합 중에서 최상의 기능을 찾아 모델에 임의성을 추가하는 추가 이점이 있습니다. 전반적으로 볼 때 이러한 이점으로 하여 많은 데이터 사이언티스트가 선호하는 광범위한 다양성을 가진 모델이 생성됩니다.

의사 결정 트리란 무엇입니까?

의사 결정 트리는 아마도 일상에서 사용하는 것과 같습니다. 친구에게 어떤 소파를 살지 추천해달라고 요청하는 것과 같습니다. 친구들이 귀하에게 중요한 것이 무엇인지 물어볼 것입니다. 크기? 색상? 직물 또는 가죽? 이러한 결정을 바탕으로 귀하의 선택에 따라 완벽한 소파를 찾을 수 있습니다. 의사 결정 트리는 기본적으로 일련의 참 또는 거짓 질문을 하여 특정 답변을 유도합니다.

각 "테스트"(가죽 또는 패브릭?)를 노드라고 합니다. 각 분기는 해당 선택(패브릭)의 결과를 나타냅니다. 각 리프 노드는 해당 결정의 레이블입니다. 명백한 것은 실제 시나리오에서는 전체 그룹이 다르므로 관찰을 분할하여 서로 유사하지만 다른 그룹과는 다른 하위 그룹이 생성합니다.

의사 결정 트리와 랜덤 포레스트의 차이점

랜덤 포레스트는 의사 결정 트리의 그룹입니다. 그러나 양자 사이에는 몇 가지 차이점이 있습니다. 의사 결정 트리는 의사 결정에 사용하는 규칙을 만드는 경향이 있습니다. 랜덤 포레스트는 기능을 무작위로 선택하고 관찰하여 의사 결정 트리의 포리스트를 만든 다음 결과를 평균화합니다.

이론에 따르면 많은 수의 상관되지 않은 트리가 하나의 개별 의사 결정 트리보다 더 정확한 예측을 생성합니다. 이는 많은 트리들이 함께 작동하여 개별 오류와 과적합으로부터 서로를 보호하기 때문입니다.

랜덤 포레스트가 제대로 작동하려면 다음 세 가지가 필요합니다.

  • 모델이 추측만 하지 않도록 신호가 식별가능해야 합니다.
  • 트리로 만든 예측은 다른 트리들과 상관 관계가 작아야 합니다.
  • 어느 정도 예측력이 있는 기능에 대해 GI=GO여야 합니다.
Spotfire를 사용한 시각화/차트
Spotfire를 사용한 시각화/차트
이 데모에서 Spotfire를 통해 데이터의 모든 측면을 얼마나 쉽게 시각화할 수 있는지 확인하십시오.

랜덤 포레스트 알고리즘은 비즈니스에서 어떻게 사용됩니까?

랜덤 포레스트는 비즈니스 환경에서 많이 응용됩니다. 예를 들어, 단일 의사 결정 트리에서는 와인과 관련된 데이터 세트를 분류하여 다양한 와인을 농도가 연한 와인 또는 농도가 진한 와인으로 구분할 수 있습니다.

랜덤 포레스트는 많은 트리를 생성하므로 최종 결과 예측을 훨씬 더 정교하게 합니다. 가격, 탄닌, 산도, 알코올 함량, 설탕, 가용성 및 다양한 기타 모든 기능을 비교하여 와인과 여러 트리를 가질 수 있습니다. 그런 다음 결과를 평균화하여 수많은 기준을 기반으로 하여 전반적으로 (거의 틀림없이) 최고의 와인을 예측할 수 있습니다.

비즈니스에서 랜덤 포레스트 알고리즘은 입력 데이터 범위가 다양하고 상황이 복잡한 시나리오에서 사용할 수 있습니다. 고객이 회사를 떠날 시기를 식별하는 것을 예로 들겠습니다. 고객 이탈은 복잡하며 일반적으로 제품 비용, 최종 제품에 대한 만족도, 고객 지원 효율성, 지불 용이성, 계약 기간, 제공되는 추가 기능, 성별, 연령, 위치 등 많은 요소를 포함합니다. 랜덤 포레스트 알고리즘은 이러한 모든 요소에 대한 의사 결정 트리를 생성하여 조직의 고객 중 이탈 위험이 높은 고객을 정확하게 예측할 수 있습니다.

또 다른 복잡한 예는 어떤 고객이 한 해에 가장 많은 지출을 할 것인지 예측하는 것입니다. 마케팅 부서는 종합적인 변수와 속성을 분석하여 그 해에 누구를 목표로 삼아야 하는지에 대해 예측을 할 수 있습니다.

의사 결정 포레스트에서 배깅

부트스트랩 통합이라고도 하는 배깅을 사용하면 개별 의사 결정 트리가 데이터 집합에서 무작위로 표본을 추출하고 데이터를 대체하여 개별 트리에서 매우 다른 결과를 생성할 수 있습니다. 즉, 각 트리는 사용 가능한 모든 데이터를 포함하는 대신 데이터의 일부만 사용합니다. 그런 다음 이러한 개별 트리는 보유한 데이터를 기반으로 결정을 내리고 이러한 데이터 포인트만을 기반으로 결과를 예측합니다.

즉, 각 랜덤 포레스트에는 서로 다른 데이터에 대해 학습되고 서로 다른 기능을 사용하여 결정을 내리는 트리가 있습니다. 이는 트리에 대한 버퍼를 제공하여 오류 및 잘못된 예측으로부터 트리를 보호합니다.

배깅 프로세스는 데이터의 약 2/3만 사용하므로 나머지 1/3은 테스트 세트로 사용할 수 있습니다.

랜덤 포레스트의 이점

상대적 중요성을 측정하기 쉬움

해당 기능을 사용하여 해당 포레스트에 있는 모든 트리의 불순물을 줄이는 노드를 보면 기능의 중요성을 쉽게 측정할 수 있습니다. 변수를 치환하기 전과 후의 차이를 쉽게 볼 수 있으며, 이는 해당 변수의 중요도를 측정합니다.

다재다능

랜덤 포레스트는 분류 및 회귀 작업 모두에 사용할 수 있기 때문에 매우 다재다능합니다. 변환이나 재조정 없이 이진 및 숫자 기능과 범주형 기능을 쉽게 처리할 수 있습니다. 거의 모든 다른 모델과 달리 모든 유형의 데이터에서 매우 효율적입니다.

과적합 없음

포레스트에 트리가 충분하면 과적합의 위험이 거의 또는 전혀 없습니다. 의사 결정 트리도 과적합으로 끝날 수 있습니다. 랜덤 포레스트는 하위 집합에서 다양한 크기의 트리를 만들고 결과를 결합하여 이를 방지합니다.

높은 정확도

하위 그룹 간에 상당한 차이가 있는 여러 트리를 사용하면 랜덤 포레스트가 매우 정확한 예측 도구가 됩니다.

데이터 관리에 소요되는 시간 단축

기존 데이터 처리에서는 귀중한 시간의 상당 부분이 데이터를 정리하는 데 사용됩니다. 랜덤 포레스트는 누락된 데이터를 잘 처리하므로 이를 최소화합니다. 완전한 데이터와 불완전한 데이터의 예측을 비교한 테스트에 따르면 성능이 거의 동일했습니다. 이상 데이터 및 비선형 기능은 기본적으로 삭제됩니다.

랜덤 포레스트 기술은 또한 모집단 및 기타 불균형 데이터 세트의 오류 균형을 맞추는 데 사용됩니다. 오류율을 최소화하여 이를 수행하므로 더 큰 클래스는 더 낮은 오류율을 가지며 더 작은 클래스는 더 큰 오류율을 갖습니다.

빠른 학습 속도

랜덤 포레스트는 하위 집합 기능을 사용하기 때문에 수백 가지의 다양한 기능을 빠르게 평가할 수 있습니다. 즉 생성된 포레스트를 저장하고 향후 재사용할 수 있기 때문에 예측 속도도 다른 모델보다 빠르게 됩니다.

랜덤 포레스트의 문제점

더 느린 결과

알고리즘에서 많은 트리를 구축하기 때문에 예측의 정교함과 정확도가 높아집니다. 그러나 수백 또는 수천 개 트리를 만들기 때문에 프로세스 속도가 느려집니다. 이것은 실시간 예측에는 비효율적입니다.

솔루션: OOB(Out-of-bag) 샘플링을 사용할 수 있습니다. 이 샘플링에서는 데이터의 2/3만 예측에 사용됩니다. 랜덤 포레스트 프로세스도 병렬화할 수 있으므로 프로세스를 여러 시스템으로 분할하여 단일 시스템에서보다 훨씬 더 빠른 시간에 실행할 수 있습니다.

추정 불가

랜덤 포레스트 예측은 이전에 관찰된 레이블의 평균에 의존합니다. 예측 범위는 훈련 데이터에서 가장 낮은 레이블과 가장 높은 레이블로 제한됩니다. 이것은 학습 입력값과 예측 입력값이 다른 범위와 분포를 갖는 시나리오에서만 문제가 되는 반면, 이 공변량 이동은 일부 상황에서 다른 모델을 사용해야 함을 의미하는 문제입니다.

낮은 해석 가능성

랜덤 포레스트 모델은 최고의 블랙박스입니다. 모델들은 설명할 수 없기 때문에 특정 결정에 도달한 방법 또는 이유를 이해하기 어렵습니다. 이러한 어려움은 모델을 있는 그대로 신뢰하고 결과를 있는 그대로 받아들여야 한다는 것을 의미합니다.

랜덤 포레스트의 대안

신경망(NN)

신경망은 데이터의 관계를 식별하기 위해 함께 작동하는 여러 알고리즘입니다. 들어오는 데이터에 맞게 항상 변화하고 적응하면서 인간의 뇌가 어떻게 작동하는지 시도하고 복제하도록 고안되었습니다. 오디오 및 이미지와 같은 테이블 형식 이외의 데이터에 대해서도 작업할 수 있으므로 랜덤 포레스트에 비해 상당한 이점이 있습니다. 또한 필요한 데이터와 결과에 맞게 조정할 수 있는 것보다 많은 하이퍼파라미터로 미세하게 조정할 수 있습니다.

그러나 작업 중인 데이터가 테이블 형식일 경우 더 간단하고 여전히 좋은 결과를 얻을 수 있으므로 랜덤 포레스트를 사용하는 것이 가장 좋습니다. 신경망은 노동과 컴퓨터 집약적일 수 있으며 많은 계산의 경우 세부적인 세부 사항이 필요하지 않을 수 있습니다. 간단한 테이블 형식 데이터의 경우 신경망과 랜덤 포레스트는 예측 측면에서 유사하게 수행됩니다.

익스트림 그레이디언트 부스팅(XGBoost)

익스트림 그레이디언트 부스팅(eXtreme Gradient Boosting)은 랜덤 포레스트보다 더 정확하고 강력하다고 합니다. 랜덤 포레스트와 그래디언트 부스팅(GBM)을 결합하면 훨씬 더 정확한 결과 세트를 생성할 수 있습니다. XGBoost는 느린 단계를 취하여 독립적으로가 아니라 순차적으로 예측을 수행합니다. 잔차의 패턴을 사용하여 모델을 강화합니다. 이를 통해 예측된 오류가 랜덤 포레스트 예측보다 작게 됩니다.

선형 모델

선형 예측 모델은 가장 간단한 머신 러닝 기술 중 하나입니다. 널리 사용되며 올바른 데이터 세트에서 수행될 때 강력한 예측 도구입니다. 또한 해석하기 쉽고 랜덤 포레스트와 같은 블랙박스 효과가 없습니다. 그러나 선형 데이터만 사용하기 때문에 랜덤 포레스트보다 민첩성이 훨씬 떨어집니다. 데이터가 비선형인 경우에는 랜덤 포레스트가 최상의 예측을 제공합니다.

클러스터 모델

상위 다섯개 클러스터링 방법에는 퍼지 클러스터링, 밀도 기반 클러스터링, 분할 방법, 모델 기반 클러스터링 및 계층적 클러스터링이 있습니다. 이들 모두는 어떤 형태로든 유사한 그룹이나 클러스터에서 객체 그룹을 클러스터링하여 작동합니다. 데이터 사이언스의 많은 분야에서 사용되는 기술이며 데이터 마이닝, 패턴 인식 및 머신 러닝의 일부입니다. 랜덤 포레스트 내에서 클러스터링을 사용할 수 있지만 그 자체로 독립 실행형 기술입니다.

클러스터 모델은 새로운 예에 적응하고 클러스터 크기와 모양을 일반화하는 데 탁월하며 그 결과는 귀중한 데이터 통찰력을 제공합니다.

그러나 클러스터링은 이상값 및 비정규 분포에 대해서는 결과가 좋지 않습니다. 클러스터링은 많은 수의 샘플을 처리할 때 크기 조정 문제가 있을 수 있습니다. 또한 기능의 수가 샘플의 수보다 많을 수 있습니다.

서포트 벡터 머신(SVM)

서포트 벡터 머신(Support Vector Machines)은 회귀 분석 및 분류에 사용되는 데이터를 분석합니다. 강력한 예측 방법이며 데이터 포인트를 분류하는 모델을 안정적으로 구축합니다. 이러한 모델은 점 사이의 거리에 대한 아이디어에 의존하지만 이것이 모든 경우에 의미가 있는 것은 아닙니다. 랜덤 포레스트가 분류 문제에서 클래스에 속할 확률을 알려주는 반면 서포트 벡터 머신은 경계까지의 거리를 제공하므로 확률로 만들기 위해서는 여전히 변환이 필요합니다.

베이지안 네트워크

베이지안 네트워크는 변수, 종속성 및 확률을 보여주는 그래픽 모델입니다. 데이터로부터 모델을 구축하고, 결과를 예측하고, 이상을 감지하고, 추론을 제공하고, 진단을 실행하고, 의사 결정을 지원하는 데 사용됩니다. 베이지안 네트워크는 생성적이며 주어진 랜덤 변수에서 확률 분포를 모델링합니다. 랜덤 변수에 대한 복잡한 쿼리에 가장 적합합니다.

랜덤 포레스트는 기술적 모델이며 일반적으로 분류에 사용됩니다. 인과 관계가 중요하다면 베이지안 네트워크가 랜덤 포레스트보다 더 적합할 수 있습니다. 데이터 풀이 크면 랜덤 포레스트가 선호됩니다.

TIBCO Spotfire 사용해보기-무료 평가판
TIBCO Spotfire 사용해보기-무료 평가판
Spotfire에는 분류 및 회귀를 위한 의사 결정 트리의 머신 러닝을 가능하게 하는 랜덤 포레스트 도구가 있습니다. 오늘 무료로 사용해 보세요!

랜덤 포레스트의 미래

매우 효과적이고 적응 가능하며 민첩한 랜덤 포레스트는 많은 데이터 사이언티스트가 선호하는 지도 머신 러닝 모델입니다. 이는 많은 대안이 필요 없는 다양한 이점을 제공하고 정확한 예측 및 분류를 제공합니다. 그그러나, 그것은 대체로 설명되지 않으며, 결과가 달성되는 방식에 있어서는 어느 정도 블랙박스일 수 있습니다.

향후 클래식 랜덤 포레스트를 다른 전략과 결합하면 예측이 더 정확해지고 결과가 훨씬 더 최적화될 수 있습니다. 또한 설명 가능한 머신 러닝으로의 도약이 이제 현실이 되고 있으며 랜덤 포레스트 예측의 일부 미스터리를 밝히는 데 도움이 될 수 있습니다.