머신러닝

Multiclass Logistic regression을 위한 Pivoting( One vs Rest :OvR)

coding art 2019. 4. 26. 16:09
728x90


파이선 코딩을 배우는 초보자도 머신 러닝에 독학으로 한번 도전해 보자.

왜냐구요? 그다지 어렵지 않으니까요!

머신 러닝을 배우려는 파이선 코딩 초보자들이 가지게 될 확률이 높은 의문점들을

하나하나 찾아내어 실제 풀어보고 결과를 확인해볼 수 있는 머신 러닝!

인터넷 교보문고에서 450페이지19900원에 판매중입니다.











________________________________________________________________________________________________________________________


Perceptron 에 의한 3종의 Iris flowers Data Classification 작업은 선형적 분리가 불가능한 문제이므로 위와 같이 실패 사례를 보여 준다. 그 자세한 내용에 관해서는 아래 내용을 참조해 보기 바란다.

 

1-5 Iris flowers data 머신 러닝을 위한 sklearn 라이브러리 활용

https://steemit.com/kr/@codingart/1-5-iris-flowers-data-sklearn

 

이런한 문제 해결을 위해 고안된 방법이 Multiclass Logistic Regression 이며 scikit-learn 라이브러리에서 Logostic Regression 라이브러리 함수 형태로 지원이 되고 있다. C= 100.0 이란 파라메터 용법이 있는데 이는 데이타들이 섞이는 구간에서 Overfitting 현상을 피하기 위한 Regularization 알고리듬을 실행시키는 기능을 가진다.


 Logistic regression 2개의 라벨 값을 다루기에 적합한 머신 러닝 기법이므로 Iris flowers 데이터처럼 3개 또는 그 이상의 라벨 값을 가지는 경우에 하나의 라벨 값을 가지는 데이터를 Pivoting 할 필요가 있다. Pivoting 이라 함은 하나를 선정 후 나머지 중에서 하나씩 대응시켜 1:1 문제로 귀착시킨다는 의미이다. Pivot으로 선정된 데이터에 대하여 나머지 데이터들을 대상으로 1:1 문제로 환원하여 리그 방식으로 처리하는 개념이다.

 

만약 전체 대상 자체가 2가지 즉 K=2라면 Pivoting 공식은 우리가 알고 있는 Logistic regression으로 환원되어야 한다.

 

K개의 라벨 값 중 K값을 가지는 경우를 Pivot 으로 설정하고 라벨 값이 1(K-1)범위 중에서 하나씩 대상으로 선정해 매치시키기로 하고 각 라벨 값에 따른 확률을 pi 라 하자.

 

이들 확률비의 자연로그 값을 선형 Hypothesis 형태로 가정하자.

이 식을 유도하려면 볼츠만 확률분포 유도과정과 이로부터 Logistic Regression 확률 분포 과정을 함께 다루어야 하지만 그대로 인정하고 사용해도 그다지 문제 가 되지는 않는다. 이 식을 풀어서 다시 쓰도록 하자

  

위의 확률들과 K 번째 확률을 다 더하면 1.0 이 되어야 한다.

  

이 식을 정리하면 Pivot 확률이 아래와 같이 얻어진다.

  

Pivot 확률을 사용하여 (2)식에 대입하여 K-1 번째 데이터까지에 대한 확률 공식을 유도할 수 있다.

  

 이 마지막 공식에서 K=2 라면 Logistic regression으로 귀착됨을 쉽게 알 수 있으며 K 값이 2 이상이라도 cost 함수를 구성하여 경사하강법을 적용하면 계산이 가능하다.