기계 학습의 Naive Bayes 알고리즘
⚡ 스마트 요약
나이브 베이즈는 베이즈 정리에 기반한 지도 학습 기반의 확률적 분류 알고리즘으로, 모든 특징이 독립적으로 기여한다고 가정합니다. 그 이론은 체계적으로 잘 정립되어 있습니다.ping 예를 들어, 세 가지 모델 변형, 장점, 한계 및 실제 적용 사례는 아래에서 다룹니다.
나이브 베이즈 분류기 알고리즘
분류기는 데이터를 하나 이상의 "클래스"로 분류하는 머신러닝 알고리즘입니다. 이메일 분류기가 대표적인 예인데, 수신되는 모든 메시지를 검사하여 스팸 또는 스팸 아님이라는 클래스 레이블을 지정합니다.
머신러닝에서 나이브 베이즈 분류기는 다음과 같은 기능을 합니다. 지도 학습 분류 작업에 사용되는 알고리즘.
아래 그림은 해당 흐름을 나타냅니다.
Naive Bayes는 분류 문제를 해결하는 데 사용됩니다. 물체의 확률을 기반으로 예측합니다. Naive Bayes는 Bayes Theorem을 기반으로 하며 주로 텍스트 분류에 사용됩니다. Naive Bayes는 구현하기 쉽고 빠르게 학습할 수 있는 확률적 분류 알고리즘입니다.
나이브 베이즈 분류기는 베이즈 정리에 기반하기 때문에 확률 분류기라고도 합니다. 이 분류기는 항목의 확률을 기반으로 예측합니다.
나이브 베이즈라고 불리는 이유는 무엇일까요?
나이브 베이즈(Naive Bayes)라는 이름은 '나이브(Naive)'와 '베이즈(Bayes)' 두 부분으로 이루어져 있습니다. 왜 '나이브'일까요? 이 알고리즘은 특징이 나타나는 순서를 무시하기 때문에 "You are"와 "Are you"가 알고리즘에게는 똑같아 보입니다. 또한 어떤 특징도 다른 특징에 영향을 미치지 않는다고 가정합니다. 사과를 인식할 때 빨간색, 구형 모양, 단맛이라는 세 가지 단서를 사용하는데, 이 알고리즘은 이러한 각각의 단서를 독립적인 증거로 취급합니다.
- 나이브 베이즈 분류기는 특징들이 서로 독립적이라고 가정합니다. 하지만 실제 데이터에서는 이러한 가정이 거의 불가능하기 때문에, 이 분류기를 '나이브'라고 부릅니다.
- 이 분류 알고리즘은 베이즈 정리에 기반하므로 나이브 베이즈 분류기라고 합니다.
나이브 베이즈 정리
베이즈 정리는 사전 지식에 따라 조건부 확률이 달라지는 가설의 확률을 찾는 데 사용됩니다. 이 정리는 토마스 베이즈의 이름을 따서 명명되었습니다. 나이브 베이즈 분류기는 베이즈 정리에 의해 제시된 조건부 확률 원리를 기반으로 작동합니다.
베이즈 정리를 이해하기 위해 동전 두 개를 던지는 간단한 나이브 베이즈 분류기 예제를 살펴보겠습니다. 동전 두 개를 던지면 {HH, HT, TH, TT}와 같은 표본 공간을 얻을 수 있습니다. 따라서 이러한 사건들의 확률은 다음과 같습니다.
- 앞면이 두 개 나오는 경우 = 1/4
- 적어도 하나의 꼬리 = 3/4
- 첫 번째 동전이 뒷면인 경우 두 번째 동전이 앞면이 됩니다. = 1/2
- 첫 번째 동전이 주어졌을 때 앞면 1개를 얻는 것은 앞면 = 2/XNUMX입니다.
베이즈 정리는 이미 발생한 다른 사건의 확률을 바탕으로 어떤 사건이 발생할 확률을 계산합니다. 베이즈 정리의 공식은 다음과 같습니다.
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B)는 사건 B가 이미 발생했을 때 사건 A가 발생할 확률입니다. 확률 P(B)는 0이 아니어야 합니다.
- 사건 B(증거)가 참일 때 주어지는 사건 A의 확률을 구해야 합니다.
- P(A)는 사건 A의 사전 확률, 즉 어떠한 증거도 관찰되기 전에 사건이 발생할 확률입니다. 여기서 사건 B는 알려지지 않은 어떤 값입니다.
- P(A|B)는 사건 A의 사후 확률, 즉 증거 B를 살펴본 후 사건 A가 발생할 확률입니다.
나이브 베이즈 분류기의 작동 예시
공식이 제대로 작동하는지 가장 빨리 확인하는 방법은 직접 손으로 실행해 보는 것입니다.
상점을 예로 들어보겠습니다.ping 베이즈 나이브 분류기의 작동 방식을 이해하기 위해, 이 데이터셋에는 예시로 사용할 30개의 행으로 구성된 작은 샘플 데이터셋이 포함되어 있습니다.
데이터 세트
문제는 나이브 베이즈 정리(Naive Bayes Theorem)를 사용하여 특정 날짜, 할인, 무료 배송 조합에 따라 제품을 구매할지 여부를 예측하는 것입니다.
단계 1) 날짜, 할인, 무료 배송 등 데이터 세트에 언급된 입력 유형을 사용하여 각 속성에 대한 빈도 테이블을 생성합니다.
'구매'라는 사건을 'A'로, '할인', '무료 배송', '요일'을 독립변수로 하여 각각 'B'로 나타내겠습니다. 이러한 사건과 변수를 이용하여 베이즈 정리를 적용해 보겠습니다.
단계 2) 이제 우도표를 하나씩 계산해 보겠습니다.
예 1 :
이 우도표를 바탕으로 아래와 같이 조건부 확률을 계산해 보겠습니다.
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
그리고, 베이즈 정리를 이용하여 P(A/B)를 구하면,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
마찬가지로 A가 매수인 경우
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
참고 : P(구매 | 주중)가 P(구매 안함 | 주중)보다 크기 때문에 고객이 주중에 제품을 구매할 가능성이 가장 높다는 결론을 내릴 수 있습니다.
단계 3) 마찬가지로 세 가지 변수를 모두 기반으로 사건 발생 가능성을 계산할 수 있습니다. 이제 위의 빈도표를 사용하여 세 변수 모두에 대한 우도표를 계산하겠습니다.
예 2 :
이제 이 세 가지 가능성 테이블을 사용하여 '요일', '할인' 및 '무료 배송'의 특정 조합을 기반으로 고객이 구매할 가능성이 있는지 계산해 보겠습니다.
여기서는 다음 요소들을 조합해 보겠습니다.
- 일 = 휴일
- 할인 = 예
- 무료 배송 = 예
언제, A = 구매
다음 요일, 할인, 무료 배송 조합에 대한 구매 조건부 확률을 계산합니다.
B는 다음과 같습니다.
- 일 = 휴일
- 할인 = 예
- 무료 배송 = 예
그리고 A = 구매
따라서,
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
A = 구매 없음
마찬가지로, 요일, 할인, 무료 배송의 다음 조합에 대한 구매의 조건부 확률을 계산합니다.
B는 다음과 같습니다.
- 일 = 휴일
- 할인 = 예
- 무료 배송 = 예
A = 구매 불가
따라서,
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
단계 4) 금후,
구매 확률 = 0.986
구매하지 않을 확률 = 0.027
마지막으로, 이날 매수할 조건부 확률이 있습니다. 이제 사건의 가능성을 얻기 위해 이러한 확률을 일반화해 보겠습니다.
- 확률의 합 = 0.986 + 0.027 = 1.013
- 구매 가능성 = 0.986 / 1.013 = 97.33%
- 구매하지 않을 확률 = 0.027 / 1.013 = 2.67%
두 점수를 더했을 때 1이 아닌 1.013이 나오는 이유는 독립성 가정으로 인해 각 추정치가 근사치가 되므로, 총합으로 나누어 백분율로 변환하기 때문입니다.
97.33%는 2.67%보다 큽니다. 우리는 일반 고객이 휴일에 할인과 무료 배송으로 구매할 것이라는 결론을 내릴 수 있습니다.
나이브 베이즈 모델의 유형
Naive Bayes 분류기에는 다양한 유형이 있습니다. 여기에서는 다항식, Bernoulli 및 Gaussian Naive Bayes 분류기에 대해 논의했습니다.
| 변형 | 기능 유형 | 일반적인 사용 |
|---|---|---|
| 다항식 | 단어 수 | 주제 및 문서 분류 |
| 베르누이 | 이진 존재/부재 플래그 | 짧은 문자 메시지 및 스팸 필터링 |
| 가우시안 | 연속적인 숫자 값 | 센서 판독값 및 측정값 |
1. 다항 나이브 베이즈
이러한 유형의 Naive Bayes 모델은 문서 분류 문제에 사용됩니다. 문서에서 단어의 빈도를 나타내는 기능과 함께 작동합니다. 분류자는 단어의 출현 및 개수를 고려하여 스포츠, 정치, 기술 등 특정 범주에 속하는 문서의 확률을 결정합니다.
2. 베르누이 나이브 베이즈
이는 다항식 Naive Bayes와 유사합니다. Bernoulli Naive Bayes 분류기는 문서 분류 작업에 사용됩니다. 그러나 부울 예측자를 사용합니다. 단어가 존재하는지 여부를 나타내며 Yes 또는 No 값만 취합니다. 분류자는 단어가 텍스트에 나타나는지 여부를 기반으로 확률을 계산합니다.
3. 가우시안 나이브 베이즈
이 분류기는 연속적인 값은 있지만 이산적인 값은 아닌 경우에 사용됩니다. 이 분류기는 다음의 매개변수를 사용하여 확률을 계산합니다. 가우시안 분포, 즉 평균과 분산.
조건부 확률 공식은 다음과 같이 변경됩니다.
The 사이 킷 학습 이 라이브러리는 불균형 텍스트를 위한 보완 나이브 베이즈와 이산 범주를 위한 범주형 나이브 베이즈라는 두 가지 변형을 추가합니다.
나이브 베이즈 분류기의 장점과 한계
기계 학습에서 Naive Bayes 알고리즘에는 다양한 장점과 단점이 있습니다.
나이브 베이즈 분류기의 이점
- 단순성과 효율성: Naive Bayes는 간단하고 학습 및 구현이 쉽습니다. 계산 비용이 저렴하기 때문에 효율적입니다. 대규모 데이터 세트를 효율적으로 처리할 수 있습니다.
- 빠른 훈련 및 예측: 나이브 베이즈는 특징들 간의 독립성 덕분에 많은 훈련 데이터가 필요하지 않습니다. 또한, 모델 훈련이 완료되면 빠른 예측이 가능합니다.
- 확장성: Naive Bayes는 많은 기능을 갖춘 고차원 데이터 세트를 처리할 수 있습니다. 특성 수가 훈련 예제 수보다 많은 경우에도 잘 수행됩니다. 데이터 포인트 및 예측 변수의 수에 따라 확장됩니다. 연속 데이터와 이산 데이터를 모두 처리합니다.
- 관련 없는 기능에 대한 견고성: 관련 없는 기능에는 민감하지 않습니다.
- 소규모 훈련 세트와 잘 작동합니다: 나이브 베이즈는 제한된 훈련 데이터로도 합리적인 결과를 제공할 수 있습니다. 훈련 인스턴스 수가 적은 상황에서도 잘 작동합니다.
나이브 베이즈 분류기의 한계
나이브 베이즈 기계 학습 모든 기능이 서로 독립적이라고 가정합니다. 따라서 데이터의 다양한 특성 간의 관계를 학습할 수 없습니다. 이는 각 기능을 다른 기능과 아무런 관련이 없는 것처럼 처리합니다.
두 번째 주의 사항은 해당 프로그램이 보고하는 클래스 확률이 제대로 보정되지 않았으므로 예측에 첨부된 신뢰도 수치는 신뢰할 수 있는 확률이 아니라는 점입니다.
이 문제를 극복하려면 다음을 사용할 수 있습니다. 의사 결정 트리랜덤 포레스트, 서포트 벡터 머신(SVM) 신경망 이러한 알고리즘들은 데이터 내 특징들 간의 복잡한 관계와 의존성을 학습할 수 있는 능력을 가지고 있습니다. 따라서 더욱 정확한 예측 결과를 도출할 수 있습니다.
나이브 베이즈 분류기의 응용
이 알고리즘은 빠르고 효율적이므로 실시간 예측에 사용할 수 있습니다.
스팸 감지
이메일 서비스 (예 : Gmail이 알고리즘을 사용하여 이메일이 스팸인지 여부를 판단합니다. 이 알고리즘은 스팸 필터링에 매우 효과적입니다.
감정 분석
단어 선택, 문장 구조, 맥락과 같은 기능을 기반으로 텍스트를 긍정적, 부정적 또는 중립적으로 분류할 수 있습니다. 소셜 미디어 모니터링, 고객 리뷰 및 시장 조사에서 응용 프로그램을 찾습니다.
문서 분류
문서 내 특정 단어나 기능의 빈도나 존재 여부를 기준으로 문서를 스포츠, 정치, 기술, 금융 등의 카테고리로 분류할 수 있습니다.
추천 시스템
사용자 선호도, 과거 데이터, 품목 특징을 분석하여 제품, 영화, 기사 추천에 대한 사용자 관심이나 선호도를 예측할 수 있습니다.
이 분류 알고리즘은 얼굴 인식, 날씨 예측, 의료 진단, 쇼핑 등에도 사용됩니다.ping뉴스 분류 등에서 나이브 베이즈를 구현할 수 있습니다. Python여기서 sklearn.naive_bayes 모듈은 위에 설명된 모든 변형을 제공합니다.








