나는 이것이 오래된 질문이며, 확실한 대답을 가지고 있음을 알고 있습니다. 내가 게시하는 이유는 수락 된 답변 에 다른 알고리즘 인 k-NN ( k -nearest neighbors) 의 많은 요소가 있기 때문입니다.
k-NN과 NaiveBayes는 분류 알고리즘입니다. 개념적으로 k-NN은 "인근"이라는 아이디어를 사용하여 새로운 엔티티를 분류합니다. k-NN에서 '가까움'은 유클리드 거리 또는 코사인 거리와 같은 아이디어로 모델링됩니다. 반면 NaiveBayes에서는 '확률'개념이 새로운 엔터티를 분류하는 데 사용됩니다.
질문은 Naive Bayes에 관한 것이기 때문에 다음은 누군가에게 아이디어와 단계를 설명하는 방법입니다. 나는 가능한 한 적은 수의 방정식과 평범한 영어로 그것을 시도 할 것입니다.
첫째, 조건부 확률 및 베이 즈 규칙
누군가 Naive Bayes의 뉘앙스를 이해하고 이해하기 전에 먼저 몇 가지 관련 개념, 즉 조건부 확률과 Bayes 'Rule의 개념을 알아야합니다. (이러한 개념에 익숙한 경우 Naive Bayes 시작하기 섹션으로 건너 뛰십시오. )
일반 영어의 조건부 확률 : 다른 일이 이미 발생 했을 때 어떤 일이 일어날 확률은 얼마 입니까?
결과 O가 있고 일부 증거 E가 있다고 가정 해 봅시다.이 확률이 정의 된 방식에서 다음과 같습니다. 결과 O와 증거 E 를 둘 다 가질 확률은 다음과 같습니다. O가 발생했습니다)
조건부 확률을 이해하는 한 가지 예 :
미국 상원 의원이 있다고 가정 해 봅시다. 상원 의원은 민주당 또는 공화당 원일 수 있습니다. 그들은 또한 남성 또는 여성입니다.
상원 의원 한 명을 완전히 무작위로 선택하면이 사람이 여성 민주당 원일 확률은 얼마입니까? 조건부 확률은 우리가 그 대답에 도움이 될 수 있습니다.
(민주당 및 여성 상원 의원)의 확률 = Prob (상원 의원은 민주당 원임)이 민주당 원이라는 점에서 여성 인의 조건부 확률과 곱한 것입니다.
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
우리는 정확히 같은 것을 계산할 수 있습니다.
P(Democrat & Female) = P(Female) * P(Democrat | Female)
베이 즈 규칙 이해
개념적으로 이것은 P (Evidence | Known Outcome)에서 P (Outcome | Known Evidence)로가는 방법입니다. 알려진 결과를 고려할 때 특정 증거가 얼마나 자주 관찰되는지 알고 있습니다. 우리는이 알려진 사실을 사용하여 역을 계산하고 , 증거가 주어진 결과 가 발생할 가능성을 계산해야합니다 .
P (우리가 어떤 증거를 알고 있다는 결과) = P (우리가 결과를 알고 있다는 증거) P (증거)에 의해 스케일 된 Prob (결과)
베이 즈 규칙을 이해하는 고전적인 예 :
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
이제이 모든 것이 단지 Naive Bayes에 도착하기위한 서문이었습니다.
나이브 베이 즈에 도착하기
지금까지 우리는 한 가지 증거에 대해서만 이야기했습니다. 실제로 여러 증거가 제시된 결과를 예측해야합니다 . 이 경우 수학이 매우 복잡해집니다. 이러한 복잡한 문제를 해결하기 위해 한 가지 방법은 여러 증거를 '결합 해제'하고 각 증거를 독립적으로 처리하는 것입니다. 이러한 접근 방식을 이것이 순진한 베이 즈 ( Nive Bayes )라고 합니다.
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
많은 사람들이 이것을 다음과 같이 기억하기로 선택합니다.
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
이 방정식에 대한 몇 가지 사항에 유의하십시오.
- Prob (evidence | outcome)이 1이면, 우리는 단지 1을 곱한 것입니다.
- Prob (일부 특정 증거)가 0이면, 전체 prob. 모순되는 증거가 보이면 그 결과를 배제 할 수 있습니다.
- 모든 것을 P (증거)로 나누므로 계산하지 않고도 벗어날 수 있습니다.
- 이전의 곱셈에 대한 직관 은 우리가 더 일반적인 결과에 대해 높은 확률을 제공하고 결과에 따라 가능성이 낮다는 것입니다. 이것들은 또한 불려지고
base rates
예측 된 확률을 확장하는 방법입니다.
결과를 예측하기 위해 NaiveBayes를 적용하는 방법?
가능한 각 결과에 대해 위의 수식을 실행하십시오. 우리가 노력하고 있기 때문에 분류 , 각각의 결과는라고 class
그리고 그것은이 class label.
우리의 작업이이 클래스 또는 클래스가 될 가능성이 얼마나되는지를 고려하고, 각 엔티티에 레이블을 할당, 증거를 살펴 보는 것이다. 다시 한 번, 우리는 매우 간단한 접근 방식을 취합니다. 확률이 가장 높은 클래스는 "우승자"로 선언되고 해당 클래스 레이블은 해당 증거 조합에 할당됩니다.
과일 예
이해를 높이기 위해 예를 들어 보도록하겠습니다. OP는 '과일'식별 예를 요청했습니다.
과일 1000 조각에 대한 데이터가 있다고 가정 해 봅시다. 그들은 바나나 , 오렌지 또는 다른 과일 일 수 있습니다 . 우리는 각 과일에 대해 세 가지 특성을 알고 있습니다.
- 그것이 길든
- 그것은 달콤한 여부
- 색상이 노란색 인 경우
이것이 우리의 '훈련 세트'입니다. 우리는 새로운 과일 의 종류를 예측하기 위해 이것을 사용할 것 입니다.
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
과일 컬렉션에 대해 많은 것을 미리 계산할 수 있습니다.
소위 "프라이어"확률. (과실 속성을 모른다면 이것이 우리의 추측 일 것입니다.)base rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
"증거"의 가능성
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
"가능성"의 가능성
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
과일이 주어지면 어떻게 분류합니까?
우리는 알 수없는 과일의 특성을 부여 받고 분류하도록 요청했다고 가정 해 봅시다. 우리는 열매가 길고 달콤하며 노란색이라고 들었습니다. 바나나인가요? 오렌지 야? 아니면 다른 과일입니까?
우리는 단순히 세 가지 결과 각각에 대해 숫자를 하나씩 실행할 수 있습니다. 그런 다음 우리는 가장 높은 확률을 선택하고 우리의 사전 증거 (1000 과일 훈련 세트)를 기반으로 확률이 가장 높은 클래스에 속하는 것으로 알려지지 않은 과일을 '분류'합니다.
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
압도적 인 마진 ( 0.252 >> 0.01875
)으로이 Sweet / Long / Yellow 과일을 바나나 일 가능성이 높은 것으로 분류합니다.
Bayes Classifier가 왜 그렇게 인기가 있습니까?
그것이 결국 내려 오는 것을보십시오. 몇 가지 계산과 곱셈. 이러한 모든 용어를 미리 계산할 수 있으므로 분류가 쉽고 빠르며 효율적입니다.
Let z = 1 / P(evidence).
이제 다음 3 가지 수량을 빠르게 계산합니다.
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
가장 높은 수의 클래스 레이블을 지정하면 완료됩니다.
이름에도 불구하고 Naive Bayes는 특정 응용 분야에서 탁월합니다. 텍스트 분류는 실제로 빛나는 영역 중 하나입니다.
Naive Bayes 알고리즘의 개념을 이해하는 데 도움이되기를 바랍니다.