引言
一般做機器學習任務,以預測某一個類別爲原則來評價原則。常用的術語。以病人爲例, 分爲 癌症患者, 非癌症患者, 確診的癌症患者, 誤診的癌症患者
- positive :正樣本 – 癌症患者
- negtive : 負樣本 – 非癌症患者
- true :正確分類 – 明確確診,也就是模型判斷的正負
- false : 錯誤分類 – 誤診
None | Positive | Negtive |
---|---|---|
True | TP | TN |
False | FP | FN |
評估指標
分類
故事: 一萬個影集模型檢查出來小黃片,小黃片一共有9000部,正常片 1000 部,用訓練好的模型識別出來了 8000部小黃片,其中200部是島國老師拍的非黃片,正常片模型識別出來 2000部, 其中1200 部是小黃片,可能因爲老師換了新人。
None | 黃片 | 非黃片 |
---|---|---|
對 | 7800 | 800 |
錯 | 1200 | 200 |
- 準確率:模型分類正確的樣本,佔了多少比例,這裏 86%
- 精確率: 在模型判別的正樣例中,多少是正確的 86.666 %
- 召回 :判斷對的正樣本在所有***真實正樣本***中的比例 97.5 %
迴歸
RMSE
直觀看出模型好壞方案
ROC曲線. AUC 值
橫座標:False Positive Rate
- FP / N 負樣本被判成正的,這些負樣本佔總體的比例
縱座標: True Positive Rate
- TP / P 正確分類的正樣本佔正樣本的比例
如何繪製ROC
這裏有個很關鍵的評判標準,一個樣本,大於多少評爲正合適,ROC曲線就是這樣來的,這個評價的標準成爲截斷點。通過動態的調整截斷點,從最高的得分開始,逐漸調整到最低分,每個階段點都會對應一個FPR 和 TP,在ROC圖上繪製出每個截斷點對應的位置, 鏈接起來就得到最終的 ROC
模型的評估方法
留出法:將數據集 劃分爲兩個互斥的集合,其中⼀個集合作爲訓練集,另⼀個作爲測試集。在訓練集上訓練模型,在測試
集上測試誤差,作爲對泛華能⼒的評估。
k折交叉驗證:將數據集 劃分爲 個⼤⼩相似的互斥⼦集。每次
⽤ k - 1 個⼦集的並集作爲訓練集,餘下的⼦集作爲測試集。可得到 組訓練集、測試集。最終返回的是k個測試結果的均值。
自助法:對於樣本爲n 的集合, 進行 n 次有放回隨機採樣, 得到大小爲 n 的訓練集, n次採樣過程中,有的樣本會被重複採樣,有的沒有被抽出過,將這些沒有被抽出的樣本作爲驗證集。
擬合問題
過擬合會發生,訓練誤差小,測試誤差高,模型的泛化能力很低。
從公式的角度出發,順帶複習結構風險最小化和經驗風險最小化
經驗風險最小化
結構風險最小化
加入偏差與方差來看兩個風險函數, 經驗風險函數僅僅只有偏差,並沒有考慮到泛化能力,而結構風險函數考慮到泛化問題,加入了方差(也是正則化)。常說的 l0 normal l1 normal l2 normal,順帶說,l0 l1 更容易得到稀疏向量。
- 偏差大,說明模型學習的能力還不足,沒有學習到模型的特徵,也叫欠擬合。對應圖像來說就是,打的太偏了,雖然很密集
- 解決辦法
- 做特徵工程,添加跟多的特徵項。如果欠擬合是由於特徵項不夠,沒有足夠的信息支持模型做判斷。
- 增加模型複雜度。如果模型太簡單,不能夠應對複雜的任務。可以使用更復雜的模型,減小正則化係數。比如說可以使用SVM的核函數,增加了模型複雜度,把低維不可分的數據映射到高維空間,就可以線性可分,減小欠擬合。還可以使用一些集成學習方法。
- 集成學習方法boosting(GBDT)
- 減小正則化係數
- 解決辦法
- 方差大,測試集過度學習,很大程度上學習到了噪聲的特徵,所以在驗證集上表現很差。雖然打到了,但是太散了,太散就說明,啥也學,過了。
- 原因
- 訓練數據集樣本單一,樣本不足。如果訓練樣本只有負樣本,然後那生成的模型去預測正樣本,這肯定預測不準。所以訓練樣本要儘可能的全面,覆蓋所有的數據類型
- 噪聲影響過大
- 模型過於複雜
- 解決辦法
- 在訓練和建立模型的時候,從相對簡單的模型開始,不要一開始就把特徵做的非常多,模型參數跳的非常複雜。
- 增加樣本,要覆蓋全部的數據類型。數據經過清洗之後再進行模型訓練,防止噪聲數據干擾模型。
- 正則化。在模型算法中添加懲罰函數來防止過擬合。常見的有L1,L2正則化。
- 集成學習方法bagging(如隨機森林)能有效防止過擬合
- 減少特徵個數(不是太推薦)
- 原因