반응형

ㅁ 선형분류모델과 선형회귀분석의 차이를 잘 이해하고 분리해야 나중에 안 헷갈린다.

 o 식은 같지만 선형분류모델은 이진분류하기 위함이고 선형회귀분석은 추세를 보기 위함이다. 그래서 잘못 적용하면 성능이 나락가기때문에 정확히 분류모델인지 회귀분석인지 알고 진행해야 한다. 

 

ㅁ 선형회귀분석

 o Y값은 내가 알고자하는 값이기 때문에 알게되고, 연산한 값 중에서 절대갑 1에 가까운 것을 구하는 것이 x이다. 
    종속변수 Y와 한개 이상의 독립 변수 X아의 선형 상관 관계를 모델링하는 회귀 분석 

 $$ f(x) = w_0 + w_1x_1 + w_2x_2 + w_3x_3 + ..... $$ 
선형분류모델과 같은 식을 가지고 있음

 

$$ y = ax + b $$

 y = 종속번수
x = 독립변수
a = 기술기
b = 절편

 

ㅁ 화물 운송 업체의 운송거리에 따른 타이어 사용량 예측으로 선형회귀 분석의 예제를 봅시다. 

 o 7월 운행거리가 35만km 이면 타이어는 얼마나 많이 필요한가?

타이어 사용량 총 운행거리(단위 : 만km)
1 10 24
2 15 32
3 12 27
4 8 18
5 9 20
6 18 43

독립변수x와 종속변수 y를 빨리 결정해야한다.
종속변수 y는 타이어 사용량이 된다. 내가 알고 싶은 값이니까.
독립변수 x는 운행거리가 될 것이다. y에 가장 큰 영향을 끼치는 값이니까. 

a= 기울기, b =절편 구하는 공식 (출처 : https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=jeywmin&logNo=132902230)

수학수식쓰기 너무 귀찬하아

공식을 보면 아주 어려워보이지만 간단하고, 공식은 시험볼거 아니면 안외워도 된다. 

$$ i $$ $$ X_i $$ $$ Y_i $$ $$ X_iY_i $$ $$ X_i^2 $$ $$ Y_i^2 $$
1 24 10 240 576 100
2 32 15 480 1,024 225
3 27 12 324 729 144
4 18 8 144 324 64
5 20 9 180 400 81
6 43 18 774 1,849 324
합계 164 72 2142 4902 938

$$  a = 6(2142) - 164(72) / 6(4902) - (164)^2 = 0.41 $$ $$ b = 72-0.41(164) / 6 = 0.79 $$ 

위의 a, b 를 기반으로 아래의 회귀 방정식이 나온다

$$ y = 0.41x + 0.79 $$

35km를 갔을때 타이어가 얼마나 필요한지 물어봤으니 값을 넣어서 계산해보면 15~16개가 나온다. 그럼 16개 주문하면 된다.
$$ y = 0.41 * 35 + 0.79 = 15.14 $$ 

 

ㅁ 성능평가

 o 회귀분석의 성능평가는 원래 데이터와 추세선과의 차이로 계산한다. 오차라고해도 되고 원래는 잔차(?)라고 한다.
 o 성능평가 결과를 MSE라고 하고, 결과보고서에는 보통 RMSE를 쓴다.(제곱해서 값이 커가지고 루트를 씌운 값)
   - 값이 작으면 작을수록 더욱 성능이 좋고 클수록 성능이 안좋은 모델임
   * (Root), Minimum, Sqaure, Error
 o 2차원 평면의 좌표에 대한 확률을 구할 수 있는 방법은 없을 것이다. 그래서 개별 인스턴스의 확률을 추정해주어야 한다.
 o 하지만 방법이 없으니 점수화 방식으로 구할 수 있다. 
 o 그리고 항상 개별인스턴스의 확률을 추정해주어야 데이터를 실제로 써먹을 수 있다!

ㅁ 점수화 방식

 o 확률을 구하는 것이 어려운 경우 대체하는 방법

$$ y = ax + b $$ => $$ f(x) = ax + b - y $$
f(x)값이 0이면 무엇을 의미하는 것일까? -> 분류선 위에 존재
이 정보를 이용해 확률 추정할 수 있는가? -> f(x)를 구했는데 0에 가까우면 분류선 근처에 있음
반대로 0과 멀어지면 분류선과 멀리 떨어져 있음
생각해보면 분류선과 가까이 있을수록 해당 계층에 포함되기 어렵다. 분류선이 조금만 바뀌어도 계층이 바뀌니까

하지만 이렇게 접근하면 문제점이 생길 수 있다. 0.1, 2.1 ..... 100일때 100의 값은 큰거 일수도 있지만
나중에 데이터를 보니 1000,100000값이 들어오면 100도 작은 수가 되어버린다.
크고 작음은 상대적이기때문에 데이터 왜곡이 발생할 수 있고 결과를 예측하기가 어렵다.

그리고 점수화 방식의 문제점이 확률로 한번에 넘어 갈 수가 없다.
f(x)의 범위는 -무한대 ~ +무한대
확률의 범위는 0 ~ 1
범위가 일치하지 않을때 어떤 방식으로 접근해야 하나

확률을 표시하는 방법 중 하나인 승산을 사용한다.
사건이 일어날 가능성 : 일어나지 않을 가능성

확률 승산
0.5 50 : 50 즉 1
0.9 90 : 10 즉 9
0.999 999 : 1 즉 999
0.01 1 : 99 즉 0.0101
0.001 1:999 즉 0.001001

 $$ odds = P / (1 - P) $$ 

위의 내용을 보면 범위가 일치 할 것인가? 일치하지 않다.
승산은 0 ~ +무한대이기 때문이다.

하지만 승산과 f(x)의 관계와 통계학자들의 정리를 이용하면 연계할 수가 있다.

$$ odds = e^{w_0+w_1x_1+w_2x_2+w_3x_3+...} $$
e의 지수를 보니까 우리가 자주보던 f(x)랑 같다. 그럼 다음과 같이 정리해준다.
$$ log_eodds = log_ee^{w_0+w_1x_1+w_2x_2+w_3x_3+...} $$ $$ log_eodds = w_0+w_1x_1+w_2x_2+w_3x_3+...  = f(x) $$

계산했더니 f(x)는 로그가 붙어있는 승산과 동일하다.

$$ f(x) = log_eodds $$
로그를 지우는 순간 지수형태로 바뀐다.
f(x) = 0이면 선위에 있어서 분류할수가 없다. 50: 50으로 즉 1이다. 확률은 0.5이고 고로 연계 가능하다.
로그를 지우면 승산으로 볼 수 있고, 승산은 확률로 변경할 수 있다.

=> 기울기를 찾아내고 f(x)를 찾아내서 로그승산으로 만들고 승산으로 변경하여 확률로 표시한다.
선형 모델로 개별 인스턴스의 확률 주정도 가능해졌다. 이로써

0 ~ 1 0 ~ +무한대 -무한대 ~ +무한대
확률 승산 로그승산 $$ f(x) $$ 
0.5 50 : 50 즉 1 0
0.9 90 : 10 즉 9 2.19
0.999 999 : 1 즉 999 6.9
0.01 1 : 99 즉 0.0101 -4.6
0.001 1 : 999 즉 0.001001  -6.9

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기