본문 바로가기
Make the Learning Curve/Data Science

[M/L - Classification]Logistic Regression (feat. Linear Regression)

by 에이도 2020. 11. 24.

Machine Learning 에는 지도학습( Supervised Learning)과 비지도학습(Unsupervised Learning)이있다.

 

여기서 지도학습에는 Regression(회귀)와 Classification(분류)가 있다.

 

두 가지의 특징을 간단히 알아보자.

 

두 가지 특징을 알기에 앞서 독립변수와 종속변수의 개념을 알아야한다.

일반적으로 독립변수주어진 데이터 값 ( x 값) , 종속변수독립변수에 의해 영향을 받는 값 (y 값)
이렇게 표현할 수있다.

 

  • Regression (회귀)
    • 독립변수에 대해서 종속변수 값이 연속형(Continuous) 값으로 나타난다. 
    • 독립변수 모델링을 통해 종속변수를 구하고 실제 값을 예측하는 것
    • ex) [키 185cm, 162.7cm] [온도 : 25.3도 , 27.2도] 등 
더보기

일반적으로 독립변수는 x, 종속변수는 y 그리고 회귀모형에서는 회귀계수가 추가된다.

 

y = β_0 + β_1*x_1 + β_2*x_2 + ... +β_n*x_n 

이렇게 n개의 변수가 존재할 수 있다.

 

이때, y값(종속변수)를 추정하기 위해서는 회귀계수(혹은 가중치)를 구해야한다.

왜냐하면, x_k (k = 1,2,3,...,n)는 이미 관측된 값으로 데이터로 주어지기 때문이다.

회귀계수를 구하는 방법은 독립변수가 1개일때와 2개 이상일때 다르다.

이러한 회귀의 특징을 알고 Logistic Regression을 알아보자.

로지스틱 회귀는 Classification에 속한다.

이름에 Regression이 붙어있어서 처음에 회귀에 속하는 모델인줄 알았지만,

선형회귀 모델을 통한 시그모이드를 이용하기때문에 그렇게 이름이 붙은것이라고 생각이든다.

 

Classification을 간단히 알아보면,

  • Classification(분류)
    • 독립변수에 대해 종속변수 값이 이산형(Discrete) 또는 범주형(Categorical) 값으로 나타난다.
    • 독립변수에 의해 특정 문제에 참 / 거짓 등의 판별을 예측하는 것이다.
    • ex) [0 ,1], [10 , 500 ], [남자, 여자] , [참, 거짓] , [예, 아니오] 등 

이러한 특징이 있다.

 

이제 Logistic Regression을 알아보자.

 

위에서 처럼 간단히 표현한 회귀의 방정식은  y = β_0 + β_1*x_1 + β_2*x_2 + ... +β_n*x_n 이다.

그리고 이렇게 표현하여 Logistic Regression의 시그모이드 함수( g(z) )에 대입하게 된다.

g(z)가 시그모이드 함수이고, 위에서 구한 회귀방정식을 g(z) = ( 1 / (1+ e^-z) ) 의 z자리에 대입한다.

이렇게 Logistic Regression 함수를 구할 수 있다 

 

 

이때, 로지스틱 회귀 함수 값의 범위는 0부터 1사이 이다.

따라서 0에 가까울수록 사건이 일어나지 않을 가능성이 높은 것이고,

1에 가까울수록 사건이 발생할 확률이 높다는걸 의미한다.

이 그래프는 x축은 z축, y축은 g(z)를 통해 구한 그래프이다. 

따라서 z와 g(z)사이의 관계를 나타내는 그래프이다.

 

 

이렇게 0을 기준으로 z값의 변화에 대해 h_θ(X)의 값의 범위도 달라지게 된다.

따라서 0.5가 threshold가 된다.

 

하지만, 실제 결과 값y값은 클래스를 나타내기 때문에 0 또는 1 값 만을 가지게 된다.

 

 

 

머신러닝에서 꼭 지켜야하는 Golden Rule은 비용함수를 정의하고, 이 비용함수를 최소화 혹은 최적화하는 θ 값을 찾는것이다.

따라서 이 비용함수내의 예측값(h_θ(X) ) 과 실제값(yi)의 차이(오차 or 잔차)를 최소화하도록 해야한다.

 

Linear Regression 에서는 sum of squared error로 비용함수를 정의해서

최소제곱(Least square) 알고리즘과, 경사하강법(gradient decent)를 사용한다.

 

그러면 Logistic Regression에서는 어떻게 비용함수를 정의해서 최소화 시켜야하는가?

 

위에서의 경사하강법 사용에는 어려움이 있다.

왜냐하면 global minimum이 아닌 local minimum에 빠질 확률이 높기 때문이다. 

따라서 다른 형태의 비용함수 설계가 필요하다!

 

수업에서는 Loss function을 사용하였다.

 

 

 

 

따라서 종속변수에 영향을 미치는 독립변수를 어떻게 수집하고 어떻게 모델링할것인가, 

그리고 인사이트 발견, 정보수집, 실제 비즈니스 로직을 이해해야 종속변수에 따른 독립변수 설정이 용이하다.

따라서 해당 도메인에 대한 넓은 지식과 문제 해결을 위한 데이터 모델링에 있어서 창의력과 집요함이 요구가 된다.

 

이 점이 머신러닝 모델링에서 가장 중요한 부분이라고 생각한다.

 

 

댓글