본문 바로가기
  • 조금 느려도, 꾸준히
반응형

Artificial Intelligence/Machine Learning26

핸즈온 머신러닝(6) - 서포트 벡터 머신 1 Suppor Vector Machine - 매우 강력한 다목적 머신러닝 모델 (선형/비선형 분류, 회귀, 이상치 탐색 등) - 머신러닝에서 가장 인기 있는 모델 - 복잡한 분류 문제에 적합 - 소규모, 중간 규모의 데이터셋에 적합 # 선형 SVM 분류 예를 들어 두 가지 클래스를 구분하는 선형 SVM 분류기가 있다고 할 때, SVM 분류기의 결정 경계는 두 개의 클래스를 나누면서 제일 가까운 훈련 샘플로부터 가능한 한 멀리 떨어져 있으려 한다. 이러한 특성을 라지 마진 분류(large margin classification) 라고 함. 라지 마진 분류의 결정 경계는 결정 경계과 가장 가깝게 위치한 샘플에 의해 전적으로 결정된다( 즉 결정 경계와 비교적 먼 샘플은 아무런 영향을 미치지 못함). 이렇게 결정.. 2020. 1. 27.
핸즈온 머신러닝(5) - 로지스틱 회귀 2 # 소프트맥스 회귀 로지스틱 회귀 모델은 직접 다중 클래스를 지원하도록 일반화될 수 있다. 이를 소프트맥스 회귀(Softmax Regression) 또는 다항 로지스틱 회귀(Multinomial Logistic Regression) 라고 한다. 소프트맥스 회귀 모델은 샘플 $\mathrm{x}$ 가 주어졌을 때 각 클래스 $k$ 에 대한 점수 $s_k(\mathrm{x})$ 을 계산하고, 그 점수에 소프트맥스 함수(정규화된 지수 함수) 를 적용하여 각 클래스의 확률을 추정한다. 다음은 $s_k(\mathrm{x})$ 을 식으로 나타낸 것이다. $$ s_k(\mathrm{x}) = \big(\theta^{(k)} \big)^T \cdot \mathrm{x} $$ 각 클래스는 자신만의 파라미터 벡터 $\th.. 2020. 1. 24.
핸즈온 머신러닝(5) - 로지스틱 회귀 1 어떤 회귀 알고리즘은 분류에서도 사용할 수 있으며, 그 반대의 경우도 있다. 로지스틱 회귀(Logistic Regression)는 샘플이 특정 클래스에 속할 확률을 추정하는 데 널리 사용된다. 추정 확률이 50% 이상이면 모델은 그 샘플이 해당 클래스에 속한다고 예측하며, 그렇지 않으면 클래스에 속하지 않는다고 예측한다. 즉 이진 분류기이다. # 확률 추정 로지스틱 회귀 모델은 입력 특성의 가중치 합에 편향을 더하여 계산한다. 이때 선형 회귀처럼 바로 결과를 출력하지 않고, 결과값의 로지스틱(Logistic)을 출력한다. 로지스틱 회귀 모델의 확률 추정 벡터 표현식은 다음과 같다. $$ \hat{p} = h_\theta (\mathrm{x}) = \sigma \big( \theta^T \cdot \mat.. 2020. 1. 24.
핸즈온 머신러닝(5) - 규제가 있는 선형 모델 선형 회귀 모델에서는 보통 모델의 가중치를 제한하여 규제를 가한다. 가중치를 제한하는 방법에 따라 릿지 회귀, 라쏘 회귀, 엘라스틱넷으로 구분할 수 있다. # 릿지 회귀 (티호노프 규제) 규제항 $\alpha \sum_{i=1}^{n} \theta_i^2$ 이 비용 함수에 추가된 선형 회귀 버전이다. 이로 인해 학습 알고리즘을 데이터에 맞추는 과정에서 모델의 가중치가 가능한 작게 유지되도록 한다. 규제항은 훈련하는 동안에만 비용 함수에 추가되며 모델의 훈련이 끝나면 모델의 성능을 규제가 없는 성능 지표로 평가한다. 릿지 회귀의 비용 함수는 다음과 같다. $$ J(\theta) = MSE(\theta) + \alpha \frac{1}{2}\sum_{i=1}^{n} \theta_i^2$$ 하이퍼파라미터 $\.. 2020. 1. 24.
핸즈온 머신러닝(5) - 학습 곡선 # 학습 곡선 지난 시간에 포스팅했던 다항 회귀 모델은 보통의 선형 회귀 모델보다 주어진 훈련 데이터에 훨씬 더 잘 맞추려고 했다. 다음의 코드는 2차원을 넘어 30차원, 100차원 다항 회귀 모델의 예측 결과를 비교한 것이다. from sklearn.preprocessing import StandardScaler from sklearn.pipeline import Pipeline for style, width, degree in (('k--',1,100),('g-',1,30),('r-',1,2)): poly_features = PolynomialFeatures(degree=degree, include_bias=False) standard = StandardScaler() lin_reg = LinearR.. 2020. 1. 24.
핸즈온 머신러닝(5) - 다항 회귀 # 다항 회귀 데이터가 단순한 직선의 형태가 아닌 비선형 형태여도, 선형 모델을 사용하여 비선형 데이터를 학습할 수 있다. 이때 각 특성의 거듭제곱을 새로운 특성으로 추가하고, 확장된 특성을 포함한 데이터셋에 선형 모델을 훈련시키는 것인데, 이러한 기법을 다항 회귀(Polynomial Regression) 이라고 한다. 실습하기 위해 먼저 노이즈를 포함한 간단한 2차 방정식으로 비선형 데이터를 생성해 보도록 한다. import numpy as np import numpy.random as rnd rnd.seed(42) m = 100 X = 6 * rnd.rand(m, 1) - 3 y = 0.5 * X**2 + X + 2 + rnd.randn(m, 1) $y = 0.5x^2 + x + 2 + noise$ .. 2020. 1. 23.
반응형