기계 학습의 Naive Bayes 알고리즘

⚡ 스마트 요약

나이브 베이즈는 베이즈 정리에 기반한 지도 학습 기반의 확률적 분류 알고리즘으로, 모든 특징이 독립적으로 기여한다고 가정합니다. 그 이론은 체계적으로 잘 정립되어 있습니다.ping 예를 들어, 세 가지 모델 변형, 장점, 한계 및 실제 적용 사례는 아래에서 다룹니다.

  • 🔘 정의: 각 후보 클래스의 사후 확률을 비교하여 레코드에 레이블을 지정하는 분류기.
  • ☑️ 순진한 가정: 각 특징은 조건부 독립으로 취급되는데, 이는 드물게 성립하지만 예측력은 여전히 ​​우수합니다.
  • 베이즈 공식: P(A|B)는 P(B|A)에 P(A)를 곱한 후 P(B)로 나눈 값과 같습니다.
  • 🧪 실제 예제: 당일 할인과 무료 배송이 모두 적용되면 구매 확률이 97.33%에 달합니다.
  • 🛠️ 세 가지 변형: 단어 개수에는 다항 분포, 단어 존재 여부에는 베르누이 분포, 연속형 값에는 가우스 분포를 사용합니다.
  • ⚠️ 한정: 상관관계가 있는 특징은 무시되므로 의사결정 트리 또는 SVM이 종속 데이터에 더 적합합니다.

기계 학습의 Naive Bayes 알고리즘

나이브 베이즈 분류기 알고리즘

분류기는 데이터를 하나 이상의 "클래스"로 분류하는 머신러닝 알고리즘입니다. 이메일 분류기가 대표적인 예인데, 수신되는 모든 메시지를 검사하여 스팸 또는 스팸 아님이라는 클래스 레이블을 지정합니다.

머신러닝에서 나이브 베이즈 분류기는 다음과 같은 기능을 합니다. 지도 학습 분류 작업에 사용되는 알고리즘.

아래 그림은 해당 흐름을 나타냅니다.

나이브 베이즈 분류기가 입력 레코드에 클래스 레이블을 할당합니다.

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개의 행으로 구성된 작은 샘플 데이터셋이 포함되어 있습니다.

데이터 세트

샘플샵ping Day, Discount, Free Delivery, Buy 열이 있는 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 모듈은 위에 설명된 모든 변형을 제공합니다.

자주 묻는 질문

필요한 변형을 가져오세요 sklearn.naive_bayes`train_test_split` 함수를 사용하여 데이터를 분할한 다음, 훈련 데이터셋에 대해 `fit()` 함수를 호출하고 테스트 데이터셋에 대해 `predict()` 함수를 호출합니다. GaussianNB는 연속형 특징에 적합하고, MultinomialNB와 BernoulliNB는 텍스트 개수와 이진 단어 플래그를 처리합니다.

만약 어떤 범주가 학습 과정에서 특정 클래스와 함께 전혀 나타나지 않는다면, 해당 범주의 조건부 확률은 0이 되어 전체 결과가 사라집니다. 라플라스 평활화는 모든 카운트에 1을 더하기 때문에 어떤 값도 0으로 수렴하지 않습니다. Scikit-learn은 이를 알파(alpha) 매개변수로 제공합니다.

어느 쪽이 완전히 우세하다고 할 수는 없습니다. 나이브 베이즈는 학습 속도가 빠르고, 필요한 데이터 양이 적으며, 고차원 텍스트 처리에 유리합니다. 로지스틱 회귀는 특징 간의 상관관계를 모델링하고 더 정확한 확률을 산출합니다. 소규모 텍스트 데이터셋에서는 나이브 베이즈가 우세한 경우가 많지만, 데이터 양이 많아지면 로지스틱 회귀가 앞섭니다.

테스트 세트를 따로 분리하고 예측값과 실제 레이블을 비교합니다. 혼란 매트릭스그런 다음 정밀도, 재현율 및 F1 점수를 도출합니다. 스팸과 같이 한 클래스가 샘플의 대부분을 차지하는 불균형 데이터에서는 정확도만으로는 오해의 소지가 있습니다.

텍스트를 소문자로 변환하고, 구두점을 제거하고, 불용어를 제거하고, 선택적으로 토큰의 어간을 추출한 다음, 각 문서를 개수 또는 TF-IDF 벡터로 변환합니다. 베르누이 변형 알고리즘은 개수 대신 이진 존재 플래그를 필요로 합니다. 학습 및 예측 시 동일한 단계를 적용합니다.

나이브 베이즈는 가장 단순한 베이지안 네트워크입니다. 하나의 클래스 노드에 모든 특징이 직접 연결되어 있고 특징 간에는 링크가 없습니다. 일반적인 베이지안 네트워크는 이러한 의존성 연결을 그릴 수 있도록 해주므로 나이브 베이즈가 의도적으로 무시하는 상관관계를 모델링합니다.

자동화된 머신러닝 도구는 평활화 값, 특징 표현 방식, 변형 선택을 탐색한 다음 교차 검증 점수를 기준으로 후보들을 순위 매깁니다. 이를 통해 대부분의 수동 시행착오를 줄일 수 있지만, 어떤 지표가 중요한지, 그리고 최적의 모델이 합리적인 동작을 보이는지는 여전히 사용자가 결정해야 합니다.

GitHub 부조종사 간단한 설명만으로도 기본 템플릿 코드(가져오기, 학습/테스트 분할, 학습 및 예측 호출)를 빠르게 작성할 수 있습니다. 하지만 스크립트가 선택한 변형과 ​​평가 코드를 항상 확인하세요. 그럴듯해 보이는 스크립트라도 잘못된 모델을 학습시킬 수 있기 때문입니다.

이 게시물을 요약하면 다음과 같습니다.