이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
TreeBagger
결정 트리의 배깅 생성하기
개별 결정 트리는 과적합되는 경향이 있습니다. 배깅(Bootstrap-Aggregated) 결정 트리는 많은 결정 트리의 결과를 결합합니다. 이는 과적합의 영향을 줄이고 일반화를 향상시킵니다. TreeBagger
는 데이터의 부트스트랩 표본을 사용하여 앙상블에서 결정 트리를 성장시킵니다. 또한, TreeBagger
는 랜덤 포레스트 알고리즘 [1]에서처럼 각 결정 분할에 사용할 예측 변수의 일부를 임의로 선택합니다.
기본적으로 TreeBagger
는 분류 트리를 배깅합니다. 회귀 트리를 대신 배깅하려면 'Method','regression'
을 지정하십시오.
회귀 문제의 경우 TreeBagger
는 평균 및 분위수 회귀(즉, 분위수 회귀 포레스트 [5])를 지원합니다.
구문
Mdl = TreeBagger(NumTrees,Tbl,ResponseVarName)
Mdl = TreeBagger(NumTrees,Tbl,formula)
Mdl = TreeBagger(NumTrees,Tbl,Y)
B = TreeBagger(NumTrees,X,Y)
B = TreeBagger(NumTrees,X,Y,Name,Value)
설명
은 테이블 Mdl
= TreeBagger(NumTrees
,Tbl
,ResponseVarName
)Tbl
에 포함된 표본 데이터를 사용하여 훈련된 NumTrees
개 배깅 분류 트리의 앙상블을 반환합니다. ResponseVarName
은 Tbl
에 포함된 응답 변수의 이름입니다.
는 테이블 Mdl
= TreeBagger(NumTrees
,Tbl
,formula
)Tbl
에 포함된 표본 데이터를 사용하여 훈련된 배깅 분류 트리 앙상블을 반환합니다. formula
는 Mdl
을 피팅하는 데 사용되는 Tbl
의 예측 변수의 부분 집합과 응답 변수에 대한 설명 모델입니다. 윌킨슨(Wilkinson) 표기법을 사용하여 Formula
를 지정합니다. 자세한 내용은 Wilkinson Notation 항목을 참조하십시오.
는 테이블 Mdl
= TreeBagger(NumTrees
,Tbl
,Y
)Tbl
에 포함된 예측 변수와 벡터 Y
의 클래스 레이블을 사용하여 분류 트리의 앙상블을 반환합니다.
Y
는 응답 변수 데이터로 구성된 배열입니다. Y
의 요소는 Tbl
의 행에 대응됩니다. 분류의 경우, Y
는 실제 클래스 레이블 세트입니다. 레이블은 그룹화 변수, 즉 숫자형 벡터 또는 논리형 벡터, 문자형 행렬, string형 배열, 문자형 벡터로 구성된 셀형 배열, 또는 categorical형 벡터일 수 있습니다. TreeBagger
는 레이블을 문자형 벡터로 구성된 셀형 배열로 변환합니다. 회귀의 경우, Y
는 숫자형 벡터입니다. 회귀 트리를 성장시키려면 이름-값 쌍 'Method','regression'
을 지정해야 합니다.
는 응답 변수 B
= TreeBagger(NumTrees
,X
,Y
)Y
를 예측하기 위한 NumTrees
개의 결정 트리의 앙상블 B
를 훈련 데이터로 구성된 숫자형 행렬 X
의 예측 변수 함수로 생성합니다. X
의 각 행은 관측값을 나타내고 각 열은 예측 변수 또는 특징을 나타냅니다.
B = TreeBagger(NumTrees,X,Y,Name,Value)
는 선택적 파라미터 이름-값 쌍을 지정합니다.
'InBagFraction' | 각각의 새로운 트리를 성장시키기 위해 입력 데이터에서 복원추출할 입력 데이터의 비율입니다. 디폴트 값은 1입니다. |
'Cost' | 정사각 행렬 또한,
디폴트 값은
|
'SampleWithReplacement' | 복원추출의 경우 'on' 또는 비복원추출의 경우 'off' 입니다. 비복원추출하는 경우 'InBagFraction' 을 1보다 작은 값으로 설정해야 합니다. 디폴트 값은 'on' 입니다. |
'OOBPrediction' | 각 트리에 대해 Out-of-bag인 관측값이 무엇인지에 대한 정보를 저장하려는 경우 'on' 입니다. 이 정보는 oobPrediction 에서 앙상블의 각 트리에 대한 예측된 클래스 확률을 계산하는 데 사용될 수 있습니다. 디폴트 값은 'off' 입니다. |
'OOBPredictorImportance' | 앙상블의 특징 중요도에 대한 Out-of-bag 추정값을 저장하려는 경우 'on' 입니다. 디폴트 값은 'off' 입니다. 'on' 을 지정하면 'OOBPrediction' 값도 'on' 으로 설정됩니다. 예측 변수 중요도 분석이 목표인 경우 'PredictorSelection','curvature' 또는 'PredictorSelection','interaction-curvature' 도 지정해야 합니다. 자세한 내용은 fitctree 또는 fitrtree 를 참조하십시오. |
'Method' | 'classification' 또는 'regression' 입니다. 회귀에는 숫자형 Y 가 필요합니다. |
'NumPredictorsToSample' | 각 결정 분할에 대해 임의로 선택할 변수의 개수입니다. 디폴트 값은 분류의 경우 변수 개수의 제곱근이고 회귀의 경우 변수 개수의 삼분의 일입니다. 유효한 값은 'all' 또는 양의 정수입니다. 이 인수를 'all' 을 제외한 유효한 값으로 지정하면 브라이만(Breiman)의 랜덤 포레스트 알고리즘 [1]을 불러옵니다. |
'NumPrint' | 훈련 순환 횟수(성장된 트리)로, 그 이후에 TreeBagger 가 훈련 진행 상황을 보여주는 진단 메시지를 표시합니다. 디폴트 값은 진단 메시지 표시 안 함입니다. |
'MinLeafSize' | 트리 리프당 최대 관측값 개수입니다. 디폴트 값은 분류의 경우 1이고, 회귀의 경우 5입니다. |
'Options' | 결정 트리의 앙상블을 성장시킬 때 계산을 제어하는 옵션을 지정하는 구조체입니다. 한 옵션은 Parallel Computing Toolbox™를 사용할 수 있는 경우 여러 부트스트랩 반복 실험에 대한 결정 트리 계산에서 여러 프로세서를 사용하도록 요청합니다. 두 옵션은 부트스트랩 반복 실험을 선택하는 데 사용할 난수 스트림을 지정합니다.
|
'Prior' | 각 클래스의 사전 확률입니다. 다음 값 중 하나로 지정합니다.
|
'PredictorNames' | 예측 변수 이름으로,
|
'CategoricalPredictors' | categorical형 예측 변수 목록으로,
|
'ChunkSize' | 청크 크기로, 참고 이 옵션은 tall형 배열에 |
위에 열거된 선택적 인수 외에 TreeBagger
는 선택적으로 fitctree
인수와 fitrtree
인수를 받습니다.
예제
팁
더욱 균형된 오분류 비용 행렬 또는 덜 편중된 사전 확률 벡터를 설정하여 Out-of-bag 오차 분산이 큰 값으로 추정되지 않도록 하십시오.
B
의Trees
속성은B.NumTrees
의CompactClassificationTree
또는CompactRegressionTree
모델 객체로 구성된 셀형 배열을 저장합니다. 셀형 배열의 트리t
를 텍스트 또는 그래픽 방식으로 표시하려면 다음을 입력하십시오.view(B.Trees{t})
표준 CART는 적은 고유 값을 포함하는 분할 예측 변수(예: 범주형 변수)보다 많은 고유 값을 포함하는 분할 예측 변수(예: 연속형 변수)를 선택하는 경향이 있습니다 [4]. 다음 중 하나에 해당되는 경우 곡률 검정이나 상호 작용 검정을 지정해 보십시오.
다른 예측 변수보다 상대적으로 더 적은 수의 고유 값을 갖는 예측 변수가 있는 경우(예를 들어, 예측 변수 데이터 세트가 이종인 경우).
예측 변수 중요도의 분석이 목표인 경우.
TreeBagger
는Mdl
의OOBPermutedPredictorDeltaError
속성에 예측 변수 중요도 추정값을 저장합니다.
예측 변수 선택에 대한 자세한 내용은 분류 트리의 경우
PredictorSelection
을, 회귀 트리의 경우PredictorSelection
을 참조하십시오.
알고리즘
TreeBagger
는 오분류 비용이 큰 클래스를 과다추출하고 오분류 비용이 작은 클래스를 과소추출하여 In-bag 표본을 생성합니다. 따라서, Out-of-bag 표본은 오분류 비용이 큰 클래스의 관측값을 더 적게 가지고 오분류 비용이 작은 클래스의 관측값을 더 많이 가집니다. 작은 데이터 세트와 많이 편중된 비용 행렬을 사용하여 분류 앙상블을 훈련하는 경우 클래스당 Out-of-bag 관측값 개수가 매우 낮을 수 있습니다. 그러므로 추정된 Out-of-bag 오차가 큰 분산을 가질 수 있으며 해석이 어려울 수 있습니다. 큰 사전 확률을 갖는 클래스의 경우 동일한 현상이 발생할 수 있습니다.결정 트리를 성장시킬 때 분할 예측 변수와 노드 분할 알고리즘을 선택하는 데 대한 자세한 내용은 분류 트리의 경우 알고리즘 항목을, 회귀 트리의 경우 Algorithms 항목을 참조하십시오.
대체 기능
Statistics and Machine Learning Toolbox™는 배깅 및 랜덤 포레스트를 위한 세 가지 객체를 제공합니다.
ClassificationBaggedEnsemble
: 분류를 목적으로fitcensemble
에 의해 생성됨RegressionBaggedEnsemble
: 회귀를 목적으로fitrensemble
에 의해 생성됨TreeBagger
: 분류 및 회귀를 목적으로TreeBagger
에 의해 생성됨
TreeBagger
와 배깅 앙상블(ClassificationBaggedEnsemble
및 RegressionBaggedEnsemble
) 사이의 차이에 대한 자세한 내용은 Comparison of TreeBagger and Bagged Ensembles 항목을 참조하십시오.
참고 문헌
[1] Breiman, L. "Random Forests." Machine Learning 45, pp. 5–32, 2001.
[2] Breiman, L., J. Friedman, R. Olshen, and C. Stone. Classification and Regression Trees. Boca Raton, FL: CRC Press, 1984.
[3] Loh, W.Y. “Regression Trees with Unbiased Variable Selection and Interaction Detection.” Statistica Sinica, Vol. 12, 2002, pp. 361–386.
[4] Loh, W.Y. and Y.S. Shih. “Split Selection Methods for Classification Trees.” Statistica Sinica, Vol. 7, 1997, pp. 815–840.
[5] Meinshausen, N. “Quantile Regression Forests.” Journal of Machine Learning Research, Vol. 7, 2006, pp. 983–999.