728x90
Luca Massaron, Alberto Boschetti 저, '파이썬으로 풀어보는 회귀분석', 2019.01.02
내 맘대로 요약 공부 중(문제시 비공개 및 삭제)
저작권에 굉장히 민감한 책이므로 일반적인 내용들만 요약
최초 작성일 2021.3.05
1. 분류 문제 정의
- 연속적인 값(-∞, +∞)을 추정하는 회귀와 달리, 특정 클래스를 예측하는 것
- 가장 쉽게 이진 분류(Binary Classification), ex. 참/거짓
- 두 개 이상의 분류 클래스를 갖는 경우 다중 분류(Multiclass Classification)라고 함, ex. 꽃의 종류
2. 분류 모델의 성능 평가
- 혼동 행렬(Confusion Matrix): 분류가 제대로 되었는지 알 수 있는 가장 간단한 지표
- sklearn의 metrics, confusion_matrix 활용
- 히트맵으로 표현 가능
- 정확도(Accuracy): 총 샘플 수에서 올바른 분류의 백분율 값
- sklearn의 metrics, accuracy_score 활용
- 정밀도(Precision): 해당 Label에 대해 올바른 분류의 백분율 값
- sklearn의 metrics, precision_score 활용
- 이진 분류만 지원하기 때문에, 다중 클래스의 경우 각 클래스를 이진 벡터로 만들어야 함
- 재현율(Recall): Origin의 특정 클래스 값이 Predict 된 백분율 값
- sklearn의 metrics, recall_score 활용
- 조화 평균(Harmonic Average): 정밀도와 재현율을 종합한 성능 지표 ← 이걸 써라
- sklearn의 metrics, f1_score 활용
- sklearn의 metrics, classification_report 활용 ← 이걸 써라
3. 시그모이드 함수를 기반으로하는 이유
- 이진 분류 문제에서 결과값은 0 또는 1 임 → Test Data와 동일한 데이터를 얻기 위해 선형 회귀로 접근해보자
- 회귀로 만든 X_Test_Data를 최대한 Y_Test_Data와 동일하게 만들기 위해서는 어떻게 해야 하는가??
- → 값이 0.5보다 크면 1, 0.5보다 작으면 0 인 조건을 주면 됨
- → 결과 값을 시그모이드(Sigmoid) 함수에 적용시키게 됨
※ 시그모이드 함수에 대한 자세한 내용은 위키 참조
4. 로지스틱 회귀 함수
- sklearn의 linear_model, LogisticRegression 활용
- 장점: 쉬움, 간단함, 효율적임, 매우 적은 계수를 가짐, 다중 클래스 분류 확장 가능
- 단점: 고급 알고리즘에 비해 성능이 안좋음, 선형적임(비선형에 취약함)
5. 다중 클래스 로지스틱 회귀 함수
- 3개의 더미 클래스 데이터셋을 만들고 → 훈련, 테스트 집합으로 분할 → 다중 클래스 Regressor 훈련 → 시각화
- Ravel() 함수: reshape()의 반대 기능을 하는 함수 참조
6. 예제(이진 분류)
- 10000개의 데이터, 10개의 특성, 이진 분류
① 데이터 생성 및 데이터 점검(Statsmodel을 활용하여 초기에 필요없는 데이터를 거를 수 있음)
- coef: 해당 특성의 가중치, std err: 계수의 표준오차, Z: 표준오차와 계수 사이의 비율, 97.5% 신뢰도로 계수의 구간
② 확률 기울기 하강 함수 적용 학습 → 과감하게 PASS
③ Scikit-learn 활용 학습
- LogisticRegression() 함수 사용 변수 확인은 여기
④ SGD(확률적 경사 하강법) Scikit-learn 활용 학습
- SGDClassifier() 함수 사용 변수 확인은 여기
반응형
'코딩 > Machine Learning' 카테고리의 다른 글
22. 데이터 준비(2) (0) | 2021.03.22 |
---|---|
21. 데이터 준비(1) (0) | 2021.03.21 |
19. 다중회귀분석(2) (0) | 2021.03.03 |
18. 다중회귀분석(1) (0) | 2021.02.26 |
17. 단순 선형 회귀 분석(2) (0) | 2021.02.23 |
댓글