1. 로지스틱 회귀
로지스틱 회귀는 최우추정법을 사용하여 모델과 판단기준을 만들고 뉴튼-랩슨법을 사용하여 최적의 결과값을 찾는 방법
1. 분류 문제에 likelihood estimation method(최우추정법)을 사용한다.
로지스틱 회귀를 사용하여 두 속성을 가지는 집합의 경계선을 긋는 예제를 설명
이 직선 최적의 W 벡터 = {w0, w1, w2}를 구하면 됩니다.
x로 표시되는 점의 속성값이 t=1, 그리고 o로 표시되는 점의 속성값이 t=1로 정의될 때
아래 두 새로운 점 중 어떤 것이 t=1일 확률이 높을까요?
- 직관적으로 오른쪽에 있는 새로운 점의 속성값이 t=1일 확률이 더 높을 것이라 생각할 수 있을 것
다르게 표현하면 그림에 나타내어져 있는 직선은 f(x, y) =0이고 새로운 점이 t=1쪽으로 갈수록 f(x, y)의 값이 높아질 때
새로운 점의 f(x, y) 값이 클수록 그 점의 t 값은 1일 확률 이 높아진다고 생각할 수 있음
자 그럼 이러한 생각을 수학적으로 나타내려면 어떻게 할까요?
바로 여기서 로지스틱 함수가 사용
로지스틱 함수는 다음과 같은 함수로써 정의역 (-∞,+∞)에 대해 치역 (0,1)로 정의되어 있습니다.
즉 0 또는 1에 수렴하되 0이나 1이 되진 않습니다. 그리고 이걸 확률에 대한 함수라 생각하였을 때는 독립변수의 값에 따라 확률이 0~ 1(0% ~100%)이 된다고 생각해볼 수 있습니다. 그리고 변숫값 =0 일 때는 확률이 무조건 0.5가 되는 함수라 생각할 수도 있음
확률에 대한 함수인 로지스틱 함수에 f(x, y)를 대입합니다.
그렇게 탄생한 P(x, y)는 "새로운 점의 속성값 t=1일 확률"을 나타냅니다.
반대로 "새로운 점의 속성값 t=0일 확률"은 1-P(x, y)로 나타내어질 수 있겠습니다.
2. 만들어진 모델을 사용해 판단 기준을 정한다.
이러한 값을 사용해서 "n 번째의 데이터 셋{xn, yn, tn}이 구해질 확률"을 구할 수 있습니다.
(이렇게 결괏값에 대한 확률을 구하는 함수를 우도 함수라고 하였습니다.)
n 번째의 데이터 셋이 구해질 확률을 Pn이라 하면 다음과 같이 수식이 이루어집니다.
여기에서 t의 값을 0과 1로 정의한 이유가 있습니다.
만약 f(x, y)=0인 직선 기준 오른쪽에 분포되었다면 t=1일 확률을 따라야 하고 반대인 경우
t=0일 확률을 따라야 하기 때문입니다.
그리고 계산을 편하게 하기 위하여 벡터로 써 표현합니다.
z 함수 안에 우리가 구해야 하는 W 벡터가 있다는 것을 유의하시기 바랍니다.
이제 이것을 사용하여 "모든 데이터 셋이 올바르게 구해질 확률"을 구할 수 있습니다.
(이것이 해당 예제에 대한 진정한 우도 함수라 부를 수 있을 것입니다.)
우리는 이 P의 값이 최대가 되게끔 하는 w 값을 찾으면 됩니다.
3. 판단 기준을 따라 최적의 W를 구한다.
이것을 계산하는 방법은 아래의 함수를 어느 정도 이상 반복하면 됩니다.
위의 행렬을 따라 반복하면 됩니다. z 값은 Wold 값으로 이미 계산된 값이 존재하므로 위의 식은
Wnew를 포함한 모든 식이 상수입니다. 결국 이 iterate 과정을 통하여 w 값은 최적해에 수렴하기 때문에
초기의 Wold 값은 무엇으로 하던지 상관없습니다
ROC 곡선
로지스틱 회귀를 사용해 그은 직선을 이용하여 실제 상황에 유용하게 사용될 수 있는 정보를 얻을 수 있습니다.
로지스틱 회귀곡선을 사용해 그은 직선을 토대로 새로운 점의 속성값이 어느 정도 확률로 어떤 속성을 가질 것인지 알 수 있지만 이것은 머신 러닝 알고리즘을 통해 나온 결과일 뿐 실제 상황이 그렇다는 것은 아닙니다. 우리는 머신 러닝 알고리즘이 얻어주는 정보의 의미를 제대로 해석하여 우리가 실제로 사용할 수 있는 정보로 가공하는 것이 필수적으로 필요할 것입니다.
[출처] 5. 로지스틱 회귀와 ROC곡선 (Logistic Regression And ROC curve)|작성자 KorShort
'머신러닝 이론 입문' 카테고리의 다른 글
04. 퍼셉트론: 분류 알고리즘 기초 (1) | 2019.08.15 |
---|---|
3장 최우추정법: 확률을 사용한 추정이론 (0) | 2019.08.13 |
1장 데이터 과학과 머신러닝 (0) | 2019.07.17 |