1. 程式人生 > >Andrew Ng-ML-第十二章-機器學習系統設計

Andrew Ng-ML-第十二章-機器學習系統設計

image block 勝利 創建 向量 使用 回歸 神經網絡 邏輯回歸

1.確定執行的優先級

技術分享圖片

圖1.郵件垃圾分類舉例

選擇100個單詞作為指示是否是垃圾郵件的指標,將這些單詞作為特征向量,只用0/1表示,出現多次也只用1表示,特征變量用來表示郵件。

通常情況下,會選擇訓練集中出現頻率最多的n(在10000到50000)之間的幾個單詞。

技術分享圖片

圖2.改進模型的建議

1.收集更多的數據。比如說honeypot就故意將郵箱地址暴露給垃圾郵件發送者,從而獲取很多垃圾郵件作為數據集。

2.根據郵件路由信息(郵件頭)。但是通常發送者會隱藏一些特征導致不能從郵件頭中獲取信息。

3.關註郵件體,比如單詞的單復數discount和discounts應該被認為是一個單詞嗎?這單詞變形之類的問題

4.創建一個復雜的算法來檢測拼寫錯誤,比如m0rtgage和w4tch.

2.誤差分析(如何開始建立一個機器學習系統的步驟)

技術分享圖片

圖3.建議的方法

第一步:首先是先建立一個簡單的算法模型,然後在驗證集上測試。(Ng會先花24小時做一個簡單的速成模型,雖然效果並不好,但是具有指導意義)

第二步:畫出學習曲線,以此來判斷是增加更多數據,特征,或者是其他,這是很有幫助的。

第三步:誤差分析。將誤分類的數據,尋找這些誤分類數據存在的特點。

做一個簡單的學習模型可以指導接下來往哪個方面改進。

技術分享圖片

圖4.誤差分析

假如入當前是一個郵件垃圾檢測,手動的檢測100種錯誤,並將郵件分類,

(1)郵件的類型 (2)使算法能夠正確分類的特征有哪些?

比如,賣藥、賣贗品、竊取密碼、等類型。特征包括:錯誤拼寫(m0rgage和med1cine)、異常的郵件路由、異常的標點符號。

將精力放在簡單模型誤分類的郵件上,觀察它們有什麽特點。

技術分享圖片

圖5.數值評估的重要性

對於郵件垃圾檢測來說,是否需要使用詞幹提取算法,方法就是對比應用詞幹提取算法和不應用詞幹提取算法的情況下,給出一個具體的數值來衡量兩者的優劣,即設定誤差度量值,如在交叉驗證集上的錯誤率,以此來評判模型是更好了,還是變差了。

總體本小節重點是:算法評估和誤差度量值選擇

另外,Ng強調,應該在驗證集上做誤差分析,而不是測試集上,在測試機上做誤差分析是不符合數學原理的。

3.不對稱性分類的誤差評估

技術分享圖片

圖6.偏斜類的分類例子

在癌癥分類的例子中,訓練了一個邏輯回歸模型,當y=0時未患癌癥,y=1時患癌癥;模型在測試集上的誤差是1%(99%診斷為正確)。

但是當前的數據集中,只有0.50%的癌癥患者,那麽這麽來看1%的誤差就很大了。

這樣的數據集分布十分不均衡,一種遠遠大於另一種的情況就是偏斜集。

這時候如果我們直接使用圖中的函數,直接將所有的分類y都設置為0,那麽誤差是0.5%(準確率為99.5%),如果只從選取的誤差度量值來看模型效果好了,但是模型的真正性能是否改進了?並沒有。綜上,對偏斜集不能使用誤差度量值來表示模型是否改進了。

技術分享圖片

圖7.查準率與召回(查全)率

當y=1出現很少時,需要檢測查查準率吧和召回率。

方格中橫軸是真正的類別:

查準率=真正類/預測為正類的=真正類/(假正類+真正類)——在預測為癌癥的患者中,有多少是真正患癌癥的?;

召回率=真正類/所有正的=真正類/(真正類+假負類)——在所有真正患癌癥的患者中,有多少是被檢測出來的?。

(如果使用y=0的話,召回率很低,在所有真正患癌癥的人中,沒有一個是被檢測出來的)

對於偏斜類來說,如果這兩個指標都非常高,那麽就是一個好的學習算法。

4.查準率與召回率的權衡

技術分享圖片

圖8.查準率與召回率的關系

在腫瘤預測的時候,可能不僅僅讓h_θ(x)>=0.5而是讓其>=0.9時,也就是說不輕易將病人判斷為癌癥患者。這就是一個閾值,是要70%的置信度還是90%的置信度來預測y=1。

假設只有在十分確信的情況下才將其判定為癌癥患者,那麽就是會 高查準率和低查全率;

假設不想誤判為沒有癌癥,避免假正,就是高召回率和低查全率。

更加一般地,設置一個閾值根據其曲線,可以選擇一個二者均衡的值,來判斷y=1。然而是否有辦法確定閾值的選擇呢?看下邊:

技術分享圖片

圖9.好的回歸模型

因為查準率與召回率是負關系,那麽如何進行判斷哪個模型更好呢?圖中給出了兩種判斷方法,一種是平均值,但顯然不行,算法3和算法1,算法3明顯是不好的算法;

使用F1公式,來進行判斷,當P、R均為0時,F1為0,P、R均為1時,F1為1,也就是整個的打分是在(0,1)之間的。這是一個好的權衡查準率與召回率的公式。

5.機器學習數據

技術分享圖片

圖10.好的算法與大量數據

一個非常著名的結論表示,一個好的算法,好一個劣質的算法,但是對劣質算法給予了更多的數據,反而劣質算法表現得更好,因此有一個結論“誰能勝利,取決於誰有更多的數據而不是更好的算法”。

技術分享圖片

圖11.大數據理論

當給出特征時,對人來說,能夠根據預測出y呢?

當使用一個有很多參數的學習算法時(比如多特征的邏輯和線性回歸,有很多隱含層的神經網絡模型)那麽假設它的一個低偏差的,即其訓練誤差很小;那麽如果使用一個大的訓練集,這樣是不太可能去過擬合的,那麽在測試集上的誤差也就≈訓練集上的誤差;總的也就相當於測試誤差也很小,那麽這將是一個很好的回歸模型。

Andrew Ng-ML-第十二章-機器學習系統設計