《機器學習技術》課件 第二章 樸素貝葉斯算法_第1頁
《機器學習技術》課件 第二章 樸素貝葉斯算法_第2頁
《機器學習技術》課件 第二章 樸素貝葉斯算法_第3頁
《機器學習技術》課件 第二章 樸素貝葉斯算法_第4頁
《機器學習技術》課件 第二章 樸素貝葉斯算法_第5頁
已閱讀5頁,還剩59頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

單元2樸素貝葉斯算法機器學習電氣與信息工程系CONTENTS

目錄010203任務2.1任務2.2任務2.3任務2.1垃圾短信數(shù)據(jù)集導入與數(shù)據(jù)預處理2.1引例描述對于分類問題,其實誰都不會陌生。在日常生活中,我們每天都進行著分類。例如,當你看到一個人,你的腦子下意識判斷他是年輕人、中年人還是老年人;在車輛經(jīng)過時,你可能會對身旁的朋友說“這輛車一看就很貴”之類的話。而貝葉斯用概率量化了分類這個過程。簡單來說,就是根據(jù)已知的事情,用概率推斷未知的事情發(fā)生的可能性。舉個例子,班里來了一位新同學小明,我們不知道他的過去。如果讓我們猜測他的成績,因為我們不知道他既往的考試成績,所以猜測是他可能是班里的中游水平。后來,我們發(fā)現(xiàn)小明的第一次考試成績并不理想,會猜測小明的成績不算太好,但這也不能說明小明就是一個不愛學習的學生,有可能小明只是對新環(huán)境還不熟悉。只有隨著小明參加的考試越來越多,我們的猜測根據(jù)他的成績才會越來越趨近于他的真實水平的猜測結果。2.1任務情景

在過去的十年中,手機的使用量猛增,但這也使得垃圾短信越來越多。人們在日常生活中可能會無意泄露了他們的手機號碼,然后垃圾短信就會鋪天蓋地地發(fā)過來。本節(jié)任務的目標是導入一個包含垃圾短信數(shù)據(jù)的csv逗號分隔值文件,并進行數(shù)據(jù)預處理工作。本任務所用的垃圾信息數(shù)據(jù)集來自Kaggle的垃圾郵件分類(SpamTextMessageClassification)比賽,讀者如有興趣,可在Kaggle官方網(wǎng)站上搜索。該數(shù)據(jù)集包含5157條短信,其中,87%為正常短信,13%為垃圾短信。2.1任務布置

使用sklearn庫與pandas庫實現(xiàn)數(shù)據(jù)集導入和數(shù)據(jù)預處理,導入的垃圾短信數(shù)據(jù)集如下圖所示。2.1知識準備—1.導入必要的庫與數(shù)據(jù)集首先是導入必要的用于分類器的第三方科學計算庫,如pandas庫、sklearn庫等。在sklearn庫中,我們需要導入train_test_split、Pipeline、TfidfVectorizer、MultinomialNB、accuracy_score、confusion_matrix、classification_report等函數(shù)。1.導入train_test_split函數(shù)fromsklearn.model_selectionimporttrain_test_splittrain_test_split函數(shù)可以將一個數(shù)據(jù)集拆分為兩個子集——用于訓練數(shù)據(jù)的訓練集和用于測試數(shù)據(jù)的測試集,這樣就無須再手動劃分數(shù)據(jù)集。在默認情況下,train_test_split函數(shù)將數(shù)據(jù)集隨機拆分為兩個子集。2.

導入pipeline函數(shù)fromsklearn.pipelineimportPipelinepipeline函數(shù)可以將許多算法模型串聯(lián)起來,例如將特征提取、歸一化、分類組織在一起,形成一個典型的機器學習問題工作流。這樣做主要帶來兩點好處:①直接調用fit()函數(shù)和predict()函數(shù)的方法對pipeline函數(shù)中的所有算法模型進行訓練和預測。②可以結合gridsearch對參數(shù)進行選擇。2.1知識準備—1.導入必要的庫與數(shù)據(jù)集3.導入TfidfVectorizer函數(shù)TfidfVectorizer函數(shù)是sklearn庫中用于實現(xiàn)TF-IDF算法的函數(shù),此函數(shù)可以將原始文本轉換為TF-IDF的特征矩陣,也就是實現(xiàn)文本的向量化,從而為后續(xù)的文本相似度計算、文本搜索排序等一系列應用奠定基礎。fromsklearn.feature_extraction.textimportTfidfVectorizer4.導入MultinomialNB函數(shù)fromsklearn.naive_bayesimportMultinomialNBMultinomialNB(MultinomialNa?veBayes)是多項式樸素貝葉斯,它基于原始的貝葉斯理論,但它的概率分布被假設為服從一個簡單多項式分布。2.1知識準備—1.導入必要的庫與數(shù)據(jù)集5.導入各指標評估函數(shù)fromsklearn.metricsimportaccuracy_score,confusion_matrix,classification_reportaccuracy_score、confusion_matrix、classification_report等函數(shù)是sklearn.metrics模塊中的函數(shù)。在實現(xiàn)各種機器學習算法時,無論是回歸、分類,還是聚類,都需要一個指標來評估機器學習模型的效果,sklearn.metrics就是一個匯總了各種評估指標的模塊。2.1知識準備—1.導入必要的庫與數(shù)據(jù)集TF-IDF的英文全稱是TermFrequency-InverseDocumentFrequency,是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權技術。TF是詞頻(TermFrequency),IDF是逆向文檔頻率(InverseDocumentFrequency)。TF-IDF技術一般用于評估一個字詞對于一個文件集或一個語料庫中的其中一份文件的重要程度。字詞的重要性隨著它在文件中出現(xiàn)的次數(shù)成正比增加,同時會隨著它在語料庫中出現(xiàn)的頻率成反比下降。TF-IDF算法認為,如果某個單詞或者短語在一篇文章中出現(xiàn)的頻率很高,并且在其他文章中很少出現(xiàn),則認為該單詞或者短語具有很好的類別區(qū)分能力,適合用來分類。2.1知識準備—2.TF-IDF詞頻(TF)指的是詞條(關鍵字)在文本中出現(xiàn)的頻率。短文與長文中的詞頻不一樣。因此,為了便于對不同的文章進行比較,詞頻通常會被歸一化。其計算公式為1)詞頻(TF)需要注意的是,幾乎每篇文章里“的”“是”等詞出現(xiàn)的頻率都特別高,但這并不意味著這些詞特別重要。這些詞被稱為停用詞(StopWords),這些詞對找到結果毫無幫助,需要將其過濾掉。2.1知識準備—2.TF-IDF2)逆向文檔頻率(IDF)

某一特定詞語的逆向文檔頻率(IDF)是一個詞在所有文本中出現(xiàn)的頻率。如果一個詞在很多文本中出現(xiàn),那么它的IDF值應該低,比如“的”。而反過來,如果一個詞在比較少的文本中出現(xiàn),那么它的IDF值應該高,比如一些專業(yè)名詞——“機器學習”。一種極端的情況——一個詞在所有的文本中都出現(xiàn),它的IDF值應該為0。因此,IDF可以有效幫助過濾停用詞。IDF可以由總文件數(shù)目除以包含該詞語的文件的數(shù)目,再將得到的商取以10為底的對數(shù)得到。我們不可能搜集到世界上所有的文本,因此我們需要建立一個包含大量文本的語料庫,模擬語言的使用環(huán)境。但是,可能有一些生僻字在語料庫的所有文件里都沒有。為了避免分母出現(xiàn)0的情況,我們一般在分母上加1。2.1知識準備—2.TF-IDF3)TF-IDFTF和IDF都不能正確地反映出一個詞的重要性,但它們合在一起就可以了,TF與IDF的積就是TF-IDF。

需要注意的是,盡管TF-IDF算法非常容易理解,并且很容易實現(xiàn),但是其簡單結構并沒有考慮詞語的語義信息,因此無法處理一詞多義與一義多詞的情況。2.1知識準備—2.TF-IDF2.1知識準備—2.TF-IDF那么如何減小泛化誤差,從而得到泛化能力更強的模型呢?我們希望模型在真實數(shù)據(jù)上預測的結果誤差越小越好。模型在真實環(huán)境中的誤差叫作泛化誤差,因此我們最終希望訓練好的模型泛化誤差越低越好。(1)使用泛化誤差本身缺點:泛化誤差可能很大,這時肯定需要將部署的模型撤回并重新訓練,然后可能需要部署和訓練之間往復很多次,這種方式雖然能夠更好地指導我們的模型,但是成本很高,效率也很低。(2)將模型在數(shù)據(jù)集上訓練的擬合程度作為評估模型的信號。缺點:往往獲取到的數(shù)據(jù)集并非完全干凈,也不具代表性,通常獲取到的數(shù)據(jù)集可能很少,數(shù)據(jù)的代表性不夠,訓練時擬合的好并不代表模型的泛化誤差小,你甚至可以將模型在數(shù)據(jù)集上的誤差減小到0,但是,因為對模型進行訓練時的數(shù)據(jù)集往往不干凈,所以這樣的模型的泛化能力并不強。2.1知識準備—3.訓練集與測試集不能直接將泛化誤差作為了解模型泛化能力的信號,因為在部署環(huán)境和訓練模型之間往復的代價很高;也不能將模型對訓練集的擬合程度作為了解模型泛化能力的信號,因為獲得的數(shù)據(jù)往往包含噪聲和被污染的數(shù)據(jù)。更好的方法就是將數(shù)據(jù)集分割成兩部分:訓練集和測試集。訓練集的數(shù)據(jù)用來訓練模型,將測試集上的誤差作為最終模型應對現(xiàn)實場景中的泛化誤差。有了測試集,想要驗證模型的最終效果,只需將訓練好的模型在測試集上計算誤差,即可認為此誤差為泛化誤差的近似,這樣只需使訓練好的模型在測試集上的誤差最小即可。在sklearn庫中,可以用split_train_test函數(shù)簡單地將數(shù)據(jù)集劃分為訓練集與測試集。2.1知識準備—3.訓練集與測試集2.1任務實施Step1:導入相關的庫,這里主要導入的是pandas庫和sklearn庫中的函數(shù)。Step2:使用pandas庫中的read_csv()函數(shù),從垃圾短信數(shù)據(jù)集中讀取數(shù)據(jù)。Step3:將數(shù)據(jù)集分成訓練集與測試集。Step4:將數(shù)據(jù)集中測試集里的文本和標簽進行輸出任務2.2訓練貝葉斯分類器2.2任務情景

在生活中,我們常常會遇到分類問題,如垃圾郵件過濾、情感分析、新聞分類等。貝葉斯分類器就是一種基于貝葉斯定理進行分類的分類器,用于將對象分到多個類別中的一個。在本任務中,我們將學習使用貝葉斯分類器來解決分類問題,并學習貝葉斯分類器背后的原理——貝葉斯定理。2.2知識準備-1.貝葉斯定理

貝葉斯定理源于貝葉斯生前為解決一個“逆向概率”的問題而寫的一篇文章,在貝葉斯寫這篇文章之前,人們已經(jīng)能夠計算正向概率,如“假設袋子里面有N個白球,M個黑球,你伸手進去摸一把,摸出黑球的概率是多大”。已知信息未知信息反過來,一個自然而然的問題如下:“如果我們事先并不知道袋子里面黑、白球的比例,而是閉著眼睛摸出一個(或好幾個)球,觀察這些取出來的球的顏色,那么我們可以就此對袋子里面的黑、白球的比例做出怎樣的推測”。這個問題,就是所謂的逆向概率問題。未知信息已知信息它和我們一般學過的概率不一樣?!案怕省贝蠹叶己苁煜ぃ怕适且患掳l(fā)生的頻率,或者將其叫作客觀概率。貝葉斯框架下的概率理論卻從另一個角度給我們展開了答案,貝葉斯認為,概率是我們個人的一個主觀概念,表明我們對某個事物發(fā)生的相信程度。換句話說,概率論解決的是來自外部的信息與我們大腦內信念的交互關系問題。2.2知識準備-1.貝葉斯定理

在普通的概率學中,有一個最常出現(xiàn)的場景——擲骰子。如果問第一次擲出的點數(shù)為3的概率為多大?那么答案顯然是1/6。但是,如果加一個前提,即已知第一次擲出的點數(shù)是3,那么第二次擲出的點數(shù)是3的概率是多少?學過概率學的同學會認為答案依然是1/6,但這種假設是建立在完全理想化的世界中的。如果這個骰子有些缺損,使得它擲出的點數(shù)是3的概率大一些,那么顯然第二次擲出的點數(shù)是3的概率并不是1/6。

在生活中,這類場景更多,我們一般不會直接推斷一個事件發(fā)生的可能性,因為這樣做的實際意義并不明顯,而且也不容易推斷出結果,例如問你今天下雨的概率是多大?你可能是一頭霧水,什么地點?什么月份?當日云層的厚度怎樣?這些條件都沒有告知,我想是無法給出一個有意義、有價值的合理推斷的。

而且在實際情況下,一個事件一般而言不會是孤立地發(fā)生,都會伴隨著其他的一些事情或表現(xiàn)一同出現(xiàn),單獨地談一個事件的概率,一般而言也是不存在的。2.2知識準備-1.貝葉斯定理

假設我們知道給定事件B已經(jīng)發(fā)生,在此基礎上,希望知道另一個事件A發(fā)生的可能性,此時我們就需要構建出條件概率。

我們需要先顧及事件B已經(jīng)發(fā)生的信息,然后求出事件A發(fā)生的概率。條件概率就是在事件B發(fā)生的條件下,事件A發(fā)生的概率,記為如擲骰子,可以將事件A看作第一次擲出的點數(shù)為3,而事件B就是第二次擲出的點數(shù)3,它們的概率分別是P(A)和P(B)。P(A)也被稱作先驗概率,指的是我們根據(jù)經(jīng)驗估算出的一個概率;而P(B|A)也被稱作后驗概率,指的是事件A發(fā)生的條件下,事件B發(fā)生的概率。條件概率2.2知識準備-1.貝葉斯定理貝葉斯定理貝葉斯定理是從以上三個概率推導得來的,是關于隨機事件A和B的條件概率。它的計算公式為(1)P(A)是事件A的先驗概率或邊緣概率,稱“先驗”是因為它不考慮事件B的因素。(2)P(A|B)是已知事件B發(fā)生后事件A的條件概率,也稱作事件A的后驗概率。(3)P(B|A)是已知事件A發(fā)生后事件B的條件概率,也稱作事件B的后驗概率,這里稱作似然度。(4)P(B)是事件B的先驗概率或邊緣概率,這里稱作標準化常量。2.2知識準備-1.貝葉斯定理(5)P(B|A)/P(B)稱作標準似然度,它是一個調整因子,可以將其理解為新信息事件B發(fā)生后,對先驗概率的一個調整。如果標準似然度等于1,那么事件B并不能幫助判斷事件A發(fā)生的可能性;如果標準似然度大于1,事件A發(fā)生的可能性就變大;如果標準似然度小于1,事件A發(fā)生的可能性就變小。因此,貝葉斯定理又可以這樣表示:后驗概率=(似然度×先驗概率)/標準化常量=標準似然度×先驗概率。2.2知識準備-1.貝葉斯定理已知某種疾病在人群中的患病率為1/10000,現(xiàn)在發(fā)明了一種新的用于診斷該疾病的檢測方法。用這種方法先檢測了1000名患者,結果顯示其中陽性者為999例,陰性者為1例;又檢測了1000名正常人,結果顯示其中的陰性者為995例,陽性者為5例。請問:對于一個人,其檢測結果為陽性,這個人患病的概率是多少?如果從數(shù)據(jù)來看,這個人的患病概率應該是999/(999+5)≈99.5%。但是,如果考慮到這個疾病在人群中的患病率,結果就不大一樣了。我們設甲陽性/陰性為事件A,甲是否患病為事件B,那么根據(jù)貝葉斯公式可以算出與二者相關的概率,如表2-2所示。2.2知識準備-1.貝葉斯定理

從表中可以看出,患病的概率為2%,未患病的概率為98%,檢測前,患病的概率是0.01%;檢測出陽性后,患病的概率增加為2%,提高至檢測前的200倍。因此,當務之急是復查一次。復查后,如果結果再次是陽性,通過計算得出甲的患病概率為80%。第三次檢查如果仍為陽性,那么患病概率即為99.9%。這也是許多疾病的檢測都需要多次復查的原因。2.2知識準備-1.貝葉斯定理

貝葉斯定理是整個機器學習的基礎框架,這是因為現(xiàn)實生活中的問題大部分都是“逆概率”問題。由于生活中絕大多數(shù)決策面臨的信息都是不全的,因此我們手中只有有限的信息。既然無法得到全面的信息,我們就只能在信息有限的情況下,盡可能做出一個好的預測。例如天氣預報說,明天降雨的概率是30%,這是什么意思呢?我們無法像計算頻率、概率那樣,重復地把明天過上100次,然后計算出大約有30次會下雨(下雨的天數(shù)/總天數(shù)),而是只能利用有限的信息(過去天氣的測量數(shù)據(jù)),用貝葉斯定理來預測明天下雨的概率是多少。

這種使用貝葉斯定理往往都是潛意識的。例如,你和對方一個人的時候,如果對方說出“雖然”兩個字,你大概會猜測,對方后面有九成的可能性會說出“但是”。我們的大腦看起來就好像天生會用貝葉斯定理。特別是對小孩來說,告訴他一個新單詞,他一開始并不知道這個詞是什么意思,但是他可以根據(jù)當時的情景,先猜測一下(先驗概率/主觀判斷)。一有機會,他就會在不同的場合說出這個詞,然后觀察父母的反應。如果父母告訴他用對了,他就會進一步記住這個詞的意思;如果父母告訴他用錯了,他就會進行相應的調整(可能性函數(shù)/調整因子)。這樣反復地猜測、試探、調整主觀判斷就是貝葉斯定理思維的過程。2.2知識準備-1.貝葉斯定理2.2知識準備-1.貝葉斯定理

科學家用貝葉斯定理分析新數(shù)據(jù)能在多大程度上驗證或否定已有的模型,程序員用貝葉斯定理構建人工智能。而在實際生活中,貝葉斯定理告訴我們:紛繁復雜的事實不應直接決定我們的看法,而應不斷更新我們的看法。貝葉斯定理使我們在實際生活中的判斷更加量化、系統(tǒng)化,甚至可以以某種方式重新塑造我們對思想本身的看法,修正我們的直覺,也使我們在面對生活中的不確定時避免隨波逐流,時刻讓數(shù)學理性的光芒照進現(xiàn)實。

在現(xiàn)實世界中,我們每個人都需要預測。想要深入分析未來,思考是否買股票,判斷政策給自己帶來哪些機遇,提出新產(chǎn)品構想,或者只是計劃一周的飯菜。貝葉斯定理就是為了解決這些問題而誕生的,它可以根據(jù)過去的數(shù)據(jù)來預測未來事情發(fā)生的概率。貝葉斯定理的思考方式為我們提供了有效的幫助我們做決策的方法,方便我們更好地預測未來的商業(yè)、金融及日常生活。樸素貝葉斯分類是常用的貝葉斯分類方法。我們日常生活中看到一個陌生人,要做的第一件事情就是判斷其性別,判斷性別的過程就是一個分類的過程。根據(jù)以往的經(jīng)驗,我們通常會從身高、體重、鞋碼、頭發(fā)長短、服飾、聲音等角度進行判斷。這里的“經(jīng)驗”就是一個訓練好的關于性別判斷的模型,其訓練數(shù)據(jù)是日常遇到的各式各樣的人,以及這些人實際的性別數(shù)據(jù)。以表中數(shù)據(jù)為例,這些數(shù)據(jù)是根據(jù)我們之前的經(jīng)驗所獲得的。然后給出一組新的數(shù)據(jù):身高“高”、體重“中”,鞋碼“中”。請問這個人是男還是女?2.2知識準備-2.樸素貝葉斯分類器針對這個問題,我們先確定一共有3個屬性,假設我們用A代表屬性,用A1、A2、A3分別表示身高=高、體重=中、鞋碼=中。一共有2個類別,假設我們用C代表類別,用C1、C2分別是表示男、女,在未知的情況下,我們將其用Cj表示。那么我們想求在A1、A2、A3屬性下Cj的概率,用條件概率表示就是P(Cj|A1A2A3)。根據(jù)貝葉斯公式,我們可以得出2.2知識準備-2.樸素貝葉斯定理因為一共有2個類別,所以我們只需求得P(C1|A1A2A3)和P(C2|A1A2A3)的概率即可,然后比較下哪個分類的可能性大,就是哪個分類結果。因為P(A1A2A3)都是固定的,我們想要尋找使得P(Cj|A1A2A3)的最大值,就等價于求P(A1A2A3|Cj)P(Cj)最大值。我們假定Ai之間是相互獨立的,那么P(A1A2A3|Cj)=P(A1|Cj)P(A2|Cj)P(A3|Cj)2.2知識準備-2.樸素貝葉斯定理然后,我們需要計算出P(Ai|Cj)的值,將其代入式(2-5),得出P(A1A2A3|Cj)的值。最后,找到使得P(A1A2A3|Cj)的值最大的類別Cj。(2-5)分別求得這些條件下的概率:P(A1|C1)=1/2,P(A2|C1)=1/2,P(A3|C1)=1/4,P(A1|C2)=0,P(A2|C2)=1/2,P(A3|C2)=1/2,所以P(A1A2A3|C1)=1/16,P(A1A2A3|C2)=0。因為P(A1A2A3|C1)P(C1)>P(A1A2A3|C2)P(C2),所以這個人應該屬于C1類別,即為男性。以上就是樸素貝葉斯分類器的工作原理。我們默認身高、體重、鞋碼是互相獨立的,但在實際生活中,往往身高越高,體重會越重,鞋碼也會越大。而“樸素”就是指貝葉斯分類器并不考慮這些因素,在應用貝葉斯分類器時,我們默認這些條件都是相互獨立的。2.2知識準備-2.樸素貝葉斯定理2.2知識準備-2.貝葉斯公式練習盒子中原來有一個球,不是白色的就是黑色的,現(xiàn)在再放入一個白球,然后隨機拿出一個球,結果拿出的是白色的。試求剩下的球是白球或黑球的概率分別是多少?解:設拿出白球為事件A,盒子里原來的球是黑球為事件B。剩下的球為黑球的概率其實就是P(B|A)=P(A|B)

·

P(B)/P(A)而P(A)=P(A|B)

·

P(B)+其中,P(B)==1/2,因為原來的球不是黑色的就是白色的,概率相等P(A|B)指的是盒子里原來的球是黑球的情況下,拿出白球的概率為1/2。而指的是盒子里原來的球是白球的情況下,拿出的球是白球的概率,顯然是1。所以P(B|A)=0.5×0.5/(0.5×0.5+1×0.5)=1/3且=1-

P(B|A)=2/32.2知識準備-3.樸素貝葉斯分類

樸素貝葉斯分類常用于文本分類,尤其是對英文等語言來說,分類效果很好。它常用于垃圾文本過濾、情感預測、推薦系統(tǒng)等方面。樸素貝葉斯分類器的使用分為三個階段。第一階段:準備階段。在這個階段,我們需要先確定特征屬性,如表中的“身高”、“體重”和“鞋碼”等,并對每個特征屬性進行適當劃分,然后由人工對一部分數(shù)據(jù)進行分類,形成訓練樣本。這一階段是整個樸素貝葉斯分類中唯一需要人工完成的階段,其質量對整個過程將有重要影響。分類器的質量在很大程度上由特征屬性、特征屬性劃分及訓練樣本質量決定。第二階段:訓練階段。這個階段就是生成分類器,主要工作是計算每個類別在訓練樣本中的出現(xiàn)頻率及每個特征屬性劃分對每個類別的條件概率。輸入是特征屬性和訓練樣本,輸出是分類器。第三階段:應用階段。這個階段是使用分類器對新數(shù)據(jù)進行分類。輸入是分類器和新數(shù)據(jù),輸出是新數(shù)據(jù)的分類結果。在sklearn庫中,有3種樸素貝葉斯分類算法,分別是高斯樸素貝葉斯(GaussianNB)、多項式樸素貝葉斯(MultinomialNB)和伯努利樸素貝葉斯(BernoulliNB)。這3種算法適合應用在不同的場景下,我們應該根據(jù)特征變量的不同選擇不同的算法,也就是選擇不同的分類器。(1)高斯樸素貝葉斯分類器:特征變量是連續(xù)變量,符合正態(tài)分布(高斯分布),如人的身高、物體的長度。(2)多項式樸素貝葉斯分類器:特征變量是離散變量,符合多項分布,在文檔分類中,特征變量體現(xiàn)在一個單詞出現(xiàn)的次數(shù)或者是單詞的TF-IDF值等。(3)伯努利樸素貝葉斯分類器:特征變量是布爾變量,符合0-1分布,在文檔分類中,特征是單詞是否出現(xiàn)。2.2知識準備-4.3種樸素貝葉斯分類算法2.2知識準備-4.3種樸素貝葉斯分類算法正態(tài)分布(NormalDistribution)又名高斯分布(GaussianDistribution),是一個在數(shù)學、物理及工程等領域都非常重要的概率分布,在統(tǒng)計學的許多方面有著重大的影響力。

若隨機變量X服從一個數(shù)學期望為m、方差為s2的正態(tài)分布,記為X~N(m,s2),則其概率密度函數(shù)為正態(tài)分布的數(shù)學期望值m決定了其位置,標準差s

決定了分布的幅度。因為正態(tài)分布的曲線呈鐘形,所以人們又經(jīng)常稱正態(tài)分布的曲線為鐘形曲線。我們通常所說的標準正態(tài)分布是m=0、s=1的正態(tài)分布。2.2知識準備-4.3種樸素貝葉斯分類算法正態(tài)分布是自然科學與行為科學中的定量現(xiàn)象的一個方便模型。各種各樣的心理學測試分數(shù)和物理現(xiàn)象(如光子計數(shù))都被發(fā)現(xiàn)近似地服從正態(tài)分布。盡管產(chǎn)生這些現(xiàn)象的根本原因經(jīng)常是未知的,理論上可以證明:如果把許多小作用加起來看作一個變量,那么這個變量服從正態(tài)分布(在R.N.Bracewell的Fouriertransformanditsapplication中,可以找到一種簡單的證明)。正態(tài)分布出現(xiàn)在許多區(qū)域統(tǒng)計中,如采樣分布均值是近似正態(tài)的,即使被抽樣的樣本總體并不服從正態(tài)分布。另外,常態(tài)分布信息熵在所有的已知均值及方差的分布中最大,這使得它成為一種均值及方差已知的分布的自然選擇。正態(tài)分布是在統(tǒng)計及許多統(tǒng)計測試中應用最廣泛的一類分布。在概率論中,正態(tài)分布是幾種連續(xù)分布及離散分布的極限分布。2.2知識準備-4.3種樸素貝葉斯分類算法

正態(tài)分布最早是由亞伯拉罕·棣莫弗在其1733年發(fā)表的一篇關于二項分布的文章中提出的。拉普拉斯在1812年發(fā)表的《概率的分析理論》(Theorieanalytiquedesprobabilites)中對棣莫佛的結論進和了擴展。現(xiàn)在這一結論通常被稱為棣莫佛-拉普拉斯定理。拉普拉斯在誤差分析實驗中使用了正態(tài)分布?!罢龖B(tài)分布”這個名字還被CharlesS.Peirce、FrancisGalton、WilhelmLexis在1875年分別獨立地使用過。這個術語反映和鼓勵了一種謬誤,即很多概率分布都是正態(tài)的。這個分布被稱為“正態(tài)”或者“高斯”正好是施蒂格勒定律的一個例子,這個定律指出“沒有一項科學發(fā)現(xiàn)是以其最初發(fā)現(xiàn)者的名稱命名的”2.2知識準備-4.3種樸素貝葉斯分類算法多項式樸素貝葉斯分類器

伯努利分布假設一個事件只有發(fā)生或者不發(fā)生兩種可能,并且這兩種可能是固定不變的。如果假設一個事件發(fā)生的概率是p,那么它不發(fā)生的概率就是1-p,這就是伯努利分布。而二項分布是多次伯努利分布實驗的概率分布。以拋硬幣舉例,在拋硬幣事件當中,每次拋硬幣的結果是獨立的,并且每次拋硬幣正面朝上的概率是恒定的,所以單次拋硬幣符合伯努利分布。我們假設硬幣正面朝上的概率是p,忽略中間朝上的情況,那么反面朝上的概率是q=(1-p)。特征變量是離散變量,符合多項分布,在文檔分類中,特征變量體現(xiàn)在一個單詞出現(xiàn)的次數(shù)或者是單詞的TF-IDF值等。我們重復拋n次硬幣,其中有k項正面朝上的事件,也就是二項分布公式,其中,2.2知識準備-4.3種樸素貝葉斯分類算法而多項分布是在二項分布的基礎上進一步的拓展。多項分布中隨機試驗的結果不是兩種狀態(tài),而是k種互斥的離散狀態(tài),每種狀態(tài)出現(xiàn)的概率為pi,p1

+p1

+…+pk

=1,在這個前提下共進行了N次試驗,用x1~xk表示每種狀態(tài)出現(xiàn)的次數(shù),x1

+x2

+…+xk

=N,稱X=(x1,x2,…,xk)服從多項分布,記作X~PN(N:p1,p2,…,pn)。把二項擴展為多項就得到了多項分布。例如扔骰子,不同于扔硬幣,骰子的6個面對應6個不同的點數(shù),這樣單次每個點數(shù)朝上的概率都是1/6(對應p1~p6,它們的值不一定都是1/6,只要和為1且互斥即可。2.2知識準備-4.3種樸素貝葉斯分類算法伯努利樸素貝葉斯分類器

伯努利樸素貝葉斯分類器以文件為粒度,如果該單詞在某文件中出現(xiàn)了即為1,否則為0。而多項式樸素貝葉斯分類器以單詞為粒度,會計算某單詞在某個文件中出現(xiàn)的具體次數(shù)。而高斯樸素貝葉斯分類器適合處理特征變量是連續(xù)變量,且符合正態(tài)分布(高斯分布)的情況。例如身高、體重這種自然界的現(xiàn)象就比較適合用高斯樸素貝葉斯分類器來處理。而文本分類使用多項式樸素貝葉斯分類器。特征變量是布爾變量,符合0-1分布,在文檔分類中,特征是單詞是否出現(xiàn)。2.2任務實施Step1:創(chuàng)建一個多項式樸素貝葉斯分類器。Step2:根據(jù)訓練數(shù)據(jù)訓練模型。本任務為垃圾短信過濾,也就是判斷一個文本是否為垃圾文本,因此我們要用的是多項式樸素貝葉斯分類器。任務2.3模型評估3.1基于混淆矩陣的模型評估方法對于二分類問題,可將樣例根據(jù)其真實類別和分類器預測類別劃分如下:(1)真正例(TruePositive,TP):真實類別為正例,預測類別為正例。(2)假正例(FalsePositive,F(xiàn)P):真實類別為負例,預測類別為正例。(3)假負例(FalseNegative,F(xiàn)N):真實類別為正例,預測類別為負例。(4)真負例(TrueNegative,TN):真實類別為負例,預測類別為負例。3.1基于混淆矩陣的模型評估方法精確率,又稱查準率(Precesion,P),其計算公式為精確率是針對我們的預測結果而言的,它表示的是預測為正的樣本中有多少是真實的正樣本。那么預測為正就有兩種可能了,一種是把正類預測為正類(TP),另一種是把負類預測為正類(FP)。在信息檢索領域,精確率被稱為查準率,查準率=檢索出的相關信息量/檢索出的信息總量。召回率又稱查全率(Recall,R),其計算公式為召回率是針對我們原來的樣本而言的,它表示的是樣本中的正例有多少被預測正確了。那也有兩種可能,一種是把原來的正類預測成正類(TP),另一種是把原來的正類預測為負類(FN)。在信息檢索領域,召回率被稱為查全率,查全率=檢索出的相關信息量/系統(tǒng)中的相關信息總量。3.1基于混淆矩陣的模型評估方法F1值:F1值即為精確率和召回率的調和平均值。因為盡管我們希望精確率與召回率都越高越好,但事實上,這兩者在某些情況下是有矛盾的。例如在極端情況下,我們只搜索出了一個結果,且是香蕉,那么精確率就是100%,但是召回率為1/6,相對來說,召回率就很低;而我們抽取10個水果,召回率是100%,但是精確率為6/10,相對來說,精確率就會比較低。因此,精確率和召回率指標有時會出現(xiàn)矛盾的情況,這樣就需要綜合考慮它們。最常見的方法就是F-Measure,通過計算F1值來評價一個指標。利用sklearn庫中的classification_report函數(shù),可以直接輸出各個類的精確率、召回率和F1—Score。3.1基于混淆矩陣的模型評估方法準確率用于計算所有被分類器預測過的樣本中,有多大比例是被正確預測的。分類中使用模型對測試集進行分類,即分類正確的樣本數(shù)占總樣本數(shù)的比例,也就是式中,為被正確分類的樣本數(shù);為總樣本數(shù)。關于準確率有兩個問題:一是不同類別的樣本無區(qū)分,對于各個類需平等對待,而在實際中,會針對不同類有所區(qū)分,例如醫(yī)療上側重正例的召回(假陰性:不要漏診疾?。?,垃圾郵件側重垃圾郵件的精度(假陽性:正常郵件不被誤分);二是數(shù)據(jù)不平衡,對于數(shù)據(jù)分布不平衡的情況,個別類別的樣本過多,其他類別的樣本少,大類別主導了準確率的計算。(采用平均準確率能夠解決此問題)3.1基于混淆矩陣的模型評估方法采用平均準確率是針對不平衡數(shù)據(jù)的解決辦法。對于n個類別,計算每個類別i的準確率,然后求平均值。但缺點是某些類別的樣本數(shù)很少,測試集中該類別的準確率方差會很大(統(tǒng)計變量偏離程度:高)。3.1基于混淆矩陣的模型評估方法除上述幾個評估方法外,還有ROC與AUC方法。基于混淆矩陣,我們知道以下幾個名詞:(1)真正例率(TPR)。TPR分類器分類正確的正樣本數(shù)占總正樣本數(shù)的比例,意味著正例里有多少被合理召回了,即為召回率。(2)假正例率(FPR)。FPR為分類器分類錯誤的負樣本數(shù)占總負樣本數(shù)的比例,意味著負例里有多少被失誤召回了。(3)真負例率(TNR)。TNR計算的是分類器正確識別出的負實例占所有負實例的比例。(4)假負例率(FNR)。FNR是指判定為負例也是真負例(TN)的概率,即真負例(TN)中判定為負例的概率。3.1基于混淆矩陣的模型評估方法ROC曲線(ReceiverOperatingCharacteristicCurve,接受者操作特征曲線)是以橫坐標為FPR,縱坐標為TPR,畫出的一條曲線。ROC曲線越靠攏(0,1)點,越偏離45°對角線越好。ROC曲線描述的是分類器的TPR與FPR之間的變化關系。人們將其用于評估模型的預測能力,ROC曲線是在混淆矩陣的基礎上得出的。一個二分類模型的閾值可能設定為高或低,每種閾值的設定會得出不同的FPR和TPR,將同一模型每個閾值的坐標(FPR,TPR)都畫在ROC空間里,就成為特定模型的ROC曲線。這種方法簡單、直觀,通過圖示可觀察、分析學習器的準確性,并可用肉眼做出判斷。ROC曲線3.1基于混淆矩陣的模型評估方法ROC曲線的主要作用如下:(1)ROC曲線能很容易地查出任意閾值對學習器的泛化能力的影響。(2)ROC曲線有助于選擇最佳的閾值。ROC曲線越靠近左上角,模型的準確性就越高。最靠近左上角的ROC曲線上的點是分類錯誤最少的最好閾值,其FP和FN的總數(shù)最少。(3)ROC曲線可以對不同的學習器進行性能比較。將各個學習器的ROC曲線繪制到同一坐標系中,可以直觀地鑒別各學習器的優(yōu)劣,靠近左上角的ROC曲線代表的學習器準確性最高。ROC曲線3.1基于混淆矩陣的模型評估方法AUC被定義為ROC曲線下與坐標軸圍成的面積,顯然,這個面積的數(shù)值不會大于1。又由于ROC曲線一般都處于y=x這條直線的上方,所以AUC的取值范圍在0.5和1之間。AUC越接近1.0,檢測方法的真實性越高;當AUC等于0.5時,檢測方法的真實性最低,無應用價值。(1)因為是在1×1的方格里求面積,AUC必在0~1范圍內。(2)假設ROC曲線下方面積在閾值以上,樣本是陽性,在以下,樣本是陰性;等于閾值無應用意義。(3)若隨機抽取一個陽性樣本和一個陰性樣本,分類器正確判斷陽性樣本的值高于正確判斷陰性樣本的值的概率等于AUC。(4)簡單來說,AUC越大的分類器,正確率越高。3.1基于混淆矩陣的模型評估方法由AUC判斷分類器(預測模型)優(yōu)劣的標準如下:(1)AUC=1,該分類器是完美分類器。(2)AUC=(0.85,1),分類器的效果很好。(3)AUC=(0.7,0.85),分類器的效果一般。(4)AUC=(0.5,0.7),分類器的效果較差,但用于預測股票已經(jīng)很不錯了。(5)AUC=0.5,分類器的效果跟隨機猜測一樣(如丟銅板),模型沒有預測價值。(6)AUC<0.5,分類器的效果比隨機猜測還差,但只要總是反預測而行,就優(yōu)于隨機猜測。3.1基于混淆矩陣的模型評估方法如果兩條ROC曲線沒有相交,那么哪條曲線最靠近左上角,哪條曲線代表的學習器性能就最好。但是,在實際任務中,情況很復雜,如果兩條ROC曲線發(fā)生了交叉,則很難一般性地斷言誰優(yōu)誰劣。在很多實際應用中,我們往往希望把學習器性能分出個高低來。在此引入AUC。在比較學習器時,若一個學習器的ROC曲線被另一個學習器的曲線完全“包住”,則可斷言后者的性能優(yōu)于前者;若兩個學習器的ROC曲線發(fā)生交叉,則難以一般性地斷言兩者孰優(yōu)孰劣。此時,如果一定要進行比較,則比較合理的判斷依據(jù)是比較ROC曲線下的面積,即AUC。3.2錯誤分析與假設檢驗前面我們了解了模型的評估方法和性能度量,看起來就能夠對學習器進行評估、比較了:先使用某種評估方法測得學習器的某個性能度量結果,然后對這些結果進行比較。那么如何進行比較呢?是直接取得性能度量的值,然后比“大小”嗎?實際上沒有這么簡單。第一,因為我們希望比較的是泛化能力,但通過實驗的方法,我們能獲得的只是測試集上的性能,兩者未必相同;第二,由于測試集選擇的不同,測試集上的性能也未必相同;第三,很多機器學習算法本身具有一定的隨機性例(如常見的K-Means算法),即使是同一個算法,因為參數(shù)設置的不同,產(chǎn)生的結果也不同。那么有沒有合適的方法來比較學習器的性能呢?這就是比較檢驗,偏差與方差可以解釋學習器的泛化能力。3.2錯誤分析與假設檢驗偏差(Bias)反映的是模型在樣本上的輸出與真實值之間的誤差,即算法本身的擬合能力。偏差是模型本身導致的誤差,即錯誤的模型假設所導致的誤差,它是模型預測值的數(shù)學期望和真實值之間的差距。方差(Variance)反映的是模型每次的輸出結果與模型輸出期望之間的誤差,即模型的穩(wěn)定性,反應預測的波動情況。方差是由于對訓練樣本集的小波動敏感

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論