▶ 로지스틱 회귀 정의 & 비용함수 & 학습

1) 정의

→ 샘플이 특정 클래스에 속할 확률을 추정하는 것

→ binary(0 or 1)한 문제일 경우 주로 사용

 

2) 확률을 추정하는 법

입력 변수의 가중치 합을 계산

 

3) 로지스틱 함수

p는 f(x) 값의 산출물

p < 0.5 이면 y = 0

 p >= 0.5 이면 y = 1

 

4) 로지스틱 회귀 모델의 훈련

→ y = 1인 샘플은 높은 확률로, y = 0인 샘플은 낮은 확률로 추정하게 하는 최적의 가중치를 찾는 것이 목적

 

5) 로지스틱 회귀의 비용 함수

→ 비용함수는 p가 0에 가까워질수록 -log 값이 매우 커지고 1에 가까워질수록 0에 가까워진다.

positive한 샘플은 최대한 p를 1에 가깝게 만들어야 하고, negative한 샘플은 최대한 p를 0에 가깝게 만들어야 한다.

비용함수는 2차함수(볼록함수)이므로 경사하강법 혹은 다른 최적화 알고리즘을 통해 전역 최소값을 찾을 수 있다.

 

6) 실습

 

- 붓꽃 데이터 사용

 세 개의 품종 (Setosa, Versicolor, Virginica), 150개의 데이터 수, Petal(꽃잎) Sepal(꽃받침)의 너비와 길이를 가짐

 

위와 같이 iris 데이터 로드

 

x : 콜론을 하나 더 찍어서 2차원 배열로 만들어주기

y : versicolor가 뜨면 1, 아니면 0을 출력

 

위와 같이 defualt 값으로 모델의 데이터 학습

 

linspace() : 0~3 사이의 1000개 데이터 임의로 생성해주는 함수

 

위에서 학습시켰던 모델을 예측해본 것 

 

x_new.shape은 (1000,1)인데 y_proba.shape은 (1000,2)가 나옴

 

결과를 보면 [Versicolor가 아닐 확률, Versicolor일 확률]을 출력

→ 앞쪽데이터는 Versicolor가 아닐 것이라고 예측, 뒤로 갈수록 Versicolor일 것이라고 예측

 

시각화한 결과 Virginica는 너비가 약 1.4~2.5에 분포하고 있음을 알 수 있다.

 

▶ 소프트맥스 회귀

1) 정의

→ categorical(여러 클래스 분류)한 문제일 경우 주로 사용

 

2) 소프트맥스 함수

 

3) 소프트맥스 회귀 분류기의 예측

→ 여러 클래스 중에서 확률 값이 가장 높은 것을 실제 클래스라고 예측

 

4) 크로스 엔트로피

 추정된 클래스의 확률이 목표 클래스에 얼마나 잘 맞는지 판단하는 용도로 사용

 

5) 실습

multinomial을 표시하여 소프트맥스 회귀 사용 가능

solver: ibfgs -> 기본적으로 머신러닝 분야에서 많이 사용

C : L2 규제화 -> weight 값에 square 값을 해준 것

 

가장 큰 인덱스 값을 출력했을 때 위와 같이 virginica가 나오는 것을 확인할 수 있다.

 

위와 같이 predict_proba를 이용하여 값을 확인하는 것도 가능하다.

 

▶ 서포트 벡터 머신

1) 정의

→ 매우 강력하고 선형, 비선형 분류, 회귀 이상치 탐색에 사용할 수 있는 다목적 머신러닝 모델

→ 복잡한 분류 문제에 잘 들어맞고, 작거나 중간 크기의 데이터셋에 적합

→ 특성 스케일에 아주 민감

 

2) 서포트 벡터 머신의 분류

→ 첫번째 그림의 두 분류기는 정확히 분류는 하고 있으나 모델 분류기의 선이 훈련 데이터와 너무 가까워서 새로운 데이터가 들어왔을 때 정확히 분류하지 못할 수 있다.

→ SVM의 목적은 classfier를 할 때 클래스를 나누는 결정경계가 훈련샘플로부터 최대한 멀리 떨어뜨려 놓는 것이다.

→ 즉, SVM 분류기는 클래스 사이의 가장 폭이 넓은 구간을 찾는 것으로 이해할 수 있다

SVM은 특성 스케일에 민감하므로, 보통 사이킷런의 StandardScaler을 사용하면 결정경계의 명확성을 높일 수 있다.

 

3) 실습

① 선형 SVM 분류

pipeline은 데이터 스케일과 모델 적합을 한 번에 할 수 있다.

LinearSVC를 통해 SVM을 사용할 수 있다.

 

C는 규제항, loss는 hingeloss를 의미한다.

위와 같이 예측값이 1로 잘 나오는 것을 확인할 수 있다.

 

② 비선형 SVM 분류

위와 같은 경우에 비선형 SVM을 사용할 수 있다.

 

 

 

비선형 SVM은 Polynomial라는 변수 변환을 통해 할 수 있다.

 

※ SVM Hinge Loss

SVM에서 사용하는 기본적인 hinge loss 값은 위와 같다.

 

커널 서포트 벡터 머신

▷ 다항식 커널

다항식 특성을 추가하는 것처럼 간단하고 모든 머신러닝 알고리즘에서 잘 동작한다.

SVM 사용 시 kernel trick이라는 수학적 기교를 사용하여 실제로 특성을 추가하지 않았음에도 불구하고 다항식 특성을 많이 추가한 것과 같은 결과를 얻을 수 있다.

 

▷ 가우시안 RBF 커널

  다항 특성 방식과 마찬가지로 유사도 특성 방식을 모델에 적용할 수 있다.

+ Recent posts