본문 바로가기

study

지도학습 : 선형 모델

지도학습의 머신러능 알고리즘에 대해 알아보고 간단히 정리를 해보았다. 

2. 선형모델

선형 모델은 입력 특성에 대한 선형 함수를 만들어 예측을 수행한다. 예를 들어 2차원 평면에 랜덤하게 100개의 좌표가 점으로 찍혀있을때 모든 점을 지나는 하나의 선은 그을 수 없다. 우리는 실제와 비슷한 선을 예측하여 그릴 뿐이다. 이 때 예측하는 선과 실제 점 사이에 오차가 발생한다. 이를 최소하는 것이 예측력을 높이는 중요한 과제이다. 그리고 오차를 줄이는 방법에 따라 다양한 모델이 있다. 다음으로 선형 회귀에 어떤 모델이 있는지 간단히 알아보자.

 

2.1 예측모델

2.1.1. Bias와 Variace, 오차 그리고 정규화

선형 회귀 모델의 종류를 살펴보기 전에 알아둬야하는 내용이 있다.

첫번째로 Bias와 Variance이다. 이 두 개념은 예측 과제를 해결할때 발생하는 두가지 경향을 말한다. Bias는 다양한 정보를 고려하지 않음으로 잘못된 것을 계속 학습하는 경향을 일컫는다. 즉 과소적합과 관계가 있다. Variance는 모든 정보를 고려하다보니 노이즈까지 모델에 피팅하는 경향을 말한다. 즉 과대적합과 관계가 있다.

예를 들어 일차항은 과소적합이다. 일부 정보만을 고려한 모델로 새로운 데이터가 입력되어도 직선 위에 존재할 것이다. 하지만 고차항의 경우 과대적합으로 모든 정보를 고려하고 있지만 새로운 데이터가 입력된다면 어디에 위치할지 예측하기 어렵다. 

Bias와 Variance를 설명하는 가장 유명한 그림

 

두번째는 오차이다. 오차는 앞서 말한 대로 예측값과 실제 데이터의 차이를 말한다. 선형모델에서 이를 구하는 공식은 두 데이터의 차이를 제곱하여 평균을 구한 값이며 MSE라고 부른다.

: 데이터 건수
: 실제 값
ŷ : 예측 값

세번째는 정규화이다. 선형모델에서 모델의 복잡도를 제어하기 위해 규제를 설정하는데 이를 정규화라고 부른다. 어떤 정규화 방법을 사용했느냐에 따라 라쏘(lasso), 릿지(ridge), 엘라스틱넷(elastic net)등으로 나뉜다.

 

2.1.2. 선형 회귀

가장 오래되고 간단한 회귀용 선형 알고리즘이다. 오차를 최소화하는 적절한 기울기(w)와 y절편(b)을 찾는다. 파라미터가 없는 것이 장점이지만 모형의 복잡도를 제어할 방법이 없는 것이 단점이다. 

선형회귀는 Bias 관점에서 기울기가 어떤 값을 가지든 간에 오차를 최소화하는 것을 목표로 한다. 즉 지나치게 Bias를 줄이려다 보니 과대적합문제가 발생한다. 따라서 과대적합을 규제하는 정규화를 적용한 모델이 필요하다.

 

2.1.3. 라쏘(Lasso)

라쏘는 선형회귀모델의 단점을 극복하고자 정규화를 실시한 모델이다. 기존 손실함수에 정규화항을 설정함으로써 전체 오차의 크기는 커지지만 정규화항을 기울기 절대값의 합으로 설정함으로써 기울기에 규제를 두어 Variance를 감소시키는 것에 초점을 둔다.

위의 손실함수에서 lamda는 미래 데이터(예측하고자하는 데이터)의 정확성을 높이기 위해 유저가 결정하는 하이퍼파라미터이다. 라쏘에서 손실함수의 값을 최소화하기 위해서는 w가 0에 가까워야하므로 예측하고자 하는 함수의 차수가 낮아질 수도 있다. 예를 들어 복잡한 3차항을 예측해야함에 있어 손실함수의 값 최소화하다보니 3차항의 계수가 0이되어 2차항으로 얘측되는 경우가 있다. 이는 규제를 통해 과대적합문제를 해결했다고 볼 수 있다.

규제가 강할 때(람다값이 높을 경우) : 오차가 커지므로 오차를 줄이기 위해 예측 함수의 기울기 값들을 0으로 떨어뜨려야 한다. 과소적합

규제가 약할 떄(람다값이 낮을 경우) : 오차가 줄어드는 대신 예측 함수의 모든 기울기가 유지되대 보니 과대적합 문제가 발생한다. 

 

2.1.4. 릿지(Ridge)

릿지는 라쏘와 비슷하다. 다른 점은 정규항으로 기울기 절대값의 제곱의 합을 설정하는 것이다.  여기서 정규화항의 모양에 따라 라쏘는 1승, 릿지는 2승으로 각 각 L1, L2 규제라고 칭하기도 한다.

 

2.1.5. 엘라스틱 넷(Elastic net)

엘라스틱 넷은 라쏘와 릿지를 합친 것이다. 기울기 절대값 앞에 붙은 알파값은 두 방법 중 어디에 중점을 둘지 설정하는 파라미터이며 범위 0에서 1사이의 trade-off 관계를 가진다. 릿지와 라쏘에서는 람다값을 조정하여 규제의 강도를 조절할 수 있었다.

 

2.2. 분류용 선형모델

앞서 언급한 모델의 경우와 달리 예측값이 범주형 반응변수일 때 사용하는 범주 예측 모델이다. 반응변수 값이 2개일 때 이진변수이고 3개 이상일때 멀터변수라고 한다. 

 

2.2.1. 로지스틱 회귀

전형적인 Binary classification algorithm으로 결과값이 이진변수이다.

우리는 회귀분석에서 x값이 증가할 때 y값을 예측하는 것을 기본으로 생각한다. 하지만 y값이 이진변수일 경우에는 어떻게 해야할까?  결론부터 말하면 이진변수인 결과값을 음의 무한대에서 양의 무한대의 범위를 가진 일반 연속변수로 바꾸어 계산하며 된다. 그렇게되면 기존의 선형회귀문제와 동일하게 문제를 풀 수 있다. 이 때 중요한 개념이 Odds와 로짓변환이다. 

 

좌 - 오즈, 우 - 오즈비

 

오즈(odds) : 성공할 확률 π에 대한 성공의 오즈(odds)는 다음과 같이 정의한다. 
오즈비(odds ratio) : 예를 들어 두 사건이 있을때 한 사건의 오즈를 나머지 다른 사건의 오즈로 나눈것.

 

오즈비는 따지고 보면 성공할 확률(p)값을 여러번 꼬아서 사용하는 느낌이다. 그렇다면 왜 단순히 p값을 사용하지 않고 오즈비라는 것을 만들어 쓰는 것일까? 오즈는 사실 p값과 거의 비슷한 값을 가진다. 하지만 오즈를 오즈로 나누므로서 비교가 가능해진다. 그리고 이런 오즈비에 log를 취하면 연속변수처럼 사용이 가능해진다. 그 이유는 아래와 같다.

- p값은 확률이므로 0~1 사이에 값을 가진다.
- p값이 0에 가까울수록 오즈비는 0에 수렴하고 1에 가까울수록 오즈비는 무한대에 수렴한다. 
- 이때 로그를 취한 로그 오즈비의 값은 음의 무한대에서 양의 무한대의 값을 가진다. 즉 연속변수와 같은 꼴이다.

 

그렇다면 이제 중요한것은 이렇게 로짓변환을 거쳐 구한 회귀계수를 어떻게 해석하느냐이다. 기본적으로 0 또는 1의 결과값을 가지는 함수라고 가정할때

회귀계수가 양수이면 1일 확률이 높고 회귀계수가 음수면 1일 확률이 낮다고 판단한다.
- 하지만 이는 로그를 취한 오즈비이므로 로그를 제거하여 해석해주어야 한다.
- 예를 들어 회귀계수가 0.0149일 경우 양수이므로 1일 나올 확률이 높고
- 로그를 제거한 값, 즉 오즈비가 1.015이므로 x값이 증가할 수록 1이 나올 확률은 1.015배 증가한다고 해석이 가능하다.

 

2.2.2. SVM 서포트 벡터 머신

일반적으로 train 데이터에서 두 클래스의 결정 경계에 위치한 데이터 포인트들만이 분류를 하는데 영향을 끼친다. 따라서 이런 데이터들을 일컬어 서포트 벡터(Support Vector)라 하며 서포트 벡터 머신이라는 이름이 유래하였다. 

서포트 벡터를 지나는 경계선끼리의 거리를 마진이라 부르며 SVM 모델은 train 데이터의 이 마진을 극대화하여 일반화 오류를 최소화하는 것이다. 이 분류기 역시 로지스틱 회귀와 같이 이진변수일 경우 사용이 가능하다.

*선형 모델은 태생적으로 이진 분류만 지원한다. 물론 로지스틱 회귀는 소프트맥스 함수를 사용하여 다중 분류를 지원한다. 

 

 

출처

https://www.youtube.com/channel/UCueLU1pCvFlM8Y8sth7a6RQ

https://wikidocs.net/22892

https://www.youtube.com/user/who4u78

 

파이썬 라이브러리를 활용한 머신러닝(번역개정판) : 사이킷런 핵심 개발자가 쓴 머신러닝과 데이터 과학 실무서

현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭한 머신러닝 라이브러리가 복잡하고 난해한 작업을 직관적인 인터페이스로 감싸주는 덕분이죠. 이 책에서는 사이킷런의 핵심 개발자가 복잡한 수학을 동원하지 않고 실용적으로 머신러닝을 구축하는 모든 단계를 설명합니다. 미적분, 선형대수, 확률 이론을 공부하지 않았어도 이 책을 통해 머신러닝을 활용할 수 있게

www.hanbit.co.kr

 

태그