1. 程式人生 > >機器學習(二十)——文字分類的事件模型(Event models for text classification)

機器學習(二十)——文字分類的事件模型(Event models for text classification)

為了結束我們對生成性學習演算法的討論,讓我們再來談談一個專門用於文字分類的模型。雖然我們已經介紹了樸素貝葉斯,但它在許多分類問題例如文字分類上都會很好地工作,會有一個相關的模型做得更好。

在文字分類的具體背景下,提出的樸素貝葉斯採用所謂的多元伯努利事件模型。在這個模型中,我們假設產生電子郵件的方式是首先隨機確定(根據類優先順序p(y))無論是垃圾郵件傳送者還是非垃圾郵件傳送者都會給你傳送下一條資訊。然後,傳送電子郵件的人在字典中執行,並根據概率決定是否將每個單詞i獨立地包含在該電子郵件中。因此,訊息的概率由給出。

這裡有一個不同的模型,叫做多項事件模型。為了描述這個模型,我們將使用不同的符號和一組特性來表示電子郵件。我們讓

表示電子郵件中第i個單詞的特徵。因此,現在是一個整型,取{1,....,|V|}中的值,其中,|V|是我們詞彙表(字典)的大小。電子郵件的n個字現在表示為長度為n的向量(x1,x2,…,xn);注意,n對於不同的文件可能會有所不同。例如,如果電子郵件以“A nips.”開頭,那麼x1=1(“a”是字典中的第一個單詞),x2=35000(如果“nips”是字典中的第35000個單詞)。

在多項式事件模型中,我們假設生成電子郵件的方式是通過隨機過程,其中首先確定垃圾郵件/非垃圾郵件(根據p(y))。然後,電子郵件的發件人首先通過在單詞上的一些多項式分佈(p(x1|y)生成x1來編寫電子郵件。接下來,第二個單詞x2是獨立於x1選擇的,但不受相同的多項式分佈的影響,對於x3、x4等也是如此,直到電子郵件的所有n個單詞都生成為止。因此,訊息的總體概率由

給出。請注意,這個公式看起來像我們之前在多元bernoulli事件模型下得到訊息概率的公式。但公式中的術語現在意味著非常不同的東西。特別是,現在,是一個多項式,而不是Bernoulli分佈。

我們新模型的引數是。請注意,我們已經假定對於j的所有值都是相同的(也就是說,生成單詞的分發並不取決於其在電子郵件中的位置j)

如果我們得到一套訓練集其中,那麼資料的極大似然為


最大限度地提高這一估計值可得到引數的最大似然估計數:


如果我們要應用拉普拉斯光順當估計時,我們將1加到分子中,並在分母中加1,並得到如下結果:


雖然不一定是最好的分類演算法,但樸素貝葉斯分類器的效果往往令人驚訝。考慮到它的簡單性和實現的易用性,它也常常是一個非常好的“第一件嘗試”。

相關推薦

機器學習——文字分類事件模型Event models for text classification

為了結束我們對生成性學習演算法的討論,讓我們再來談談一個專門用於文字分類的模型。雖然我們已經介紹了樸素貝葉斯,但它在許多分類問題例如文字分類上都會很好地工作,會有一個相關的模型做得更好。在文字分類的具體背景下,提出的樸素貝葉斯採用所謂的多元伯努利事件模型。在這個模型中,我們假

機器學習》 周志華學習筆記第四章 概率圖模型課後習題python實現

一、基本內容 1.隱馬爾可夫模型 1.1. 假定所有關心的變數集合為Y,可觀測變數集合為O,其他變數集合為R, 生成式模型考慮聯合分佈P(Y,R,O),判別式模型考慮條件分佈P(Y,R|O),給定一組觀測變數值,推斷就是要由P(Y,R,O)或者P(Y,R|O)得到條件概率分佈P(Y,

Swift 學習一:?和 !詳解

新更新的內容請移步閱讀: Swift語言使用var定義變數,但和別的語言不同,Swift裡不會自動給變數賦初始值, 也就是說變數不會有預設值,所以要求使用變數之前必須要對其初始化 。如果在使用變數之前不進行初始化就會報錯: var stringValue : Stri

Tensorflow深度學習一:LeNet的實現CIFAR-10資料集

一、LeNet的簡介 LeNet是一個用來識別手寫數字的最經典的卷積神經網路,是Yann LeCun在1998年設計並提出的。Lenet的網路結構規模較小,但包含了卷積層、池化層、全連線層,他們都構成了現代CNN的基本元件。 LeNet包含輸入層在內共有

機器學習中的隱馬爾科夫模型HMM詳解

前導性推薦閱讀資料: 歡迎關注白馬負金羈的部落格 http://blog.csdn.net/baimafujinji,為保證公式、圖表得以正確顯示,強烈建議你從該地址上檢視原版博文。本部落格主要關注方向包括:數字影象處理、演算法設計與分析、資料結構、機器學

機器學習 Opencv】Opencv之Bag of Word模型

      上圖是一張新圖對映到詞典時得到的直方圖,可以看出,這張圖片相對於圖2的情況而言,更接近類別1,所以通過分類器,理想的狀態時判斷為1。但是我們都知道,理想狀態出現的可能性太小,所以BOW難免會有出錯的時候,通過閱讀幾篇論文,發現BOW的識別率大概在60%-80%之間,當然了一方面是資料量巨大的問題

斯坦福CS229機器學習筆記-Lecture6-多元伯努利事件模型+SVM支援向量機

作者:teeyohuang本文系原創,供交流學習使用,轉載請註明出處,謝謝宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來          博文中部分圖片和公式都來源於CS229官方notes。          CS229的視

機器學習——Optimizer, 單分類SVM&多分類SVM, 時間序列分析

Optimizer 在《機器學習(一)》中,我們已經指出梯度下降是解決凸優化問題的一般方法。而如何更有效率的梯度下降,就是本節中Optimizer的責任了。 Momentum Momentum是梯度下降法中一種常用的加速技術。其公式為: vt

機器學習系列——樸素貝葉斯分類

表示 -h line log ima 條件 code 樸素貝葉斯 spa 貝葉斯定理: 其中: 表示事件B已經發生的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:。 機器學習系列——樸素貝葉斯分類器(二)

機器學習筆記:TensorFlow實戰十三遷移學習

1 - 引言 越複雜的神經網路,需要的訓練集越大,ImageNet影象分類資料集有120萬標註圖片,所以才能將152層的ResNet的模型訓練到大約96.%的正確率。但是在真正的應用中,很難收集到如此多的標註資料。即使收集到也需要花費大量人力物力來標註。並且即使有了大量的資料集,要訓練一

機器學習筆記:TensorFlow實戰TensorBoard視覺化

1 - 引言 前面已經介紹到TensorFlow可以實現許多非常常用的神經網路結構,有的網路結構十分複雜,裡面的引數關係更是難以管理。因此,TensorFlow提供了一個視覺化工具TensorBoard。可以有效的展示執行過程中的計算圖、各種指標隨著時間的變化趨勢以及訓練中使用到的影象等

機器學習筆記:TensorFlow實戰影象風格遷移

1 - 引言 相信大家都使用過一種濾鏡,可以把一張照片轉換成不同風格的照片,如下圖所示: 那麼我們就來利用TensorFlow來實現以下這個演算法,這個演算法出自Gatys的A Neural Algorithm of Artistic Style論文,十分有趣,讓我們來詳細的介紹一下這

OpenCV學習筆記——小試SVM演算法ml OpenCV學習筆記——基於級聯分類器的目標檢測objdect OpenCV學習筆記——光流法對運動目標跟蹤Video Ope

OpenCV學習筆記(二十六)——小試SVM演算法ml  總感覺自己停留在碼農的初級階段,要想更上一層,就得靜下心來,好好研究一下演算法的東西。OpenCV作為一個計算機視覺的開源庫,肯定不會只停留在數字影象處理的初級階段,我也得加油,深入研究它的演算法庫。就從ml入手

深度學習基於Overfeat的圖片分類、定位、檢測

作者:hjimce一、相關理論本篇博文主要講解來自2014年ICLR的經典圖片分類、定位物體檢測overfeat演算法:《OverFeat: Integrated Recognition, Locali

機器學習基礎—— 徑向基核函式RBF

儘管最佳核函式的選擇一般與問題自身有關,但對普遍問題還是有規律可循的,建議初學者在通常情況下,優先考慮徑向基核函式(RBF): K(x,y)=exp(−γ∥x−y∥2) 主要基於以下考慮: (1

機器學習——強化學習2

折扣未來獎勵(Discounted Future Reward) 為了獲得更多的獎勵,我們往往不能只看當前獎勵,更要看將來的獎勵。 給定一個MDP週期,總的獎勵顯然為: R=r1+r2+⋯+rnR=r1+r2+⋯+rn 那麼,從當前時間t開始,總

機器學習——資料不平衡問題, 強化學習

資料不平衡問題 如何處理不均衡資料? 如何解決機器學習中資料不平衡問題 七招教你處理非平衡資料 機器學習中的資料不平衡解決方案大全 Imbalanced Classification Problems 關於處理樣本不平衡問

白話機器學習演算法Adaboost

Adaboost是一種弱分類器轉化為強分類器的演算法,其對於每個弱分類器賦予一個權重,最終將這些帶權弱分類器線性組合成一個強分類器。 問題就轉化為如何獲得權值? 基本的步驟如下 Step1:為每個樣本賦予一個權值 Step2:利用訓練資料第一個弱分類器 Step3:得到第一

NLP利用ALBERT實現文字分類

  在文章[NLP(二十)利用BERT實現文字二分類](https://www.cnblogs.com/jclian91/p/12301056.html)中,筆者介紹瞭如何使用BERT來實現文字二分類功能,以判別是否屬於出訪類事件為例子。但是呢,利用BERT在做模型預測的時候存在預測時間較長的問題。因此,我們

Swift學習筆記——字典的基本操作

post content 相同 技術分享 eval clas track targe 返回值 (1)計算字典長度 。 (2)推斷字典是否為空 。 (3)查詢字典元素 。 (4)取出字典元素進行拼接 。 (5)字典中插入一個鍵值對 。 (6)字典改動某