top of page

RM 분류 알고리즘(2) - Naive Bayes

이는 분류 알고리즘 중에 가장 확률적이고 심플한 방법입니다. (심플한지는 좀 더 보겠습니다. ^^;)

모든 속성들간의 관계를 독립이라는 가장 순수한 가정을 가진 베이즈 정리를 기반으로 하여

조건부 확률 계산을 하고 이를 기반으로 값을 예측하게 됩니다.

Naive Bayes는 속성간의 관계를 무시하기 때문에 상관성이 높은 속성들이 존재 하게 되면 에러율이 높아 질 수 있습니다. 하지만 상관성 높은 속성들에 대한 처리를 사전에 진행하면 간단하지만 굉장히 효과적인 방법이 될 수 있습니다. 그래서 많은 분석에 있어서 Naive Bayes를 출발점으로 하여 더

좋은 성능의 모델을 찾기 위한 작업을 진행하고 있습니다.

간단하게 RM에서 제공하는 방법으로 값을 예측 해 보도록 하겠습니다.

학습용 데이터 정보

Label 속성 확률 : Yes = 0.64 No = 0.36

조건부 확률 ( att1 = A | Label = Yes) = 0.223

조건부 확률 ( att1 = A | Label = No) = 0.581

조건부 확률 ( att2 = B | Label = Yes) = 0.659

조건부 확률 ( att2 = B | Label = No) = 0.397

적용 데이터

att1 = A & att2 = B --> Label = ?

Label 이 Yes 일 확률 : 0.64 * 0.223 * 0.659 = 0.094

Label 이 No 일 확률 : 0.36 * 0.581 * 0.397 = 0.083

=> Yes 일 확률이 높기에 Yes로 예측

계산 과정상 분석가가 결정해 줘야 할 건 없어 보이기에 RM parameter도 간단합니다.

라플라스(laplace) 수정 : 앞단의 확률을 계산하는 과정은 전부 학습 데이터 기반에서 작업이 됩니다.

만약 학습 데이터에는 없었던 경우의 수에 대해서 예측이 필요하게 되면 위

계산식으로는 둘 다 0 값이 될 것 입니다. 이런 경우를 대비 하기 위해 계산 과정에서 분자에 1, 분모에 3을 더해 줘서 조건부 확률을 계산하게 됩니다.

마지막으로 고려해야 될 내용은 속성이 연속형 데이터인 경우 입니다. 범주형의 경우 해당 데이터가 발생할 확률을 계산할 수 있지만 연속형의 데이터의 경우는 값에 대한 확률이 존재 하지 않습니다.

그래서 연속형 데이터는 분포를 추정 하고 그 분포가 알려주는 특정 구간에 대한 확률 값을 계산하게 됩니다. Naive Bayes 에서는 연속형 데이터들이 정규분포를 따른다고 가정하고 평균과 표준 편차를 이용 조건부 확률 밀도 함수를 계산합니다. (복잡해지는 수식은 생략 ^^;)

처음 시작 과정은 어렵지 않아보이는 확률 계산이였지만 연속형 데이터를 고민하기 시작하면서

점점 복잡한 느낌이 듭니다. ㅜㅜ 하지만 우리의 목적은 알고리즘 개발이 아니라 사용일 것 입니다. 그렇다고 한다면 복잡한 수식을 이해하기 보다 각각의 parameter 들이 의미 하는 바가 더 중요할 것 같습니다.

추천 게시물
최근 게시물
보관
태그 검색
아직 태그가 없습니다.
공식 SNS 페이지
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
A Complete Platform for Predictive Analytics
래피드마이너
bottom of page