데이터사이언스/머신러닝

머신러닝 공부 8 - 분류 문제

_금융덕후_ 2019. 7. 1. 23:57
728x90
반응형

머신러닝

본 포스팅은 Andrew Ng교수의 Machine Learning 코세라 강좌를 정리한 내용입니다.

https://www.coursera.org/learn/machine-learning

분류문제

X 입력데이터, Y 출력이라고 , Y 이산의 값인 문제를 분류문제라고 한다.

다음과 같은 예제들이 있다:

  • 이메일이 스팸인지 아닌지 분류
  • 온라인 거래가 사기인지 아닌지 분류
  • 종양이 악성인지 양성인지 분류

이런 분류문제에서는 y값이 1이면 Positive, 0 이면 Negative 분류하게 된다.

 

유방암예제)

악성종양예제를 살펴보자

데이터셋에 대한 출력값은 0/1 나뉜다.

이런 데이터셋에서는, 회귀문제와 같이 데이터셋과 알맞는 직선을 그리면 안된다.

이런 문제를 푸는 방법은, 어떠한 임계값 0.5 임계값으로 두어,

$h_\theta(x) >= 0.5$ 이면 y = 1

$h_\theta(x) < 0.5$ 이면 y = 0으로로

분류하게 하면 된다.

 

이러한 문제를 분류할 때는, 종류의 데이터를 나누는 직선을 그리게 된다.

위의 문제에서는 다음과 같은 직선을 그릴 있을것이다.

(사실 어떠한 직선이든 데이터셋을 나눌수만 있으면 된다.)

 

회귀와 분류

회귀모델 분류문제와 맞지 않는 이유가 몇가지 있다.

  1. 선형회귀는 데이터에 맞는 직선을 그리게 되는데, 데이터를 분류하는 선을 그려야 한다.
  2. 회귀값은 주어진 데이터에 대한 실수값을 출력하게 되어있는데, 분류값은 0혹은 1값이어야 한다. (회귀값은 0보다 작거나 1보다 값들이 나올 있다.)

이를 해결할 있는 회귀법이 있는데, 바로 로지스틱 회귀이다.

모델은 역사적인 이유때문에 회귀라고 불리지만, 분류모델이다.

 

가설함수

회귀를 이용해 분류문제를 풀기 위해서는 가설함수를 조금 바꿔야 햔다.

이유는 $h_\theta(x)$ 0에서 1사이 , $0 <= h_\theta(x) <= 1 $ 표현해야 하기 때문이다.

따라서 기존 $h_\theta(x)$ 다음과 같이 다시 표현해보도록 하겠다.

$$h_\theta(x) = g(\theta^{T}x)$$

함수 g 다음과 같다:

$$g(x) = 1 / 1 + e^-z$$

함수의 이름은 시그모이드(Sigmoid)또는 로지스틱 함수라고 하는데,

로지스틱회귀의 이름은 로지스틱에서 따온것이다.

 

시그모이드 함수를 그래프로 그려보면 다음과 같이 나온다.

그래프를 보면 모든 값들은 0 1사이의 값인것을 있다.

x가 $\infty$로 가면 g(x)는 1이 되고 x가 $-\infty$로 가면 g(x)는 0이 된다.

 

출력값의 의미

$h_\theta(x)$ 출력값은 x 주어졌을 y 1 확률이다.

) 환자가 유방암이 있을 확률을 70%라고 하면, $h_\theta(x) = 0.7$ 것이다.

이를 조금 공식적으로 표기하면:

$$h_\theta(x) = P(y = 1 | x;\theta)$$

결국 수식의 h x $\theta$ 주어졌을 y 1 확률인 것이다.

결과를 사용해 우리는 y 0또는 1 값으로 만들어 내야 한다.

따라서 우리는 y 0 확률도 알아야하는데 이를 구하는 방법은 다음과 같다:

$$P(y = 0|x;\theta) = 1 - P(y = 1|x;\theta)$$

모든 확률을 더하면 1이고, y 1 확률과 0 확률을 더한값 역시 1 되어야 하기 때문에 y 0 확률은 , 1 - (y 1일확률) 되는것이다.

 

결정경계 (Decision Boundary)

앞서 언급했듯이 g(x) $h_\theta(x)$ 결과를 시그모이드 함수에 적용하는 것이다.

결과를 0 1 만드려면 다음과 같이 하면 된다:

$h_\theta(x)$ 값이 0 이상 , $g(x) >= 0.5$ 이면 "y = 1"

$h_\theta(x)$ 값이 0 미만 , $g(x) < 0.5$ 이면 "y = 0"

 

위는 다시말해 $\theta^{T}x$ 값에 시그모이드를 적용한 값이 0.5 이상이면 1, 0.5 미만이면 0으로 대체해주면 된다는 의미이다.

 

예제)

다음과 같은 가설함수가 있다:

$\theta$ 값이 [-3, 1, 1] , $-3 + x_1 + x_2 >= 0$ 만족하면 "y = 1" 상황이 된다.

이를 풀어보면, $x_1 + x_2 = 3$ 되는데,

이를 그래프에 그려보면 다음과 같다:

그래프를 자세히 보면, 직선의 위의 값들은 모두 x이고 아래의 값들은 모두 o이다.

따라서 데이터셋의 어떤 데이터든, $\theta_0 + \theta_1x_1 + theta_2x_2 >= 0$ 만족하면 1 그렇지 못하면 0 되는 것이다.

그리고 위의 직선이 가설함수에 의해 데이터를 분류하기 때문에 이를 결정경계라고 부른다.

728x90
반응형