0
本文作者: AI研習(xí)社 | 2017-07-05 15:11 |
雷鋒網(wǎng)按:本文作者夏洪進(jìn),原載于作者個(gè)人博客,雷鋒網(wǎng)經(jīng)授權(quán)發(fā)布。
這幾天的時(shí)間里看了一下關(guān)于分類(lèi)算法的一些知識(shí),趁熱打鐵寫(xiě)下博客來(lái)拯救下記憶力不好的自己,話不讀多說(shuō),馬上開(kāi)始!
先說(shuō)一下前提的題設(shè)條件.假設(shè)我們現(xiàn)在有了一封郵件,那么我們應(yīng)該怎么根據(jù)這個(gè)郵件里的一些關(guān)鍵的詞語(yǔ)來(lái)給這個(gè)郵件進(jìn)行分類(lèi)呢?
首先我們先想可以用貝葉斯公式來(lái)進(jìn)行處理:
c是一個(gè)詳細(xì)的類(lèi)別,比如”朋友的郵件”,”工作郵件”等等,而d就是一些關(guān)鍵的詞語(yǔ)(注意:關(guān)鍵詞可能會(huì)有多個(gè)),上邊等式的左邊是指:在給出當(dāng)前的關(guān)鍵詞的條件下,類(lèi)型為C的概率,更多的情況就不詳細(xì)說(shuō)了,有興趣的可以翻一下數(shù)理統(tǒng)計(jì)書(shū)。
接下來(lái)利用相關(guān)的統(tǒng)計(jì)學(xué)的知識(shí)對(duì)郵件進(jìn)行處理(水平太菜了,就一切簡(jiǎn)化著來(lái))
上面的這個(gè) NB 的公式,就是最簡(jiǎn)化的參數(shù)公式了,下面給出相關(guān)參數(shù)的計(jì)算方法:
但是上邊的第二個(gè)公式有以下缺點(diǎn):
What if we have seen no training documents with the word “fantastic” and classified in the topic positive(thumbs-up)?
為了避免這一種情況,我們特地的給加上一些數(shù)
所以上述的這個(gè)問(wèn)題就解決了。
現(xiàn)在我們舉一個(gè)例子吧,這樣可以加深理解
這個(gè)部分我也在繼續(xù)學(xué)習(xí),會(huì)將陸續(xù)更新!
以下是實(shí)踐部分:
現(xiàn)在用實(shí)際的代碼來(lái)實(shí)現(xiàn)這個(gè)分類(lèi)的問(wèn)題吧.在這里我們會(huì)使用TensorFlow來(lái)解決分類(lèi)的問(wèn)題,以前的時(shí)候我寫(xiě)過(guò)關(guān)于線性回歸的問(wèn)題.相信看過(guò)的小伙伴可能在這里就會(huì)想這個(gè)回歸的問(wèn)題.那么這個(gè)回歸和分類(lèi)有什么區(qū)別可以值得說(shuō)道說(shuō)道.分類(lèi)和回歸的區(qū)別在我看來(lái)是在于輸出變量的類(lèi)型上.通俗理解上定量輸出是回歸,或者是連續(xù)變量的預(yù)測(cè).定性的輸出是一個(gè)分類(lèi),或者說(shuō)是離散變量的預(yù)測(cè),比如說(shuō)是預(yù)測(cè)我們北京的放假會(huì)是一個(gè)回歸的任務(wù),但是把一堆水果分為蘋(píng)果,桃,梨子這些區(qū)別,這其實(shí)就是一個(gè)分類(lèi)的任務(wù).
在這個(gè)例子中我們會(huì)使用的是MINIST數(shù)據(jù)庫(kù),MINIST是一個(gè)手寫(xiě)字體的數(shù)字庫(kù),長(zhǎng)得大概是下邊這個(gè)樣子
現(xiàn)在我們導(dǎo)入MNIST數(shù)字庫(kù):
這個(gè)數(shù)據(jù)中大概是包含了55000張訓(xùn)練的圖片,每個(gè)圖片的分辨率大概是28*28,所以我們訓(xùn)練網(wǎng)絡(luò)的輸入實(shí)際上是一個(gè)784個(gè)的像素?cái)?shù)據(jù)。
每張圖片都表示一個(gè)數(shù)字,所以我們的輸出是數(shù)字0到9,共10類(lèi)。
prediction = add_layer(xs,784,10,activation_function=tf.nn.softmax)
調(diào)用add_layer函數(shù)構(gòu)建一個(gè)只有輸入輸出層的簡(jiǎn)單的訓(xùn)練神經(jīng)網(wǎng)絡(luò),其中輸入的數(shù)據(jù)是784個(gè)特征,輸出的是10個(gè)特征,激勵(lì)的是使用softmax函數(shù),大致結(jié)構(gòu)類(lèi)似這樣:
loss函數(shù)(即最優(yōu)化目標(biāo)函數(shù))選用交叉熵函數(shù)。交叉熵用來(lái)衡量預(yù)測(cè)值和真實(shí)值的相似程度,如果完全相同,它們的交叉熵等于零。
train方法這里使用的是梯度下降法:
現(xiàn)在開(kāi)始train,每次只取100張圖片,免得數(shù)據(jù)太多訓(xùn)練太慢。每訓(xùn)練50次輸出一下預(yù)測(cè)精度
在經(jīng)過(guò)10000次計(jì)算后我們得到結(jié)果:
雷鋒網(wǎng)相關(guān)閱讀:
監(jiān)督學(xué)習(xí)最常見(jiàn)的五種算法,你知道幾個(gè)?
9800萬(wàn)美元賣(mài)掉公司后,他用貝葉斯網(wǎng)絡(luò)分析數(shù)據(jù)中的因與果
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。