- 고려된 설명변수 중 설명력이 가장 높고 설명력이 유의한 설명변수를 하나씩 선택하는 방법이다.
Spark ml의 LinearRegeression을 사용하여 P-Value를 구하여 유의성 검증 하게 된다. 입력 받은 기준 P-Value보다 작을 경우 적합한 칼럼으로 선택 처리하도록 구현하였다.
- labelName: 라벨 이름 (required)
- pValue: 귀무가설이 맞다고 가정했을 때 해당 관측치와 그것보다 더 극단적인 관측치가 나올 확률 (required)
- 입력 DataFrame의 유효성 검사를 진행한다. (P-Value, Label Column, Numeric Column)
- 가장 적합한 칼럼을 추출한다. (LinearRegeression을 사용하여 P-Value 구함)
- 적합한 칼럼을 포함하여 각 칼럼 별 다시 Regression을 하여 다음으로 적합한 칼럼을 찾아낸다.
- 2~3번 과정을 적합한 데이터가 없을 때까지 반복하게 된다.
- 출력 DataFrame을 생성한다.
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 |
label |
a2 |
1 |
88.01632464 |
8.442168148 |
2 |
138.7548543 |
4.388041662 |
3 |
38.28387155 |
0.861090232 |
4 |
82.14778398 |
3.856237673 |
5 |
33.79002054 |
1.834078721 |
6 |
7.38866956 |
0.34429275 |
7 |
191.4532705 |
7.843024669 |
8 |
15.34906002 |
1.074919676 |
9 |
97.40527838 |
3.571957641 |
10 |
111.4973958 |
7.369277727 |
- p-Value는 0.1로 설정하였다(1%).
- Stepwise Forward Select Operator는 한개의 변수로 부터 시작을 하고 적합한 변수를 하나씩 선택해 나가는 것이다. 결과 DataFrame을 보면 a2 이외의 column들은 적합하지 않아 선택되지 않은 것을 알 수 있다.