機器學習基本套路
本文筆記主要學自周志華老師的《機器學習》。
機器學習
機器學習的目的是得到一個映射函數,把已知作為輸入映射到想預測的輸出。比如品質管控中如果關鍵參數只有一兩個,我們可以直接在excel上進行統計和作直方圖顯示其分布,並根據返修品的分布和正常品的分布得出一個管控指標,但是當關鍵參數持續增加,特別是我們自己都不確定哪些參數更關鍵時,使用機器學習進行標準提取是一個高效的辦法。
典型流程
典型的機器學習工作流程中,首先是理解問題,把現實任務抽象為數學描述,比如我們要對不良品分類,就是要找到產品的關鍵屬性(又叫特徵提取),通過演算法把屬性映射為分類預測(1不良 0合格),然後使用演算法從訓練數據中學得模型(選定初始模型然後使用特定演算法處理訓練數據從而更新模型參數),再使用測試數據對模型進行評估,如效果達到預期則部署到產線。
http://www.cnblogs.com/wxquare/p/5484690.html
分類與回歸
對不同數據添加特定標籤的任務是為分類,比如判別產品是否不良,將特徵映射到連續變數是為回歸,比如判別不良程度或者預估股票價格。
監督學習與無監督學習
根據數據有誤標記,可把學習任務分為監督學習與無監督學習,分類與回歸是前者的代表,聚類是後者的代表。
模型評估與選擇
錯誤率=錯判樣本/總樣本,精度=1-錯誤率。
模型開發階段,訓練數據通過演算法得到預測,其判斷和真值差距為訓練誤差,又叫經驗誤差,模型部署後其判斷和真值差距為泛化誤差,當訓練誤差低而泛化誤差高,稱為過擬合,即模型為了遷就訓練數據而構建的比應有的規律更複雜導致實際應用中出問題,過擬合是不可避免的,因為訓練數據只是真實數據的一小部分,而不同的演算法各有對應的改善過擬合的辦法,而訓練誤差和泛化誤差都高則為欠擬合,一般可通過增加訓練數據和強化模型複雜度來改善。要特別注意的是訓練集應為總樣本的無偏隨機抽樣(以達成同分布),否則也會導致過擬合。
http://beader.me/2013/12/15/auc-roc/
http://www.jianshu.com/p/c61ae11cc5f6
PR曲線與ROC曲線
除了錯誤率與精度,還有其他評價方式,因為我們很多時候不光是關注整體準確性,還會特別關注某類樣本中預測中了多少,比如不良品的攔截效果,這時候就需要考慮查准與查全, 查准率為預測正例中準確比例,P=TP/(TP+FP),查全率為真實正例中被正確辨認的比例,R=TP/(TP+FN)。
查准和查全一般不可兼得,查全高了查准就低,反之亦然,需根據實際需要進行調整閾值。
還有一種評價方式為ROC曲線,其縱軸為真正率,也稱召回率,為真實正例中被正確辨認的比例,TPR=TP/(TP+FN),與查全率一樣,其橫軸為假正率,也稱誤判率,為真實反例中被誤判為正的比例,FPR=FP/(FP+TN),顯然2分類任務中隨機模型對應曲線為過對角的直線。
為了方便的對比不同參數下模型的效果,有人提出以ROC曲線下面積作為參考值,是為AUC。
不平衡數據的PR曲線更敏感而ROC曲線更穩定,一般應根據任務選定合適的閾值。
對曲線不平滑處應重點關注是否有過擬合。
https://www.zhihu.com/question/30643044
http://blog.csdn.net/sinat_26917383/article/details/51725102
訓練集和測試集
因為實際部署前其實是沒有辦法得到泛化誤差的,一種辦法是在訓練數據集里留出一定數據作為測試數據集,在訓練完得到模型後,用測試數據集驗證模型得到測試誤差,用測試誤差去估計泛化誤差,另一種辦法是交叉驗證,即把訓練集分成n份,從第一個到最後一個輪流做測試集,進行n次訓練和驗證。
偏差方差
泛化誤差可分解為偏差,方差與雜訊之和,是由演算法的能力,數據的充分性,任務本身的難度所共同決定的。一般來說,偏差與方差是有衝突的,在訓練早期主要表現出偏差,在充分訓練後容易過擬合而表現出方差,需要持續關注泛化誤差。
假設檢驗
除了簡單的對誤差進行點估計,還可以進一步對誤差做假設檢驗,比如分類問題中可認為服從伯努利分布,數量足夠大後誤分類可認為服從正態分布,可使用t檢驗確認誤差期望的可靠性,也可對交叉驗證得到的2個分類器的效果進行成對t檢驗以確認差異性。
推薦閱讀:
※關於機器學習、數據科學面試的準備
※集智漫畫:如何教女朋友人工智慧(一)
※機器學習+AI技術,碰撞出什麼你不知道事
※Paper Reading | 讓深度學習更高效運行的兩個視角
※Kaggle比賽教你最快速度入門文本分類(經典方法篇)
TAG:機器學習 |