學習筆記-機器學習系統設計

注:該博文爲Coursera平臺的machine learning 課程學習筆記。

如何構建一個垃圾郵件分類器

要構建一個機器學習模型,首先要確定模型的輸入變量即特徵變量。
郵件都是由一個個單詞組成,而垃圾郵件裏往往都包含一些共同的關鍵詞,如buy, discount等。因此可以選擇日常生活經常會用到的n個(1萬到5萬)單詞,判斷這些單詞是否在郵件裏出現。出現則用1表示,未出現則用0表示。這樣就簡單構建了模型的輸入變量,模型的輸出結果爲:垃圾郵件(1),非垃圾郵件(0)。
這裏寫圖片描述

那怎樣去提高這個模型的預測性能呢?
- 收集更多訓練樣本;(但這不總是會有效)
- 設計更精緻(sophisticated )的特徵變量;
- 增加識別錯拼的能力;
事實上很難說以上哪種策略會最有效果,進一步的策略是分析錯誤產生的原因。

解決一個機器學習問題的推薦步驟如下:
-從最簡單的模型開始,快速部署並在驗證集上完成測試;
-作學習曲線圖,判斷是需要更多的樣本量,或者增加新的特徵變量;
-錯誤分析,逐個檢查在驗證集裏被錯誤分類的樣本,找到它們的共性;
你的模型需要有一個單一的數值來評價好壞。
這裏寫圖片描述

怎樣處理不平衡分類?

不平衡分類問題:陽性樣本只佔總樣本的很少比例,或者陰性樣本只佔總樣本的很少比例。
例如對於一批訓練集,真正的腫瘤患者只佔0.5%,如果一個模型對所有的樣本都判定爲正常,則該模型擁有99.5%的準確率,數值上看已是一個很好的模型的,然而該模型並沒有任何意義。
這裏寫圖片描述
說明準確率(Accuracy)已不適合作爲該類問題的評價指標。

Precision/Recall

精度(Precision): 真陽性樣本與預測陽性樣本的比值;
召回率(Recall):真陽性樣本與事實陽性樣本的比值;
這裏寫圖片描述

精度與召回率之間的權衡
對於邏輯迴歸,一般使用0.5作爲判斷閾值;
但當我們想要在只有證據非常充足的情況下才判定爲陽性時,可以適當提高閾值;這樣模型的精度便會提高,而召回率會下降;
反正,當我們不希望錯過一些可能爲陽性的樣本時,可以適當降低閾值;這樣的模型會擁有較高的召回率,但精度降低。
所以我們應該根據實際情況設置閾值,而非死守0.5.
這裏寫圖片描述

上文提到應用有一個單一的數值變量來衡量模型的好壞,因此綜合考慮精度和召回率,提出新的變量——F score,其計算方法如下:
這裏寫圖片描述

樣本量的重要性:
當訓練樣本量足夠多時,基於不同的算法所建立的模型的預測性能往往差不多。所以樣本量纔是王道?
這裏寫圖片描述

但是大樣本量也不是萬能的,只有當輸入的特徵變量的信息量足夠時,大樣本纔有用。

注:如無特殊說明,以上所有圖片均截選自吳恩達在Coursera開設的機器學習課程的課件ppt.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章