Spark DecisionTree Regression

개요

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

설명

Decision Tree 모델을 만들고 input data frame을 모델에 적용시킵니다. Decision Tree 모델 학습에 필요한 파라미터들을 지정할 수 있으며 지정하지 않을 시 Default 값으로 설정됩니다.

Examples

집값에 대한 샘플데이터 입니다.

crim(범죄율) age(연식) tax(세금) medv(집값)
0.671909988 90.30000305 307 16.60000038
1.002449989 87.30000305 307 21
8.055789948 95.40000153 666 13.80000019
… … … …

fit으로 DecisionTreeRegression 적용해 분류 하는 모델을 생성하는 명령어 예제입니다.

* | fit DecisionTreeRegression FEATURES crim, age, tax LABEL medv maxdepth=3 minInfoGain=0.0 seed=None INTO modelC

feature별 gini계수(feature importance) , 평가지표(rmse, r2,mae) 출력

features generalizeGini space rmse r2 mae
crim 0.2784

6.7384 0.4621 4.5765
age 0.0688

None None None
tax 0.6528

None None None

predict로 modelC에 샘플 데이터를 다시 넣어 예측하는 명령어 예제입니다.

* | predict modelC crim, age, tax
crim(범죄율) age(연식) tax(세금) medv(집값) prediction
0.671909988 90.30000305 307 16.60000038 22.336029403
1.002449989 87.30000305 307 21 22.336029403
8.055789948 95.40000153 666 13.80000019 14.740000152
… … … … …

fit_predict로 DecisionTreeRegression을 적용해 분류모델을 생성하고 후 예측하는 명령어 예제입니다.

* | fit_predict DecisionTreeRegression FEATURES crim, age, tax LABEL medv maxdepth=3 minInfoGain=0.0 seed=None INTO modelC

Parameters

SparkDecisionTreeRegression_command : FEATURES fields LABEL l_field params INTO_model
이름 설명 필수/옵션
FEATURES fields 학습에 사용될 특징 column을 입력 받습니다. 필수
LABEL l_fiedls 학습에 사용될 라벨 column을 입력 받습니다. 필수
params *알고리즘 옵션을 지정해줍니다. 필수
INTO_model 모델을 저장해주는 예약어 입니다.
경로 (/B-IRIS/USERS/dani/ML/)에 모델, 모델 메타 데이터가 저장됩니다.
예 : into modelA
옵션

*알고리즘 옵션

이름 설명 기본값
maxDepth tree의 깊이를 설정합니다.
예 : maxDepth=10
5
maxBins bin의 최댓값을 설정합니다. 31
minInstancesPerNode split 이후에 반드시 가져야하는 child의 instance 수를 설정합니다. 1
minInfoGain tree의 split을 위한 얻을 수 있는 최소 정보입니다. (정확히는 모르겠습니다.) 0.0
maxMemoryInMB 최대 메모리를 설정합니다. 256
cacheNodeIds 각 트리의 instance 마다 cache node id를 사용할지 안할지 여부 결정합니다. False
impurity 계산 결과에서 얻을 수 잇는 정보의 표준을 결정합니다. (gini, entorpy, variance) variance
checkpointInterval cache 하는 checkpoint의 반복 주기를 설정합니다. 10
seed 학습에 필요한 seed값 입니다. None

Parameters BNF

SparkDecisionTreeRegression_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 = r'\w+'
COMMA = r'\,'
FEATURES = r'FEATURES | features'
LABEL = r'LABEL | label'
INTO = r'INTO'
EQUALS = r'\='
TIMES = r'\*'
MINUS = r'-'
LBRACKET = r'\['
RBRACKET = r'\]'
DOUBLE = [-+]?[0-9]+(\.([0-9]+)?([eE][-+]?[0-9]+)?|[eE][-+]?[0-9]+)