기계 학습 고전 알고리즘 - 순진한 베이지안 분류 알고리즘

목차

소개

기본 사상

베이즈 정리

베이지안 공식의 본질적 의미

코드  

토마스 베이즈


소개

Naive Bayesian 분류 알고리즘은 지도 학습 알고리즘인 기계 학습에서 가장 고전적인 알고리즘 중 하나입니다. 그 이론적 근거는 영국의 유명한 수학자 Thomas Bayes가 제안한 "Bayes' theorem"이며, Bayes의 정리는 통계학 및 확률론 관련 지식을 바탕으로 구현된다. 베이지안 분류 알고리즘은 감정 분류, 텍스트 분류 및 기타 분류 작업에 널리 사용되는 등 다양한 용도로 사용됩니다.

기본 사상

베이지안 분류 알고리즘을 더 잘 이해하기 위해서는 이론적 유도 전에 몇 가지 기본 개념을 이해해야 합니다.

사전 확률: 경험적 지식에 기반한 확률.

사후 확률 : 특정 요인으로 인해 사건이 발생할 확률.

조건부 확률 공식 : 사건 A와 B를 가정할 때, 알려진 B의 조건에서 발생할 확률은 P(A|B)이고, A와 B 사건이 동시에 발생하는 경우는 다음과 같이 기록된다.

P(A, B)는 다음과 같은 조건부 확률 공식을 갖습니다.

p(A|B)=\frac{P(A,B)}{P(B )}

결합 확률: 결합 확률은 여러 조건을 포함하고 모든 조건이 동시에 참일 확률을 말하며 P(X=a,Y=b) 또는 P(a,b)로 기록되며 일부 책에서는 다음과 같이 사용하기도 합니다. P(ab)로 기록하되 이 표기는 개인이 사용하지 않으므로 이하에서는 쉼표로 구분하여 표기한다.

공동 확률 공식:

P(X_{I}|B)=P(X_{I})P(Y|X_{I})
        (1) B1, B2....는 상호 배타적이다. 즉, Bi ∩ Bj = ∅ , i≠j, i, j=1, 2,...., P(Bi)>0, i= ( 2
                ) B1∪B2∪....=Ω이면 이벤트 그룹 B1,B2,...는 샘플 공간 Ω의 분할이라고 합니다. B1,B2,...를 샘플 공간 Ω의 분할이라고 하고 A를 임의의 이벤트라고 하면 다음과 같습니다.

위 공식은 전체 확률 공식입니다.

베이즈 정리

베이즈 정리의 발견자인 토마스 베이즈는 매우 흥미로운 가설을 제시했습니다. , 당신은 당신이 그리는 공의 색상만으로 가방에 있는 검은색과 흰색 공의 비율을 판단할 수 있습니까?"

위의 문제는 우리가 고등학교에서 받아들인 확률과 충돌할 수 있습니다. 왜냐하면 당신이 노출되는 확률 문제는 다음과 같을 수 있기 때문입니다: "가방에 10개의 공이 있고, 4개의 검은 공과 6개의 흰 공이 있습니다. 임의로 공을 잡으면 , 그것이 검은 색일 확률은 얼마입니까?" 대답은 물론 0.4입니다. 이 문제는 매우 간단합니다. 가방에 있는 검은색 공과 흰색 공의 비율을 미리 알고 있기 때문에 공이 닿을 확률을 쉽게 계산할 수 있지만 일부 복잡한 경우에는 "비율"을 알 수 없습니다. 베이지안 질문.

통계학에는 두 개의 큰 학파가 있습니다: 하나는 "빈도" 학파이고 다른 하나는 "베이지안" 학파입니다. 그들은 모두 그들 자신의 거대한 지식 시스템을 가지고 있으며, "베이지안"은 주로 "상관관계"와 "성별"이라는 단어를 사용합니다. ". "Bayes' theorem"을 이해하기 쉽게 설명하자면, 일반적으로 사건 B가 발생하는 조건에서 사건 A가 발생할 확률은 사건 A가 발생한다는 조건에서 사건 B가 발생할 확률과 같지 않지만 둘 다 발생합니다. 그들 사이에는 일정한 상관 관계가 있으며 다음과 같은 공식이 있습니다("베이지안 공식"이라고 함).

베이지안 공식의 본질적 의미


원인에서 결과로, 결과에서 원인으로
실제로 우리는 사건 A를 결과로, 사건 B1, B2,..., Bn을 이 결과로 이어지는 다양한 원인으로 볼 수 있습니다. 그런 다음, 우리가 도입한 전체 확률 공식
P(A)=P(B1)P(A|B1)+P(B2)P(A|B2)+...+P(Bn)P(A|Bn)
It 원인에서 결과에 이르기까지 다양한 이유에서 결과 이벤트의 확률을 추론하는 것입니다.
그러나 실제로 중요한 응용 시나리오가 있습니다. 우리는 종종 일상 생활에서 특정 현상을 관찰한 다음 이 현상의 다양한 원인에 대한 확률을 추론합니다. 쉽게 말해 결과에서 원인을 추론하는 것이다.

코드
  

from sklearn.datasets import fetch_20newsgroups  # 从sklearn.datasets里导入新闻数据抓取器 fetch_20newsgroups
from sklearn.model_selection import  train_test_split
from sklearn.feature_extraction.text import CountVectorizer  # 从sklearn.feature_extraction.text里导入文本特征向量化模块
from sklearn.naive_bayes import MultinomialNB     # 从sklean.naive_bayes里导入朴素贝叶斯模型
from sklearn.metrics import classification_report
#1.数据获取
news = fetch_20newsgroups(subset='all')
print(len(news.data))  # 输出数据的条数:18846

#2.数据预处理:训练集和测试集分割,文本特征向量化
X_train,X_test,y_train,y_test = train_test_split(news.data,news.target,test_size=0.25,random_state=33) # 随机采样25%的数据样本作为测试集
#print X_train[0]  #查看训练样本
#print y_train[0:100]  #查看标签

#文本特征向量化
vec = CountVectorizer()
X_train = vec.fit_transform(X_train)
X_test = vec.transform(X_test)

#3.使用朴素贝叶斯进行训练
mnb = MultinomialNB()   # 使用默认配置初始化朴素贝叶斯
mnb.fit(X_train,y_train)    # 利用训练数据对模型参数进行估计
y_predict = mnb.predict(X_test)     # 对参数进行预测

#4.获取结果报告
print('The Accuracy of Naive Bayes Classifier is:', mnb.score(X_test,y_test))
print(classification_report(y_test, y_predict, target_names = news.target_names))
Downloading 20news dataset. This may take a few minutes.
Downloading dataset from https://ndownloader.figshare.com/files/5975967 (14 MB)
18846
The Accuracy of Naive Bayes Classifier is: 0.8397707979626485
                          precision    recall  f1-score   support

             alt.atheism       0.86      0.86      0.86       201
           comp.graphics       0.59      0.86      0.70       250
 comp.os.ms-windows.misc       0.89      0.10      0.17       248
comp.sys.ibm.pc.hardware       0.60      0.88      0.72       240
   comp.sys.mac.hardware       0.93      0.78      0.85       242
          comp.windows.x       0.82      0.84      0.83       263
            misc.forsale       0.91      0.70      0.79       257
               rec.autos       0.89      0.89      0.89       238
         rec.motorcycles       0.98      0.92      0.95       276
      rec.sport.baseball       0.98      0.91      0.95       251
        rec.sport.hockey       0.93      0.99      0.96       233
               sci.crypt       0.86      0.98      0.91       238
         sci.electronics       0.85      0.88      0.86       249
                 sci.med       0.92      0.94      0.93       245
               sci.space       0.89      0.96      0.92       221
  soc.religion.christian       0.78      0.96      0.86       232
      talk.politics.guns       0.88      0.96      0.92       251
   talk.politics.mideast       0.90      0.98      0.94       231
      talk.politics.misc       0.79      0.89      0.84       188
      talk.religion.misc       0.93      0.44      0.60       158

               micro avg       0.84      0.84      0.84      4712
               macro avg       0.86      0.84      0.82      4712
            weighted avg       0.86      0.84      0.82      4712


토마스 베이즈

Bayesian (약 1701-1761) Thomas Bayes, 영국 수학자. 1701년경 런던에서 태어난 그는 사제였습니다. 1742년 왕립학회 회원이 되었다. 1761년 4월 7일 사망. 베이지안 수학은 주로 확률 이론을 연구합니다 . 확률이론의 기초이론 에 귀납추리법을 최초로 적용하여 베이지안 통계이론을 창시하였고, 통계적 의사결정함수, 통계적 추론, 통계적 추정에 기여하였다. 그가 사망한 후 Richard Price는 1763년에 그의 저서 "우연의 교리에서 문제 해결을 위한 에세이"를 왕립 학회에 보냈습니다. 확률 이론과 수학적 통계는 중요한 영향을 미쳤습니다. Bayes의 또 다른 책인 "우연의 교리 입문"은 1758년에 출판되었습니다. 베이지안에서 사용하는 많은 용어가 오늘날에도 여전히 사용되고 있습니다.

추천

출처blog.csdn.net/m0_53675977/article/details/128163774