常用算法評價(jià)指標(biāo)|盤點(diǎn)與選擇

目錄

一、前言
二、FM模型簡單介紹
三、模型調(diào)試階段
1.數(shù)據(jù)集調(diào)整
2.參數(shù)調(diào)整

四、模型評估階段

  • 知識鋪墊(混淆矩陣)
  • 準(zhǔn)確度(Accuracy)
  • 誤差(error)
  • 查準(zhǔn)率(precision)
  • 召回率(recall)
  • PRC
  • F1-score
  • ROC曲線和AUC
  • KAPPA系數(shù)
  • NDCG

五高氮、總結(jié)

一、前言

本文借助FM模型來了解算法的評價(jià)標(biāo)準(zhǔn)顷牌。因此重點(diǎn)在評價(jià)標(biāo)準(zhǔn)剪芍,而不在模型本身。
  • 機(jī)器學(xué)習(xí)發(fā)展至今窟蓝,有很多算法供我們選擇罪裹,但我們?nèi)绾芜x擇最合適的算法呢?如果需要程序員自己一步步篩選,這是非常耗時(shí)間的状共。那么有沒有一種簡易的方式套耕,能告訴我們這個(gè)模型到底好不好呢?bingo峡继!那就是評價(jià)標(biāo)準(zhǔn)冯袍!評價(jià)標(biāo)準(zhǔn)通常以數(shù)字呈現(xiàn),通過這個(gè)數(shù)字的大小我們就可以比較算法們的好壞碾牌。
  • 在這里我希望大家能帶著思考去看本文康愤。是不是誤差越小就越好?評價(jià)標(biāo)準(zhǔn)能100%說明算法的好壞嗎小染?

二翘瓮、FM模型的簡單介紹

1贮折、FM模型應(yīng)用意義

FM(Factorization Machine)主要是為了解決數(shù)據(jù)稀疏的情況下裤翩,特征怎樣組合的問題。數(shù)據(jù)稀疏性普遍存在的實(shí)際應(yīng)用場景中调榄,二階特征系數(shù)w{ij}的訓(xùn)練是很困難的.

2踊赠、公式與參數(shù)

FM模型公式

模型參數(shù)

化簡后的FM模型公式
  • w_{0}\in \mathbb{R}表示FM的偏置
  • w\in \mathbb{R}^{n}表示FM模型對一階特征的建模
  • V\in \mathbb{R}^{nk}表示FM模型對二階特征的建模

3、FM模型重要原理|矩陣分解

  • FM模型是矩陣分解的經(jīng)典算法每庆,因此在這里對矩陣分解的原理進(jìn)行講解筐带。

  • 我們希望的到的結(jié)果是:\widehat{w}=V\times V^{T}隱向量矩陣相乘的結(jié)果


(1) 二階特征組成矩陣V:(矩陣V的第i行表示:第i維特征x_{i}的隱向量v_{i}

$V$矩陣


(2)V矩陣轉(zhuǎn)置

$V$矩陣的轉(zhuǎn)置


(3)多項(xiàng)式模型的二階特征w_{ij}組成的方陣W
W=\begin{bmatrix} w_{11}&w_{12}& \cdots &w_{1n}\\ w_{21} &w_{22} & \cdots &w_{2n} \\ \cdots &\cdots &\cdots &\cdots \\ w_{n1} &w_{n2} &\cdots &w_{nn} \end{bmatrix}

  • 方陣W的上三角的元素(不包括對角線上的元素),即為多項(xiàng)式模型的二階特征系數(shù)w_{ij}
  • 注意: 為什么只是上三角缤灵?因?yàn)楸仨?img class="math-inline" src="https://math.jianshu.com/math?formula=i%3Cj" alt="i<j" mathimg="1">

(4)<V_{i},V_{j}>組成方陣 \hat{w}
\hat{w}= V\times V^j = \begin{bmatrix} v_{1}^T\\ v_{2}^T\\ \cdots \\ v_{n}^T \end{bmatrix}\times \begin{bmatrix} v_{1} &v_{2} &\cdots & v_{n} \end{bmatrix}
= \begin{bmatrix} v_{1}^Tv_{1} & v_{1}^Tv_{2} &\cdots & v_{1}^Tv_{n}\\ v_{2}^Tv_{1} & v_{2}^Tv_{2} &\cdots &v_{2}^Tv_{n} \\ \cdots & \cdots &\cdots &\cdots \\ v_{n}^Tv_{1} &v_{n}^Tv_{2} &\cdots &v_{n}^Tv_{n} \end{bmatrix}
= \begin{bmatrix} v_{1}^Tv_{1} & \hat{w}_{12} &\cdots & \hat{w}_{1n}\\ \hat{w}_{21} & v_{2}^Tv_{2} &\cdots &\hat{w}_{2n} \\ \cdots & \cdots &\cdots &\cdots \\ \hat{w}_{n1} &\hat{w}_{n2} &\cdots &v_{n} ^Tv_{n} \end{bmatrix}

  • 方陣\hat{W}的上三角的元素(不包括對角線)伦籍,即為FM模型的二階特征系數(shù):<v_{i}v_{j}>
  • 注意:i<j
  • FM模型只關(guān)心互異特征之間的關(guān)系(i<j),所以對角線可以任意取值腮出。
矩陣分解結(jié)論:

當(dāng)超參數(shù)k充分大帖鸦,對于任意正定的實(shí)矩陣\hat{W}\in R_{n\times n},均存在實(shí)矩陣\hat{V}\in R_{n\times k}使得\widehat{w}=V\times V^{T}


  • 補(bǔ)充: 本次實(shí)驗(yàn)我們用FM模型對電影等級評價(jià)進(jìn)行分類胚嘲。采用的損失函數(shù)為logit邏輯函數(shù)作儿,采用SGD優(yōu)化目標(biāo)函數(shù)

在這里對FM模型其他方面不過多闡述,詳情移步


?

三馋劈、模型調(diào)試階段

1.數(shù)據(jù)集調(diào)試

  • Q: 數(shù)據(jù)集越大越好嗎攻锰?
    A:一般情況下,數(shù)據(jù)集越大越好妓雾,但這個(gè)一般有成立前提娶吞。
    這個(gè)答案放在10年前、20年前械姻,答案毋庸置疑是yes寝志。當(dāng)時(shí)很流行一句話“不是擁有最好的算法的人會成功,而是擁有最多數(shù)據(jù)的人能成功〔牟浚”但是這句話成立有前提條件
    前提條件①特征值x包含了足夠多的信息來預(yù)測y毫缆。
    舉個(gè)例子:房價(jià)預(yù)測模型,如果數(shù)據(jù)集包括了很多房子乐导,但是特征值只有房子大小苦丁,其他特征如地段、周圍配套一概不知物臂,無疑這個(gè)數(shù)據(jù)集即使很大但也無法無法很好地提升算法性能旺拉。
    前提條件②所使用的算法具有較強(qiáng)的學(xué)習(xí)能力(參數(shù)比較多的),能夠更好地處理大的數(shù)據(jù)集棵磷。
    綜上所述:一個(gè)高性能的學(xué)習(xí)算法搭配擁較多的特征值信息的大數(shù)據(jù)集蛾狗,才是數(shù)據(jù)集越大越好成立的前提條件。

(1)數(shù)據(jù)集的劃分

由于我們是百萬級別的數(shù)據(jù)仪媒,因此我們采用留出法(hold-out)將數(shù)據(jù)集劃分為訓(xùn)練集和測試集沉桌。
留出法直接將數(shù)據(jù)集D劃分為兩個(gè)互斥的部分,其中一部分作為訓(xùn)練集S 算吩,另一部分用作測試集T留凭。訓(xùn)練集和測試集的比例為70%:30%

  • 2萬個(gè)數(shù)據(jù)保持與原始數(shù)據(jù)分布的一致性,避免出現(xiàn)額外偏差偎巢,采用若干次隨機(jī)劃分蔼夜,避免單次使用留出法的不穩(wěn)定性。
from sklearn.model_selection import train_test_split
X=df.drop('rating', axis=1)
Y=df['rating']
X_train,X_val,Y_train,Y_val=train_test_split(X, Y, test_size=0.3, random_state=3)

(2)調(diào)整數(shù)據(jù)集大小

學(xué)習(xí)率為0.001,數(shù)據(jù)集為2000

學(xué)習(xí)率為0.001窍霞,數(shù)據(jù)集為20000

我們可以得到這樣的結(jié)論:

  • 在數(shù)據(jù)集樣本數(shù)量較少時(shí)(2000個(gè))匠题,改變迭代次數(shù)的作用明顯。.誤差變化很大官撼,整體不穩(wěn)定
  • 在數(shù)據(jù)集樣本數(shù)量較大時(shí)(2萬個(gè))改變迭代次數(shù)作用不大梧躺。總體上看傲绣,在迭代次數(shù)為5左右達(dá)到局部最優(yōu)掠哥。并大約在迭代次數(shù)5之后達(dá)到穩(wěn)定不變。
  • 在我們誤差極值差不多的前提前秃诵,為了追求穩(wěn)定性续搀,我們選擇2萬的數(shù)據(jù)。

?

2.參數(shù)調(diào)整

根據(jù)以往的經(jīng)驗(yàn)菠净,這里我主要對學(xué)習(xí)率迭代數(shù)進(jìn)行調(diào)整禁舷。

(1) 調(diào)試方法 1 其他參數(shù)不變 調(diào)整迭代數(shù)(學(xué)習(xí)率為0.001彪杉,數(shù)據(jù)集為20000)

(學(xué)習(xí)率為0.001,數(shù)據(jù)集為20000)

結(jié)論:在較大的數(shù)據(jù)集下牵咙,不改變其他參數(shù)的前提下派近,迭代次數(shù)1-10對模型準(zhǔn)確度和誤差的影響較大。迭代數(shù)超過10后影響不大洁桌。


(2)調(diào)試方法2 調(diào)整學(xué)習(xí)率

迭代數(shù)渴丸、學(xué)習(xí)率與訓(xùn)練誤差的關(guān)系

迭代數(shù)、學(xué)習(xí)率與泛化誤差的關(guān)系

  • 可以看出訓(xùn)練誤差和泛化誤差差別不大另凌,過擬合的可能性很低谱轨。因此,我們觀察泛化誤差吠谢,尋找最優(yōu)參數(shù)搭配即可土童。
  • 總體上看,學(xué)習(xí)率為0.005的泛化誤差平均值最小工坊。因此献汗,考慮選擇學(xué)習(xí)率為0.005。同時(shí)可以看到學(xué)習(xí)率為0.005訓(xùn)練次數(shù)為72的時(shí)候栅组,泛化誤差最小雀瓢。
  • 雖然迭代數(shù)為10之后影響不大枢析,但是我們在細(xì)微的變化中選擇最優(yōu)的
  • 因此玉掸,目前得到的最優(yōu)參數(shù)搭配:數(shù)據(jù)集20000,迭代數(shù)72 醒叁,學(xué)習(xí)率0.005.

?

四司浪、模型評估階段

1、知識鋪墊|混淆矩陣

混淆矩陣
  • True Positive (真正把沼,TP)被模型預(yù)測為正的正樣本
  • True Negative(真負(fù) , TN)被模型預(yù)測為負(fù)的負(fù)樣本
  • False Positive (假正, FP)被模型預(yù)測為正的負(fù)樣本
  • False Negative(假負(fù) , FN)被模型預(yù)測為負(fù)的正樣本

FM模型運(yùn)行結(jié)果

?

2啊易、準(zhǔn)確度(Accuracy)

準(zhǔn)確度公式
  • 準(zhǔn)確度(Accuracy)用來計(jì)算預(yù)測正確的樣本占所有樣本的比重
  • 是我們最常用的評價(jià)指標(biāo),一般來說這個(gè)數(shù)值越高越好饮睬。


    FM模型準(zhǔn)確度租谈,數(shù)據(jù)集20000,學(xué)習(xí)率0.005 迭代數(shù)72

評價(jià)結(jié)果:從準(zhǔn)確度上看捆愁,F(xiàn)M模型在電影評價(jià)分類上表現(xiàn)水平較為一般割去。


?

3、誤差(error)

(1) 知識鋪墊:(經(jīng)驗(yàn)誤差|泛化誤差|欠擬合|過擬合)
  • 學(xué)習(xí)器在訓(xùn)練集上的誤差成為“訓(xùn)練誤差”或“經(jīng)驗(yàn)誤差”昼丑。在新樣本上的誤差稱為“泛化誤差”呻逆。我們更看重泛化誤差,因?yàn)榉夯`差越小菩帝,代表這個(gè)個(gè)模型的泛化能力越好咖城。
  • 然而可能會存在這種情況:某個(gè)模型訓(xùn)練誤差很小茬腿,泛化誤差很大。就是說在訓(xùn)練集上表現(xiàn)非常優(yōu)秀宜雀,近乎完美的預(yù)測/區(qū)分了所有的數(shù)據(jù)切平,但是在新的測試集上卻表現(xiàn)平平。這時(shí)候就出現(xiàn)了模型對于訓(xùn)練集出現(xiàn)了過擬合的現(xiàn)象辐董,對于測試集出現(xiàn)了欠擬合的現(xiàn)象揭绑。
  • 點(diǎn)擊過擬合和欠擬合了解更多。

(2) 對于分類問題郎哭,我們常采用“l(fā)ogit邏輯函數(shù)”
logit函數(shù)
  • 談到Logit我們不得不談到sigmoid
    函數(shù)在跳躍點(diǎn)上從0瞬間跳躍到1他匪,這個(gè)瞬間跳躍過程有時(shí)很難處理。幸 好夸研,另一個(gè)函數(shù)也有類似的性質(zhì)邦蜜,而且數(shù)學(xué)上更易處理,這就是Sigmoid函數(shù)亥至,
def sigmoid(x):
    return 1 / (1 + np.exp(-x))

'''計(jì)算logit損失函數(shù):L = log(1 + e**(y_hat * y))'''
def logit(y, y_hat):
    return np.log(1 + np.exp(-y * y_hat))

(3) 評估結(jié)論

詳細(xì)的評估過程其實(shí)已經(jīng)在參數(shù)調(diào)整里說明過了,這里不再復(fù)述姐扮。泛化誤差與訓(xùn)練誤差皆在0.67左右絮供,過擬合可能性低,但高達(dá)0.67的泛化誤差茶敏,仍然說明了這個(gè)FM模型在電影評分分類表現(xiàn)不佳壤靶。


?

4、查準(zhǔn)率(Precision)

  • 計(jì)算公式:
    P=\frac{TP}{TP+FP}
  • 查準(zhǔn)率是預(yù)測為真中確實(shí)為真所占的比重惊搏。


    查準(zhǔn)率

FM模型結(jié)果

評估結(jié)果

  • 我們可以看到學(xué)習(xí)率為0.005贮乳,迭代數(shù)為50時(shí),PRECISION達(dá)到了局部最優(yōu)恬惯,相較于別的學(xué)習(xí)率向拆,學(xué)習(xí)率0.005在PRECISION上表現(xiàn)不錯。
  • 整體而言PRECISION值在0.54左右酪耳,確實(shí)為真占預(yù)測為真的比重超過一半浓恳,F(xiàn)M模型性能在電影評分分類上還算一般。

?

5碗暗、召回率(Recall)

  • 召回率是預(yù)測為真占確實(shí)為真的比重颈将。
  • 計(jì)算公式:
    R=\frac{TP}{TP+FN}

評估結(jié)果

  • 從召回率看,如果我們追求穩(wěn)定性讹堤,就選擇學(xué)習(xí)率為0.01的吆鹤,平均值在0.38左右。如果我們追求高的recall洲守,我們就選你學(xué)習(xí)率為0.0001疑务,迭代數(shù)為1的參數(shù)搭配沾凄。
  • 整體而言,RECALL在0.4左右知允,預(yù)測為真占確實(shí)為真的比重較低撒蟀,性能一般。

TIPS:查準(zhǔn)率和召回率的關(guān)系
查準(zhǔn)率和查全率是一對矛盾的度量温鸽,一般而言保屯,查準(zhǔn)率高時(shí),查全率往往偏低涤垫;而查全率高時(shí)姑尺,查準(zhǔn)率往往偏低。

那么問題來了蝠猬。如何在precision 和recall中權(quán)衡切蟋?
當(dāng)然是具體問題具體分析。主要看你目的榆芦,但我們會希望盡量避免極端情況柄粹。

舉個(gè)例子:

  • 癌癥篩查,一般會要求高的查準(zhǔn)度匆绣,并不要求高的查全率驻右。因?yàn)椋叩牟槿势榇荆瑑H僅說明更多的人被測出可能得癌癥堪夭,但是卻不能精確地指出真正得癌癥的人,不夠精確的可能會給測試者帶來心理上的負(fù)擔(dān)凯力,最后讓測試者虛驚一場茵瘾。
  • 但如果是病毒篩查礼华,一般會要求高的查全率的咐鹤,因?yàn)椤皩幙险`殺、不肯錯放”圣絮,不小心放出去的攜帶病毒者祈惶,可能會導(dǎo)致悲劇的后果。
  • 如果你先上述過程太麻煩扮匠,懶癌患者首選:PRC和F1曲線

?

6捧请、PRC曲線

  • PRC (全稱就是Precision Recall Curve)
  • 以查準(zhǔn)率為Y軸,查全率為X軸做的圖棒搜。它是綜合評價(jià)整體結(jié)果的評估指標(biāo)疹蛉。
  • 在進(jìn)行比較時(shí),若一個(gè)學(xué)習(xí)器的PR曲線被另一個(gè)學(xué)習(xí)器的曲線完全包住力麸,則可斷言后者的性能優(yōu)于前者.

評估結(jié)果

PRC

從PRC曲線上看可款,我們試圖找均衡點(diǎn)育韩,(0.59,0.3)闺鲸,但仍然離右上角有些遠(yuǎn)筋讨,說明FM模型對于電影評分分類較為一般。


?

7摸恍、F1 -score

  • F1-scores是一個(gè)綜合考慮了Precison和recall的指標(biāo)悉罕,它被定義為精確率和召回率調(diào)和平均數(shù)
    比P-R曲線的平衡點(diǎn)更為常用
  • 相較于P-R曲線,F(xiàn)1能夠避免極端情況立镶,即能避免P極高壁袄,R極其低,或者P極低媚媒,R極高的情況然想,因?yàn)檫@兩個(gè)值其中有一個(gè)很低,F(xiàn)1就會很低欣范,一目了然变泄,我們就能知道模型綜合優(yōu)劣。
  • 計(jì)算公式:
    F1=2\times \frac{PR}{P+R}

評估結(jié)果


  • 從F1-score來看恼琼,學(xué)習(xí)率為0.01時(shí)妨蛹,F(xiàn)M分類器較為穩(wěn)定。
  • 但是F1-score的極大值出現(xiàn)在學(xué)習(xí)率0.0001晴竞,迭代數(shù)為1次時(shí)蛙卤,但是極差大,穩(wěn)定性較低噩死。
  • 參數(shù)選擇:若最求高的F1-score颤难,就選擇學(xué)習(xí)率為0.0001的,若求穩(wěn)已维,就選擇學(xué)習(xí)率為0.01的行嗤。
  • 模型評估:F1-score的整體平均值在0.44左右。FM模型在電影評分分類上性能表現(xiàn)一般垛耳。

?

8栅屏、ROC&AUC

  • ROC全稱是“受試者工作特征”(Receiver Operating Characteristic)曲線,ROC曲線以“真正例率”(TPR)為Y軸堂鲜,以“假正例率”(FPR)為X軸栈雳,對角線對應(yīng)于“隨機(jī)猜測”模型,而(0,1)則對應(yīng)“理想模型”缔莲。

TPR=\frac{TP}{TP+FN}
FPR=\frac{FP}{TN+FP}

  • 從形式上看TPR就是我們上面提到的查全率Recall哥纫,而FPR的含義就是:所有確實(shí)為“假”的樣本中,被誤判真的樣本痴奏。
  • 若一個(gè)學(xué)習(xí)器的ROC曲線被另一個(gè)學(xué)習(xí)器的曲線包住蛀骇,那么我們可以斷言后者性能優(yōu)于前者奖慌;
  • 若兩個(gè)學(xué)習(xí)器的ROC曲線發(fā)生交叉,則難以一般性斷言兩者孰優(yōu)孰劣松靡。此時(shí)若要進(jìn)行比較简僧,那么可以比較ROC曲線下的面積,即AUC雕欺,面積大的曲線對應(yīng)的分類器性能更好恋沃。

  • AUC(Area Under Curve)的值為ROC曲線下面的面積宜狐,若分類器的性能極好臭埋,則AUC為1罢艾。但現(xiàn)實(shí)生活中不會有如此完美的模型,一般AUC均在0.5到1之間笛洛,AUC越高夏志,模型的區(qū)分能力越好。
  • 點(diǎn)擊全面了解ROC曲線了解更多

評估結(jié)果


  • 從ROC曲線看苛让,我們可以看出最優(yōu)零界點(diǎn)距離(0沟蔑,1)還是有些遠(yuǎn),因此用FM模型來對電影評分分類效果不佳狱杰。
  • AUC值約為0.57瘦材,起碼大于了0.5,說明FM模型對于電影評分的分類還是可以用的仿畸,只是性能一般

?

9食棕、KAPPA系數(shù)

  • Kappa系數(shù)用于一致性檢驗(yàn),也可以用于衡量分類精度

  • Kappa計(jì)算結(jié)果為-1~1错沽,但通常kappa是落在 0~1 間簿晓,可分為五組來表示不同級別的一致性:
    ①0.0~0.20 極低的一致性(slight)
    ②0.21~0.40 一般的一致性(fair)
    ③0.41~0.60 中等的一致性(moderate)
    ④0.61~0.80 高度的一致性(substantial)
    ⑤0.81~1幾乎完全一致(almost perfect)

  • 計(jì)算公式:
    K=\frac{P_{0}-P_{e}}{1-P_{e}}

  • 解釋:
    P_{0}是每一類正確分類的樣本數(shù)量之和除以總樣本數(shù),也就是總體分類精度
    ②假設(shè)每一類的真實(shí)樣本個(gè)數(shù)分別為a_{1},a_{2},...,a_{m}千埃,而預(yù)測出來的每一類的樣本個(gè)數(shù)分別為b_{1},b_{2},...,b_{m},總樣本個(gè)數(shù)為n憔儿,則有P_{e}=\frac{a_{1}\times b_{1}+a_{2}+b_{2}+\cdots +a_{m}\times b_{m}}{n\times n}
  • 點(diǎn)擊Kappa系數(shù)在大數(shù)據(jù)評測中的運(yùn)用了解更多

評估結(jié)果

Kappa系數(shù): 0.1431773928163418

KAPPA系數(shù)越為0.14,處于0~0.2的區(qū)間镰禾,證明FM模型對于電影評分的分類具有極低的一致性皿曲。


?

10、NDCG

(1)含義與要點(diǎn)
  • NDCG(Normalized Discounted Cummulative Gain)用中文表達(dá)為歸一化折損累計(jì)增益
  • 高關(guān)聯(lián)度的結(jié)果比一般關(guān)聯(lián)度的結(jié)果更影響最終的指標(biāo)得分吴侦;
  • 有高關(guān)聯(lián)度的結(jié)果出現(xiàn)在更靠前的位置的時(shí)候,指標(biāo)會越高坞古;
(2) 評價(jià)結(jié)果
test-ndcg

test-ndcg

結(jié)論:我們可以看到學(xué)習(xí)率為0.005在迭代次數(shù)為250時(shí)备韧,ndcg值達(dá)到最大,但這個(gè)0.365258仍不夠看痪枫。而NDCG是0到1的數(shù)织堂,越接近1說明模型性能越好叠艳。因此,我們的FM模型電在影評分的二分類場景下表現(xiàn)較差易阳。


(3)分解與推進(jìn)

TIP:要理解NDCG附较,我們需從CG到DCG再到NDCG.

1)累積增益CG,推薦系統(tǒng)中CG表示將每個(gè)推薦結(jié)果相關(guān)性的分值累加后作為整個(gè)推薦列表的得分:CG_{k}=\sum_{i=1}^{k}rel_{i}

  • 解釋rel_{i}表示位置i的相關(guān)性潦俺,k表示推薦列表的大小拒课。
  • 缺點(diǎn):只考慮到了相關(guān)性的關(guān)聯(lián)程度,沒有考慮到位置的因素事示。即B_{1}早像、B_{2}B_{3}B_{1} 肖爵、B_{2} 卢鹦、B_{3}沒有區(qū)別
  • 基于上述的缺點(diǎn),我們需要引入DCG

2)折損累計(jì)增益(DCG)
DCG劝堪, Discounted 的CG冀自,就是在每一個(gè)CG的結(jié)果上除以一個(gè)折損值。目的就是為了讓排名越靠前的結(jié)果越能影響最后的結(jié)果秒啦。

DCG_{K}=\sum_{i=1}^{k}\frac{2^{rel_{i}}-1}{log_{2}(i+1)}

  • 作用
    ①推薦結(jié)果的相關(guān)性越大凡纳,DCG越大。
    ②若相關(guān)性好的排在推薦列表前面帝蒿,則推薦效果越好荐糜,DCG越大。
  • 缺點(diǎn)
    DCG針對不同的推薦列表之間很難進(jìn)行橫向評估葛超,而我們評估一個(gè)推薦系統(tǒng)不可能僅使用一個(gè)用戶的推薦列表及相應(yīng)結(jié)果進(jìn)行評估暴氏,而是對整個(gè)測試集中的用戶及其推薦列表結(jié)果進(jìn)行評估。 因此在用戶與用戶之間绣张,DCG沒有直接的可比性答渔,所以我們要對它們進(jìn)行歸一化處理

3)歸一化折損累計(jì)增益NDCG
對于不同用戶的推薦列表的評估分?jǐn)?shù)就進(jìn)行歸一化,就是NDCG,normalize后的DCG
NDCG_{K}=\frac{DCG_{K}}{IDCG_{K}}
IDCG為理想情況下最大的DCG值:
IDCG_{K}=\sum_{i=1}^{\left |REL \right |}\frac{2^{rel_{i}}-1}{log_{2}(i+1)}
其中 |REL| 表示侥涵,結(jié)果按照相關(guān)性從大到小的順序排序沼撕,取前K個(gè)結(jié)果組成的集合。也就是按照最優(yōu)的方式對結(jié)果進(jìn)行排序芜飘。

?

五务豺、總結(jié)

1、評價(jià)總結(jié)

FM第1次迭代嗦明,當(dāng)前損失值為:0.6732
FM第21次迭代笼沥,當(dāng)前損失值為:0.6723
FM第41次迭代,當(dāng)前損失值為:0.6723
FM第61次迭代,當(dāng)前損失值為:0.6723
FM在測試集的分類準(zhǔn)確率為: 60.25%
FM在訓(xùn)練集的分類準(zhǔn)確率為: 59.75%
訓(xùn)練集roc: 56.54%
混淆矩陣: 
 [[6558 1265]
 [4370 1806]]
驗(yàn)證集roc: 56.77%
混淆矩陣: 
 [[2803  608]
 [1777  812]]
查準(zhǔn)率: 0.571830985915493
查全率: 0.31363460795674003
查準(zhǔn)率與查全率的調(diào)和平均: 0.4050885507607882
ndcg指標(biāo): 0.35131512781803936
AUC: 0.5676938797625974
Kappa系數(shù): 0.1431773928163418
海明距離: 0.3975
程序運(yùn)行了: 0:04:53.367329 秒

Process finished with exit code 0

從準(zhǔn)確率看奔浅,F(xiàn)M性能在電影評分分類里表現(xiàn)一般馆纳,查準(zhǔn)率高于查全率,確實(shí)為真占預(yù)測為真的比重高于預(yù)測為真占確實(shí)為真的比重汹桦。ndcg在0.35左右鲁驶,KAPPA 系數(shù)在0.143左右,F(xiàn)M模型在電影評分分類中性能表現(xiàn)不佳舞骆。AUC與PRC表現(xiàn)差距不大钥弯,證明正負(fù)樣本分布均勻「鹱鳎總的來說寿羞,這么多評價(jià)指標(biāo)都指向了一個(gè)結(jié)果:FM模型在電影評分分類中性能表現(xiàn)一般。


?

2赂蠢、方法總結(jié)

  • Q:回答我們開頭的問題绪穆,評價(jià)標(biāo)準(zhǔn)能100%說明模型的好壞嗎
    A:評價(jià)標(biāo)準(zhǔn)反映了任務(wù)需求虱岂,在對比不同的模型能力時(shí)玖院,使用不同的評價(jià)標(biāo)準(zhǔn)會導(dǎo)致不同的評價(jià)結(jié)果,這意味者模型的好壞時(shí)相對的第岖,什么樣的模型是好的难菌,不僅僅取決于算法和數(shù)據(jù),還決定于任務(wù)需求,如我們前面提到的癌癥篩查蔑滓、病毒篩查郊酒。垃圾短信分類也同理。

  • Q:誤差越小越好嗎键袱?
    A:不是的燎窘,訓(xùn)練誤差和泛化誤差這些我就不談了,除了過擬合的風(fēng)險(xiǎn)蹄咖,我們還有一個(gè)就是因?yàn)閿?shù)據(jù)選取了較多符合模型預(yù)測的褐健,比如我們想要一個(gè)模型預(yù)測出1的準(zhǔn)確率達(dá)到99%,那么有些人的數(shù)據(jù)里可能就放99個(gè)1澜汤,1個(gè)-1蚜迅,所以別看誤差小~這實(shí)際上是模型在“欺騙你”

    迭代數(shù)為25 學(xué)習(xí)率為0.001 數(shù)據(jù)為2000的欺騙結(jié)果


  • 那么具體到底如何選擇評價(jià)標(biāo)準(zhǔn)呢?

①關(guān)于precision和recall的兩者的權(quán)衡
兩者的權(quán)衡主要參考任務(wù)需求
舉個(gè)例子俊抵,垃圾短信分類谁不。如果我們不希望漏掉任何重要短信時(shí),我們可以選擇高的recall务蝠,相對低的precision拍谐。如果我們痛惡垃圾短信烛缔,重要信息被漏掉也無妨馏段,那就選擇高的precision轩拨,低的recall。

②關(guān)于PRC和F1的選擇院喜。
PRC的均衡點(diǎn)是Precision亡蓉、recall的簡單算數(shù)平均數(shù)。而F1是Precision recall的調(diào)和平均數(shù)喷舀。這意味著砍濒,相比PRC,F(xiàn)1更加能避免極端情況硫麻。precision和recall 其中一個(gè)值很低爸邢,F(xiàn)1值就會低,而PRC只要其中一個(gè)值很高拿愧,另一個(gè)值很低也不影響PRC的值杠河。因?yàn)椋?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Cfrac%7B0.1%2B0.9%7D%7B2%7D" alt="\frac{0.1+0.9}{2}" mathimg="1">,\frac{0.9+0.1}{2} \frac{0.5+0.5}{2}在PRC曲線里都一樣浇辜。因此券敌,關(guān)于PRC和F1兩者的選擇,更取決于你在不在乎極端情況的出現(xiàn)柳洋。

關(guān)于PRC和ROC的選擇
ROC和PRC在模型性能評估上效果都差不多待诅,但需要注意的是,在正負(fù)樣本分布得極不均勻(highly skewed datasets)的情況下熊镣,PRC比ROC能更有效地反應(yīng)分類器的好壞卑雁。點(diǎn)擊這了解更多

希望本篇文章能夠?qū)δ阌兴鶐椭裁?: )


代碼來自GitHub
https://gith<wbr>ub.com/moren<wbr>jiujiu/FM/bl<wbr>ob/master/FM<wbr>_Demo.ipynb

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末绪囱,一起剝皮案震驚了整個(gè)濱河市测蹲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌毕箍,老刑警劉巖弛房,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異而柑,居然都是意外死亡文捶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門媒咳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來粹排,“玉大人,你說我怎么就攤上這事涩澡⊥缍” “怎么了?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長射富。 經(jīng)常有香客問我膝迎,道長,這世上最難降的妖魔是什么胰耗? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任限次,我火速辦了婚禮,結(jié)果婚禮上柴灯,老公的妹妹穿的比我還像新娘卖漫。我一直安慰自己,他們只是感情好赠群,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布羊始。 她就那樣靜靜地躺著,像睡著了一般查描。 火紅的嫁衣襯著肌膚如雪突委。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天叹誉,我揣著相機(jī)與錄音鸯两,去河邊找鬼。 笑死长豁,一個(gè)胖子當(dāng)著我的面吹牛钧唐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播匠襟,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼钝侠,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了酸舍?” 一聲冷哼從身側(cè)響起帅韧,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎啃勉,沒想到半個(gè)月后忽舟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淮阐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年叮阅,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片泣特。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡浩姥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出状您,到底是詐尸還是另有隱情勒叠,我是刑警寧澤兜挨,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站眯分,受9級特大地震影響拌汇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颗搂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一担猛、第九天 我趴在偏房一處隱蔽的房頂上張望幕垦。 院中可真熱鬧丢氢,春花似錦、人聲如沸先改。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仇奶。三九已至貌嫡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間该溯,已是汗流浹背岛抄。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留狈茉,地道東北人夫椭。 一個(gè)月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像氯庆,于是被迫代替她去往敵國和親蹭秋。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容