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개월 정도가 지나서야, 각 알고리즘이 무엇이며, 언제 어떻게 사용해야 하는지 조금씩 감이 오는 것 같아요. 아직 자주 사용하는 알고리즘이 아닌 경우에는 헷갈릴 때도 있지만요.