十大經典預測推算算法(預測推算算法有哪些)
帶你瞭解數據挖掘中的經典算法
數據挖掘的算法有許多,而不同的算法有著不同的優點,並且也發揮著不同的效果。可以這麼說,算法在數據挖掘中做出瞭非常大的貢獻,假如我們要明白數據挖掘的話就不得不清楚這幾個算法,接下來由我們就繼續給大眾介紹一下有關數據挖掘的算法知識。
1、The Apriori algorithm,
Apriori算法是一種最有作用與影響的挖掘佈爾關聯規則頻繁項集的算法。其核心是基於兩階段頻集思想的遞推算法。該關聯規則在分類上屬於單維、單層、佈爾關聯規則。在這兒,所有支持度大於最小支持度的項集稱為頻繁項集,簡稱頻集。這個算法是比較復雜的,但也是十分實用的。
2、最大期望算法
在統計計算中,最大期望算法是在概率模型中尋找參數最大似然估計的算法,其中概率模型依賴於無法觀測的隱藏變量。最大期望經常用在機器學習和計算機視覺的數據集聚范疇。而最大期望算法在數據挖掘以及統計中都是十分常常見到的。
3、PageRank算法
PageRank是Google算法的重要內容。PageRank裡的page不是指網頁,而是創始人之名字,即這個等級方法是以佩奇來命名的。PageRank依據網站的外部鏈接和內部鏈接的數量和質量倆衡量網站的價值。PageRank背後的概念是,每個到頁面的鏈接都是對該頁面的一次投票,被鏈接的越多,就象征著被其他網站投票越多。這個就是經常提到的“鏈接流行度”,這個標準就是衡量多少人願意將他們的網站和你的網站掛鉤。PageRank這個概念引自學術中一篇論文的被引述的頻度——即被別人引述的次數越多,一般判斷這篇論文的權威性就越高。
3、AdaBoost算法
Adaboost是一種迭代算法,其核心思想是針對同一個訓練集訓練不同的分類器,緊接著把這幾個弱分類器集合起來,構成一個更強的最終分類器。其算法本身是通過改變數據分佈來實現的,它依據每次訓練集之中每個樣本的分類是否正確,以及上次的總體分類的準確率,來核實確定每個樣本的權值。將修改過權值的新數據集送給下層分類器進行訓練,最後將每次訓練得到的分類器最後融合起來,作為最終的決策分類器。這種算法給數據挖掘工作解決瞭不少的問題。
數據挖掘算法有許多,這篇文章中我們給大眾介紹的算法都是十分經典的算法,相信大傢一定可以從中得到有價值的信息。需要告知大傢的是,我們在進行數據挖掘工作之前務必要事先掌握好數據挖掘需呀掌握的各類算法,這樣我們才可以在工總中得心應手,假如基礎不牢固,故此我們遲早是會被淘汰的。職場如戰場,我們務必要盡心盡力。
大數據挖掘的算法有哪些?
數據挖掘本質還是機器學習算法
具體可以參見《數據挖掘十大常見算法》
常用的就是:SVM,決策樹,樸素貝葉斯,邏輯斯蒂回歸等
主要解決分類和回歸問題
負荷預測推算的預測推算方法
電力負荷預測推算分為經典預測推算方法和現代預測推算方法。 趨勢外推法
就是依據負荷的變化趨勢對未來負荷情況作出預測推算。電力負荷固然具有隨機性和不確定性,但在一定條件下,仍存在著明顯的變化趨勢,例如農業用電,在氣候條件變化較小的冬季,日用電量相對穩定,表現為較平安穩定的變化趨勢。這種變化趨勢可為線性或非線性,周期性或非周期性等等。
時間序列法
時間序列法是一種最為常常見到的短期負荷預測推算方法,它是針對整個觀測序列呈現出的某種隨機過程的特性,去建立和估計產生實際序列的隨機過程的模型,緊接著用這幾個模型去進行預測推算。它利用瞭電力負荷變動的慣性特征和時間上的延續性,通過對歷史數據時間序列的剖析處理,確定其基本特征和變化規律,預測推算未來負荷。
時間序列預測推算方法可分為確定型和隨機性兩類,確定型時間序列作為模型殘差用於估計預測推算區間的大小。隨機型時間序列預測推算模型可以看作一個線性濾波器。依據線性濾波器的特性,時間序列可劃為自回歸(AR)、動平均(MA)、自回歸-動平均(ARMA)、累計式自回歸-動平均(ARIMA)、傳遞函數(TF)幾類模型,其負荷預測推算過程一般分為模型識別、模型參數估計、模型檢驗、負荷預測推算、精度檢驗預測推算值修正5個階段。
回歸剖析法
回歸剖析法就是依據負荷過去的歷史資料,建立可以剖析的數學模型,對未來的負荷進行預測推算。利用數理統計中的回歸剖析方法,通過對變量的觀測數據進行剖析,確定變量之間的相互之關聯聯系,從而實現預測推算。 20世紀80年代後期,一些基於新興學科理論的現代預測推算方法逐漸獲得瞭成功應用。這其中主要有灰色數學理論、專業人士系統方法、神經互聯網理論、模糊預測推算理論等。
灰色數學理論
灰色數學理論是把負荷序列看作一真實的系統輸出,它是眾多作用與影響因子的綜合作用結果。這幾個眾多因子的未知性和不確定性,成為系統的灰色特性。灰色系統理論把負荷序列通過生成變換,使其變化為有規律的生成數列再建模,用於負荷預測推算。
專業人士系統方法
專業人士系統方法是對於數據庫裡存放的前幾年的負荷數據和天氣數據等進行細致的剖析,匯集有經驗的負荷預測推算人員的知識,提取有關規則。借助專業人士系統,負荷預測推算人員能識別預測推算日歸屬的類型,考慮天氣因素對負荷預測推算的作用與影響,依照一定的推理進行負荷預測推算。
神經互聯網理論
神經互聯網理論是利喜用神經互聯網的學習功能,讓計算機學習蘊含在歷史負荷數據中的映射關系,再利用這種映射關系預測推算未來負荷。因為該方法具有非常強的魯棒性、記憶能力、非線性映射能力以及強大的自學習能力,因此有很大的應用市場,但其缺點是學習收斂速度慢,可能收斂到局部最小點;並且知識表達困難,難以充分利用調度人員經驗中存在的模糊知識。
模糊負荷預測推算
模糊負荷預測推算是近幾年比較熱門的研究方向。
模糊控制是在所采用的控制方法上應用瞭模糊數學理論,使其進行確定性的工作,對一些無法構造數學模型的被控過程進行有效控制。模糊系統無論其是怎樣進行計算的,從輸入輸出的角度講它是一個非線性函數。模糊系統對於任意一個非線性連續函數,就是找出一類隸屬函數,一種推理規則,一個解模糊方法,使得設計出的模糊系統能夠任意逼近這個非線性函數。 (1)表格查尋法:
表格法是一種相對簡單並且明瞭的算法。這一個辦法的基本思想是從已知輸入--輸出數據對中產生模糊規則,形成一個模糊規則庫,最後的模糊邏輯系統將從組合模糊規則庫中產生。
這是一種簡單易行的易於理解的算法,由於它是個順序生成過程,無需反復學習,於是,這一個辦法同樣具有模糊系統優於神經互聯網系統的一大優點,即構造起來既簡單又快速。
(2)基於神經互聯網集成的高木-關野模糊預測推算算法:
它是利喜用神經互聯網來求得條件部輸入變量的聯合隸屬函數。結論部的函數f(X)也可以 使用神經互聯網來預示。神經互聯網均采用前向型的BP互聯網。
(3)改進的模糊神經互聯網模型的算法:
模糊神經互聯網即全局逼近器。模糊系統與神經互聯網好像有著天然的聯系,模糊神經互聯網在根本上是模糊系統的實現,就是將常規的神經互聯網(如前向反饋神經互聯網,HoPfield神經互聯網)付與模糊輸入信號和模糊權。
對於復雜的系統建模,已經有瞭很多方法,並已取得良好的應用效果。但主要缺點是模型精度不高,訓練時間太長。此種方法的模型物理意義明顯,精度高,收斂快,屬於改進型算法。
(4)反向傳播學習算法:
模糊邏輯系統應用主要在於它能夠作為非線性系統的模型,包括含有人工操作員的非線性系統的模型。於是,從函數逼近意義上考慮,研究模糊邏輯系統的非線性映射能力顯得十分重要。函數逼近就是模糊邏輯系統能在任意精度上,一致逼近任何定義在一個致密集上的非線性函數,其優勢在於它有能夠系統而有效地利用語言信息的能力。萬能逼近定理表明一定存在這樣一個能在任意精度逼近任意給定函數的高斯型模糊邏輯系統。反向傳播BP學習算法用以確定高斯型模糊邏輯系統的參數,經過辨識的模型能夠非常好的逼近真實系統,進而達到提高預測推算精度的意圖。
流程員開發用到的十大基本算法
算法一:快速排序算法
快速排序是由東尼·霍爾所發展的一種排序算法。在平均狀況下,排序 n 個項目要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況並不怎麼常見。實際上,快速排序通常明顯比其他Ο(n log n) 算法更快,由於它的內部循環(inner loop)能在多數的架構上很有效率地被實現出來。
快速排序使用分治法(Divide and conquer)策略來把一個串行(list)分為兩個子串行(sub-lists)。
算法步驟:
1 從數列中挑出一個元素,稱為 “基準”(pivot),
2 重新排序數列,所有元素比基準值小的擺放擺列在基準前面,所有元素比基準值大的擺放在基準的後面(一樣的數可以到任一邊)。在這個分區退出之後,該基準就處於數列的中間位置。這個稱為分區(partition)操作。
3 遞歸地(recursive)把小於基準值元素的子數列和大於基準值元素的子數列排序。
遞歸的最底部情形,是數列的大小是零或一,亦即永久都業已被排序好瞭。固然一直遞歸下去,不過這個算法總會退出,由於在每次的迭代(iteration)中,它至少會把一個元素擺到它最終的位置去。
算法二:堆排序算法
堆排序(Heapsort)是指利用堆這種數據結構所設計的一種排序算法。堆積是一個近似完全二叉樹的結構,並同時滿足堆積的性質:即子結點的鍵值或索引總是小於(或者大於)它的父節點。堆排序的平均時間復雜度為Ο(nlogn) 。
算法步驟:
1、創建一個堆H[0。。n-1]
2、把堆首(最大值)和堆尾互換
3、把堆的尺寸縮小1,並調用shift_down(0),目的是把新的數組頂端數據調整到相應位置
4、重復步驟2,直到堆的尺寸為1
算法三:歸並排序
歸並排序(Merge sort,譯作:合並排序)是建立在歸並操作上的一種有效的排序算法。該算法是采用分治法(Divide and Conquer)的一個非常典型的應用。
算法步驟:
算法四:二分查找算法
二分查找算法是一種在有序數組中查找某定元素的搜索算法。搜素過程從數組的中間元素開始,假如中間元素恰巧是要查找的元素,則搜 素過程結束;假如某定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。假如在某一步驟數組 為空,則代表找未到。這種搜索算法每一次比較都使搜索范圍縮小一半。折半搜索每次把搜索區域減少一半,時間復雜度為Ο(logn) 。
算法五:BFPRT(線性查找算法)
BFPRT算法解決的問題十分經典,即從某n個元素的序列中選出第k大(第k小)的元素,通過巧妙的分 析,BFPRT可以保證在最壞情況下仍是線性時間復雜度。該算法的思想與快速排序思想相似,誠然,為使得算法在最壞情況下,依然能達到o(n)的時間復雜 度,五位算法作者做瞭精妙的處理。
算法步驟:
終止條件:n=1時,返回的其實就是i小元素。
算法六:DFS(深度優先搜索)
深度優先搜索算法(Depth-First-Search),是搜索算法的一種。它沿著樹的深度遍歷樹的節點,盡可能深的搜索樹的分 支。當節點v的所有邊都己被探尋過,搜索將回溯到發現節點v的那條邊的起始節點。這一過程一直進行到已發現從源節點可達的所有節點為止。假如還存在未被發 現的節點,則選擇其中一個作為源節點並重復以上過程,整個進程反復進行直到所有節點都被訪問為止。DFS屬於盲目搜索。
深度優先搜索是圖論中的經典算法,利用深度優先搜索算法可以產生目標圖的相應拓撲排序表,利用拓撲排序表可以方便的解決許多相關的圖論問題,如最大路徑問題等等。一般用堆數據結構來輔助實現DFS算法。
算法步驟:
上述描述可能比較抽象,舉個實際案例:
DFS 在訪問圖中某一起始頂點 v 後,由 v 出發,訪問它的任一鄰接頂點 w1;再從 w1 出發,訪問與 w1鄰 接不過還沒有訪問過之頂點 w2;緊接著再從 w2 出發,進行類似的訪問,… 如此進行下去,直至到達所有的鄰接頂點都被訪問過之頂點 u 為止。
接著,退回一步,退到前一次剛訪問過之頂點,看是否還有其它沒有被訪問的鄰接頂點。假如有,則訪問此頂點,之後再從此頂點出發,進行與前述類似的訪問;假如沒有,就再退回一步進行搜索。重復上述過程,直到連通圖中所有頂點都被訪問過為止。
算法七:BFS(廣度優先搜索)
廣度優先搜索算法(Breadth-First-Search),是一種圖形搜索算法。簡單容易的說,BFS是從根節點開始,沿著樹(圖)的寬度遍歷樹(圖)的節點。假如所有節點均被訪問,則算法中止。BFS同樣屬於盲目搜索。一般用隊列數據結構來輔助實現BFS算法。
算法步驟:
算法八:Dijkstra算法
戴克斯特拉算法(Dijkstra’s algorithm)是由荷蘭計算機科學工作者艾茲赫爾·戴克斯特拉提出。迪科斯徹算法使用瞭廣度優先搜索解決非負權有向圖的單源最短路徑問題,算法最終得到一個最短路徑樹。該算法常用於路由算法或者作為其他圖算法的一個子模塊。
該算法的輸入蘊含瞭一個有權重的有向圖 G,以及G中的一個來源頂點 S。我們以 V 預示 G 中所有頂點的集合。每一個圖中的邊,都是兩個頂點所形成的有序元素對。(u, v) 預示從頂點 u 到 v 有路徑相連。我們以 E 預示G中所有邊的集合,而邊的權重則由權重函數 w: E → [0, ∞] 定義。於是,w(u, v) 就是從頂點 u 到頂點 v 的非負權重(weight)。邊的權重可以想像成兩個頂點之間的距離。任兩點間路徑的權重,就是該路徑上所有邊的權重總和。已知有 V 中有頂點 s 及 t,Dijkstra 算法能找到 s 到 t的最低權重路徑(例如,最短路徑)。這個算法也能在一個圖中,找到從一個頂點 s 到任何其他頂點的最短路徑。對於不含負權的有向圖,Dijkstra算法是目前已知的最快的單源最短路徑算法。
算法步驟:
重復上述步驟2。3,直到S中蘊含所有頂點,即W=Vi為止
算法九:動態規劃算法
動態規劃(Dynamic programming)是一種在數學、計算機科學和經濟學中使用的,通過把原問題分解為相對簡單容易的子問題的方式求解復雜問題的方式方法。 動態規劃往往適合使用於有重疊子問題和最優子結構性質的問題,動態規劃方法所耗時間常常遠少於樸素解法。
動態規劃背後的基本思想特別容易。大體上,若要解一個給定問題,我們需要解其不同部分(即子問題),再合並子問題的解以總結出原問題的解。 通常很多 子問題非常相似,為此動態規劃法試圖僅僅解決每個子提問一次,從而減少計算量: 一旦某個給定子問題的解業已算出,則將其記憶化存儲,以便下次需要同一個 子問題解之時直接查表。 這種做法在重復子問題的數目關於輸入的規模呈指數增長時特別有用。
關於動態規劃最經典的問題當屬背包問題。
算法步驟:
算法十:樸素貝葉斯分類算法
樸素貝葉斯分類算法是一種基於貝葉斯定理的簡單概率分類算法。貝葉斯分類的基礎是概率推理,就是在各式條件的存在不確定,僅知其出現概率的情形下, 怎樣完成推理和決策任務。概率推理是與確定性推理相相應的。而樸素貝葉斯分類器是基於單獨假設的,即假設樣本每個特征和其它特征都不相關。
樸素貝葉斯分類器依靠精確的自然概率模型,在有監督學習的樣本集中能取得得特別好的分類效果。在很多實際應用中,樸素貝葉斯模型參數估計使用最大似然估計方法,換言之樸素貝葉斯模型能工作並沒有用到貝葉斯概率或者任何貝葉斯模型。
盡管是帶著這幾個樸素思想和過於簡單化的假設,但樸素貝葉斯分類器在許多復雜的現實情形中仍能夠取得極佳的作用。
誰有數學建模十大算法的詳盡解讀啊???
1。蒙特卡羅算法(該算法又稱隨機性模擬算法,是通過計算機仿真來解決問題的算法,
同時可Yi經過模擬可以來檢驗自己模型的正確性,是比賽時必用的方式方法)
2。數據擬合、參數估計、插值等數據處理算法(比賽中通常會遇見大量的數據需要處理,
而處理數據的關鍵就在於這幾個算法,通常使用Matlab作為工具)
3。線性規劃、整數規劃、多元規劃、二次規劃等規劃類問題(建模競賽大都問題屬於最優化問題,
許多時候如此問題可以 使用數學規劃算法來描述,通常使用Lindo、Lingo軟件實現)
4。圖論算法(這類算法可以分為許多種,包括最短路、互聯網流、二分圖等算法,
關系到圖論的問題可以 使用這類辦法解決,需要認真準備)
5。動態規劃、回溯搜索、分治算法、分支定界等計算機算法(這幾個算法是算法設計中比較常用的方式方法,許多場合可以 使用到競賽中)
6。最優化理論的三大非經典算法:模擬退火法、神經互聯網、遺傳算法
(如此問題是用以解決一些較困難的最優化問題的算法,對於有些問題非常有用處,
不過算法的實現比較困難,需慎重使用)
7。網格算法和窮舉法(網格算法和窮舉法都是暴力搜索最優點的算法,在許多競賽題中有應用,
當重點討論模型本身而輕視算法的時刻,應該使用這種暴力方案,最好使用一些高檔語言作為編程工具)
8。一些連續離散化方法(許多問題都是實際來的,數據可以是連續的,而計算機隻認的是離散的數據,因此將其離散化後進行差分代替微分、求和代替積分等思想是很重要的)
9。數值剖析算法(假如在比賽中采用高檔語言進行編程的話,那一些數值剖析中常用的算法比
如方程組求解、矩陣運算、函數積分等算法就需要額外編寫庫函數進行調用)
10。圖象處理算法(賽題中有一類問題與圖形有關,即便與圖形無關,論文中亦應當要不乏圖片的,
這幾個圖形怎樣展示以及怎樣處理就是需要解決的問題,通常使用Matlab進行處理)
數據挖掘十大經典算法(1)——樸素貝葉斯(Naive Bayes)
在此推出一個算法系列的科普文章。我們大傢在平時埋頭工程類工作之餘,也可以抽身對一些常見算法進行瞭解,這不但可以幫助我們拓寬思路,從另一個維度加深對計算機技術范疇的理解,做到觸類旁通,並且也能夠讓我們搞清楚一些既熟悉又陌生的范疇——打比方說數據挖掘、大數據、機器學習——的基本原理,揭開它們的神秘面紗,獲悉到其實也就是說許多看起來高深的范疇,其實也就是說背後根據的基礎和原理也並不復雜。並且,掌握各類算法的特征、優劣和適用場景,是真真正正從事數據挖掘工作的重中之重。隻有熟悉算法,才可能對紛繁復雜的現實問題合理建模,達到最佳預期效果。
本系列文章的意圖是力求用最幹練而生動的講述方式,為大傢講解由國際權威的學術組織the IEEE International Conference on Data Mining (ICDM) 於2006年12月評選出的數據挖掘范疇的十大經典算法。它們包括:
本文作為本系列的第1篇,在介紹具體算法之前,先簡單為大傢鋪墊幾個數據挖掘范疇的常見概念:
在數據挖掘范疇,依照算法本身的行為模式和使用目的,主要可以分為分類(classification),聚類(clustering)和回歸(regression)幾種,其中:
打幾個不恰當的比方 :
另外,還有一個經常有人問起的問題,就是 數據挖掘 和 機器學習 這兩個概念的不同,這裡一句話闡明我本人的認識:機器學習是基礎,數據挖掘是應用。機器學習研制出樣式不一的算法,數據挖掘依據應用場景把這幾個算法合理運用起來,目的是達到最有利的挖掘效果。
誠然,以上的簡單匯總一定不夠準確和嚴謹,更加的多的是為瞭便於大眾理解打的比方。假如大傢有更精當的理解,歡迎補充和交流。
好瞭,鋪墊瞭如此多,此刻終於進入正題!
作為本系列入門的第1篇,先為大傢介紹一個容易理解又很有意思的算法—— 樸素貝葉斯 。
先站好隊,樸素貝葉斯是一個典型的 有監督的分類算法 。
光從名字也可以想到,如果想瞭解樸素貝葉斯,先要從 貝葉斯定理 說起。
貝葉斯定理是我們高中時代學過的一條概率學基礎定理,它描述瞭條件概率的計算方式。不要怕已經把這幾個知識還給瞭體育老師,相信你一看公式就能想起來。
P(A|B)預示事件B發生過的前提下,事件A發生的概率,叫做事件B發生下事件A的條件概率。其基本求解公式為:
其中,P(AB)預示A和B同時發生的概率,P(B)標識B事件本身的概率。
貝葉斯定理之故有用,是由於我們在生活之中經常遇見這樣的狀況:俺們是可以比較容易直接總結出P(A|B),P(B|A)則很難直接總結出,不過俺們更關心P(B|A)。
而貝葉斯定理就為俺們打通從P(A|B)獲得P(B|A)的道路。
下面不加證明地直接給出貝葉斯定理:
有瞭貝葉斯定理這個基礎,下面來看看樸素貝葉斯算法的基本思路。
你看,其思想就是這麼的樸素。那麼,屬於每個分類的概率該怎麼計算呢?接下來由我們先祭出形式化語言!
那麼如今的關鍵就是怎樣計算第三步中的各個條件概率。俺們是可以這麼做:
由於分母對於所有類別為常數,由於我們隻要將分子最大化皆可。又由於各特征屬性是條件單獨的,故有:
假如你也跟我一樣,對形式化語言有嚴重生理反應,不要怕,直接跳過前面這一坨,我們通過一個鮮活的例子,用人類的語言再解釋一遍這個過程。
某個醫院早上收瞭六個門診病人,如下表。
此刻又來瞭第七個病人,是一個打噴嚏的建築工人。請問他最有可能患有何種疾病?
根本上,這便是一個典型的分類問題, 癥狀 和 職業 是特征屬性, 疾病種類 是目標類別
依據 貝葉斯定理
可得
假定"打噴嚏"和"建築工人"這兩個特征是單獨的,於是,上面的等式就成為瞭
這是可以計算的。
於是,這個打噴嚏的建築工人,有66%的概率是得瞭感冒。同理,可以計算這個病人患上過敏或腦震蕩的概率。比較這些概率,就能夠知道他最可能得哪種病。
接著下面,我們再舉一個樸素貝葉斯算法在實際中經常被使用的場景的例子—— 文本分類器 ,通常會用以識別垃圾郵件。
first of all,俺們是可以把一封郵件的內容抽象為由若幹關鍵詞組成的集合,這樣是否蘊含每種關鍵詞就成瞭一封郵件的特點值,而目標類別就是 屬於垃圾郵件 或 不屬於垃圾郵件
假設每個關鍵詞在一封郵件裡出現與否的概率相互之間是單獨的,那麼隻要我們有若幹已經標記為垃圾郵件和非垃圾郵件的樣本作為訓練集,那不如就可以總結出,在全部垃圾郵件(記為Trash)出現某個關鍵詞Wi的概率,即 P(Wi|Trash)
而我們最要緊回答的問題是,給定一封郵件內容M,它屬於垃圾郵件的概率是多大,即 P(Trash|M)
依據貝葉斯定理,有
我們先來看分子:
P(M|Trash) 可以理解為在垃圾郵件這個領域中遇到郵件M的概率,而一封郵件M是由若幹單詞Wi單獨匯聚組成的,隻要我們所掌握的單詞樣本足夠多,所以就能夠得到
這幾個值我們之前已經能夠得到瞭。
再來看分子裡的另一部分 P(Trash) ,這個值亦即垃圾郵件的總體概率,這個值顯然比較容易得到,用訓練集中垃圾郵件數除以總數即可。
而對於分母來說,我們固然也可以去計算它,但事實上已經沒很有必要瞭,由於我們要比較的 P(Trash|M) 和 P(non-Trash|M) 的分母都是相同的,因此僅需要比較分子大小即可。
這樣一來,我們就能夠通過簡單容易的計算,比較郵件M屬於垃圾還是非垃圾二者誰的概率更大瞭。
樸素貝葉斯的英文叫做 Naive Bayes ,直譯過來其實也就是說是 天真的貝葉斯 ,那麼他到底天真在哪瞭呢?
這著重是由於樸素貝葉斯的基本假設是所有特征值之間都是相互單獨的,這才使得概率直接相乘這種簡單計算方式得以實現。然而從實際生活之中,各個特征值之間常常存在一些關聯,打比方說上面的例子,一篇文章中不同單詞之間肯定是有關聯的,打比方說有些詞總是容易同時出現。
於是,在經典樸素貝葉斯的基礎上,還有更為靈活的建模方式—— 貝葉斯互聯網(Bayesian Belief Networks, BBN) ,可以獨立指定特征值之間的是否單獨。這裡就不展開瞭,感興趣的同學們能夠做進一步瞭解。
最後我們來對這個經典算法做個點評:
優點:
缺點:
好瞭,對於 樸素貝葉斯 的介紹就來這裡,不曉得各位看完之後是否會對數據挖掘這個范疇產生瞭一點興趣瞭呢?