.. role:: raw-html-m2r(raw)
:format: html
linearRegression
====================================================================================================
개요
----------------------------------------------------------------------------------------------------
지도학습을 하는 선형회귀 알고리즘입니다.
설명
----------------------------------------------------------------------------------------------------
지도학습을 하는 선형회귀 알고리즘입니다.
Example
----------------------------------------------------------------------------------------------------
집값에 대한 샘플데이터 입니다.
.. list-table::
:header-rows: 1
* - 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 표준화입니다.)
.. code-block:: none
* | fit linearregression FEATURES crim, age, tax LABEL medv maxIter=100 standardization=True INTO modelA
.. list-table::
:header-rows: 1
* - 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에 샘플 데이터를 다시 넣어 예측하는 명령어 예제입니다.
.. code-block:: none
* | predict modelA crim, age, tax
.. list-table::
:header-rows: 1
* - 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의 선형 상관관계를 모델링 후 예측하는 명령어 예제입니다.
.. code-block:: none
* | fit_predict linearregression features lstat,tax LABEL medv maxIter=100 standardization=True INTO modelA
Parameters
----------------------------------------------------------------------------------------------------
.. code-block:: none
SparkLinearRegression_command : FEATURES fields LABEL l_field params INTO model
.. list-table::
:header-rows: 1
* - 이름
- 설명
- 필수/옵션
* - FEATURES fields
- 학습에 사용될 특징 column을 입력 받습니다.
- 필수
* - LABEL l_field
- 학습에 사용될 라벨 column을 입력 받습니다.
- 필수
* - params
- *알고리즘 옵션을 지정해줍니다.
- 필수
* - INTO model
- 모델을 저장해주는 예약어 입니다. :raw-html-m2r:`
`\ 경로 (\ **/B-IRIS/USERS/dani/ML/**\ )에 모델, 모델 메타 데이터가 저장됩니다.\ :raw-html-m2r:`
`\ 예 : into modelA
- 옵션
*알고리즘 옵션
.. list-table::
:header-rows: 1
* - 이름
- 설명
- 기본값
* - maxIter
- 학습 반복 수
- 100
* - regParam
- 정규화 계수 값
- 0.0
* - elasticNetParam
- 정규화 함수 타입으로 ``0.0~1.0``\ 의 범위\ :raw-html-m2r:`
`\ 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
----------------------------------------------------------------------------------------------------
.. code-block:: none
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]+)