Generalized Linear Regression Operator


Operator 설명

Operator 파라미터 설명

Family Response Type supported Links
GAUSSIAN Continuous Identity*, Log, Inverse
BINOMIAL Binary Logit*, Probit, CLogLog
POISSON Count Log*, Identity, Sqrt
GAMMA Continuous Inverse*, Idenity, Log

* Canonical Link

작동 순서

  1. 입력 DataFrame의 유효성 검사를 진행한다. (FamilyType, LinkType, Label/Numeric Columns)
  2. 입력 DataFrame 중 라벨 칼럼을 제외한 나머지 모든 칼럼을 Vectors로 변환하여 features 칼럼으로 만든다.
  3. Spark ml의 GeneralizedLinearRegression 알고리즘을 사용한다. (가중치를 구한다.)
  4. 출력 DataFrame을 생성한다.

Operator 모듈 테스트 결과

입력 데이터

label a1 a2 a3 a4 a5
88.01632 0.636574 8.442168 2.1161 2.771868 8.448427
138.7549 4.595454 4.388042 4.926094 2.682404 8.617752
38.28387 4.292060 0.861090 9.15798 6.607498 4.084605
82.14778 8.559949 3.856238 1.0381 1.687798 2.893063
33.79002 2.272321 1.834079 6.300621 1.937969 2.069888
7.38867 3.956280 0.34429 4.337371 7.56345 8.591229
191.4533 2.220061 7.843025 6.462687 8.731894 9.281881
15.34906 6.105142 1.07492 1.162823 9.241172 7.238859
97.40528 2.691071 3.571958 7.805966 6.843147 3.053871
111.4974 4.262579 7.369278 0.820671 6.687792 3.976157
203.5744 1.363994 9.048509 8.860461 2.572681 1.537978
140.7668 6.226224 8.381173 0.351448 3.638945 6.233805
259.3807 9.811867 3.941721 5.304835 6.661132 7.118429

결과 데이터

attribute weight
a1 0.152851
a2 0.210339
a3 0.126515
a4 0.0137
a5 -1.38E-04
val generalizedlinearRegressionInfo =
  GeneralizedLinearRegressionInfo.newBuilder()
    .setLabelName("label")
    .setFamilyType(FamilyType.GAUSSIAN)
    .setLinkType(LinkType.LOG)
    .setMaxIter(10)
    .build