您好,登錄后才能下訂單哦!
看《***與畫家》講到"防止垃圾郵件的一種方法",覺得很適合用來表述數(shù)學公式與機器學習之間的關系。涉及到機器學習的數(shù)學公式比較簡單,概率論基礎教程都會講到。解決的問題也很典型: 垃圾郵件的識別。
防止垃圾郵件有很多種方法,最直觀的一種就是“規(guī)則”, 各種if-else的條件。這種方法能夠解決一個問題,但是解決不了一類問題。而且,這個規(guī)則的制定需要非常熟悉業(yè)務,好在通常我們面臨的業(yè)務問題是很垂直的, 通過規(guī)則, 也能夠解決問題。畢竟解決問題才是業(yè)務的核心訴求。
接下來, 業(yè)務隨著業(yè)務的發(fā)展, 規(guī)則越來越復雜, 我們維護起來也越來越吃力。 而且使用規(guī)則,是被動式的解決問題,用戶體驗也不好。 這個時候,新的方法該上場了,這個方法就是 “統(tǒng)計學方法”。 因為接觸的規(guī)則越多, 我們會慢慢發(fā)現(xiàn)郵件中出現(xiàn)某個關鍵詞, 只能表示郵件有可能是垃圾郵件。 這個可能性如何度量呢? 用貝葉斯方法。
貝葉斯方法的思路屬于逆向思維。 通常概率論解決的問題是“已知郵件是垃圾郵件,問各個單詞出現(xiàn)在垃圾郵件中的概率”, 貝葉斯方法解決的問題是“已知郵件內(nèi)容, 問當前郵件屬于垃圾郵件的概率".
理解貝葉斯公式不難,其基礎點有"條件概率", "聯(lián)合概率"。 貝葉斯公式的推導也很簡單:
P(AB) = P(B)*P(A|B)
P(AB) = P(A)*P(B|A)
有:
P(B)*P(A|B)=P(A)*P(B|A)
所以
P(A|B) = P(A)*P(B|A) / P(B)
雖然機器學習最忌諱的就是套公式,但是為了方便理解, 我們先套個公式:
P(垃圾郵件|郵件內(nèi)容) 表示 ”在已知郵件內(nèi)容,郵件屬于垃圾郵件的概率“
P(垃圾郵件|郵件內(nèi)容) = P(垃圾郵件) * P(郵件內(nèi)容|垃圾郵件) / P(郵件內(nèi)容)
等式右邊的概率是可以通過樣本計算出來的。
現(xiàn)在解決問題的方法有了,數(shù)學公式也有了, 是不是問題就解決了呢? 顯然不是。我們只是完成了模型選擇而已。通過《***與畫家》看這個模型是如何落地的。
選擇樣本: 作者選取了4000封正常郵件和4000封垃圾郵件。
選擇特征:字母、阿拉伯數(shù)字、破折號、撇號、美元符號作為“實義標識”
統(tǒng)計次數(shù): 計算了每個實義標識在兩個郵件組出現(xiàn)的次數(shù)
確定計算公式。 這里其實就是整篇文章的精華了。a. 作者沒有完完全全套用貝葉斯公式; b. 作者分別在token和郵件兩個維度用了貝葉斯思想。這才是難能可貴的。
特征選擇: 作者選取了top15的特征, 而非郵件全部的token.
如果說通常意義上的編程是一維的,那么機器學習的編程就是二維的。通常的工程問題是非黑即白,要么可用,要么是有Bug不可用。而機器學習在工程上的落地,更核心的關注點在于算法效果好不好和算法效果能不能更好。算法效果好不好,核心點在于數(shù)學模型, 其次在于怎么用好數(shù)學模型。 《***與畫家》用簡明的例子說明他是怎么用數(shù)學模型解決業(yè)務問題的。
引申一下:這個問題屬于典型的二分類問題。像垃圾郵件,垃圾評論, 評論的情感判斷, 是否目標用戶,是否推薦用戶... 很多問題都可以歸類到二分類問題。如果把"垃圾郵件的識別"抽象到分類問題,整個解決問題的思路就又開闊了很多。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。