기계 학습의 Naive Bayes 알고리즘

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

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

분류기는 데이터를 하나 이상의 "클래스" 집합으로 분류하는 머신 러닝 알고리즘입니다. 이메일 분류기는 이메일을 스캔하여 클래스 레이블(스팸 또는 스팸 아님)로 필터링하는 분류기의 한 예입니다.

기계 학습의 Naive Bayes 분류기는 분류 작업을 위한 지도형 기계 학습입니다.

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

Naive Bayes는 분류 문제를 해결하는 데 사용됩니다. 물체의 확률을 기반으로 예측합니다. Naive Bayes는 Bayes Theorem을 기반으로 하며 주로 텍스트 분류에 사용됩니다. Naive Bayes는 구현하기 쉽고 빠르게 학습할 수 있는 확률적 분류 알고리즘입니다.

Naive Bayes 분류기는 Bayes 정리를 기반으로 하므로 확률 분류기라고도 합니다. 아이템의 확률을 기반으로 예측합니다.

Naive Bayes라고 불리는 이유는 무엇입니까?

Naive Bayes 분류기에는 Naive와 Bayes라는 ​​두 단어가 있습니다. 왜 나비에인가? 이 알고리즘은 모든 단어 문장을 동일하게 취급합니다. 예를 들어 "당신은"과 "당신은"은 이 알고리즘에서 동일합니다. 특징이나 특징의 발생에 의존하지 않습니다. 과일 사과를 식별하려면 빨간색, 구형 모양, 달콤한 맛이 있어야 사과로 인식됩니다. 이는 이러한 기능이 서로 독립적이라는 것을 의미합니다.

  • Naive Bayes 분류기는 기능이 서로 독립적이라고 가정합니다. 실제 데이터에서는 이것이 거의 불가능하므로 분류기를 naive라고 합니다.
  • 이 분류 알고리즘은 Naive Bayes Classifier로 알려진 Bayes 정리를 기반으로 합니다.

나이브 베이즈의 정리

베이즈 정리는 사전 지식에 따른 조건부 확률을 사용하여 가설의 확률을 찾는 데 사용됩니다. 이 정리는 Thomas Bayes의 이름을 따서 명명되었습니다. Naive Bayes 분류기는 Bayes 정리에서 제공하는 조건부 확률의 원리에 따라 작동합니다.

베이즈 정리를 이해하기 위해 두 개의 동전을 던지는 간단한 순진한 베이즈 분류기 예를 살펴보겠습니다. {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)는 XNUMX이 될 수 없습니다.

  • 사건 B(증거)가 참일 때 주어지는 사건 A의 확률을 구해야 합니다.
  • P(A)는 A의 사전적(선험적, 즉 증명 전 관측된 사건의 확률)입니다. 여기서 사건 B는 알려지지 않은 인스턴스의 값입니다.
  • P(A|B)는 사건 B의 사후 확률, 즉 증거를 살펴본 후 사건이 발생할 확률입니다.

Naïve Bayes 분류기의 실제 예

Bayes Naive Classifier의 작동을 이해하기 위해 쇼핑의 예를 들어보겠습니다. 이 데이터세트에는 이 예에 대한 30개 행의 작은 샘플 데이터세트가 있습니다.

데이터 세트

Naive Bayes 분류기의 실제 예

문제는 나이브 베이즈 정리(Naive Bayes Theorem)를 사용하여 특정 날짜, 할인, 무료 배송 조합에 따라 제품을 구매할지 여부를 예측하는 것입니다.

Naive Bayes 분류기의 실제 예

단계 1) 날짜, 할인, 무료 배송 등 데이터 세트에 언급된 입력 유형을 사용하여 각 속성에 대한 빈도 테이블을 생성합니다.

Naive Bayes 분류기의 실제 예

이벤트 '구매'를 'A'로 하고, 독립변수인 '할인', '무료배송', '일'을 'B'로 표기한다. 우리는 베이즈 정리를 적용하기 위해 이러한 사건과 변수를 사용할 것입니다.

단계 2) 이제 우도표를 하나씩 계산해 보겠습니다.

Naive Bayes 분류기의 실제 예

예 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) 마찬가지로 세 가지 변수를 모두 기반으로 사건 발생 가능성을 계산할 수 있습니다. 이제 위의 빈도표를 사용하여 세 변수 모두에 대한 우도표를 계산하겠습니다.

Naïve Bayes 분류기의 실제 예

예 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%

97.33%는 2.67%보다 큽니다. 우리는 일반 고객이 휴일에 할인과 무료 배송으로 구매할 것이라는 결론을 내릴 수 있습니다.

Naive Bayes 모델의 유형

Naive Bayes 분류기에는 다양한 유형이 있습니다. 여기에서는 다항식, Bernoulli 및 Gaussian Naive Bayes 분류기에 대해 논의했습니다.

1. 다항 나이브 베이즈

이러한 유형의 Naive Bayes 모델은 문서 분류 문제에 사용됩니다. 문서에서 단어의 빈도를 나타내는 기능과 함께 작동합니다. 분류자는 단어의 출현 및 개수를 고려하여 스포츠, 정치, 기술 등 특정 범주에 속하는 문서의 확률을 결정합니다.

2. 베르누이 나이브 베이즈

이는 다항식 Naive Bayes와 유사합니다. Bernoulli Naive Bayes 분류기는 문서 분류 작업에 사용됩니다. 그러나 부울 예측자를 사용합니다. 단어가 존재하는지 여부를 나타내며 Yes 또는 No 값만 취합니다. 분류자는 단어가 텍스트에 나타나는지 여부를 기반으로 확률을 계산합니다.

3. 가우시안 나이브 베이즈

이 분류기는 연속적인 값은 있지만 이산적인 값은 아닌 경우에 사용됩니다. 이 분류기는 다음의 매개변수를 사용하여 확률을 계산합니다. 가우시안 분포, 즉 평균과 분산.

가우시안 나이브 베이즈

조건부 확률 공식은 다음과 같이 변경됩니다.

가우시안 나이브 베이즈

나이브 베이즈 분류기의 장점과 한계

기계 학습에서 Naive Bayes 알고리즘에는 다양한 장점과 단점이 있습니다.

나이브 베이즈 분류기의 이점

  • 단순성과 효율성: Naive Bayes는 간단하고 학습 및 구현이 쉽습니다. 계산 비용이 저렴하기 때문에 효율적입니다. 대규모 데이터 세트를 효율적으로 처리할 수 있습니다.
  • 빠른 훈련 및 예측: Naive Bayes는 기능 간의 독립성으로 인해 많은 훈련 데이터가 필요하지 않습니다. 모델이 훈련되면 빠르게 예측할 수 있습니다.
  • 확장성: Naive Bayes는 많은 기능을 갖춘 고차원 데이터 세트를 처리할 수 있습니다. 특성 수가 훈련 예제 수보다 많은 경우에도 잘 수행됩니다. 데이터 포인트 및 예측 변수의 수에 따라 확장됩니다. 연속 데이터와 이산 데이터를 모두 처리합니다.
  • 관련 없는 기능에 대한 견고성: 관련 없는 기능에는 민감하지 않습니다.
  • 소규모 훈련 세트와 잘 작동합니다: Naive Bayes는 제한된 훈련 데이터로도 합리적인 결과를 제공할 수 있습니다. 훈련 인스턴스 수가 적은 상황을 처리할 수 있습니다. 훈련 데이터가 많이 필요하지 않습니다.

나이브 베이즈 분류기의 한계

나이브 베이즈 기계 학습 모든 기능이 서로 독립적이라고 가정합니다. 따라서 데이터의 다양한 특성 간의 관계를 학습할 수 없습니다. 이는 각 기능을 다른 기능과 아무런 관련이 없는 것처럼 처리합니다.

이 문제를 극복하려면 다음을 사용할 수 있습니다. 의사 결정 트리, 랜덤 포레스트, 지원 벡터 머신(SVM), 신경망 등. 이러한 알고리즘은 데이터의 특징 간의 복잡한 관계와 종속성을 학습할 수 있는 능력을 가지고 있습니다. 따라서 더 정확한 결과를 예측할 수 있습니다.

나이브 베이즈 분류기의 응용

이 알고리즘은 빠르고 효율적이므로 실시간 예측에 사용할 수 있습니다.

스팸 감지

이메일 서비스 (예: Gmail) 이 알고리즘을 사용하여 이메일이 스팸인지 여부를 판별합니다. 이 알고리즘은 스팸 필터링에 매우 좋습니다.

감정 분석

단어 선택, 문장 구조, 맥락과 같은 기능을 기반으로 텍스트를 긍정적, 부정적 또는 중립적으로 분류할 수 있습니다. 소셜 미디어 모니터링, 고객 리뷰 및 시장 조사에서 응용 프로그램을 찾습니다.

문서 분류

문서 내 특정 단어나 기능의 빈도나 존재 여부를 기준으로 문서를 스포츠, 정치, 기술, 금융 등의 카테고리로 분류할 수 있습니다.

추천 시스템

사용자 선호도, 과거 데이터, 품목 특징을 분석하여 제품, 영화, 기사 추천에 대한 사용자 관심이나 선호도를 예측할 수 있습니다.

이 분류기 알고리즘은 얼굴 인식, 날씨 예측, 의료 진단, 쇼핑, 뉴스 분류 등에 사용됩니다. Naive Bayes를 다음에서 구현할 수 있습니다. Python. Naive Bayes 분류기 sklearn, 즉 sklearn.naive_bayes가 있습니다. 이 알고리즘을 구현하는 모듈입니다.

결론

머신 러닝의 나이브 베이즈 알고리즘은 스팸 탐지, 뉴스 분류, 감정 분석, 날씨 예측, 쇼핑 등에 주로 사용되는 분류기입니다. 나이브 베이즈 알고리즘은 베이즈 정리를 기반으로 합니다. 연산 간단하고 구현하기 쉽습니다. 속도가 빠르기 때문에 실시간 애플리케이션에서 사용할 수 있습니다. 가장 큰 단점은 독립적인 기능을 가정한다는 것입니다(실생활에서는 독립적인 기능이 거의 불가능하므로 Naive라고 합니다). 각 기능을 동일하게 취급합니다. 이러한 단점을 극복하기 위해 의사결정 트리, 랜덤 포레스트, SVM(지원 벡터 머신) 등과 같은 다른 분류자를 사용할 수 있습니다.