4장: 모델 훈련 part 6 (p.188)

Logistic Regression

선형 회귀를 연속적인 것에서 이산적인 것으로 변환하여 분류기처럼 행동하게끔 할수 있게 해주는 방법이다. 주어진 데이터들이 이산적이거나 (성별 0 또는 1) , 연속적인 (키 : 171.2, 173.5cm 등) 변수들을 갖고 있는데 연속적인 데이터 성질 때문에 나오는 출력 값은 연속적이게 된다. 이 연속적인 값을 어떠한 function에서 작업을 통해 0 또는 1 처럼 분류하는 값으로 이끌어낼 수 있다.

 

 


확률 추정 / 훈련과 비용함수

 

 

굳이 sigmoid 변환을 통해 0과 1 사이의 값으로 즉, 확률적인 성질을 띄게한 이유가 애매하다. 왜냐면 굳이 0 과 1 사이가 아니어도 특정 기준을 잡아 분류기준을 정할 수 있기 때문이다. 하지만 사용한 이유를 보자면 binomial distribution처럼 행동하여 비용함수의 정의를 표현할 때 사용하기 위하여 0과1로 제한한 확률적인 성질로는 적합해보인다. (하지만 이 또한 비용함수를 다른 것으로 정의하면 필요가 없어진다.) 이건 다른 관점의 얘기인데 굳이 시그모이드를 사용한 이유가 궁금해지는데, non-linear한 성질과 monotone increasing function의 성질로 신경망을 학습시킬 때 좋은 효과를 보인다. 시그모이드 말고 ReLu 등의 함수들

 

 

 

사용 예시 ( iris dataset )


logistic regression을 이용하기 위해 iris dataset을 사용해본다. setosa, versicolor, virginica 세 개의 품종이 있으며 150개의 꽃잎, 꽃받침, 너비, 길이를 가지고 있다.

 

logistic regression 을 이용한 훈련코드

 

1.6cm 근방에서 decision boundary가 만들어진다. 즉 너비가 1.6cm 보다 크면 분류기는 verginica로 분류하고 그보다 작으면 아니라고 예측할 것이다.

 

이번에는 꽃잎 너비와 길이 두개의 특성으로 보여준다. 점선은 이 모델의 decision boundary이며 이 경계는 선형이다.

 

 

 

 


Softmax Regression

 

소프트맥스 회귀를 사용해 붓꽃을 세 개의 클래스로 분류한다. Logistic Regression은 클래스가 둘 이상일 때 기본적으로 OvA 전략을 사용한다. 하지만 multi-class 매개변수를 “multinomial”로 바꾸면 소프트맥스 회귀를 사용할 수 있다. 소프트맥스 회귀를 사용하려면 solver 매개변수에 “lbfgs”와 같이 소프트맥스 회귀를 지원하는 알고리즘을 지정해야 한다.

길이가 5, 너비가 2 cm인 붓꽃을 예측해보라고 하면 94.2% 확률로 virginica라고 출력한다.

 

4장 전체 코드 :

 


References : Hands-On Machine Learning with Scikit-Learn & TensorFlow

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다