분류(classification)
- 대표적인 지도학습 유형의 머신러닝 기법
- 데이터에 주어진 클래스 값을 학습하여 각 클래스를 구별할 수 있는 패턴을 찾아 학습 모델을 생성하고, 새로운 데이터에 대한 클래스를 예측
로지스틱 회귀(Logistic Regression)
- 선형 회귀 방식을 ‘참/거짓'의 분류에 적용한 기법
- 선형 회귀와 동일하게 선형 방정식을 학습함
z = w1x1 + w2x2 + w3x3 ... + wnxn(선형회귀) 일 때 z를 0과 1사이의 확률 값을 만드려면?
승산비(odds)를 활용하여 시그모이드 함수를 유도한 뒤, 시그모이드 함수 z에 적용한다.
- 분석 기법의 이름 자체에 '회귀'라는 단어가 들어가 있지만 다른 회귀 모형의 목적과 다르게 분류를 수행한다.
- 즉, 로지스틱 회귀 모형은 분류기(classifier)이다.
- 로지스틱 회귀의 기본 형태는 이진 분류이며, 예측 성능도 일반적으로 우수한 편이다.
- 로지스틱 회귀는 이진 분류: 임계치 비교에 따라 1 또는 0으로 분류
- 예: 스팸메일 VS 일반 메일, 양성 종양 VS 악성 종양, 합격 VS 불합격
- 로지스틱 회귀는 가볍고 빠르다
- 이진 분류의 예측 성능이 뛰어나다
- 이진 분류의 기본 모델로 사용하는 경우가 많다
- 희소 데이터 셋 분류에도 뛰어나서 텍스트 분류에서도 자주 사용된다(감성분석)
다중 클래스 분류
§ 다중 클래스 분류를 위한 로지스틱 회귀
- 실행 알고리즘을 다른 것으로 변경하여 다중 클래스들의 분류를 수행할 수 있다.
- 2진 분류를 여러 번 수행해서 다중 분류 수행(One VS.Rest:OvR)
- z값을 시그모이드에 넣지 않고 소프트맥스 함수에 넣어 확률 계산
- 다중 클래스들에 대한 분류를 수행하는 회귀 모형을 다항 (multinomial) 로지스틱 회귀 또는 소프트맥스(softmax) 회귀라고 한다.
- 소프트맥스 회귀를 수행하려면 LogisticRegression의 매개 변수 multi_class를 ‘multinomial’로 , 매개변수 solver를 ‘lbfgs’로 지정해 준다.
lr = LogisticRegression(solver = 'lbfgs', multi_class = 'auto', C = 100, random_state = 1)
성능 평가 지표
오차 행렬(Confusion Matrix)
y_predproba
predict는 이산적인 판정 결과(0 or 1)의 결과값을 반환하고, predict proba를 하면 각각의 확률값을 반환한다.
lr = LogisticRegression()
lr.fit(X_train, y_train)
y_pred = lr.predict(X_test)
# 여기서 y_pred가 열개의 0또는 1을 내놓는데, 여기서 0~1사이의 확률 값을 내놓을거고, 이 확률값을 확인하는게 predict_proba
Scaling
로지스틱 회귀는 Scaling 하는게 좋다
'머신러닝 및 딥러닝 > 머신러닝' 카테고리의 다른 글
앙상블 이론 (0) | 2023.02.13 |
---|---|
결정트리 이론 (0) | 2023.02.10 |
규제가 있는 선형회귀 - 라쏘, 릿지, 엘라스틱넷 회귀 (0) | 2023.02.09 |
머신러닝 모델 최적화 - 편향,분산 트레이드오프 / 교차 검증 (0) | 2023.02.09 |
머신러닝 모델 최적화 - 과적합 (0) | 2023.02.08 |