模型評估的一些方法理論(演算法理論)

2021-09-20 07:20:49 字數 1319 閱讀 8181

main:

一、混淆矩陣

混淆矩陣就是如下圖所示的那樣,也是最簡單的一種模型驗證方法:

通過混淆矩陣可以算出模型**精度((a+d)/(a+b+c+d))、正例覆蓋率(b/(c+d))、負例覆蓋率(a/(a+b))等。通過這麼些指標綜合考慮模型的**準確率。

二、roc曲線

在講解roc曲線之前,我們先看看幾個定義:

sensitivity:正確**到的正例數/實際正例總數,即b/(c+d)

specificity:正確**到的負例數/實際負例總數,即a/(a+b)

roc曲線就是根據這兩個指標值繪製出來的,其中x軸為1-specificity,y軸為sensitivity。

通過比較roc曲線與45°直線可以直觀的反映模型的好壞,但並不能從定量的角度反饋模型好是好到什麼程度或模型差是差到什麼程度。

那麼就引申出了auc的概念,即roc曲線下的面積。當曲線偏離45°直線越遠,則auc越大,模型相應就會越好。一般認為auc在0.75以上,模型就可以接受了。

三、提公升度lift

在講解提公升度曲線之前,我們先看看幾個定義:

pi:測試集中正例的比例,即(c+d)/(a+b+c+d)

ptp:正確**到的正例個數佔總觀測值的比例,即d/a+b+c+d=pi1* sensitivity

pfp:把負例錯誤地**成正例的個數佔總數的比例,即b/a+b+c+d=(1-pi1)*(1- specificity) 

depth:**成正例的比例,即b+d/a+b+c+d=ptp+pfp

pv_plus:正確**到的正例數/**正例總數,即d/(b+d)=ptp/depth

提公升度lift=(d/b+d)/(c+d/a+b+c+d)=pv_plus/pi1

lift曲線就是根據depth和lift兩個指標繪製而成,它反映了**正例的正真準確率。

四、增益法gain

其實增益法gain與提公升度是乙個事物的兩種說法,從公式中就可以看出:

gain=d/(b+d)=pv_plus

gain與提公升度相比並沒有除以pi值。

五、k-s統計量

統計學中,對於單樣本的k-s檢驗就是利用樣本資料來推斷其是否服從某種分布,對於兩樣本的k-s檢驗主要推測的是兩個樣本是否具有相同的分布,

對於模型的評估,希望正例的累積概率分布與負例的累積概率分布存在顯著差異。

所以我們使用k-s統計量刻畫模型的優劣,即使正例與負例的累積概率差達到最大。

k-s <0.2 差

0.2~0.4 一般

0.4~0.5 好

0.5~0.6 很好

0.6~0.75 非常好

0.75~1 完美

二叉樹的遍歷方法 理論

目錄 1 遍歷的方式 2 先序遍歷 3 中序遍歷 4 後序遍歷 5 層次遍歷 按照根的訪問順序的不同,根在前面的稱為先序遍歷 dlr 根在中間的稱為中序遍歷 ldr 根在最後的稱為後序遍歷 lrd d data代表根結點的資料 l 代表左子樹 r 代表右子樹 步驟 先訪問根節點,然後訪問根結點的左子...

為什麼說已有EM演算法理論是錯的?

流行的em演算法收斂證明聲稱 q和混合模型的似然度是正相關的,m step最大q,e step不減q,所以重複m step和e step就能收斂。但是我的研究發現,e step可能減小q,而且在某些情況下,q應該減小。乙個反例如下圖 新的理論認為,e step的作用是減小夏農互資訊 但是不夠,還需要...

判斷字元是否為空的一些方法理解

判斷乙個字串為空的方法 string str if str null str.equals 判斷字串是否為空,要先判斷str是不是物件,再判斷str是不是空字串 以下的是錯誤的 f str.equals str null 因為物件才能呼叫方法,null不是物件。判斷乙個字串為空,首先就要確保他不是n...