RandomForest Regression

RandomForest Regression 학습 알고리즘 설명 및 파라미터 설명서 입니다.

개요

RandomForest는 Classification / Regression에 모두 사용 할 수 있으며, 특정 값이 누락되어 있어도 사용 할 수 있습니다.

설명

여러개의 Decision Tree를 만들고 앙상블 기법으로 결과를 결정합니다. 때문에, 오버피팅을 방지할 수 있습니다.

Examples

  • Fit으로 RandomForestRegression 적용해 분류 하는 모델을 생성하는 명령어 예제입니다.
... | fit RandomForestRegression FEATURES * LABEL medv maxDepth=10 INTO modelD
features generalizeGini space numTrees rmse r2 mae
crim 0.1687

20 2.4099 0.8691 1.8495
zn 0.0004

None None None None
indus 0.0

None None None None
chas 0.0

None None None None
nox 0.0432

None None None None
rm 0.1709

None None None None
age 0.2407

None None None None
dis 0.06

None None None None
rad 0.0139

None None None None
tax 0.0323

None None None None
ptratio 0.001

None None None None
b 0.1345

None None None None
lstat 0.1345

None None None None

Parameters

... | fit RandomForestRegression FEATURES fields LABEL l_fields maxdepth=3 minInfoGain=0.0 seed=None INTO_model
이름 설명 필수/옵션
FEATURES 학습에 사용될 특징 column을 입력 받습니다. 필수
LABEL 학습에 사용될 라벨 column을 입력 받습니다. 필수
fields 특징 column들의 이름입니다. 필수
l_fields 라벨 column들의 이름입니다. 필수
params 알고리즘 setting 파라미터들입니다. 옵션
INTO_model INTO model_name으로 이루어져 있습니다. 경로 (/Biris/angora/ml)에 모델 메타 데이터와 함께 저장합니다. 필수
maxDepth tree의 깊이를 설정합니다. 옵션
maxBins bin의 최댓값을 설정합니다. 옵션
minInstancesPerNode split 이후에 반드시 가져야하는 child의 instance 수를 설정합니다. 옵션
numTrees 만들 tree의 수를 설정합니다. 옵션
minInfoGain tree의 split을 위한 얻을 수 있는 최소 정보입니다. (정확히는 모르겠습니다.) 옵션
maxMemoryInMB 최대 메모리를 설정합니다. 옵션
cacheNodeIds 각 트리의 instance 마다 cache node id를 사용할지 안할지 여부 결정합니다. 옵션
subsamplingRate 각각의 decisiontree에서 learning에 사용할 training data의 비율을 설정합니다. 옵션
impurity 계산 결과에서 얻을 수 잇는 정보의 표준을 결정합니다. (Gini, Entorpy) 옵션
checkpointInterval cache 하는 checkpoint의 반복 주기를 설정합니다. 옵션
featureSubsetStrategy 특징의 수를 고려하여 각각의 tree를 얼마나 펼칠지 결정합니다. (auto, all, onethird, sqrt, log2, (0.0-1.0], [1-n]) 옵션
seed 학습에 필요한 seed값 입니다. 옵션

Parameters BNF

SparkRandomForestRegression_command : FEATURES fields LABEL l_field params INTO_model

fields : field
        | fields COMMA field

field : WORD
        | TIMES
        | MINUS WORD

l_field : WORD

params : param
        | params param

param : WORD EQUALS WORD
        | WORD EQUALS DOUBLE
        | WORD EQUALS LBRACKET words RBRACKET
        | WORD EQUALS LBRACKET doubles RBRACKET

words : WORD
        | words COMMA WORD

doubles : DOUBLE
        | doubles COMMA DOUBLE

INTO_model : INTO WORD

WORD : \w+
COMMA : \,
FEATURES : FEATURES | features
LABEL : LABEL | label
INTO : INTO
EQUALS : \=
TIMES : \*
MINUS : \-
LBRACKET : \[
RBRACKET : \]
DOUBLE : [-+]?[0-9]+(\.([0-9]+)?([eE][-+]?[0-9]+)?|[eE][-+]?[0-9]+)


params : maxDepth=5, maxBins=32, minInstancesPerNode=1, numTrees=20, minInfoGain=0.0, maxMemoryInMB=256, cacheNodeIds=False, seed=None, subsamplingRate=1.0, impurity='Gini', checkpointInterval=10, featureSubsetStrategy='auto'