SGDClassifier

확률적 경사 하강법(Stochastic Gradient Decent:SGD)을 통해 SVM, logistic regression 등의 선형 분류기를 학습시킬 수 있는 분류기입니다. (sklearn API 설명)

SGD?

Stochastic Gredient Decent: 확률적 경사 하강법의 약자로, 손실 함수의 기울기가 최소가 되게 하는 지점을 찾아내는 경사하강법의 한 방법이다.

경사하강법??

비용 함수 f의 함숫값이 줄어드는 방향으로 함수의 계수를 일정 크기(학습량)만큼 더해나가며 f의 최솟값을 찾는 최적화 기법이다.

기울기: Gradient의 정의

경사하강법의 예

img 함수가 y=x2이고 학습률 w가 1일 때 경사하강법을 통해 최솟값 min에 도달하는 과정을 보자. 최초에 점 a에서 시작하여 점 b를 지나 점 min으로 수렴하는 모습을 볼 수 있다. 이 때 각 step마다 Gradien**t는 계속해서 줄어드는 것 또한 관찰할 수 있다.

경사하강법의 한계

확률적 경사하강법(SGD)

각 학습마다 모든 배치가 아닌 일부 샘플을 랜덤으로 선택하여 학습에 이용한다는 것이 ‘확률적’의 의미이다.

보통 일반적으로 말하는 SGD는 엄밀하게는 미니 배치 확률적 경사하강법을 의미한다.

SGDClassifier

확률적 경사하강법을 이용하는 선형 이진 분류기이다.

규제?

선형 모델의 경우 모델이 훈련 데이터에 과적합되는 문제가 자주 발생한다. 이는 비용 함수의 최소화, 즉 실제와 예측과의 차이만을 최소화하는 방법으로 돌아가다 보니 필연적으로 과적합 문제가 생길 수 밖에 없다.

Ridge

Lasso

ElasticNet


읽기전에

개념 정리

확률적 경사 하강법(SGD: Stochastic Gradient Descent)

경사 하강법

경사 하강법의 단점

확률적 경사 하강법의 등장

결정 함수(decision function)

분류성능평가지표

오차 행렬(confusion matrix)

: 클래스 별 예측 결과를 정리한 행렬
가설검정과 유사함!! img

F1 점수

: 정밀도와 재현율의 조화 평균(harmonic mean)

F1=정밀도1+재현율12=2×정밀도+재현율정밀도×재현율=TP*+2*FN+FPT**P

정밀도와 재현율의 트레이드 오프

: 정밀도와 재현율은 상호 반비례 관계임. 따라서 적절한 비율을 찾아야 함.

수신기 조작 특성(ROC) 곡선

: 거짓 양성 비율(FPR, 1 - 특이도)에 대한 진짜 양성 비율(TPR, 재현율, 민감도)의 그래프
x축: 1-특이도, y축: 민감도

곡선 아래의 면적(AUC)

: 완벽한 분류기는 RPC의 AUC = 1, 완전한 랜덤 분류기는 0.5

다중 분류 학습

OvR(one-versus-the-rest, OvA(one-versus-all))

: 특정 숫자 하나만 구분하는 숫자별 이진 분류기 10개(0~9)를 훈련시키면, 클래스가 10개인 숫자 이미지 분류 시스템을 만들 수 있음. 이미지 분류 시, 각 분류기의 결정 점수 중에서 가장 높은 것을 클래스로 선택.

OvO(one-versus-one)

: 조합 가능한 모든 일대일 분류 방식을 진행하여 이진 분류기 훈련하고, 가장 많은 결투(duell)를 이긴 숫자를 선택(0과 1 구별, 0과 2 구별, 1과 2 구별 등)
분류기 각각의 결정 점수를 얻어 점수가 가장 높은 클래스를 선택
즉, 가장 많이 예측된 클래스를 최종 예측값으로 선택
클래스가 N개 일때, 분류기는 2N×(N−1)​ 개 필요

img

python 정리

3장 분류

준비

데이터

문제 정의

: 지도 학습, 분류, 배치 또는 온라인 학습(둘 다 가능)

이진 분류기 훈련

확률적 경사 하강법(SGD) (더보기)

성능 측정

: 여러가지 방법이 존재. 회귀 모델보다 훨씬 어렵고 복잡.

교차 검증을 사용한 정확도 측정

정밀도와 재현율 조율 (더보기)

정밀도와 재현율의 트레이드 오프

: 정밀도와 재현율의 적절한 비율을 찾아보자

AUC 측정 (더보기)

정밀도/재현율(PR 곡선) vs ROC 곡선

다중 분류기(다항 분류기) (더보기)

(multiclass classifier, multinomial clasifier)
세 개 이상의 클래스로 샘플을 분류하는 예측기
이진 분류기를 여러개 사용해 다중 클래스를 분류해보자

에러 분석

: 가능성이 높은 모델을 찾았다고 가정하고, 이 모델의 성능을 향상시킬 방법을 찾아보자: 에러의 종류 분석

오차 행렬 살펴보기

개체 살펴보기

다중 레이블 분류

: 여러 개의 이진 꼬리표를 출력하는 분류 시스템
분류기가 샘플마다 여러 개의 클래스를 출력해야 할 때

다중 출력 다중 클래스 분류(다중 출력 분류)

(multioutput-multiclass classification, multioutput classification)
다중 레이블 분류에서 한 레이블이 다중 클래스가 될 수 있도록 일반화한 것. 즉 값을 두 개 이상 가질 수 있음.

Source :

https://velog.io/@gmelan/sklearn-%ED%99%95%EB%A5%A0%EC%A0%81%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95%EA%B3%BC-SGDClassifier

https://velog.io/@juyeonma9/%ED%95%B8%EC%A6%88%EC%98%A8-%EB%A8%B8%EC%8B%A0%EB%9F%AC%EB%8B%9D-2%ED%8C%90-3%EC%9E%A5-%EC%A0%95%EB%A6%AC