BookmarkSubscribeRSS Feed

[EM] Linear Model Regularization (Shrinkage Methods) (2)

Started ‎06-10-2020 by
Modified ‎06-16-2020 by
Views 295

안녕하세요? MySAS 홍보대사 한노아입니다.

지난 시간에 OLS estimation method를 개선한 shrinkage methods에 대해 알아보았습니다. 그중에는 penalty term을 원형(2차원의 경우)으로 갖는 ridge regression과 마름모 형태로 갖는 lasso가 있었습니다. 각각 tuning parameter λ 값에 따라 penalty의 정도가 달라졌습니다. 극단적으로 λ값이 매우 큰 경우 추정되는 beta value가 수축하여 intercept만 갖는 모형이 추정되었고, λ = 0인 경우 OLS와 같은 추정치를 갖는 것을 알 수 있었습니다. 이번 시간에는 지난 시간에 알아본 lasso 방법을 SAS E-miner를 통한 구현하는 방법을 알아보겠습니다.

 

Example Data Description

이번 실습에 이용할 데이터는 ‘Boston Housing’ data입니다. 이 데이터는 “UCI Machine Learning Repository”  (https://archive.ics.uci.edu/ml/datasets.html)를 통해 다운받을 수 있습니다. –참고로 UCI Machine Learning Repository를 이용할 경우 ‘Housing’으로 검색하면 동일한 데이터를 받을 수 있음-

 

이 데이터는 ‘StatLib library’에서 획득한 데이터로 14개의 변수를 갖고 있습니다. Regression 문제를 해결하기위해 생성한 데이터로 MEDV (주택 가격 중앙값, 단위: $1000)와 다른 입력 변수들 간의 관계를 확인하고 이를 예측하는 것을 목적으로 하는 데이터입니다.

 

Variables Description

1. CRIM: per capita crime rate by town 

2. ZN: proportion of residential land zoned for lots over 25,000 sq.ft. 

3. INDUS: proportion of non-retail business acres per town 

4. CHAS: Charles River dummy variable (= 1 if tract bounds river; 0 otherwise) 

5. NOX: nitric oxides concentration (parts per 10 million) 

6. RM: average number of rooms per dwelling 

7. AGE: proportion of owner-occupied units built prior to 1940 

8. DIS: weighted distances to five Boston employment centers 

9. RAD: index of accessibility to radial highways 

10. TAX: full-value property-tax rate per $10,000 

11. PTRATIO: pupil-teacher ratio by town 

12. B: 1000(Bk - 0.63)^2 where Bk is the proportion of blacks by town 

13. LSTAT: % lower status of the population 

14. MEDV: Median value of owner-occupied homes in $1000's (Target)​ 

 

Sampling and Exploration

각 변수들에 대한 설명은 위와 같습니다. 모형 적합을 위한 Data Partition (데이터 분할) 비율은 4/3/3으로 설정했습니다. 모형 적합에 앞서 각 변수들의 분포 및 기술통계를 EM의 [DMDB] 노드와 [통계량 탐색(StatExplore)], [멀티플롯(MultiPlot)] 노드 등을 이용해 살펴보겠습니다.

AnyConv.com__SE22017070915103470.png

 

[DMDB]노드를 이용하면 각 변수에 대한 기초 통계량들을 살펴볼 수 있습니다. 결측 데이터(missing value)는 존재하지 않고, 별도의 이상 데이터도 보이는 것 같지 않습니다. 반면, 변수의 분포의 경우 정규분포 대비 왜곡이 존재하는 변수들이 다수 보입니다. 특히, CRIM 변수의 경우 첨도가 상당히 높은 것을 알 수 있습니다. 또한 평균값과 최댓값의 차이도 상당히 큰 것을 알 수 있습니다. 개별 변수의 분포 왜곡이 심할 경우 이상치가 포함 돼 있을 확률이 높고, 모형 적합에 악 영향을 줄 수 있기 때문에 사전에 변수 변환 노드를 이용한 대략적인 cleansing 작업을 진행하겠습니다. 

AnyConv.com__SE22017070915105270.png

 

그래프 상으로 살펴보면 분포 왜곡이 존재하는 것을 알 수 있습니다. 사실상 개별 변수의 히스토리 및 특성 등을 사전에 파악하고 이상 데이터가 존재할 경우 적절하게 처리해 주는 것이 타당합니다. 하지만 연재의 범위를 넘어서는 내용임으로 앞서 언급했듯 생략하도록 하겠습니다. 

 

AnyConv.com__SE22017070915112470.png

다음은 Target 변수와 Input 변수 간의 관계를 Decision Tree의 변수 중요도(worth)를 통해 살펴본 결과입니다. -이 결과는 ‘통계량 탐색’을 통해 확인할 수 있음- 집값과 가장 연관성이 높은 변수는 LSTAT (저소득층 비율)인 것을 알 수 있습니다. -이 그래프의 경우 긍정/부정은 알 수 없음- 저소득층의 비율이 집값에 영향을 주는 것은 매우 당연해 보입니다. 일반적으로 말 그대로 저소득층의 경우 소득이 적기 때문에 아무래도 집값이 비싼 지역에서는 살기 어려울 것이기 때문입니다. 

 

그다음으로 큰 영향을 주는 변수는 RM (거주지의 평균 방 개수)입니다. 일반적으로 방이 많은 경우 평수가 클 확률이 높고, 또한 집값이 비싸므로 그런 것으로 판단됩니다. 그 외에도 INUS (비 소매업종 점유 구역 비율), PTRATIO (학생/선생 비율) 등이 큰 영향을 주는 것을 알 수 있습니다. 반면, CHARS (찰스 강 인접 여부)는 집값을 설명하는 데에 큰 영향을 주지 않는 것으로 보입니다.

 

Variable Transformation 

1.PNG

일반적으로 정규분포와 유사한 형태를 갖도록 변수 변환을 하여 노이즈를 제거하거나 모형 적합도를 높이기 때문에 이번에도 별다른 복잡한 절차 없이 간단하게 SAS EM의 [변수변환] 노드의 “Maximum Normal” 옵션을 이용해 변수를 변환하도록 하겠습니다. 이 옵션을 이용할 경우 정규분포와 가장 가까운 형태를 갖도록 SAS가 알아서 변수 변환을 해주게 됩니다. (직접 육안으로 확인하고 적절한 변환 방법을 선택하는 것도 좋지만 시간 제약이 있거나 빠르게 결과를 확인하고 싶은 경우 유용함) 

 

AnyConv.com__SE22017070915140170.png

[변수변환] 노드의 변환 결과를 살펴보면 자동으로 다양한 변환 방법이 각 변수에 적용된 것을 알 수 있습니다. 또한, 각 변수의 이름은 변환 방법에 따라 새롭게 부여된 것을 확인할 수 있습니다. 첨도가 상당히 높았던 CRIM 변수의 경우 변환 후 기존보다 약 15 정도 감소한 것을 알 수 있습니다. 다른 변수들의 경우에도 역시 마찬가지로 좀 더 정규분포와 그 형태가 가까워진 것을 알 수 있습니다. ​ 

 

​Model Fitting 

AnyConv.com__SE22017070915142170.png

이번 연재에서는 lasso 모형을 포함해 총 5개의 모형을 적합하고, 그 결과를 비교해 보도록 하겠습니다. 여기서 재미있는 실험을 하나 추가해 lasso에 의해 선택된 변수를 이용한 Neural Network와 모든 변수를 input으로 넣은 Neural Network의 성능을 비교해 보겠습니다. 신경망 모형의 경우 변수 선택 기능을 포함하고 있지 않기 때문에 사전에 변수 선택을 통해 모형의 성능이 좋아질 수 있습니다.

 

Decision Tree와 Neural Network, Regression 모형의 경우 default 옵션을 그대로 이용했습니다. Lasso의 경우 [모델]의 [LARS] 노드의 [변수 선택 방법] 옵션을 통해 구현할 수 있습니다.

 

2.PNG

Lasso의 hyperparameter tuning의 경우 굳이 우리가 직접 해주지 않아도 [LARS] 노드 내에서 자동으로 되게 되어 있습니다. 이때, 어떤 방법으로 λ를 선택할 것인지만 우선 지정해 주면 손쉽게 결과를 확인할 수 있습니다. 모형 선택 기준에는 SBC, CV, AIC, BIC 등이 있습니다. 저는 Validation 옵션을 이용해 모형을 선택하겠습니다. (별다른 이유는 없음) Validation을 이용할 경우 Validation data에서의 ‘평균제곱오차’를 이용해 조율 모수 값을 결정하게 됩니다. 

 

Model Assessment

AnyConv.com__SE22017070915153370.png

전체 모형 적합 결과표입니다. 가장 낮은 오차를 나타낸 모형은 Neural Network로 Lasso에 의한 변수 선택 과정은 큰 효용이 없었습니다. Lasso 모형과 일반 회귀모형의 경우 lasso 모형이 더 우수한 예측력을 나타내는 것을 알 수 있습니다. Train set의 경우 회귀모형이 더 낮은 평균제곱오차를 나타냈지만 Test set의 경우 lasso 모형의 성능이 더 우수함을 알 수 있습니다.  

 

AnyConv.com__SE22017070915162370.png

lasso 모형에 의한 각 단계별 평가 ASE (test set) 결과입니다. ASE가 각 단계별로 감소하다 20단계부터 감소 폭이 매우 적은 것을 알 수 있습니다. 이런 이유로 자체 알고리즘상에서 조율 모수를 결정한 것으로 보입니다.  

 

AnyConv.com__SE22017070915163670.png

위 표는 각 단계별로 표준화된 기울기 추정값의 크기를 나타낸 것입니다. 처음에는 모든 값이 0에서 시작합니다. 조율 모수값이 너무 커서 모든 절편을 제외한 모든 변수가 기각 된 것을 알 수 있습니다. 단계가 증가할수록 각 변수의 기울기가 증가하는 것을 알 수 있습니다. 이때 앞서 살펴본 평가 ASE를 기준으로 적당한 지점을 찾아 종료하게 됩니다.

 

Conclusion

오늘은 EM 환경에서 ‘Lasso’를 구동하는 방법에 대해 알아보았습니다. EM 특성상 구현에는 큰 어려움이 없었습니다. ‘Boston Housing’ 데이터를 이용해 각 지역의 집값의 평균을 예측하는 예측 모형을 만드는 과정을 수행했습니다. 데이터 특성상 표본의 수가 그렇게 많지 않았습니다. 또한, 모형 적합도 향상을 위해 변수 변환을 이용했습니다. 신경망 모형을 비롯해 총 5개의 예측 모형을 함께 적합해 각 모형의 성능을 비교했습니다. 그 결과 lasso 모형이 가장 좋은 결과를 보이지는 않았지만, OLS 방법에 의한 회귀모형보다는 더 뛰어난 예측력을 나타내는 것을 알 수 있었습니다. 다음 시간에는 차원축소 방법인 PCR (Principal Component Regression)과 PLS (Partial Least Squares) Regression의 이론적 배경에 대해 알아보겠습니다. 연재와 관련된 피드백 및 질문은 쪽지로 남겨주시기 바랍니다. 감사합니다.

 

Reference

[1] James, Gareth, et al. An introduction to statistical learning. Vol. 6. New York: springer, 2013.

[2] Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. The elements of statistical learning. Vol. 1. Springer, Berlin: Springer series in statistics, 2001.

[3] Montgomery, Douglas C., Elizabeth A. Peck, and G. Geoffrey Vining. Introduction to linear regression analysis. John Wiley & Sons, 2015.

 

Version history
Last update:
‎06-16-2020 12:57 AM
Updated by:
Contributors

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Article Labels
Article Tags