본문 바로가기
ML & DL/혼자 공부하는 머신러닝+딥러닝

로지스틱 회귀 - 다중 분류

by Glory_Choi 2022. 8. 5.
반응형

https://glorychoi.tistory.com/entry/%EB%A1%9C%EC%A7%80%EC%8A%A4%ED%8B%B1-%ED%9A%8C%EA%B7%80Logistic-Regression

 

로지스틱 회귀(Logistic Regression)

로지스틱 회귀란? 로지스틱 회귀(logistic regression)는 이름은 회귀이지만 분류 모델입니다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습합니다. z = a * 무게 + b * 길이 + c * 대각선 + d *

glorychoi.tistory.com

이진 분류와 다중 분류는 크게 다르지 않습니다. 여기에서도 LogisticRegression 클래스를 사용해 7개의 생선을 분류해 보면서 이진 분류와 차이점을 알아보겠습니다.

 

로지스틱 회귀로 다중분류 수행하기

LogisticRegression 클래스는 기본적으로 반복적인 알고리즘을 사용합니다. max_iter 매개변수에서 반복 횟수를 지정하며 기본값은 100입니다. 기본값으로 준비한 데이터 셋을 사용해 모델을 훈련하면 반복 횟수가 부족하다는 경고가 발생합니다. 충분하게 훈련시키기 위해 반복 횟수를 1000으로 늘리겠습니다.

LogisticRegression은 기본적으로 계수의 제곱을 규제합니다. LogisticRegression에서 규제를 제어하는 매개변수는 C입니다. 규제를 제어하는 매개변수 C는 작을수록 규제가 커집니다. C의 기본값은 1이지만 규제를 완하하기 위해 20으로 늘리겠습니다.

훈련 세트와 테스트 세트에 대한 점수가 높고 과대적합이나 과소적합으로 치우친 것 같지 않습니다.

테스트 세트의 처음 5개 샘플에 대한 예측을 출력해보겠습니다.

테스트 세트의 처음 5개 샘플에 대한 예측 확률을 출력해보겠습니다. 출력을 간소화하기 위해서 소수점 네 번째 자리에서 반올림하겠습니다.

다중 분류일 경우 선형 방정식이 모습을 알아 보기 위해서 coef_와 intercept_의 크기를 출력해 보겠습니다.

이 데이터는 5개의 특성을 사용하므로 coef_배열의 열은 5개입니다. 그건데 행이 7입니다. intercept_도 7개나 있습니다. 이 말은 이진 분류에서 보았던 z를 7개나 계산한다는 의미입니다.

다중 분류는 클래스마다 z 값을 하나씩 계산합니다. 이진 분류에서는 시그모이드 함수를 사용해 z를 0과 1사이의 값으로 변환했습니다. 다중 분류는 이와 달리 소프트 맥스(softmax) 함수를 사용하여 7개의 z 값을 확률로 변환합니다.

decision_function() 메서드로 z1~z7까지의 값을 구한 다음 소프트맥스 함수를 사용해 확률로 바꾸어 보겠습니다.

사이파이는 소프트맥스 함수도 제공합니다.

반응형