Today I Learned (TIL)/Python

[TIL] 머신러닝의 기초 - 분류분석(로지스틱회귀)

신짜린 2024. 8. 14. 19:47

머신러닝기초_타이타닉.html
0.65MB

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