1. 로지스틱회귀 이론
독립 변수의 선형 결합을 이용하여 사건의 발생 가능성을 예측하는 데 사용되는 통계 기법을 말한다. 로지스틱함수는 가중치 값을 안다면 X값이 주어졌을 때 해당 사건이 일어날 수 있는 P의 확률을 계산할 수 있게 된다.
확률이 0과 1사이인데 예측값이 확률 범위를 넘어갈 수 있는 문제가 있을 때 S자 형태의 함수를 적용하면 잘 설명한다고 할 수 있다, S형태의 함수를 만들기 위해 오즈비의 개념을 적용할 수 있는데 오즈비는 바로 사용할 수 없기 때문에 로그를 씌워 사용하며 이걸 로짓이라고 한다.
로짓은 어떤 값을 가져오더라도 반드시 특정 사건이 일어날 확률이 0과 1안으로 들어오게 하는 특징을 가진다.
- 오즈비와 확률의 관계 / 로짓과 확률의 관계
1) 로짓의 그래프가 더 선형적인 그림을 나타내어 선형회귀의 기본식을 활용할 수 있게 됨
2) 로지스틱”회귀”라고 불리는 이유가 이것
2. 분류 평가 지표
- 혼동 행렬 (confusion Matrix)
실제 값과 예측 값에 대한 모든 경우의 수를 표현하기 위한 2X2 행렬이다. 실제와 예측이 같으면 True, 다르면 False
예측을 양성으로 했으면 Positive,음성으로 했으면 Negative로 표기한다.
1) TP: 실제로 양성(암 환자)이면서 양성(암 환자) 올바르게 분류된 수
2) FP: 실제로 음성(정상인)이지만 양성(암 환자)로 잘못 분류된 수
3) FN: 실제로 양성(암 환자)이지만 음성(정상인)로 잘못 분류된 수
4) TN: 실제로 음성(정상인)이면서 음성(정상인)로 올바르게 분류된 수
5) 정밀도(Precision): 모델이 양성 1로 예측한 결과 중 실제 양성의 비율(모델의 관점)
6) 재현율(Recall): 실제 값이 양성인 데이터 중 모델이 양성으로 예측한 비율(데이터의 관점)
- F1 Score
분류 모델의 정밀도와 재현율의 성능을 동시에 고려하기 위해 사용한다. F1 Score는 0과 1사이의 값이며 1에 가까울 수록 분류 성능이 좋음을 나타낸다.
또한, 정확도가 제 기능을 하지 못하거나 Y값이 균형적이지 못할 때 F1 Score를 사용해 보완할 수 있다.
3. 로지스틱 회귀 정리
- 장점
직관적이며 이해하기 쉽다.
- 단점
복잡한 비선형 관계를 모델링하기 어려울 수 있다.
- 자주쓰는 함수
분류 | 함수 | 설명 |
python 패키지 | sklearn.linear_model.LogisticRegresson | 로지스틱 회귀 패키지 |
속성 | 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 |
4. 모델리 기본 마무리
선형회귀와 로지스틱회귀의 공통점은 모델 생성이 쉽고 가중치를 통해 해석이 쉬운 장점, X변수에 범주형, 수치형 변수 둘 다 사용가능하다는 점이다.
구분 | 선형회귀(회귀) | 로지스틱회귀(분류) |
Y(종속변수) | 수치형 | 범주 |
평가척도 | - Mean Square Error - R Square(선형 회귀만) |
- Accuracy - F1 - score |
sklearn 모델 클래스 | sklearn.linear_model.linearRegression | sklearn.linear_model.LogistricRegression |
sklearn 평가 클래스 | - sklearn.metrics.mean_squared_error - skelarn.metrics.r2_score |
- sklearn.metrics.accuracy_score - skelearn.metrics.f1_score |
'Today I Learned (TIL) > Python' 카테고리의 다른 글
[TIL] 머신러닝의 심화 - 데이터분석 프로세스(2) (0) | 2024.08.16 |
---|---|
[TIL] 머신러닝의 심화 - 데이터분석 프로세스(1) (0) | 2024.08.16 |
[TIL] 머신러닝의 기초 - 회귀분석(선형회귀 2) (0) | 2024.08.13 |
[TIL] 머신러닝의 기초 - 회귀분석(선형회귀 1) (1) | 2024.08.09 |
[TIL] Python 챌린지 - 6회차 (0) | 2024.08.08 |