機械学習の古典的アルゴリズム - 単純なベイジアン分類アルゴリズム

目次

序章

基本的な考え方

ベイズの定理

ベイズ式の本質的な意味合い

コード  

トーマス・ベイズ


序章

Naive Bayesian 分類アルゴリズムは、機械学習の最も古典的なアルゴリズムの 1 つであり、教師あり学習アルゴリズムです。その理論的根拠は、英国の著名な数学者トーマス・ベイズが提唱した「ベイズの定理」であり、ベイズの定理は、関連する統計学や確率論の知識に基づいて実現されています。ベイジアン分類アルゴリズムには、感情分類、テキスト分類、その他の分類タスクで広く使用されているなど、幅広い用途があります。

基本的な考え方

ベイジアン分類アルゴリズムをよりよく理解するには、理論的な導出の前にいくつかの基本的な概念を理解してください。

事前確率:経験的知識に基づく確率。

事後確率: 特定の要因によってイベントが発生する確率。

条件付き確率式:事象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= 1 ,2,....;
                (2) B1∪B2∪....=Ω の場合、イベント グループ B1,B2,... はサンプル空間 Ω の分割であると言われます。B1,B2,... をサンプル空間 Ω の分割とし、A を任意のイベントとすると、次のようになります。

上記の式は全確率式です。

ベイズの定理

ベイズの定理の発見者であるトーマス・ベイズは、非常に興味深い仮説を提唱しました。 、描いた玉の色だけで、袋の中の黒玉と白玉の比率を判断できますか?」

上記の問題は、高校で受け入れられた確率と矛盾する可能性があります。これは、あなたが直面している確率問題が次のようなものである可能性があるためです。 、それが黒である確率は?」答えはもちろん 0.4 です。この問題は非常に単純で、袋の中の黒玉と白玉の比率が事前にわかっているため、ボールに触れる確率を簡単に計算できますが、複雑なケースでは「比率」を知ることができません。ベイジアンの質問。

統計には 2 つの大きな考え方があります. 1 つは「頻度」学派であり, もう 1 つは「ベイジアン」学派です. いずれも独自の巨大な知識体系を持っています. 「ベイジアン」は主に「相関」という言葉を使用します"。「ベイズの定理」をわかりやすく説明してみましょう。一般に、事象 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)
それ原因から結果まで、さまざまな理由から結果イベントの確率を推測することです。
ただし、実際には重要なアプリケーション シナリオがあります。日常生活で特定の現象をよく観察し、この現象のさまざまな原因の可能性を推測します。簡単に言えば、結果から原因を推測することです。

コード
  

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 日死去。ベイジアン数学は、主に確率論を研究します確率論の基礎理論にまず帰納的推論法を適用し、ベイジアン統計理論を創造し、統計的決定関数、統計的推論、統計的推定に貢献した。彼の死後、リチャード・プライスは 1763 年に王立協会に彼の著書「確率論の問題解決に向けたエッセイ」を送りました。確率論と数学的統計学は重要な影響を与えました。ベイズによる別の本「確率論の紹介」は、1758 年に出版されました。ベイジアンで使用される多くの用語は、今日でも使用されています。

おすすめ

転載: blog.csdn.net/m0_53675977/article/details/128163774