linearRegression¶
개요¶
지도학습을 하는 선형회귀 알고리즘입니다.
설명¶
지도학습을 하는 선형회귀 알고리즘입니다.
Example¶
집값에 대한 샘플데이터 입니다.
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으로 LinearRegression을 적용해 feature와 label의 선형 상관관계를 모델링하는 명령어 예제입니다.
crim, age, tax을 feature로, medv을 label로 학습하고 modelA로 저장합니다. (옵션은 100번 반복, feature 표준화입니다.)
* | fit linearregression FEATURES crim, age, tax LABEL medv maxIter=100 standardization=True INTO modelA
features | estimate | coefficientStandardErrors | space | meanAbsoluteError | rootMeanSquaredError | r2 |
---|---|---|---|---|---|---|
intercept | 33.470874208 | 0.050606818157 | 5.6438527876 | 7.8910514027 | 0.26239019966 | |
crim | -0.17025122296 | 0.014574116347 | None | None | None | |
age | -0.057344502576 | 0.0028028265109 | None | None | None | |
tax | -0.015653811458 | 1.1493026629 | None | None | None |
predict로 modelA에 샘플 데이터를 다시 넣어 예측하는 명령어 예제입니다.
* | predict modelA crim, age, tax
crim | age | tax | medv | prediction |
---|---|---|---|---|
0.671909988 | 90.30000305 | 307 | 16.60000038 | 23.372551835 |
1.002449989 | 87.30000305 | 307 | 21 | 23.488310504 |
8.055789948 | 95.40000153 | 666 | 13.80000019 | 21.022852399 |
… | … | … | … | … |
fit_predict로 LinearRegression을 적용해 feature와 label의 선형 상관관계를 모델링 후 예측하는 명령어 예제입니다.
* | fit_predict linearregression features lstat,tax LABEL medv maxIter=100 standardization=True INTO modelA
Parameters¶
SparkLinearRegression_command : FEATURES fields LABEL l_field params INTO model
이름 | 설명 | 필수/옵션 |
---|---|---|
FEATURES fields | 학습에 사용될 특징 column을 입력 받습니다. | 필수 |
LABEL l_field | 학습에 사용될 라벨 column을 입력 받습니다. | 필수 |
params | *알고리즘 옵션을 지정해줍니다. | 필수 |
INTO model | 모델을 저장해주는 예약어 입니다. 경로 (/B-IRIS/USERS/dani/ML/)에 모델, 모델 메타 데이터가 저장됩니다. 예 : into modelA |
옵션 |
*알고리즘 옵션
이름 | 설명 | 기본값 |
---|---|---|
maxIter | 학습 반복 수 | 100 |
regParam | 정규화 계수 값 | 0.0 |
elasticNetParam | 정규화 함수 타입으로 0.0~1.0 의 범위1.0에 가까울수록 ‘L1’ 타입, 0.0에 가까울수록 ‘L2’ 타입 |
0.0 |
fitintercept | 훈련 데이터에 대한 증간된 표현을 사용할지 안 할지 정해주는 Boolean (편향을 학습에 사용할지 안 할지) | True |
tol | 최적화 함수에 대한 반복 수렴 오차 값. | 1e-06 |
standardization | 모델 fitting 전에 training 특징들을 표준화 해줄지 안 해줄지 정합니다. | False |
solver | 최적화 알고리즘을 정합니다. (Normal, l-bfgs, auto) | auto |
Parameters BNF¶
SparkLinearRegression_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]+)