algorithm

알스피릿 산학협력 과정 리뷰입니다. 패스트캠퍼스 데이터사이언스스쿨 강의노트를 기반으로 작성했습니다.


데이터 분석 기업 알스피릿과 본격적으로 산학협력을 시작한지 3주 째 입니다. 아직, 머신러닝 알고리즘과 그것을 온전히 이해하기 위한 기초(선형대수, 확률론, 기타 개념 등)을 이해하는 중이라고 할 수 있지요. 지난 주를 회고하기 위해, 한 주 동안 배운 머신러닝 알고리즘 - 로지스틱 회귀, 나이브 베이즈, 결정 나무, LDA, 연관 분석 - 을 간략하게 정리했습니다.

-

12. 10. 월 _ 로지스틱 회귀

  • 로지스틱 회귀(logistic regression)은 독립변수의 선형 결합을 이용하여 종속변수 발생 가능성을 예측하는 알고리즘입니다.
  • 선형 회귀처럼, 독립변수로 종속변수를 설명합니다. 그러나 선형 회귀와 다르게 종속변수가 범주형 데이터일 때 주로 사용하기 때문에 일종의 분류(classification) 알고리즘이라고도 할 수 있습니다.
  • 로지스틱 회귀는 종속변수가 베르누이 분포를 따른다고 가정하고, 회귀 결과값에 로지스틱 함수를 씌워 음의 무한대부터 양의 무한대까지의 범위에서, 0과 1 사이의 범위로 축소한 다음, 결과를 0 또는 1로 판별합니다.

12. 11. 화 _ 나이브 베이즈

  • 나이브 베이즈 분류 모형은 나이브 가정을 베이즈 분류에 적용한 모형입니다.
  • 나이브 가정은 독립변수 x가 다차원인 경우, 모든 차원의 개별 독립 변소 요소(component)가 서로 조건부 독립(conditional independent)이라는 가정인데요.
  • 나이브 가정을 베이즈 분류에 적용하는 이유는, 텍스트 데이터처럼 차원이 높은 데이터는 다차원 결합확률을 실제로 구하기 어렵기 때문입니다. 이때, 나이브 가정을 적용하면 단순히 곱하기만 해도 다차원 결합확률을 쉽게 구할 수 있습니다.
  • 나이브 베이즈 분류 모형은 x벡터의 결합 확률을 개별 원소 x_d확률의 곱으로 표현합니다.

12. 12. 수 _ 결정 나무

  • 의사 결정 나무(Decision Tree)는 분류, 회귀 문제에 널리 사용하는 모델입니다.
  • 의사 결정 나무를 이용한 분류법은 다음과 같습니다.
    1. 여러가지 독립변수 중 하나의 독립변수를 선택합니다.
    2. 그 독립변수에 대한 기준값(threshold) - 분류 규칙 - 을 정합니다.
    3. 전체 학습 데이터 집합을 분류 규칙에 따라, 기준값보다 큰 데이터 그룹(노드 1)과 기준값보다 작은 데이터 그룹(노드 2)로 나눕니다.
    4. 각 노드에 대해서 1~3 단계를 반복하여 한 가지 클래스만 존재할 때까지 혹은 사전에 지정한 일정 기준까지 하위 노드를 만듭니다.

12. 13. 목 _ LDA (판별 분석)

  • LDA는 가능도 - 다시 말해 y 클래스 값에 따른 x 분포 - 를 알아낸 후, 베이즈 정리를 활용하여 주어진 x에 대한 y의 분포를 찾아내는 알고리즘입니다.
  • LDA는 클래스 y에 대한 독립변수 x의 조건부 확률 분포가 공통된 공분산 행렬을 가지는 다변수 가우시안 정규분포라고 가정합니다.
  • 다시 말해, 모든 k에 대해(어떤 클래스든) 같은 공분산을 갖는다고 생각하는 것이지요.

12. 14. 금 _ 연관분석

  • 연관분석(a priori algorithm)은 변수 간 독립, 상관의 정도를 지지도(support), 신뢰도(confidence), 향상도(lift)를 기준으로 분석하는 알고리즘입니다. (예. 빵과 잼을 사는 사람은 우유를 산다)
  • 자주 등장하는 변수만 지지도 - P(A), 신뢰도 - P(A | B) / P(A)에 따라 걸러내어 연산하기 때문에 연산이 빠릅니다.
  • 변수 간 독립, 상관은 향상도 - P(A, B) / P(A) * P(B)에 따라 결정되며, 1에 가까울수록 독립, 1의 N배로 커질수록 N배 만큼의 상관성을 지닙니다.

-

데이터사이언스를 공부한지 8개월 정도가 지나서야, 각 알고리즘이 무엇이며, 언제 어떻게 사용해야 하는지 조금씩 감이 오는 것 같아요. 아직 자주 사용하는 알고리즘이 아닌 경우에는 헷갈릴 때도 있지만요.

결정 나무 (Decision Tree)

패스트캠퍼스 데이터사이언스 스쿨 강의노트를 참고했습니다


  • 의사 결정 나무(Decision Tree)는 분류, 회귀 문제에 널리 사용하는 모델입니다.
  • 의사 결정 나무를 이용한 분류법은 다음과 같습니다.
    1. 여러가지 독립변수 중 하나의 독립변수를 선택합니다.
    2. 그 독립변수에 대한 기준값(threshold) - 분류 규칙 - 을 정합니다.
    3. 전체 학습 데이터 집합을 분류 규칙에 따라, 기준값보다 큰 데이터 그룹(노드 1)과 기준값보다 작은 데이터 그룹(노드 2)로 나눕니다.
    4. 각 노드에 대해서 1~3 단계를 반복하여 한 가지 클래스만 존재할 때까지 혹은 사전에 지정한 일정 기준까지 하위 노드를 만듭니다.

의사 결정 나무를 사용한 분류 예측

  1. 의사 결정 나무 모형에 데이터를 입력하면, 데이터는 분류 규칙(기준값)에 따라 특정 노드를 선택해서 내려가게 됩니다.
  2. 이때 노드에 속한 데이터의 클래스의 비율을 구하여, 노드의 조건부 확률 분포 $P(Y = k \mid X)_{\text{node}}$ 라고 정의합니다.

$$P(Y=k \mid X){\text{node}} \approx \dfrac{N{\text{node}, k}}{N_{\text{node}}}$$

정보획득량: 분류 규칙을 정하는 방법

  1. 분류 규칙은 부모 노드, 자식 노드 간 엔트로피를 가장 낮게 만드는 독립변수와 기준값을 찾는 식으로 이루어집니다.
  2. 다시 말해 정보 획득량(information gain)이 가장 높은 독립변수와 기준값은 찾는 셈인데요. 정보 획득량은 변수 X가 확률변수 Y의 엔트로피를 얼마나 줄였는지 나타내는 값입니다.

$$IG[Y, X] = H[Y] - H[Y \mid X]$$


부록: 엔트로피

  1. 엔트로피

    • 엔트로피는 확률분포가 가질 수 있는 확신의 정도를 수치로 표현한 것입니다.
    • 예를 들어, 확률변수에 여러가지 값이 나올 확률이 비슷하면 엔트로피가 높아지고, 특정값이 나올 확률이 높아지고 나머지값이 나올 확률이 낮아진다면 엔트로피는 낮아집니다.
    • 수학적으로는 이산확률변수이면,
      $$H[Y] = -\sum_{k=1}^K P(y_k) \log_2 P(y_k)$$

    • 연속확률변수이면,
      $$H[Y] = -\int_{-\infty}^{\infty} p(y) \log_2 p(y) \; dy$$

  2. 엔트로피와 정보량

    • 엔트로피는 확률변수가 담을 수 있는 정보량을 의미하기도 합니다.
    • 엔트로피가 0이라면, 확률변수는 결정론적(항상 예측할 수 있는 값이 나온다) 이기 때문에, 추가 정보량은 없습니다.
    • 반면 엔트로피가 크다면, 확률변수는 다양한 결과값을 내놓을 수 있기 때문에 추가로 획득할 수 있는 정보량이 상대적으로 많습니다.
  3. 크로스엔트로피

    • 크로스엔트로피는 확률분포의 차이를 정량화한 값이지만 기준 분포가 $p$로 고정되어 있습니다. $$H[p, q] \neg H[q, p]$$

    • 크로스엔트로피는 분류 모형의 성능을 측정할 때도 사용합니다.

부록: 지니불순도(Gini impurity)

  1. 지니불순도는 엔트로피와 유사한 개념으로, 확률분포가 어느 쪽에 치우쳐 있는가를 재는 척도입니다.
  2. 엔트로피와 달리 로그를 사용하지 않아 계산량이 적습니다. 그래서 엔트로피 대용으로 많이 사용합니다.

$$G[Y] = \Sigma_{k=1}^K P(y_k)(1 - P(y_k))$$

qdalda

QDA, LDA

  1. QDA와 LDA도 확률론적 생성 모형입니다.
  2. 가능도, 다시 말해 y 클래스 값에 따른 x 분포를 알아낸 후, 베이즈 정리를 활용하여 주어진 x에 대한 y의 분포를 찾아내지요.

생성 모형

  1. 생성 모형은 베이즈 정리를 활용하여 조건부 확률 $p(y = k \mid x)$ , 다시 말해 특정 독립변수를 넣었을 때(input), 어떤 종속변수를 결과로 내놓는지(어떤 클래스에 속하는지 - output)을 계산합니다.
    $$ P(y = k \mid x) = \dfrac{P(x \mid y = k)\; P(y = k)}{P(x)} $$

  2. 가능도 - y에 대한 x의 조건부 확률 - 는 어떻게 계산할까요.

  • 먼저 $P(x \mid y = k)$ 가 특정한 확률분포 모형을 따른다고 가정합니다. 즉, 확률밀도함수의 형태를 가정하는 셈이지요.
  • $k$ 번째 클래스에 속한 학습 데이터 {$x_1, \ldots, x_N$}을 이용하여 각 클래스 별 확률분포 모형의 모수를 구합니다.(추정합니다)
  • 모수를 구한다는 것은, 확률분포와 확률밀도함수를 구했다는 것을 의미합니다. 그리고 확률밀도함수를 구하면, 새로운 독립변수 x를 받았을 때 그 결과 - $P(x \mid y = k)$ 를 계산할 수 있습니다.

QDA

  • QDA는 독립변수 $x$가 실수이고, 그 확률변수가 다변수 가우시안 정규분포라고 가정합니다.
  • 단 분포는 클래스에 따라 형태(평균, 분산)가 다를 수 있습니다. $$p(x \mid y = k) = \dfrac{1}{(2\pi)^{D/2} |\Sigma_k|^{1/2}} \exp \left( -\dfrac{1}{2} (x-\mu_k)^T \Sigma_k^{-1} (x-\mu_k) \right)$$

  • 클래스 별 분포를 알고 있으면, 독립변수 $x$ 에 대한 클래스 $y$ 의 조건부 확률 분포를, 베이즈 정리와 전체확률의 법칙으로 구할 수 있습니다.(아래) $$P(y=k \mid x) = \dfrac{p(x \mid y = k)P(y=k)}{p(x)} = \dfrac{p(x \mid y = k)P(y=k)}{\sum_l p(x \mid y = l)P(y=l) }$$

LDA

  • LDA는 클래스 $y$에 대한 독립변수 $x$의 조건부 확률 분포가 공통된 공분산 행렬을 가지는 다변수 가우시안 정규분포라고 가정합니다. 다시 말해, 모든 k에 대해(어떤 클래스든) 같은 공분산을 갖는다고 생각하는 것이지요. $$\Sigma_k = \Sigma \;\; \text{for all} \;\; k$$
  • 이는 모든 클래스 $x$ 에 대해, 클래스 $k_1$, $k_2$ 의 경계선이 같은 다시 말해 확률값이 같아지는 $x$ 위치를 찾으면, 경계선 함수가 $x$ 에 대한 선형 방정식이 되어 경계선의 모양이 직선이 됩니다.

부록: 확률변수의 독립과 상관

  • 상관관계 : 두 확률변수 $f_x(x), f_y(y)$가 있을 때, 한 확률변수의 표본 값 $x$ 이 달라지면 다른 확률변수의 조건부 분포 $f_y(y)$ 가 달라질 때, 서로 상관관계가 있다라고 합니다.
  • 독립 : 반면, 서로 상관관계가 없으면 독립이라고 합니다.

부록: 공분산과 상관계수

  1. 공분산
  • 공분산, 상관계수는 다변수 확률변수의 상관 관계를 숫자로 나타낸 것입니다.
  • 표본공분산(sample covariance)은 표본분산처럼 데이터가 평균값에서 얼마나 떨어져 있는지 나타낸 것으로, 공분산 - 평균값 위치와 표본 위치를 연결한 사각형의 면적 - 의 평균입니다.
  • 수식은 아래처럼 정의할 수 있으며, $x_i$ 와 $y_i$ 는 각 $i$ 번째 $x$ 자료와 $y$ 자료의 값을, $\bar{x}$ 와 $\bar{y}$ 는 $x$, $y$ 자료의 표본 평균을 나타냅니다. $$s_{xy} = \dfrac{1}{N}\sum_{i=1}^{N} (x_i-\bar{x})(y_i-\bar{y})$$
  1. 표본상관계수
  • 표본상관계수는 자료 분포의 방향성만 분리해서 보여줍니다.
  • 표본상관계수 $r_{xy}$는 아래처럼, 공분산 $s_{xy}$ 를 각 표준편차 $\sqrt{s^2_x}$, $\sqrt{s^2_y}$ 로 나누어 정규화하여 정의합니다. $$r_{xy} = \dfrac{s_{xy}}{\sqrt{s^2_{x} \cdot s^2_{y}}}$$
  • 다른 상관계수와 비교할 때는, 피어슨 상관계수라고 하기도 합니다.

부록: 다변수 가우시안 정규분포

  • $D$ 차원 다변수 가우시안 정규 분포의 확률밀도함수는 평균 벡터 $\mu$ 와 공분산 행렬 $\Sigma$ 라는 두 개의 모수를 가지며 다음 같은 수식으로 정의됩니다. $$\mathcal{N}(x ; \mu, \Sigma) = \dfrac{1}{(2\pi)^{D/2} |\Sigma| ^{1/2}} \exp \left( -\dfrac{1}{2} (x-\mu)^T \Sigma^{-1} (x-\mu) \right)$$

  • 다변수 가우시안 정규분포의 공분산 행렬 $\Sigma$ 는 대칭행렬이기 때문에 대각화 가능(diagonalizable) 합니다. 이 식에서 $\Lambda$ 는 고유값 행렬, $V$ 는 고유벡터 행렬입니다.

logistic

패스트캠퍼스 데이터사이언스 스쿨 강의노트를 참고했습니다


확률적 모형

  • 로지스틱 회귀 모형은 “확률적(probabilistic)”, “판별(discriminative)” 모형 중 하나이다.
  • 확률적 판별 모형은, 주어진 데이터에 대해 각 카테고리(혹은 클래스)가 정답일 조건부 확률을 계산하기 때문에 확률적 모형에 속한다.
  • 확률적 모형은 독립변수 $x$가 주어졌을 때, 종속변수 $y$가 될 확률 $P(y = k \mid x)$를 모두 계산하고(1), 다음으로 가장 확률이 큰 클래스를 선택한다.(2)

$$
\text{(1) }
\begin{eqnarray}
P_1 &=& P(y = 1 \mid x) \
\vdots & & \vdots \
P_K &=& P(y = K \mid x)
\end{eqnarray}
$$

$$
\text{(2) }
y = \arg\max_{k} P(y=k \mid x)
$$

  • 확률적 모형은 생성모형(generative model)과 판별모형(discriminative model)로 나뉜다.

확률적 판별 모형

  • 확률론적 판별 모형은 조건부확률 $p(y = 1 \mid x)$ 이 $x$ 에 대한 함수 $f(x)$ 로 표시될 수 있다고 가정하고 그 함수를 직접 찾아내는 방법이다.
  • 단, 이 함수 $f(x)$ 는 확률이기 때문에, “0과 1사이의 실수”를 결과로 도출해야 한다.

로지스틱 회귀 모형: 개념

  1. 로지스틱 회귀(logistic regression)은 독립변수의 선형 결합을 이용하여 종속변수 발생 가능성을 예측하는 알고리즘이다.
  2. 선형 회귀처럼, 독립변수로 종속변수를 설명한다. 그러나 선형 회귀와 다르게 종속변수가 범주형 데이터일 때 주로 사용하기 때문에 일종의 분류(classification) 알고리즘이라고도 할 수 있다.
  3. 종속변수가 두 개 이상의 범주인 경우, 다항 로지스틱 회귀(multinomial logistic regression) 또는 분화 로지스틱 회귀(polytomous logistic regression) 알고리즘을 사용한다.

로지스틱 회귀 모형: 원리

  1. 종속변수가 베르누이 분포를 따른다고 가정하고, 모수 $\mu$를 추정한다.
  2. 종속변수가 베르누이 분포를 따른다면, 베르누이 분포의 모수 $\mu$는 0과 1 사이 실수이다. 왜냐하면 베르누이 확률변수의 모수 $\mu$는 1이 나올 확률을 의미하는데, 확률은 0과 1 사이의 사이의 실수이기 때문이다.
  3. 그런데 모수 $\mu$을 추정하기 위한, 표본 데이터 $y_1, \ldots, y_N$은 0과 1 사이의 실수가 아닌 음의 무한대와 양의 무한대 사이의 실수, 즉 모든 실수이다.
  4. 그러므로 모든 실수로 나오는 종속변수가, 0과 1 사이의 베르누이 분포를 띄는 종속변수로 나오도록 하기 위해서는 아래와 같은 일련의 과정이 필요하다.
(i) odds ratio를 활용하여, 0과 1 사이의 실수를 0과 양의 무한대 사이의 실수로 변환한다.

$\text{odds ratio} = \dfrac{\mu}{1-\mu}$

(ii) odds ratio를 로그 변환하여, 로지트 함수(Logit function)를 만든다.

$z = \text{logit}(\text{odds ratio}) = \log \left(\dfrac{\mu}{1-\mu}\right)$

(iii) 로지트 함수의 역함수, 로지스틱 함수(logistic function)을 만든다. 로지스틱 함수는, 음의 무한대에서 양의 무한대까지의 실수를 0부터 1사이의 실수로 변환한다.

$\text{logitstic}(z) = \mu(z) = \dfrac{1}{1+\exp{(-z)}}$

5.LL : 로지스틱 모형은 비선형 모형이기 때문에 모수 $w$ 를 추정하기 위해서는, MLE를 활용해야 한다. 아래는 MLE에서, LL(Log Likelihood).

\begin{eqnarray}
\text{LL}
&=& \log \prod_{i=1}^N \mu(x_i;w)^{y_i} (1-\mu(x_i;w))^{1-y_i} \
&=& \sum_{i=1}^N \left( y_i \log\mu(x_i;w) + (1-y_i)\log(1-\mu(x_i;w)) \right) \
&=& \sum_{i=1}^N \left( y_i \log\left(\dfrac{1}{1 + \exp{(-w^Tx_i)}}\right) + (1-y_i)\log\left(\dfrac{\exp{(-w^Tx_i)}}{1 + \exp{(-w^Tx_i)}}\right) \right) \
\end{eqnarray}

6.LL을 최대로 하는 $w$ 를 구하기 위해서 아래와 같이 미분을 하고, 두 식을 정리하면, 아래와 같은 결과가 나온다

$$
\dfrac{\partial\text{LL}}{\partial w} = \sum_{i=1}^N \dfrac{\partial\text{LL}}{\partial \mu(x_i;w)} \dfrac{\partial\mu(x_i;w)}{\partial w}
$$

\begin{eqnarray}
\dfrac{\partial \text{LL}}{\partial w}
&=& \sum_{i=1}^N \left( y_i \dfrac{1}{\mu(x_i;w)} - (1-y_i)\dfrac{1}{1-\mu(x_i;w)} \right) \mu(x_i;w)(1-\mu(x_i;w)) x_i \
&=& \sum_{i=1}^N \big( y_i (1-\mu(x_i;w)) - (1-y_i)\mu(x_i;w) \big) x_i \
&=& \sum_{i=1}^N \big( y_i - \mu(x_i;w) \big) x_i \
\end{eqnarray}

7.SGD(Steepest Gradient Descent)를 활용해서, 목적함수 $J$를 최소화하는 $w$를 구한다. 목적함수 $J$는 $-LL$이다.

\begin{eqnarray}
w_{k+1}
&=& w_{k} - \eta_k g_k \
&=& w_{k} + \eta_k \sum_{i=1}^N \big( y_i - \mu(x_i; w_k) \big) x_i\
\end{eqnarray}

로지스틱 회귀 모형: 성능 측정

  • 로지스틱 회귀 성능은 McFadden pseudo R square 값으로 측정한다.

$$ R^2_{\text{pseudo}} = 1 - \dfrac{G^2}{G^2_0} $$

  • $ G^2$는 deviance로, 로그 로스(log loss)라고도 하며 아래처럼 정의된다. deviance는 모형이 100% 정확한 경우 0, 모형이 성능이 나빠질 경우 값이 커진다. $G^2$ 는 현재 deviance, $G^2_0$ 는 귀무 모형으로 측정한 deviance 이다.

$$ G^2 = 2\sum_{i=1}^N \left( y_i\log\dfrac{y_i}{\hat{y}_i} + (1-y_i)\log\dfrac{1-y_i}{1-\hat{y}_i} \right) $$
$$ G^2 = - LL $$


부록: 모수 추정

  1. 모수 추정은 확률분포의 표본 데이터 $x_1, x_2, x_3, …, x_n$ 값은 알고 있는데, 모수를 알지 못하는 경우 활용한다.
  2. 모수 추정을 활용하면, 표본 데이터로 역으로 모수를 추정하고 나아가 새로운 표본 데이터를 생성할 수 있다.
    • 확률변수 : 수학적으로 확률이 정의된 “표본공간의 모든 표본”을 실수인 숫자로 바꾸는 함수. 가상의 수학 세계에 존재하는 것으로, 현실 세계의 표본(sample)을 만드는 데이터생성기 역할을 한다.
  3. 모수 추정은 모멘트 방법, 최대 가능도 추정(MLE), 베이지안 추정 등 방법이 있다.

부록: 최대 가능도 모수 추정의 원리 (MLE)

  1. 최대 가능도 추정(MLE)는 표본 데이터 $x$ 에 대해 가능도를 가장 크게 하는 모수 $\theta$를 찾는 방법이다.
  2. 보통 확률변수 표본 수는 단수가 아닌 복수 {$x_1, x_2, \ldots, x_N$} 이므로 가능도도 복수 표본에 대한 결합 확률밀도 $p_{X_1, X_2, \cdots, X_N}(x_1, x_2, \cdots, x_N ; \theta)$ 에서 구해야 한다.
  3. 그런데 표본 데이터 $x_1, \ldots, x_N$ 은 확률분포에서 독립적으로 나왔으므로 결합 확률밀도함수는 아래처럼 표현한다.
    $$ L(\theta; x_1, \ldots, x_N) = L(\theta; { x_i }{i=1}^N) = \prod{i=1}^N p(x_i ; \theta)$$
  4. 실제로 최대 가능도 추정 방법을 사용하려면, 가능도가 최대가 되는 $\theta$ 를 로그 변환하여 수치적으로 계산해야 한다. (수치적 최적화) $\hat\theta_{\text{ML}} = \arg \max_{\theta} {\text{log}} \; L(\theta; {x_i})$
    • 그 이유는 (1) 로그변환을 해도, 최대 가능도 추정의 결과(모수)가 바뀌지 않고
    • (2) 로그변환을 하면, 결합 확률밀도함수가 함수의 곱에서 덧셈으로 바뀌어 연산이 쉬워지기 때문이다.

부록: 베르누이 분포

  1. 베르누이 확률변수는 베루누이 확률변수의 결과를 실수 0 또는 실수 1로 바꾼 것이다.
  2. 두 가지 값 - 0, 1 - 중 하나만 가질 수 있으므로 이산확률변수라고도 한다.

    $$\text{Bern}(x;\mu) =
    \begin{cases}
    \mu & \text{if }x=1, \
    1-\mu & \text{if }x=0
    \end{cases}$$

  3. 베르누이 확률변수는 1이 나올 확률을 의미하는 $\mu$라는 모수(parameter)를 가진다.

naivebayes

패스트캠퍼스 데이터사이언스 스쿨 강의노트를 참고했습니다


확률적 모형

  • 나이브 베이즈 분류 모형은 “확률적(probabilistic)”, “생성(generative)” 모형 중 하나이다.
  • 확률적 생성 모형은, 주어진 데이터에 대해 각 카테고리(혹은 클래스)가 정답일 조건부 확률을 계산하기 때문에 확률적 모형에 속한다.
  • 확률적 모형은 독립변수 $x$가 주어졌을 때, 종속변수 $y$가 될 확률 $P(y = k \mid x)$를 모두 계산하고(1), 다음으로 가장 확률이 큰 클래스를 선택한다.(2)

$$
\text{(1) }
\begin{eqnarray}
P_1 &=& P(y = 1 \mid x) \
\vdots & & \vdots \
P_K &=& P(y = K \mid x)
\end{eqnarray}
$$

$$
\text{(2) }
y = \arg\max_{k} P(y=k \mid x)
$$

  • 확률적 모형은 생성모형(generative model)과 판별모형(discriminative model)로 나뉜다.

확률적 생성모형

  • 생성모형은 각 클래스(종속변수) 별 특징 데이터(독립변수)의 확률분포 $P(x \mid y = k)$를 추정한 다음, 베이즈 정리를 사용하여 조건부확률 $P(y = k | x)$를 계산하는 방법이다.

$$ P(y = k \mid x) = \dfrac{P(x \mid y = k) P(y = k)}{P(x)}$$

  • 생성모형은 전체 확률의 법칙을 이용하여 특정 데이터(독립변수) $x$ 의 무조건부 확률분포 $P(x)$ 를 구할 수 있다.
    $$ P(x) = \sum_{k=1}^K P(x \mid y) P(y = k)$$

  • 새로운 가상의 특징 데이터를 생성해내거나, 특징 데이터만으로도 아웃라이어를 판단할 수 있다는 장점이 있다. 반면, 클래스가 많을 경우 불필요한 확률 분포를 계산한다는 단점이 있다.

  • 확률적 생성모형으로는 QDA, LDA, 나이브 베이즈 알고리즘을 예로 들 수 있다.

나이브 베이즈 분류 모형

  • 나이브 베이즈 분류 모형은 나이브 가정을 베이즈 분류에 적용한 모형이다.
  • 나이브 가정은 독립변수 x가 다차원인 경우, 모든 차원의 개별 독립 변소 요소(component)가 서로 조건부 독립(conditional independent)이라는 가정이다.
  • 나이브 가정을 베이즈 분류에 적용하는 이유는, 텍스트 데이터처럼 독립변수가 차원이 높으면, 다차원 결합확률을 실제로 구하기 어렵기 때문이다. 이때, 나이브 가정을 적용하면, 단순히 곱하기만 해도 다차원 결합확률을 쉽게 구할 수 있다.
  • 나이브 베이즈 분류 모형은 $x$ 벡터의 결합 확률을 개별 원소 $x_d$확률의 곱으로 표현한다.

$$P(x_1, \ldots, x_D \mid y = k) = \prod_{d=1}^D P(x_d \mid y = k)$$

$$P(y = k \mid x) \;\; \propto \;\; \prod_{d=1}^D P(x_d \mid y = k)$$

부록: 베이즈 정리

  • 베이즈정리는 조건부 확률을 구하는 다음 공식을 뜻한다.

$$ P(A \mid B) = \dfrac{P(B \mid A)P(A)}{P(B)}$$

- $P(A \mid B)$ : 사후확률. 사건 B가 발생한 후 갱신된 사건 A의 확률
- $P(A)$ : 사전확률. 사건 B가 발생하기 전 사건 A의 확률
- $P(B \mid A)$ : 가능도. 사건 A가 발생한 경우, 사건 B의 확률
- $P(B)$ : 정규화 상수. 확률의 크기 조정

부록: 전체확률의 법칙

  • 전체확률의 법칙은, 모든 사건 $A$에 대해 사건 $A$의 확률은 사건 $A$와 사건 $Ci$가 동시에 발생할 사건들의 확률의 합과 같다.

$$P(A) = \sum_i P(A \cap C_i)$$

모형 선택 : 가우시안 정규 분포, 베르누이 분포, 다항 분포

  • 가우시안 정규 분포 가능도 모형

    • 가우시안 정규 분포 가능도 모형은 $x$ 벡터의 원소가 모두 실수이고, 클래스마다 특정 값 주변에서 발생하면 사용한다.
    • 각 독립변수 $x_d$ 마다, 그리고 클래스 $k$ 마다 정규 분포의 기댓값 $\mu_{d,k}$, 표준편차 $\sigma^2_{d,k}$ 가 달라진다.
    • QDA 모형과 달리 모든 독립변수들이 서로 조건부 독립이라 가정한다.

      $$P(x_d \mid y = k) = \dfrac{1}{\sqrt{2\pi\sigma_{d,k}^2}} \exp \left(-\dfrac{(x_d-\mu_{d,k})^2}{2\sigma_{d,k}^2}\right)$$

  • 베르누이 분포 가능도 모형

    • 베르누이 분포 가능도 모형은 각각의 $x_1, \ldots, x_D$의 원소 $x_d$가 0 또는 1이라는 값만 가질 수 있다.
    • 각 값의 모수 $\mu_d$는 원소 $x_d$, 클래스 $y_k$ 마다 다르다.
    • 정리하면, 베르누이 분포 가능도 모형 기반 나이브 베이즈 분류 모형은 동전 세트를 $N$ 번 던진 결과로부터 $1, \ldots, K$ 중 어떤 동전 세트를 던졌는지 찾아내는 모형이라 할 수 있다.

$$P(x_d \mid y = k) = \mu_{d,k}^{x_d} (1-\mu_{d,k})^{(1-x_d)}$$

$$P(x_1, \ldots, x_D \mid y = k)= \prod_{d=1}^D \mu_{d,k}^{x_d} (1-\mu_{d,k})^{(1-x_d)}$$

  • 다항 분포 가능도 모형
    • 다항 분포 모형은 독립변수 $x$ 벡터가 다항 확률 분포의 샘플이라 가정한다. 즉, $D$ 개의 면을 가지는 주사위를 $\sum_{d=1}^D x_d$ 번 던져서 나온 결과로 보는 셈.

$$P(x_1, \ldots, x_D \mid y = k)
\;\; \propto \;\; \prod_{d=1}^D \mu_{d,k}^{x_{d,k}}$$

linear-algebra-2

행렬의 부호는 어떻게 판별하는가

행렬에 부호는 존재하지 않는다. 대신, 부호와 비슷한 개념은 존재한다.

  • 양의 준정부호 : 영벡터를 제외하고 무엇을 벡터(x)로 넣든지 이차형식(quadratic form)이 양수, 0인 경우
  • 양의 정부호 : 영벡터를 제외하고 무엇을 벡터(x)로 넣든지 이차형식(quadratic form)이 양수인 경우

선형대수란 무엇인가?

선형대수는 왜 선형대수인가?
선형대수는 왜 행렬을 가르치는가?
선형대수는 데이터과학에 어떻게 사용되는가?

선형대수를 사용하는 이유 - 김도형 박사님 강의노트

선형대수를 사용하면 대량의 데이터를 포함하는 복잡한 계산 과정을 몇 글자 되지 않는 간단한 수식으로 서술할 수 있다. 따라서 데이터를 다루는 과정을 정확하고 간단하게 서술할 수 있다. 이를 위해 우선 선형대수에서 사용되는 여러 가지 기호와 개념을 익혀보자.

“선형대수(linear algebra)는 데이터 분석에 필요한 각종 계산을 돕기 위한 학문”. 데이터 분석을 하려면 수많은 숫자로 이루어진 데이터를 다루어야 한다. 하나의 데이터가 수십 개에서 수만 개의 숫자로 이루어져 있을 수도 있고, 또 이러한 데이터 수만 개가 하나의 집합을 이루고 있을 수도 있다.

  • 어떻게 가능한가?
    -> 선형대수는 선형성을 띈 수식을 처리하는 학문이기 때문이다.

  • 선형성이란 무엇인가?
    ->

    선형대수가 복잡한 계산 과정을 간단한 수식으로 표현할 수 있는 이유

모든 함수, 연산(계산)을 행렬의 형태로 표현할 수는 없다.

선형성(linearity)이 존재할 때 함수, 연산을 행렬로 표현할 수 있다.
1superposition
2homogeniety

원점을 통과하지 않는 직선(y = mx + n)은 선형성의 두 요건을 만족하지 못해 선형성을 띄지 않는다. 기울기(m)은 선형성이 있지만, x-y에는 선형성이 없다. 기울기는 항상 일정해서 두 변수 간 일정한 관계식이 있지만.

-> 두 요건을 만족하면 왜 선형성을 띈다고 하는 것일까?
-> 선형성이 없다는 것은 비례하지 않는다는 것인가.

미분, 적분도 선형성을 만족하기 때문에 행렬로 표현해서 연산할 수 있다.

행렬도 마찬가지다.

어떠한 수식도 선형성만 만족한다면 행렬로 표현해서 간단하게 연산할 수 있다.

위 조건만 만족한다면, 복잡한 연산도 쉽게 풀 수 있다.

  • 선형성을 띈 수식을 어떻게 처리한다는 것인가?
  • 데이터 하나하나 (하나의 스칼라, 하나의 벡터)를 하나씩 연산하지 않고 하나의 행렬로 묶어 연산할 수 있다
  • 모든 개별 데이터(스칼라)에 같은 수식을 개별적으로 적용하지 않고 동시에 적용할 수 있다(브로드캐스팅)
  • reference

박사님 강의노트

KOCW 선형대수(이상화 교수님)

선형이라는 것의 의미 (Linear 하다는 것의 의미)
http://sdolnote.tistory.com/entry/Linearity

Linear, Linearity, Linear System 선형, 선형성, 선형 시스템, 선형계
http://www.ktword.co.kr/abbr_view.php?m_temp1=2632

데이터사이언스, 어떻게 공부하고 프로젝트를 해야 할까?

패스트 캠퍼스 데이터사이언스 스쿨 2기 수료생 조용환님의 강의를 들었다. 데이터 사이언스 분야에 진입한지 2~3년 동안, 스스로 느낀 것, 주변 사람들로부터 질문 받은 것들을 가감없이 말씀해주셨다. 다음은 한 시간 반 가량의 강의를 들으면서 스스로 느낀 인사이트를 정리한 것이다. 어떻게 공부해야 할지, 어떻게 프로젝트와 포트폴리오를 준비해야 할지 정리하는 차원에서 작성했다.

1. 스터디, 어떻게 해야 할까?

(1) 친구, 동료와 함께

  • 데이터 분석은 결국 다른 사람들과 끊임없는 협업하는 과정이 동반될 수밖에 없다. 애초 공부할 때부터 다른 사람과 함께 하는 습관을 들이면, 훗날 협업할 때 도움이 될 것.
  • 팀 프로젝트, 수학 스터디를 중심으로 공부, 협업한다.

(2) 흥미를 놓지 않고

  • 데이터 사이언스 필드는 진입장벽이 높은, 많은 수련량/강도를 요구하는 분야이다. 스스로 흥미를 느끼지 못한다면, 이쪽 바닥에서 계속 남아있기 어렵다.
  • 일주일에 한 번씩, 나의 삶과 데이터 사이언스의 관계에 대해 글을 쓰며, 데이터 사이언스의 목적과 필요성을 상기한다.

(3) 나만의 패러다임을 구축하며

  • 기본기가 제대로 갖추어져 있지 않아도 업무는 수행할 수 있다. 그러나 수학, 알고리즘 등 기본기의 부족은 언젠가 발목을 잡을 것이다.
  • KOCW 이상화 교수님 강의, 3B1B 등 강의를 꼼꼼히 들으며 수학, 알고리즘(자료구조)을 밑바닥부터 천천히 갈고 닦는다.

(4) 명문화는 기본

  • 내가 알고 있는 지식 및 경험을 인출, 공유하는 능력은 필드에서 일할 때도 필요하다.
  • 프로젝트 진행, 포트폴리오 작성 때 작은 부분이라도 회고, 명문화, 공유한다.(데일리 커밋, TIL)

2. 프로젝트 / 포트폴리오는 어떻게 준비해야 할까?

(1) 취향을 저격하는

  • 기업은, 원하는 직무를 수행할 수 있는 능력(데이터 스킬 + 도메인 지식)을 보유한 사람을 원한다.
  • 기업의 취향을 저격할 수 있는 프로젝트를 진행하고, 포트폴리오를 준비한다.

(2) 근거에 기반한

  • 근거, 논리 기반 데이터 분석은 향후 개선할 수 있는 가능성이 크다.
  • 논문 쓰는 것처럼, 프로젝트의 의도, 주 타겟, 방법, 예상 결과, 결과, 피드백, 보완점 등을 근거을 기반을 두고 상세하게 서술한다.

(3) (데드라인 안에) 실질적 성과를 내는 포트폴리오

  • 프로젝트, 포트폴리오 안에서 성과를 내지 못하면 업무를 하면서도 성과를 내기 어렵다. 그러므로, 데드라인은 프로젝트 / 포트폴리오 작성에 있어 기본이다.
  • 관심 주제를 선택하고, 상대적으로 용이한 데이터 활용(eg. Kaggle)하여 실질적 성과를 낼 가능성을 높인다.

다음은 패스트캠퍼스 커리어서비스 강의에서 얻은 인사이트와 관련지어, 새내기 데이터사이언티스트는 어떤 산업, 어떤 기업에 어떻게 지원해야 할지 서술할 예정이다.