目錄
一、前言
二、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ù)的訓(xùn)練是很困難的.
2踊赠、公式與參數(shù)
- 表示FM的偏置
- 表示FM模型對一階特征的建模
- 表示FM模型對二階特征的建模
3、FM模型重要原理|矩陣分解
FM模型是矩陣分解的經(jīng)典算法每庆,因此在這里對矩陣分解的原理進(jìn)行講解筐带。
我們希望的到的結(jié)果是:即隱向量矩陣相乘的結(jié)果
(1) 二階特征組成矩陣V:(矩陣V的第i行表示:第i維特征的隱向量
(2)矩陣轉(zhuǎn)置
(3)多項(xiàng)式模型的二階特征組成的方陣
- 方陣的上三角的元素(不包括對角線上的元素),即為多項(xiàng)式模型的二階特征系數(shù):
- 注意: 為什么只是上三角缤灵?因?yàn)楸仨?img class="math-inline" src="https://math.jianshu.com/math?formula=i%3Cj" alt="i<j" mathimg="1">
(4)組成方陣
- 方陣的上三角的元素(不包括對角線)伦籍,即為FM模型的二階特征系數(shù):
- 注意:
- FM模型只關(guān)心互異特征之間的關(guān)系(),所以對角線可以任意取值腮出。
矩陣分解結(jié)論:
當(dāng)超參數(shù)k充分大帖鸦,對于任意正定的實(shí)矩陣,均存在實(shí)矩陣使得
- 補(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)
- 劃分?jǐn)?shù)據(jù)集的方法還有交叉驗(yàn)證法压昼、留一法等求冷,詳情移步https://www.cnblogs.com/xxxxxxxxx/p/10987366.html
(2)調(diào)整數(shù)據(jù)集大小
我們可以得到這樣的結(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)
結(jié)論:在較大的數(shù)據(jù)集下牵咙,不改變其他參數(shù)的前提下派近,迭代次數(shù)1-10對模型準(zhǔn)確度和誤差的影響較大。迭代數(shù)超過10后影響不大洁桌。
(2)調(diào)試方法2 調(diào)整學(xué)習(xí)率
- 可以看出訓(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ù)的正樣本
?
2啊易、準(zhǔn)確度(Accuracy)
- 準(zhǔn)確度(Accuracy)用來計(jì)算預(yù)測正確的樣本占所有樣本的比重
-
是我們最常用的評價(jià)指標(biāo),一般來說這個(gè)數(shù)值越高越好饮睬。
評價(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我們不得不談到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))
- 從這段代碼和兩者的公式悼沈,我們就能看出sigmoid和logit互為反函數(shù)
- 點(diǎn)擊logit函數(shù)和sigmoid函數(shù)是什么關(guān)系了解更多
(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ì)算公式:
-
查準(zhǔn)率是預(yù)測為真中確實(shí)為真所占的比重惊搏。
評估結(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ì)算公式:
評估結(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曲線上看可款,我們試圖找均衡點(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ì)算公式:
評估結(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就是我們上面提到的查全率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ì)算公式:
- 解釋:
①是每一類正確分類的樣本數(shù)量之和除以總樣本數(shù),也就是總體分類精度
②假設(shè)每一類的真實(shí)樣本個(gè)數(shù)分別為,,,千埃,而預(yù)測出來的每一類的樣本個(gè)數(shù)分別為,,,,總樣本個(gè)數(shù)為憔儿,則有 - 點(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é)果
結(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è)推薦列表的得分:
- 解釋:表示位置的相關(guān)性潦俺,表示推薦列表的大小拒课。
- 缺點(diǎn):只考慮到了相關(guān)性的關(guān)聯(lián)程度,沒有考慮到位置的因素事示。即早像、 、與 肖爵、 卢鹦、沒有區(qū)別
- 基于上述的缺點(diǎn),我們需要引入DCG
2)折損累計(jì)增益(DCG)
DCG劝堪, Discounted 的CG冀自,就是在每一個(gè)CG的結(jié)果上除以一個(gè)折損值。目的就是為了讓排名越靠前的結(jié)果越能影響最后的結(jié)果秒啦。
-
作用
①推薦結(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
IDCG為理想情況下最大的DCG值:
其中 |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í)際上是模型在“欺騙你”
-
那么具體到底如何選擇評價(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">, 在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