나이브 베이 이해


47

에서 StatSoft, 주식 회사 (2013), 전자 통계 교과서 , "나이브 베이 즈 분류" :

여기에 이미지 설명을 입력하십시오

Naïve Bayes Classification의 개념을 설명하려면 위 그림에 표시된 예를 고려하십시오. 표시된대로 오브젝트는 녹색 또는 빨간색으로 분류 될 수 있습니다. 내 임무는 새로운 사례가 도착할 때 분류하는 것입니다. 즉, 현재 종료되는 객체를 기준으로 어떤 클래스 레이블이 속하는지 결정합니다.

RED보다 2 배 많은 GREEN 객체가 있기 때문에 새로운 사례 (아직 관찰되지 않은)가 RED가 아닌 GREEN 멤버쉽의 2 배라고 생각하는 것이 합리적입니다. 베이지안 분석에서이 믿음은 사전 확률로 알려져 있습니다. 사전 확률은 이전 경험,이 경우 GREEN 및 RED 객체의 백분율을 기반으로하며 실제로 실제로 발생하기 전에 결과를 예측하는 데 사용됩니다.

따라서 다음과 같이 쓸 수 있습니다.

여기에 이미지 설명을 입력하십시오

총 60 개의 객체가 있으며 그 중 40 개는 녹색이고 20 개는 빨간색이므로 클래스 멤버십에 대한 사전 확률은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오

이전 확률을 공식화하여 이제 새 객체 (흰색 원)를 분류 할 준비가되었습니다. 객체가 잘 클러스터되어 있기 때문에 X 근처에 녹색 (또는 RED) 객체가 많을수록 새로운 케이스가 특정 색상에 속할 가능성이 높습니다. 이 가능성을 측정하기 위해 클래스 레이블에 관계없이 X를 중심으로 원을 그립니다 (선험적으로 선택됨). 그런 다음 각 클래스 레이블에 속하는 원의 포인트 수를 계산합니다. 이것으로부터 우리는 가능성을 계산합니다 :

여기에 이미지 설명을 입력하십시오

위 그림에서 원이 1 개의 녹색 개체와 3 개의 RED 개체를 포함하므로 GREEN이 지정된 X의 가능성이 RED가 지정된 X의 가능성보다 작습니다. 그러므로:

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오

이전의 확률은 X가 녹색에 속할 수 있음을 나타내지 만 (적색에 비해 녹색이 두 배나 많을 경우) 그렇지 않을 가능성을 나타냅니다. X의 클래스 멤버쉽은 RED입니다 (X 근처에 GREEN보다 RED 오브젝트가 더 많기 때문에). 베이지안 분석에서, 최종 분류는 소위 베이 즈 규칙 (Tom. Thomas Bayes 1702-1761의 이름을 따서 지어 짐)을 사용하여 사후 확률을 형성하기 위해 정보의 출처, 이전 및 가능성을 결합하여 생성됩니다.

여기에 이미지 설명을 입력하십시오

마지막으로, 우리는 클래스 멤버쉽이 가장 큰 사후 확률을 달성하기 때문에 X를 RED로 분류합니다.

이것은 나의 수학 이해의 어려움이 오는 곳입니다.

여기에 이미지 설명을 입력하십시오

p (Cj | x1, x2, x ..., xd)는 클래스 멤버쉽의 사후 확률, 즉 X가 Cj에 속할 확률이지만 왜 이렇게 작성합니까?

가능성을 계산?

여기에 이미지 설명을 입력하십시오

후방 확률?

여기에 이미지 설명을 입력하십시오

나는 수학을 가져 가지 않았지만 순진한 베이에 대한 나의 이해는 괜찮습니다.이 분해 된 방법에 관해서는 혼란 스럽습니다. 이러한 방법을 시각화하고 수학을 이해하기 쉬운 방법으로 작성하는 데 도움이 될 수 있습니까?


12
(+1) 나는 당신이 당신의 질문을 제기 한 정말 신중하고 명확한 방법에 감탄합니다.
rolando2

2
@ rolando2 :이 질문의 모든 수치와 거의 모든 텍스트는 statsoft.com/textbook/naive-bayes-classifier
Franck Dernoncourt

다른 사람이 작성한 자료를 참조하는 방법에 따라 다른 곳의 자료를 명확하게 표시하려면이 게시물을 편집하십시오 .
Scortchi-Monica Monica 복원

직접 인용 의 올바른 속성 은 항상 Stack Exchange 사이트에서 요구되었습니다. 어쨌든 누락은 쉽게 수정됩니다. & 그렇게했습니다. 계정을 삭제할 필요가 없습니다. 다시 고려하십시오.
Scortchi-Monica Monica 복원

답변:


50

나는 네이브 베이 즈 과정 전체를 처음부터 다시 시작할 것입니다.

새로운 예제가 )라는 각 클래스에 속할 확률을 찾고 싶습니다 . 그런 다음 각 클래스의 확률을 계산하고 가장 가능성이 높은 클래스를 선택합니다. 문제는 일반적으로 그러한 확률이 없다는 것입니다. 그러나 베이 즈 정리 (Bayes 'Theorem)를 통해이 방정식을 더 다루기 쉬운 형태로 다시 작성할 수 있습니다.P(class|feature1,feature2,...,featuren

Bayes 'Thereom은 단순히 또는 우리 문제의 관점에서 :

P(A|B)=P(B|A)P(A)P(B)
P(class|features)=P(features|class)P(class)P(features)

제거하여이를 단순화 할 수 있습니다 . 우리가 순위에 가고 있기 때문에 우리는이 작업을 수행 할 수 있습니다 의 각 값에 대한 ; 는 매번 동일합니다 . 의존하지 않습니다 . 이것은 우리를 남겨둔다 P(features)P(class|features)classP(features)class

P(class|features)P(features|class)P(class)

이전 확률 는 질문에 설명 된대로 계산할 수 있습니다.P(class)

그것은 떠난다 . 우리는 거대하고 매우 희소 한 공동 확률 를 제거하고 싶습니다 . 각 기능이 독립적 인 경우 실제로 독립적이지 않더라도 실제로는 서로 독립적 인 것으로 가정 할 수 있습니다 ( ' 순진한 "베이브의 일부). 나는 개인적으로 이산 (예 : 범주 형) 변수에 대해 이것을 생각하는 것이 더 쉽다고 생각하므로 약간 다른 버전의 예제를 사용합시다. 여기에서는 각 특성 차원을 두 가지 범주 형 변수로 나누었습니다.P(features|class)P(feature1,feature2,...,featuren|class)

P(feature1,feature2,...,featuren|class)=iP(featurei|class)

이산 예시 데이터.

예 : 분류 자 ​​교육

분류자를 훈련시키기 위해 다양한 부분 집합을 세고이를 사용하여 사전 및 조건부 확률을 계산합니다.

전제 조건은 사소합니다. 총점이 60 점, 40 점이 초록, 20이 빨강입니다. 따라서

P(class=green)=4060=2/3 and P(class=red)=2060=1/3

다음으로 클래스에 주어진 각 피처 값의 조건부 확률을 계산해야합니다. 여기에는 및 두 가지 기능이 있습니다. 각 기능 은 두 값 중 하나 (하나는 A 또는 B, 다른 하나는 X 또는 Y)를 갖습니다. 따라서 다음을 알아야합니다.feature1feature2

  • P(feature1=A|class=red)
  • P(feature1=B|class=red)
  • P(feature1=A|class=green)
  • P(feature1=B|class=green)
  • P(feature2=X|class=red)
  • P(feature2=Y|class=red)
  • P(feature2=X|class=green)
  • P(feature2=Y|class=green)
  • (명확하지 않은 경우 가능한 모든 기능-값과 클래스 쌍입니다)

이것도 계산하고 나누면 계산하기 쉽습니다. 예를 들어, , 빨간색 점만보고 의 'A'영역에있는 지점 수를 계산합니다 . 20 개의 빨간색 점이 있으며 모두 'A'영역에 있으므로 입니다. B 영역에 빨간색 점이 없으므로 입니다. 다음으로 동일한 작업을 수행하지만 녹색 점만 고려하십시오. 이를 통해 및 됩니다. 확률 테이블을 반올림하기 위해 에 대해 해당 프로세스를 반복 합니다. 내가 올바르게 계산했다고 가정하면P(feature1=A|class=red)feature1P(feature1=A|class=red)=20/20=1P(feature1|class=red)=0/20=0P(feature1=A|class=green)=5/40=1/8P(feature1=B|class=green)=35/40=7/8feature2

  • P(feature1=A|class=red)=1
  • P(feature1=B|class=red)=0
  • P(feature1=A|class=green)=1/8
  • P(feature1=B|class=green)=7/8
  • P(feature2=X|class=red)=3/10
  • P(feature2=Y|class=red)=7/10
  • P(feature2=X|class=green)=8/10
  • P(feature2=Y|class=green)=2/10

이 10 가지 확률 (2 가지 선행 조건과 8 가지 조건)이 모델입니다.

새로운 예 분류

예에서 흰색 점을 분류 해 봅시다. 그것은의 "A"지역의 과의 "Y"지역 . 각 클래스에있을 확률을 찾고 싶습니다. 빨간색부터 시작하겠습니다. 위의 공식을 사용하면 다음을 알 수 있습니다. 서빙 테이블의 확률에서 우리는feature1feature2

P(class=red|example)P(class=red)P(feature1=A|class=red)P(feature2=Y|class=red)

P(class=red|example)131710=730
우리는 녹색에 대해서도 똑같이합니다 :
P(class=green|example)P(class=green)P(feature1=A|class=green)P(feature2=Y|class=green)

이 값을 입력하면 0 ( )이됩니다. 마지막으로, 어떤 클래스가 우리에게 가장 높은 확률을 주 었는지 살펴 봅니다. 이 경우 분명히 빨간색 클래스이므로 포인트를 지정하는 곳입니다.2/302/10

노트

원래 예제에서 기능은 연속적입니다. 이 경우 각 클래스에 P (feature = value | class)를 할당하는 방법을 찾아야합니다. 알려진 확률 분포 (예 : 가우시안)에 적합하도록 고려할 수 있습니다. 교육 중에 각 피쳐 차원에 따라 각 클래스의 평균 및 분산을 찾을 수 있습니다. 포인트를 분류하려면 각 클래스에 적절한 평균과 분산을 연결하여 를 찾으십시오 . 데이터의 특성에 따라 다른 분포가 더 적절할 수 있지만 가우스는 적절한 시작점이 될 것입니다.P(feature=value|class)

DARPA 데이터 세트에 익숙하지 않지만 본질적으로 동일한 작업을 수행합니다. 아마도 P (attack = TRUE | service = finger), P (attack = false | service = finger), P (attack = TRUE | service = ftp) 등과 같은 것을 계산 한 다음 예제와 같은 방식으로. 참고로, 여기서 트릭의 일부는 좋은 기능을 만드는 것입니다. 예를 들어, 소스 IP는 아마도 절망적이지 않을 것입니다. 주어진 IP에 대해 하나 또는 두 개의 예만있을 것입니다. IP를 지리적 위치에두고 대신 "Source_in_same_building_as_dest (true / false)"또는 기능을 대신 사용하면 훨씬 더 나을 수 있습니다.

더 도움이 되길 바랍니다. 설명이 필요한 경우 다시 시도해 드리겠습니다.


3
확실한. 괜찮다면 대답을 편집하여 더 많은 공간을 확보 할 수 있습니다 (그리고 LaTex 일을 할 수 있습니다).
매트 크라우스

1
교육 및 테스트 파트를 확장하여 자체 섹션으로 만들었습니다. 첫 몇 단락은 동일합니다 ...
매트 크라우스

2
매트, 이것은 내가 만난 Naive Bayes의 모든 교과서 정의보다 훨씬 명확합니다. 이것은 아마도이 웹 사이트에서 지금까지 본 모든 질문에 가장 적합한 답변 일 것입니다.
Zhubarb

@ Berkan, 감사합니다; 정말 친절합니다. (다른 훌륭한 답변들도 많이 있습니다!) 제안 사항이 있으시면 기꺼이 답변 해 드리겠습니다.
매트 크라우스

+ 1 및 stackoverflow.com/questions/10059594/… 비슷한 설명이있는 곳
Drey

6

데이터를 나타내는 표기법을 단순화하여 다양한 중 가장 큰 것을 찾고 싶습니다 . 이제 Bayes의 공식은 입니다. 오른쪽은 모든 대해 동일합니다 . 우리가 어떤 찾으려면 , 가장 큰, 우리는 물론, 각 계산할 수 하고 값을 비교합니다. 그러나 비교는 실제로 모든 경우에 동일한 의 값에 의해 영향을받지는 않습니다 . 모든 동일하게 계산할 수 있습니다.DP(CjD)

P(CjD)=P(DCj)P(Cj)P(D), j=1,2,
jP(C1D)P(C2D),P(CjD)P(D)P(DCj)P(Cj) 비교 (즉 , 비교 전에 각각의 를 로 나누는 것을 귀찮게하지 않고 ), 동일한 가 가장 큰 사후 확률을 갖는 것으로 선택 될 것이다. 바꾸어 말하면, 사후 확률 인 비례 받는 우도 시간 이전 확률 데이터 때 마지막으로, (조건부) 독립적 인 관찰의 모음입니다 주어진 , 우리는이 P(DCj)P(Cj)P(D)CjP(CjD)P(DCj) P(Cj)
P(CjD)P(DCj)P(Cj).
DC j ) P ( D C j )(x1,x2,,xd)Cj)
P(DCj)=P(x1,x2,,xdCj)=P(x1Cj)P(x2Cj)P(xdCj)=1=1dP(xiCj)

1

순진 베이 즈 모델의 주요 가정은 각 지형지 물 (x_i)이 클래스에 지정된 다른 모든 지형지 물과 조건 적으로 독립적이라는 것입니다. 이 가정은 우리가 가능성을 간단한 제품으로 작성할 수있게 해줍니다 (표시된대로).

이것은 또한 순진 베이 모델이 실제로 일반화하는 데 도움이되는 것입니다. 훈련 단계를 고려하십시오. 만약 우리가이 가정을하지 않았다면, 학습은 모든 특징들이 함께 분포 된 복잡한 고차원 분포를 추정하는 것입니다 : p (x1, x2, ..., xn, c). 대신에, 우리는 p (x1, c), p (x2, c), ..., p (xn, c)를 추정함으로써 훈련 할 수 있습니다. c는 다른 모든 특징의 값은 관련이 없기 때문입니다 x_i에 대한 추가 정보가 없습니다).

나는 이것을 시각화하는 좋은 방법을 모르지만 (표준 그래픽 모델 표기법 외에도) 좀 더 구체적으로 만들기 위해 Naive bayes 모델을 배우는 코드를 작성할 수 있습니다 ( 여기에서 예제 데이터를 얻을 수 있음 ). 훈련하고 시험하십시오. 이제 조건부 독립 가정을 삭제하고 코드를 수정하십시오. 이전 모델을 학습, 테스트 및 비교하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.