분류( Classification )
데이터를 통해, 타겟(0, 1) 혹은 더 많은 범주로 예측하는 것을 말합니다.
기준모델( Base line )
분류에서의 기준모델은 타겟변수의 최빈값입니다. 예를 들어 0과 1로 타겟변수가 있을 때 0이 80%를 차지하고 있다면, 앞뒤 안보고 0으로만 찍는다면 정확도가 80%가 나올 수 있습니다. 이 때 우리가 만든 모델이 80%이상의 정확도가 있더라도, 좋은 상황이 아님을 알 수 있습니다.
분류 모델 중 하나인 로지스틱회귀 (Logistic Regression)
- 범주형이면서 0과 1 등과 같은 두개의 값만 가지는 종속변수를 갖을 때 사용하는 회귀분석입니다.
- 그래서 실제로, 발생할 확률이 결과 값으로 나오며, 기준점을 정해 50% 이상이면 1 아니면 0으로 분류합니다.

- 왼쪽과 같이 선형회귀일 때는 Y의 범위는 −∞ ~ Y과 0~1의 범위 값을 갖는 로지스틱의 경우에는 로짓변환을 통해 오른쪽 그림과 같이 곡선형으로 변환합니다.

- 로짓 변환이란, 오즈에 로그를 취해 변환하는 것을 의미합니다.
- 오즈란, 범주 0에 성공 확률 대비 범주 1에 속할 확률입니다. 예를 들면 odds = 3이라고 하면, 성공확률이 실패확률보다 3배 높다 라고 말할 수 있습니다.
- 로짓변환을 하는 이유는, 기존의 모형 공식으로는 변수의 영향을 직관적으로 보기 어려움이 있었습니다. 그래서 아래와 같이 로짓변수를 진행하여, 선형회귀와 유사한 식으로 만들어 보다 쉽게 확인할 수 있습니다. 또한, Y의 범위를 X의 값의 범위와 동등하게 해주려는 의도도 있습니다.


로지스틱은, 결론적으로 1이 될 확률을 구해서, 0과 1을 구분짓는 경계값을 통해 분류합니다.
평가지표
- Accuracy, AUC, ROC
로지스틱회귀 with Python
from sklearn.linear_model import LogisticRegression
# 타이타닉 예시 데이터로, 확인해 보세요
타이타닉 데이터 : https://www.kaggle.com/c/titanic/data
df = 타이타닉.csv
features = ['f', 'e', 'a', 't', 'u', 'r', 'e']
target = 'Y'
X = df[features]
y = df[target]
model = LogisticRegression(random_state=42)
model.fit(X, y)
'머신러닝' 카테고리의 다른 글
의사결정트리( Decision Tree ) (0) | 2021.08.09 |
---|---|
회귀모델 및 모델 평가 방법 등 복습 (0) | 2021.08.06 |
원핫인코딩, 특성 선택, 릿지 회귀( Ridge Regression ) (0) | 2021.08.04 |
다중선형회귀( Multiple Linear Regression) (0) | 2021.08.03 |
단순선형회귀( Simple-Regression ) (0) | 2021.08.02 |