Linear Regression Operator


Operator 설명

Operator 파라미터 설명

작동 순서

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

Operator 모듈 테스트 결과

입력 데이터

label a1 a2 a3 a4 a5
88.01632464 0.636574028 8.442168148 2.116099574 2.771867529 8.448426549
138.7548543 4.595454155 4.388041662 4.926093835 2.682403955 8.617751819
38.28387155 4.292060076 0.861090232 9.15798394 6.607498138 4.084605081
82.14778398 8.559949469 3.856237673 1.0381353 1.687798024 2.8930632
33.79002054 2.272320698 1.834078721 6.300620501 1.93796937 2.069888374
7.38866956 3.956280442 0.34429275 4.337370526 7.563450458 8.591228627
191.4532705 2.220060635 7.843024669 6.462687043 8.731893832 9.28188111
15.34906002 6.105141656 1.074919676 1.162823303 9.241172289 7.23885872
97.40527838 2.691071171 3.571957641 7.805965771 6.843146634 3.053870888
111.4973958 4.262579387 7.369277727 0.820670523 6.687792013 3.976156809

결과 데이터

index attribute weight
1 a1 14.876713421499904
2 a2 22.527385416531974
3 a3 13.075232570485753
4 a4 0.06384440492653287
5 a5 4.089080128867606
val linearRegressionInfo =
  LinearRegressionInfo.newBuilder()
    .setLabelName("label")
    .setRegParam(0.0)
    .setElasticNetParam(0.0)
    .setMaxIter(100)
    .setTolerance(0.05)
    .build