Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

동삼이의 노트북

로지스틱 회귀 (logistic regression) 본문

Machine Learning

로지스틱 회귀 (logistic regression)

동삼이 2020. 12. 10. 16:46

로지스틱 회귀는 회귀 알고리즘 중에서 분류에 사용할 수 있는 알고리즘이다. 이는 샘플이 특정 클래스에 속할 확률을 추정하는데 사용된다. 추정 확률이 50%가 넘으면 모델은 그 샘플이 해당 클래스에 속한다고 예측한다. 즉 레이블이 1인 양성 클래스가 되는 것이고 50%보다 낮으면 레이블이 0인 음성 클래스가 된다. 이를 이진 분류기라고 한다.

 

확률 추정

로지스틱 회귀는 선형 회귀와 같이 입력 특성의 가중치 합을 계산하고 편향을 더하는 식으로 작동한다. 대신 선형 회귀처럼 바로 결과를 출력하지 않고 결과값의 로지스틱(logistic)을 출력한다.

로지스틱은 0과 1사이 값을 출력하는 시그모이드 함수(sigmoid function)이다. 함수는 다음과 같이 생겼다.

 

로지스틱 회귀 모델이 샘플 x가 양성 클래스에 속할 확률 h(x)를 추정하면 이에 대한 예측 y를 쉽게 구할 수 있다.

 

t < 0 이면 𝝈(t) < 0.5 이고 t >= 0 이면 𝝈(t) >= 0.5 이므로 로지스틱 회귀모델은 𝜽^t*x가 양수일 때 1이라고 예측하고 음수일 때 0이라고 예측한다.

 

훈련과 비용 함수

로지스틱 회귀 모델을 훈련할 때 목적은 양성 샘플에 대해서는 높은 확률을 추정하고 음성 샘플에 대해서는 낮은 확률을 추정하는 모델의 파라미터 벡터를 찾는 것이다. 

위는 하나의 훈련 샘플 x에 대해 나타낸 비용함수식이다. 이 비용함수는 t가 0에 가까워지면 -log(t)가 매우 커지므로 타당하다 할 수 있다. 그러므로 모델이 양성 샘플을 0에 가까운 확률로 추정하면 비용이 크게 증가할 것이다. 반면에 t가 1에 가까우면 -log(t)는 0에 가까워진다. 따라서 음성 샘플의 확률을 0에 가깝게 추정하거나 양성 샘플의 확률을 1에 가깝게 추정하면 비용은 0에 가까워 질 것이다.

 

전체 훈련 세트에 대한 비용 함수는 모든 훈련 샘플의 비용을 평균한 것이다. 이를 로그 손실이라 부르며 식으로 나타내면 다음과 같다.

이 식의 경우, 정규 방정식 같이 비용 함수의 최솟값을 계산하는 해는 없지만 비용 함수식이 볼록 함수이므로 경사 하강법이 전역 최솟값을 찾는 것을 보장한다. 

 

결정 경계

로지스틱 회귀를 실습하기 위해 사이킷 런에서 제공하는 붓꽃 데이터셋을 사용해보자.

 

이 데이터셋은 세 개의 품종 Setosa, Versicolor, Virginica에 속하는 붓꽃 150개의 꽃잎(petal)과 꽃받침(sepal)의 너비와 길이를 담고 있다.

 

꽃잎의 너비를 기반으로 Versicolor 종을 감지하는 분류기를 만들어 보자.

 

우선 사이킷런의 데이터셋을 불러온다. 붓꽃 데이터 셋은 위와 같은 key로 이루어져 있으며 여기서 꽃잎의 너비 데이터만을 이용해 Versicolor종을 분류하고자 한다.

위와 같이 데이터 셋을 분리하여 X,y 변수에 저장해준다.

사이킷 런의 LogisticRegression을 불러온 후 모델을 훈련시킨다. 0 부터 3까지 값을 갖는 1000개의 샘플을 X_new라는 이름으로 생성한뒤 이를 붓꽃잎의 너비로 하여 predict_proba 메소드를 통해 해당 클래스에 속할 확률을 출력한다.

그래프를 출력하면 위와 같이 나온다. 빨간 색 실선은 훈련 데이터 셋의 Virginica 종의 데이터이고 파란 색 실선은 Virginica 종이 아닌 데이터를 의미한다. 그래프 상단의 빨간 색 삼각형 표시는 새로 생성한 X_new 데이터에서 잎의 너비가 1.4 부터 2.5cm에 분포하는 샘플들이며 파란 색 사각형 표시는 잎의 너비가 0.1 ~ 1.8cm에 해당하는 샘플을 의미한다. 모델은 잎의 너비가 2.0이 넘는 샘플을 Virginica 종으로 강하게 확신하며 1cm 아래인 샘플을 Virginica 종이 아니라고 강하게 확신한다. 이는 해당 잎의 너비를 가진 데이터 샘플의 레이블이 Virginica 일 확률이 90%가 넘어갈 때 그러한 모습을 보이는데, 이 두 실선이 겹치는 가운데 부분은 분류가 확실하지 않다. 실제로 빨간 색 삼각형 표시와 파란 색 사각형 표시가 겹치는 구간이 있다. 이러한 구간인 1.6cm 구간에서 양쪽의 확률이 똑같이 50%가 되는데 이 근방에서 결정 경계(decision boundary)가 만들어진다. 즉 꽃잎의 너비가 1.6보다 크면 분류기는 Verginica로 분류할 것이고 그보다 작으면 Verginica가 아니라고 분류하게 될 것이다.

 

이번에는 꽃잎의 너비와 길이를 사용하여 로지스틱 회귀 분류를 해보았다. 이 두 특성을 기반으로 하여 Verginica인지 아닌지 확률을 추정할 수 있다. 가운데 검정색 점선이 모델이 50%확률을 추정하는 결정 경계이며 15% 부터 90%까지 나란한 직선들은 모델이 특정 확률을 출력하는 포인트를 나타낸다. 이 분류기는 맨 오른쪽 위의 직선을 넘어서 있는 삼각형 데이터들을 90% 이상의 확률로 Virginica라고 판단할 것이다.

Comments