본문 바로가기

카테고리 없음

[ML 세션] 혼공머신 Chapter 04. 다양한 분류 알고리즘

Chapter 04. 다양한 분류 알고리즘

04-1 로지스틱 회귀

✅ 럭키백의 확률

더보기

데이터프레임은 판다스에서 제공하는 2차원 표 형식의 주요 데이터 구조입니다. 데이터프레임은 넘파이 배열과 비슷하게 열과 행으로 이루어져 있습니다.

타깃 데이터에 2개 이상의 클래스가 포함된 문제를 다중 분류라고 부릅니다.

 

✅ 로지스틱 회귀

로지스틱 회귀는 이름은 회귀이지만 분류 모델입니다. 이 알고리즘은 선형 회귀와 동일하게 선형 방정식을 학습합니다.

z는 어떤 값도 가능합니다. 하지만 확률이 되려면 0~1 사이 값이 되어야 합니다. z가 아주 큰 음수일 때 0이 되고, 아주 큰 양수일 때 1이 되도록 바꾸려면 시그모이드 함수(로지스틱 함수)를 사용하면 됩니다.

z가 0이 될 때는 0.5가 됩니다. 이진 분류일 경우 시그모이드 함수의 출력이 0.5보다 크면 양성 클래스, 0.5보다 작으면 음성 클래스로 판단합니다.

 

넘파이 배열은 True, False 값을 전달하여 행을 선택할 수 있습니다. 이를 불리언 인덱싱이라고 합니다.

 

로지스틱 회귀는 선형 회귀와 비슷하게 LogisticRegression 모델로 z 값을 계산해 볼 수 있습니다.

 

이중 분류는 샘플마다 2개의 확률을 출력하고 다중 분류는 샘플마다 클래스 개수만큼 확률을 출력합니다.

하지만 다중 분류는 클래스마다 z 값을 하나씩 계산합니다. 이 중 가장 높은 z 값을 출력하는 클래스가 예측 클래스가 됩니다.

 

더보기

시그모이드 함수는 하나의 선형 방정식의 출력값을 0~1 사이로 압축합니다. 이와 달리 소프트맥스 함수는 여러 개의 선형 방정식의 출력값을 0~1 사이로 압축하고 전체 합이 1이 되도록 만듭니다. 이를 위해 지수 함수를 사용하기 때문에 정규화된 지수 함수라고도 부릅니다.

s1에서 s7까지 모두 더하면 분자와 분모가 같아지므로 1이 됩니다.

04-2 확률적 경사 하강법

✅ 점진적인 학습

새로운 데이터가 추가될 때 앞서 훈련한 모델을 버리지 않고 새로운 데이터에 대해서만 조금씩 더 훈련하는 방식을 점진적 학습 또는 온라인 학습이라고 부릅니다. 대표적인 점진적 학습 알고리즘은 확률적 경사 하강법입니다.

 

확률적 경사 하강법은 훈련 세트에서 랜덤하게 하나의 샘플을 선택하여 가파른 경사를 조금 내려갑니다. 그다음 훈련 세트에서 랜덤하게 또 다른 샘플을 하나 선택하여 경사를 조금 내려갑니다. 이런 식으로 전체 샘플을 모두 사용할 때까지 계속합니다.

 

그래도 만족할만한 위치에 도달하지 못하면 처음부터 다시 시작합니다! 확률적 경사 하강법에서 훈련 세트를 한 번 모두 사용하는 과정을 에포크라고 부릅니다. 일반적으로 경사 하강법은 수십, 수백 번 이상 에포크를 수행합니다.

 

하나씩이 아니라 무작위로 여러 개의 샘플을 사용해 경사 하강법을 수행하는 방식을 미니배치 경사 하강법이라고 합니다.

 

극단적으로 전체 샘플을 사용하는 경우를 배치 경사 하강법이라고 합니다. 하지만 전체 데이터를 사용하면 그만큼 컴퓨터 자원을 많이 사용하게 됩니다.

 

손실 함수는 어떤 문제에서 머신러닝 알고리즘이 얼마나 엉터리인지를 측정하는 기준입니다.

양성 클래스(타깃 = 1)일 때 손실은 -log(예측 확률)로 계산합니다. 확률이 1에서 멀어질수록 손실은 아주 큰 양수가 됩니다. 음성 클래스(타깃 = 0)일 때 손실은 -log(1-예측 확률)로 계산합니다. 이 예측 확률이 0에서 멀어질수록 손실은 아주 큰 양수가 됩니다.

이 손실 함수를 로지스틱 손실 함수라고 부릅니다. 또는 이진 크로스엔트로피 손실 함수라고도 부릅니다.

 

다중 분류에서 사용하는 손실 함수를 크로스엔트로피 손실 함수라고 부릅니다.

✅ SGDClassifier

사이킷런에서 확률적 경사 하강법을 제공하는 대표적인 분류용 클래스는 SGDClassifier입니다.

✅ 에포크와 과대/과소적합

확률적 경사 하강법을 사용한 모델은 에포크 횟수에 따라 과소적합이나 과대적합이 될 수 있습니다.

과대적합이 시작하기 전에 훈련을 멈추는 것은 조기 종료라고 합니다.

 

힌지 손실서포트 벡터 머신이라 불리는 또 다른 머신러닝 알고리즘을 위한 손실 함수입니다.