日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

朴素贝叶斯文本分类java_朴素贝叶斯文本分类简单介绍

發(fā)布時間:2023/12/20 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 朴素贝叶斯文本分类java_朴素贝叶斯文本分类简单介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文介紹樸素貝葉斯算法如何對文本進(jìn)行分類。比如,每個用戶的購物評論就是一篇文本,識別出這篇文本屬于正向評論還是負(fù)面評論 就是分類的過程,而類別就是:{正面評論,負(fù)面評論}。正面評論為Positive,用標(biāo)識符'+'表示;負(fù)面評論為Negative,用標(biāo)識符'-'表示。

一,分類目標(biāo)

尋找文本的某些特征,然后根據(jù)這些特征將文本歸為某個類。

The goal of classification is to take a single observation, extract some useful

features, and thereby classify the observation into one of a set of discrete classes.

使用監(jiān)督式機(jī)器學(xué)習(xí)方法對文本進(jìn)行分類:首先假設(shè)已經(jīng)有分好類的N篇文檔:(d1,c1)、(d2,c2)、(d3,c3)……(dn,cn)

di表示第i篇文檔,ci表示第i個類別。目標(biāo)是:尋找一個分類器,這個分類器能夠:當(dāng)丟給它一篇新文檔d,它就輸出d (最有可能)屬于哪個類別c

二,分類器的介紹

①Generative classifier

樸素貝葉斯分類器屬于Generative classifier。

②Discriminative classifier

邏輯回歸屬于Discriminative classifier。

Generative classifiers like naive Bayes build a model of each class. Given an observation,they return the class most likely to have generated the observation.

Discriminative classifiers like logistic regression instead learn what features from the input are most useful to discriminate between the different possible classes.

三,詞袋模型(Bag Of Words)

前面提到,文本分類需要尋找文本的特征。而詞袋模型就是表示文本特征的一種方式。給定一篇文檔,它會有很多特征,比如文檔中每個單詞出現(xiàn)的次數(shù)、某些單詞出現(xiàn)的位置、單詞的長度、單詞出現(xiàn)的頻率……而詞袋模型只考慮一篇文檔中單詞出現(xiàn)的頻率(次數(shù)),用每個單詞出現(xiàn)的頻率作為文檔的特征(或者說用單詞出現(xiàn)的頻率來代表該文檔)。詞袋模型的示意圖如下:

We represent a text document as if it were abag-of-words,

that is, an unordered set of words with their position ignored, keeping only their frequency in the document.

四,樸素貝葉斯分類器

樸素貝葉斯分類器是一個概率分類器。假設(shè)現(xiàn)有的類別C={c1,c2,……cm}。給定一篇文檔d,文檔d最有可能屬于哪個類呢?這個問題用數(shù)學(xué)公式表示如下:

(公式一)

c^就是:在所有的類別C={c1,c2,……cm} 中,使得:條件概率P(c|d)取最大值的類別。使用貝葉斯公式,將(公式一)轉(zhuǎn)換成如下形式:

(公式二)

對類別C中的每個類型,計算?[p(d|c)*p(c)]/p(d) 的值,然后選取最大值對應(yīng)的那個類型ci ,該ci就是最優(yōu)解c^,因此,可以忽略掉分母 p(d),(公式二)變成如下形式:

(公式三)

這個公式由兩部分組成,前面那部分P(d|c) 稱為似然函數(shù),后面那部分P(c) 稱為先驗(yàn)概率。

前面提到使用詞袋模型來表示 文檔d,文檔d的每個特征表示為:d={f1,f2,f3……fn},那么這里的特征fi其實(shí)就是單詞wi出現(xiàn)的頻率(次數(shù)),公式三轉(zhuǎn)化成如下形式:

(公式四)

對文檔d 做個假設(shè):假設(shè)各個特征之間是相互獨(dú)立的。那么p(f1,f2……fn|c)=p(f1|c)*p(f2|c)*……*p(fn|c),公式四轉(zhuǎn)化成如下形式:

(公式五)

由于每個概率值很小(比如0.0001)若干個很小的概率值直接相乘,得到的結(jié)果會越來越小。為了避免計算過程出現(xiàn)下溢(underflower),引入對數(shù)函數(shù)Log,在 log space中進(jìn)行計算。然后使用詞袋模型的每個單詞wi 出現(xiàn)頻率作為特征,得到如下公式

(公式六)

五,訓(xùn)練樸素貝葉斯分類器

訓(xùn)練樸素貝葉斯的過程其實(shí)就是計算先驗(yàn)概率和似然函數(shù)的過程。

①先驗(yàn)概率P(c)的計算

P(c)的意思是:在所有的文檔中,類別為c的文檔出現(xiàn)的概率有多大?假設(shè)訓(xùn)練數(shù)據(jù)中一共有Ndoc篇文檔,只要數(shù)一下類別c的文檔有多少個就能計算p(c)了,類別c的文檔共有Nc篇,先驗(yàn)概率的計算公式如下:

(公式七)

【先驗(yàn)概率 其實(shí)就是 準(zhǔn)備干一件事情時,目前已經(jīng)掌握了哪些信息了】關(guān)于先驗(yàn)信息理解,可參考:這篇文章。

For the document prior P(c) we ask what percentage of the documents in our training set are in each class c.

Let Nc be the number of documents in our training data with

class c and Ndoc be the total number of documents

②似然函數(shù)P(wi|c)的計算

由于是用詞袋模型表示一篇文檔d,對于文檔d中的每個單詞wi,找到訓(xùn)練數(shù)據(jù)集中所有類別為c的文檔,數(shù)一數(shù) 單詞wi在這些文檔(類別為c)中出現(xiàn)的次數(shù):count(wi,c)

然后,再數(shù)一數(shù)訓(xùn)練數(shù)據(jù)集中類別為c的文檔一共有多少個單詞

。計算 二者之間的比值,就是似然函數(shù)的值。似然函數(shù)計算公式如下:

(公式八)

其中V,就是詞庫。(有些單詞在詞庫中,但是不屬于類別C,那么 count(w,c)=0)

Here the vocabulary V consists of the union of all the word types in all classes, not just the words in one class c.

從上面計算似然函數(shù)的過程來看,其實(shí)相當(dāng)于一個發(fā)掘(統(tǒng)計)潛藏規(guī)律的過程。

六,unknow words的情形

假設(shè)只考慮文本二分類:將文檔分成 positve類別,或者negative類別,C={positive, negative}

在訓(xùn)練數(shù)據(jù)集中,類別為positive的所有文檔 都沒有 包含 單詞wi?=?fantastic(fantastic可能出現(xiàn)在類別為negative的文檔中)

那么 count(wi=fantastic,ci=positive)=0 。那么:

而注意到前面公式五中的累乘,整篇文檔的似然函數(shù)值為0,也就是說:如果文檔d中有個單詞fantastic在類別為c的訓(xùn)練數(shù)據(jù)集文檔中從未出現(xiàn)過,那文檔d被分類到類別c的概率為0,盡管文檔d中還有一些其他單詞(特征),而這些單詞所代表的特征認(rèn)為文檔d應(yīng)該被分類 到 類別c中

But since naive Bayes naively multiplies all the feature likelihoods together, zero

probabilities in the likelihood term for any class will cause the probability of the

class to be zero, no matter the other evidence!

解決方案就是add-one smoothing。(不介紹了),其實(shí)就是將“出現(xiàn)次數(shù)加1”。似然函數(shù)公式變成如下形式:

(公式九)

其中|V|是詞庫中所有單詞的個數(shù)。

七,樸素貝葉斯分類示例

假設(shè)訓(xùn)練數(shù)據(jù)集有五篇文檔,其中Negative類別的文檔有三篇,用符號 '-' 標(biāo)識;Positive類別的文檔有二篇,用符號 '+' 標(biāo)識,它們的內(nèi)容如下:

- just plain boring

- entirely predictable and lacks energy

- no surprises and very few laughs

+ very powerful

+ the most fun film of the summer

測試數(shù)據(jù)集T 有一篇文檔dt,內(nèi)容如下:

predictable with no fun

樸素貝葉斯分類器會把“predictable with no fun”歸為哪個類呢?根據(jù)第五節(jié)“訓(xùn)練樸素貝葉斯分類器”,需要計算先驗(yàn)概率和似然函數(shù)。

由于訓(xùn)練數(shù)據(jù)集中一共有5篇文檔,其中類別 '+' 的文檔有2篇,類別為 '-' 的文檔有3篇,因此先驗(yàn)概率:P(c)=P('-')=Nc/Ndoc=3/5=0.6

類別為'+' 的文檔有2篇,故P(c)=P('+')=Nc/Ndoc=2/5=0.4

對測試數(shù)據(jù)集文檔dt中的每個單詞,似然函數(shù)采用“add-one smoothing”處理,計算相應(yīng)的似然概率:

首先單詞 predictable 在訓(xùn)練數(shù)據(jù)集中 類別為'-'的文檔中只出現(xiàn)了1次,類別為'-'的文檔一共有14個單詞,訓(xùn)練數(shù)據(jù)集中兩種類型的文檔加起來一共有23個單詞,但是有三個單詞(and、

very、the)重復(fù)出現(xiàn)了兩次,故詞庫V的大小為 20。因此單詞predictable對應(yīng)的似然概率如下:

p(predictable|'-')=(1+1)/(14+20)=2/34

同理:p(predictable|'+')=(0+1)/(9+20)=1/29 ?(predictable沒有在類別為'+'的訓(xùn)練數(shù)據(jù)集中出現(xiàn)過)

類似地:p(no|'-')=(1+1)/(14+20)? ? ? ? p(no|'+')=(0+1)/(9+20)

p(fun|'-')=(0+1)/(14+20)? ? ? ? ? ? ? ? ? ?p(fun|'+')=(1+1)/(9+20)

因此,測試集中的文檔d歸類為 '-' 的概率為:0.6 * (2*2*1)/343 = 6.1*10-5

測試集中的文檔d歸類為 '+' 的概率為:0.4*(1*1*2)/293 =3.2*10-5

比較上面兩個概率的大小,就可以知道將“predictable with no fun”歸為 '-' 類別。

八,參考資料

總結(jié)

以上是生活随笔為你收集整理的朴素贝叶斯文本分类java_朴素贝叶斯文本分类简单介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。