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]+)