생각이 담아두는 곳

2. 선형회귀분석(2) 본문

CS/ML

2. 선형회귀분석(2)

Chang_Tree 2020. 9. 8. 17:25

우리가 모델을 학습시킬 때, 주어진 훈련 데이터들로 학습을 시키고 여기서 오차를 줄인다는 것은 학습오차를 감소 시킨다는 것.

하지만 우리가 원하는 건, 주어질 수 있는 모든 데이터 중, 임의의 데이터가 주어졌을 때, 성능이 잘 나오는 모델을 설계하는 것이므로

최종적인 목표는 학습오차 보다는 일반화 오차를 줄이려고 함. 

따라서 모델의 성능을 평가할 때는, 학습에 사용하지 않은 데이터들인 테스트 데이터(임의로 추출)로

평가해야함.

 

과적합(overfitting)

- 모델이 학습 데이터에 지나치게 맞춰져, 일반화 성능이 떨어지는 경우

과소적합(underfitting)

- 학습데이터가 제대로 학습되지 않아, 모델의 성능이 떨어지는 경우

 

과소적합의 경우, 데이터를 추가하거나, 학습을 더 시키거나 하는 식으로 해결이 가능하지만, 과적합의 경우 다른 여러가지 방법을 통해서

해결해야한다. (원천적으로 막는 방법, 문제가 생긴 뒤 해결하는 방법 등등)

 

 

 

 

 

아래 그림을 보면 알겠지만, 학습 오차를 계속 줄이는 것이 좋은 모델은 아니다. 

다중회귀분석에서의 과적합은 지나치게 많은 독립변수의 이용에서 나타날 수 있고 

곡선회귀분석에서의 과적합은 지나치게 높은 차원의 사용에서 나타날 수 있다. 

독립변수의 수를 줄이는 방법은 지난번에 배웠던, Forward selection, backward elimination, stepwise selection 등등이 있다. 

그리고 다른 방법은 아래에 서술할 정규화라는 방법이 있다. 

 

서술하기 전에 지난번에 배웠던 선형회귀분석을 정리해보면 아래와 같다. 교수님께서 이전에 사용한 변수가 아닌 새로운 변수로 정의하셔서 그렇지 내용자체는 동일하다. 

 

기존의 regression 모델에서는 단순하게 오차를 줄이기 위해, 예측값과 실값의 차이의 제곱의 합을 줄이려고 했다면, 

Ridge regression에서는 각 독립변수의 계수들의 제곱의 합을 오차항에 더해 계산함으로써, 특정 변수에 가중치가 부여되는 것을 피한다. 

지난시간에 말한, 상호간의 계수가 상충하는 경우, 특정 독립변수 한 개만을 추종하는 경우 등등.. 

이와 같이 나타낼 수도 있다. 특정 범위 안에 들어가도록.

행렬식으로 바꾸면 위와 같다. 

기존의 최소제곱법만 실행했을 때의 베타값, 위 식에 단위행렬이 추가된게 보인다

SVD 에서는 추가적인 설명을 하지 않고 넘어가셨는데, 운이 좋게도 수학시간에 이에 대해 배웠으므로 아래에 서술해보자면.. 

from SG Lee

matrix.skku.ac.kr/LA-K/Ch-8/

 

2016-LA-CH-8-SGLee(kor) -- Sage

[(9, [(1, sqrt(3))], 1), (1, [(1, -1/3*sqrt(3))], 1)] ② 구하기

matrix.skku.ac.kr

여기에 자세히 나와 있으므로 참고 부탁드린다.  

SVD 가 이론적으로 무엇인지 알겠지만 실제 어떻게 활용되는지 궁금하다면, 아래 페이지를 참조 부탁드린다. 

matrix.skku.ac.kr/sglee/03-Note/IP/ImageProcessing.htm

 

서론

Matrix Decomposition and Image Processing via MATHEMATICA Contents :     (1) Introduction     (2) Matrix Decomposition     (3) Image Processing using SVD     (4) Wave File Processing using SVD     (5) Conclusion 성균관대학교 수��

matrix.skku.ac.kr

 

df(λ) 의 값이 0으로 가까워질수록, λ의 값을 크게 설정한 것이다.

각 factor의 계수가 0으로 가는 것을 볼 수 있다.

두번째 정규화 방법은 Lasso regression 이다.

아까 전 소개한, ridge regression 과 다른 점은, 계수들의 제곱의 합이 아닌, 절대값의 합을 더해주고, 오차에 1/2을 한 것이다. 

 

Lasso는 Ridge와 다른 점이 크게 두가지가 있는데 

 

첫번째 .  행렬식으로 딱 떨어지지 않는다. 

두번째는 아래 그림을 보면

λ 값을 키울 때마다 각 계수들이 점차 주는 경향을 보이는데 한 번 0이 되면, λ 값이 커져도 계속 0으로 계수를 유지한다. Ridge와는 확연한 차이이다. 즉, 계수행렬이 희소행렬이 된다. (λ값에 따라)

 

Lasso의 경우는 절대값의 합이므로, 계수가 2개라고 가정한 경우, 그래프가 위 그림 왼쪽처럼 그려지고 , Ridge는 오른쪽처럼 그려진다. 

이걸 통해서, Lasso의 경우, 계수가 0이 되는 꼭지점에서 만날 확률이 높다는데,  아직은 납득이 안 간다 ㅋㅋㅋㅋ... 

 

위 그림에서 q가 1이면 Lasso, 2이면 Ridge임을 알 수 있다. 

변수선택을 할 수 있는 q의 값들은 1이하라고 배웠다. (즉, Lasso 가 변수선택을 할 수 있는 q의 값 중 제일 큰 값)

아래에 Elastic net은 계수의 제곱과 계수의 절대값 합의 비율을 조절한 것이다. 

최근에 읽은 연구도 Elastic net을 활용했다. 

genomeportal.stanford.edu/pan-tcga/project_overview

 

Project Overview | The Stanford-Cancer Genome Atlas Portal

The NIH Cancer Genome Atlas (TCGA) project has generated enormous data sets covering > 20 malignancies and provides many valuable insights into the underlying genetic and genomic basis of cancer. However, exploring the association between TCGA results and

genomeportal.stanford.edu

이 뒤의 내용은 회귀분석의 확률적 해석인데 솔직히 말씀 드리면, 이해를 하지 못했다. 결과만 말씀 드리면, 

이렇게 된다고 한다. 이것이 가지는 의미는 오차들이 정규분포를 따른다고 가정했을 때, 최소제곱법(오차의 제곱의 합)을 통해 구한 것이 최적의 모델을 가진다는 것을 증명하는 것이라고 한다. 

 

 

bias 는 모델이 실제 함수를 얼마나 잘 반영했는가 

Var는 모델의 예측값의 분산. 

뒤에 붙어 있는

σ^2 은 애초에 실측함수에 붙어 있던 오차, 즉 irreduable error 이다. 

군필이라면 아래 그림을 이해하는데 있어 좀 더 수월할 것 같다^^;

가장 완벽한 그림

실습은 다음 글에서 다뤄본다. 

'CS > ML' 카테고리의 다른 글

3. 선형분류모형  (0) 2020.09.11
2. 선형회귀분석(2) - 실습  (0) 2020.09.10
1. 선형회귀분석 - 실습  (0) 2020.09.04
1. 선형회귀분석  (0) 2020.09.03
Introduction to Trading, Machine learning&GCP [5]  (0) 2020.04.28
Comments