강의 자료 : 3. 분류분석 - 로지스틱회귀
실습 자료
scikit learn 홈페이지 : API Reference — scikit-learn 1.6.1 documentation
머신러닝(예측)
/ \
숫자(회귀) 범주/카테고리(분류)
| |
선형회귀 로지스틱 회귀
타이타닉 생존 분류 문제
데이터 먼저 보기
https://www.kaggle.com/c/titanic
- 주제: 탑승한 승객의 정보를 바탕으로 생존 유무를 예측하는 분류 문제
- Y(종속변수): 사망(0), 생존(1)
- X(독립변수): 티켓등급, 성별, 요금 등
- 변수
- PassengerId: 승객 식별자(Primary Key)
- Survival : 사망(0) 생존(1)
- Pclass: 티켓 등급(1,2,3 등급)
- Name: 이름
- Sex: 성별
- Age: 나이
- SibSp: 승객의 형제와 배우자 수
- Parch: 승객의 부모님과 자식 수
- Ticket: 티켓 번호Cabin: 객실 이름
- Embarked: 승선한 항구 C(Cherbourg), Q(Queenstown), S(Southampton)
- Fare: 요금
타이타닉 데이터로 실습한 것은 자료에 있습니당
로지스틱회귀
범주형 Y에서 선형함수의 한계
- X가 연속형 변수, Y가 특정 값이 될 확률인 경우
- 확률은 0과 1 사이 값이므로 선형으로 설명하기 어려움
- 선형 회귀는 예측 값이 확률 범위를 넘어갈 수 있는 문제 발생
- => s자 형태의 함수 적용

오즈비 (Odds ratio)
- s 형태의 함수를 만들기 위해 오즈비 개념 적용
- 오즈비 : 실패 확률 대비 성공 확률로 승산비라고 하기도 함
- 오즈비 = P / (1-P)
- P가 증가할수록 오즈비가 급격하게 증가하므로 선형성을 따르지 않게 됨
- 따라서 로그를 취해서 완화함
- logit = log(P/(1-P))
오즈비와 확률의 관계 / 로짓과 확률의 관계
- 로짓의 그래프가 더 선형적인 그림을 나타내어 선형회귀의 기본식을 활용할 수 있게 됨
- 따라서 로지스틱 회귀라고 함
- 아래 그래프를 보면, 확률이 증가할수록 오즈비는 급격히 발산하고 로짓은 완만하게 증가함

위 그래프의 X, Y축을 교체하면 로지스틱 함수!!
X축 : 로짓, Y축 : 확률

로짓의 장점 : 어떤 값을 가져오더라도 반드시 특정 사건이 일어날 확률이 0과 1 안으로 들어오게 하는 특징이 있음
로짓과 기존 선형회귀를 합치면 다음 식을 도출해 낼 수 있음


해석: X값이 w1만큼 증가하면 오즈비는 e^{w1}만큼 증가한다.
로지스틱함수는 가중치 값을 안다면 X값이 주어졌을 때 해당 사건이 일어날 수 있는 P의 확률을 계산할 수 있게 됩니다.
이때, 확률 0.5를 기준으로 그보다 높으면 사건이 일어남(P(Y) = 1), 그렇지 않으면 사건이 일어나지 않음(P(Y) = 0)으로 판단하여 분류 예측에 사용합니다.(이진분)
분류 평가 지표
분류 평가 지표의 대표적인 것은 정확도와 F1-Score
혼동 행렬

- 실제 값과 예측 값에 대한 모든 경우의 수를 표현하기 위한 행렬
- 표기법
- 실제와 예측이 같으면 True / 다르면 False
- 예측을 양성으로 했으면 Positive / 음성으로 했으면 Negative
- 해석
- TP: 실제로 양성(암 환자)이면서 양성(암 환자) 올바르게 분류된 수
- FP: 실제로 음성(정상인)이지만 양성(암 환자)로 잘못 분류된 수
- FN: 실제로 양성(암 환자)이지만 음성(정상인)로 잘못 분류된 수
- TN: 실제로 음성(정상인)이면서 음성(정상인)로 올바르게 분류된 수
- 지표
1. 정밀도(Precision): 모델이 양성 1로 예측한 결과 중 실제 양성의 비율(모델의 관점)
정밀도 = TP / (TP + FP)
2. 재현율(Recall): 실제 값이 양성인 데이터 중 모델이 양성으로 예측한 비율(데이터의 관점)
재현율 = TP / (TP +FN)
3.f1-Score: 정밀도와 재현율의 조화 평균
f1-Score = 2 * (정밀도 * 재현율) / (정밀도 + 재현율)
4. 정확도(Accuracy)
정확도 = (TP + TN) / (TP + TN + FP + FN)
Y 값이 균일하지 않을 떄 분류에서 정확도가 제 기능을 못하는 경우가 있음
따라서 Y 범주의 비율을 맞춰주거나 평가 지표를 f-score를 사용함으로써 이를 보완함
`ex) 일반 환자를 음성, 암 환자를 양성이라 하고, 100명의 환자 중 95명은 음성, 5명은 양성
- TP: 실제로 양성(암 환자)이면서 양성(암 환자) 올바르게 분류된 수 → 0명
- FP: 실제로 음성(정상인)이지만 양성(암 환자)로 잘못 분류된 수 → 0명
- FN: 실제로 양성(암 환자)이지만 음성(정상인)이라고 분류된 수 → 5명
- TN: 실제로 음성(정상인)이면서 음성(정상인)이라고 분류된 수 → 95명
로지스틱 회귀 실습
실습한 자료는 가장 위에 자료에 있습니당~
자주 쓰는 함수
sklearn.linear_model.LogisticRegression : 로지스틱회귀 모델 클래스
- 속성
- classes_: 클래스(Y)의 종류
- n_features_in_ : 들어간 독립변수(X) 개수
- feature_names_in_: 들어간 독립변수(X)의 이름
- coef_: 가중치
- intercept_: 바이어스
- 메소드
- fit: 데이터 학습
- predict: 데이터 예측
- predict_proba: 데이터가 Y = 1일 확률을 예측
- sklearn.metrics.accuracy: 정확도
- sklearn.metrics.f1_socre: f1_score
로지스틱회귀
- 장점: 역시 직관적이며 이해하기 쉽다.
- 단점: 복잡한 비선형 관계를 모델링 하기 어려울 수 있음
마지막 정리
선형회귀와 로지스틱회귀의 공통점
- 모델 생성이 쉬움
- 가중치(혹은 회귀계수)를 통한 해석이 쉬운 장점이 있음
- X변수에 범주형, 수치형 변수 둘 다 사용 가능
선형회귀와 로지스틱 분류 차이점
|
|
선형회귀(회귀)
|
로지스틱회귀(분류)
|
|
Y(종속변수)
|
수치형
|
범주형
|
|
평가척도
|
Mean Square Error R Square(선형 회귀만) |
Accuracy
F1-score |
|
sklearn 모델 클래스
|
sklearn.linear_model.linearRegression
|
sklearn.linear_model.LogisticRegression
|
| sklearn 평가 클래스 |
sklearn.metrics.mean_squared_error
sklearn.metrics.r2_score |
sklearn.metrics.accuracy_score
sklearn.metrics.f1_score |
데이터 분석 프로세스

'내일배움캠프_QAQC 1기 > 머신러닝의 이해와 라이브러리 활용' 카테고리의 다른 글
| 머신러닝 심화_회귀, 분류 모델링 심화 (0) | 2025.02.17 |
|---|---|
| 머신러닝 심화_데이터분석 프로세스 (0) | 2025.02.13 |
| 머신러닝 기초_회귀 분석_선형 회귀(6-10) (1) | 2025.01.22 |
| [1/22] 머신러닝 오프닝_1회차 (1) | 2025.01.22 |
| 머신러닝의 기초 1~5 (1) | 2025.01.20 |