목록Machine Learning (11)
동삼이의 노트북

서포트 벡터 머신(Support Vector Machine, SVM)은 선형이나 비선형 분류, 회귀, 이상치 탐색 등 범용성이 좋은 강력한 다목적 머신러닝 모델이다. SVM은 특히 복잡한 분류 문제에 잘 들어맞으며 작거나 중간 크기의 데이터셋에 적합하다. 이번 포스팅에서는 SVM의 핵심 개념 및 간단한 예제를 살펴보기로 하고 다음 포스팅에서 디테일한 작동원리를 다룬다. 선형 SVM 분류 SVM의 기본 개념을 살펴보기 위해 이전에 사용했던 사이킷 런의 붓꽃 데이터를 예시로 든다. 두 종류의 붓꽃 Versicolor와 Setosa를 구분하는 직선을 만드려고 한다. 두 붓꽃은 선형적으로 잘 구분되는 클래스이다. 왼쪽 그래프의 세 직선이 보인다. 각 직선은 결정 경계를 의미하는데, 결정 경계란 클래스를 구분 짓..

여기 두 개의 예측이 있다. 평균 재정 손실은 4000만원 이다 95% 신뢰구간의 재정 손실은 1000만원 ~ 7000만원이고 68% 신뢰구간의 재정 손실은 3000만원 ~ 4000만원이 될 것이다. 위 두개의 예측 중에서 어떤 것이 더 유용하게 쓰일 수 있을까? 당연히 2번일 것이다. 우리는 이전 포스팅을 통해, 혹은 이미 너무 많이 접해서 선형 회귀는 아마 익숙할 것이다. 선형 회귀는 대개 최소자승법(OLS)을 통해 회귀식을 만들고 예측값을 예측한다. 위 1번 예측이 최소자승법을 통해 구해낸 예측 값이다. 그렇다면 두 번째 예측은 무엇일까? 바로 Quantile Regression(분위 회귀)이다. 최소자승법은 쉽게 말해 예측 값 범위 중 평균에 해당하는 값을 구하는 방식이다. 그렇다면 예측 값의 범..

이전 포스팅에서 다뤘던 로지스틱 회귀는 여러 개의 이진 분류기를 훈련시켜 연결하지 않고 직접 다중 클래스를 지원하도록 일반화 될 수 있다. 이를 소프트맥스 회귀(Softmax Regression) 혹은 다항 로지스틱 회귀(Multinominal logistic regression)라고 한다. 샘플 x가 주어지면, 먼저 소프트맥스 회귀 모델이 각 클래스 k에 대한 점수 s(x)를 계산하고 그 점수에 소프트맥스 함수(또는 정규화된 지수함수)를 적용하여 각 클래스의 확률을 추정한다. 각 클래스는 자신만의 파라미터 벡터 Wk 가 있다. 이 벡터들은 파라미터 행렬에 행으로 저장된다. 위 식에서 샘플 x에 대한 각 클래스의 점수가 계산되면 소프트맥스 함수를 통과시켜 클래스 k에 속할 확률 pk를 추정할 수 있다. ..

로지스틱 회귀는 회귀 알고리즘 중에서 분류에 사용할 수 있는 알고리즘이다. 이는 샘플이 특정 클래스에 속할 확률을 추정하는데 사용된다. 추정 확률이 50%가 넘으면 모델은 그 샘플이 해당 클래스에 속한다고 예측한다. 즉 레이블이 1인 양성 클래스가 되는 것이고 50%보다 낮으면 레이블이 0인 음성 클래스가 된다. 이를 이진 분류기라고 한다. 확률 추정 로지스틱 회귀는 선형 회귀와 같이 입력 특성의 가중치 합을 계산하고 편향을 더하는 식으로 작동한다. 대신 선형 회귀처럼 바로 결과를 출력하지 않고 결과값의 로지스틱(logistic)을 출력한다. 로지스틱은 0과 1사이 값을 출력하는 시그모이드 함수(sigmoid function)이다. 함수는 다음과 같이 생겼다. 로지스틱 회귀 모델이 샘플 x가 양성 클래스..

릿지 회귀(Ridge regression) 릿지 회귀는 비용 함수에 일종의 규제를 추가하여 일반 선형 회귀에 가중치를 조정하는 모델이다. 비용함수에 다음과 같은 규제항을 추가한다. 이는 학습 알고리즘을 데이터에 맞추는 것뿐만 아니라 모델의 가중치가 가능한 한 작게 유지되도록 노력한다. 규제항은 훈련에만 비용함수에 추가되고, 훈련이 끝나면 모델의 성능을 규제가 없는 성능 지표로 평가한다. 하이퍼파라미터 𝛼는 모델을 얼마나 많이 규제할지 조절한다. 𝛼가 0이면 릿지 회귀는 선형 회귀와 같아진다. 𝛼가 아주 크면 모든 가중치가 거의 0에 가까워지고 결국 데이터의 평균을 지나는 수평선이 된다. 릿지 회귀의 비용함수식이다. 편향𝜃는 규제되지 않는다. 경사 하강법에 적용하려면 MSE 그레디언트 벡터에 𝛼w를(w는 ..

위와 같은 비선형 데이터가 있다. 우리가 이전 포스팅 까지 다뤘던 선형 회귀 모델을 통해 비선형 데이터를 훈련시키면 어떻게 될까? 아마도 위와 같이 비선형 모델의 굴곡은 따라가지 못하고 직선으로 회귀 선을 그리게 될 것이다. 하지만 각 특성의 거듭제곱을 새로운 특성으로 추가하고 이 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 기법인 다항 회귀 (polynominal regression)을 통해 이와 같은 비선형 데이터를 표현할 수 있다. 우선 훈련 데이터 셋의 특성들을 제곱하여 새로운 특성으로 추가하기 위해 사이킷런의 PolynominalFeatures를 사용하였다. 기존 특성에 제곱된 새로운 특성이 추가가 된 것을 확인할 수 있었다. 이 확장된 훈련 데이터에 Linear_Regression을..