訓練模型和衡量模型的好壞


如果你看了前面幾篇博客,我們說了決策樹,說了adaboost,這次我們說下模型訓練和衡量模型的好壞

其實我們已經訓練了模型了,例如決策樹的生成時模型訓練,adaboost的實現也是模型訓練的過程,所以我們已經訓練了好幾個模型,只是那個具體的模型,並且我們沒有把模型保存下來

可能覺得自己不是在訓練模型。

模型訓練的輸出是模型,什么是模型呢?

我們生成的決策樹是模型,adaboost的那幾條加權直線也是模型。

模型里面是什么?

模型里面是一系列的判斷或者計算,對於任何一個預測數據,通過模型最終得到一個預測值。

如何衡量模型的好壞?我們着重討論這個問題,下面我們就二分類問題討論模型好壞的衡量

精度和召回率

大的矩形是正負樣本組成的訓練集,右邊的半矩形是正樣本,左邊的半矩形是負樣本,中間的圓圈是預測為正的樣本,那么精度precision和召回率recall的計算方法如右圖所示

精度描述的是預測為正的結果里面真正正樣本的比例,召回率描述的是:正樣本里面被預測為正的比例

准確度

(true positive + true negative)/all:描述的是整個訓練集預測正確的比例

那么如何利用這些指標衡量模型的好壞呢?

理想情況下,肯定是希望模型可以預測為正的全部都是正樣本,並且全部的正樣本都預測為正,精度和召回率都是100%

現實情況是,如果我們提高了精度,讓預測為正的都是正樣本,很可能就導致很多正樣本沒有被召回;如果我們提高了召回率,讓更多的正樣本被預測為正,很可能就會誤把一些負樣本預測為正,降低了精度。

精度和召回率升高到一定程度時,在一定范圍是此起彼伏的關系, 那么如何衡量精度和召回率之間的關系呢?

 fbeta

 

fbeta定義了一個衡量精度和召回率的可調函數,我們可以通過調整beta的值來更傾向於提高精度還是召回率

我們的目標都是希望fbeta值越大越好。

當beta=1時:希望fbeta越大越好的同時,同時提高進度和召回率

當beta<1時:希望在提高fbeta的同時,更多的提高召回率

當beta>1時:希望在提高fbeta的同事,更多的提高精度。

總結,對於二分類問題,我們可以用精度或者召回率來衡量模型的好壞,如果我們想用一個統一的評價,我們可以使用fbeta,還可以設定beta值,更多的提高精度或者召回率。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM