강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

tmdqkr0930님의 프로필 이미지
tmdqkr0930

작성한 질문수

[개정판] 파이썬 머신러닝 완벽 가이드

로지스틱 회귀의 이해

로지스틱 회귀(다항 로지스틱)

작성

·

847

0

보통 시그모이드 함수는 종속변수가 2개로 분리될 때 사용된다고 배웠습니다. 그렇다면 종속변수가 3개나 그 이상으로 분리 된다고 했을 때는 시그모이드함수 말고 다른 걸 사용하면 되는건가요?  실제 사례에 적용을 하고 싶은데 어떤 자료를 공부하면 될까요? 

답변 1

0

권 철민님의 프로필 이미지
권 철민
지식공유자

안녕하십니까,

Logistic Regression은 기본적으로 이진 분류(Binary classification) 인데, 이를 multi classification에 적용하는 방법은 주로 One Vs RestClassifier 방법입니다.One Vs RestClassifier은 이진 분류가 아닌 타겟값이 여러개인 multi classification(타겟값의 유형이 여러개)에서 일반적으로 언급되는 개념입니다. 

One Vs RestClassifier은 가령 100개의 데이터 중에 타겟값 유형이 사과, 바나나, 배, 딸기 4개 유형이 있다고 할 때, 4개의 이진 classifier를 만드는데 개별 이진 classifer는 각 class 값/class값 아님으로 분리하여 학습하는 방식입니다.

예를 들어 사과 이진 classifer는 결과값을 사과/사과아님 으로 간주하고 여기에 해당하는 데이터 세트를 모아서 학습합니다.  마찬가지로 바나나 이진 classifier는 결과값을 바나나/바나나 아님과 같은 형태로 만들어서 여기에 해당하는 데이터 세트를 모아서 학습합니다. 즉  자기가 담당하는 클래스값 외에는 나머지(Rest)는 모두 negative로 처리하는 방식입니다.

이후에 4개의 classifier중 가장 높은 확률로 예측하는 클래스를 선택하여 multi classification을 구현하는 방식입니다.

사이킷런의 LogisticRegression 객체는 생성자로 multi_class 파라미터를 가집니다. multi_class='ovr' 일경우 binary classification, 'multinomial' 일 경우 multi classification, 'auto' 일 경우 타겟값 유형을 자동으로 해석하여 binary 또는 multinomial을 적용합니다.

clf = LogisticRegression(multi_class='auto')

디폴트가 auto 이므로 LogisticRegression() 으로 하면 타겟값의 유형에 따라 자동으로 binary 또는 multi classification 을 적용 합니다.

감사합니다.

tmdqkr0930님의 프로필 이미지
tmdqkr0930

작성한 질문수

질문하기