【百面機器學(xué)習(xí)筆記】模型評估

模型評估指標(biāo)

準確率(Accuracy)

準確率是指分類正確的樣本占總樣本個數(shù)的比例。
Accuracy = n(correct)/n(total)
當(dāng)負樣本占99%時,分類器把所有樣本都預(yù)測為負樣本也可以獲得99%的準確率。所以,當(dāng)不同類別的樣本比例非常不均衡時,占比大的類別往往成為影響準確率的最主要因素。

精確率(Precision)& 召回率(Recall)

精確率是指分類正確的正樣本個數(shù)占分類器判定為正樣本的樣本個數(shù)的比例。
召回率是指分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例。

為了綜合評估一個排序模型的好壞,不僅要看模型在不同Top N下的Precision@N和Recall@N,而且最好繪制出模型的P-R(Precision-
Recall)曲線。

P-R曲線的橫軸是召回率,縱軸是精確率。對于一個排序模型來說,其P-R曲線上的一個點代表著,在某一閾值下,模型將大于該閾值的結(jié)果判定為正樣本,小于該閾值的結(jié)果判定為負樣本,此時返回結(jié)果對應(yīng)的召回率和精確率。



除此之外,F(xiàn)1 score和ROC曲線也能綜合地反映一個排序模型的性能。F1score是精準率和召回率的調(diào)和平均值,它定義為


均方誤差(RMSE)

RMSE的公式為

一般情況下,RMSE能夠很好地反映回歸模型預(yù)測值與真實值的偏離程度。但在實際問題中,如果存在個別偏離程度非常大的離群點(Outlier)時,即使離群點數(shù)量非常少,也會讓RMSE指標(biāo)變得很差。

針對這個問題,有什么解決方案呢?可以從三個角度來思考。第一,如果我們認定這些離群點是“噪聲點”的話,就需要在數(shù)據(jù)預(yù)處理的階段把這些噪聲點過濾掉。第二,如果不認為這些離群點是“噪聲點”的話,就需要進一步提高模型的預(yù)測能力,將離群點產(chǎn)生的機制建模進去(這是一個宏大的話題,這里就不展開討論了)。第三,可以找一個更合適的指標(biāo)來評估該模型。關(guān)于評估指標(biāo),其實是存在比RMSE的魯棒性更好的指標(biāo),比如平均絕對百分比誤差(Mean Absolute
Percent Error,MAPE),它定義為



相比RMSE,MAPE相當(dāng)于把每個點的誤差進行了歸一化,降低了個別離群點帶來的絕對誤差的影響。

ROC曲線

ROC

ROC曲線的橫坐標(biāo)為假陽性率(False Positive Rate,F(xiàn)PR);縱坐標(biāo)為真陽性率(True Positive Rate,TPR)。

FPR = FP/N
TPR = TP/P

P是真實的正樣本的數(shù)量,N是真實的負樣本的數(shù)量,TP是P個正樣本中被分類器預(yù)測為正樣本的個數(shù),F(xiàn)P是N個負樣本中被分類器預(yù)測為正樣本的個數(shù)。
事實上,ROC曲線是通過不斷移動分類器的“截斷點”來生成曲線上的一組關(guān)鍵點的。

AUC

顧名思義,AUC指的是ROC曲線下的面積大小,該值能夠量化地反映基于
ROC曲線衡量出的模型性能。計算AUC值只需要沿著ROC橫軸做積分就可以了。
由于ROC曲線一般都處于y=x這條直線的上方(如果不是的話,只要把模型預(yù)測的概率反轉(zhuǎn)成1?p就可以得到一個更好的分類器),所以AUC的取值一般在0.5~1之間。AUC越大,說明分類器越可能把真正的正樣本排在前面,分類性能越好。

相比P-R曲線,ROC曲線有一個特點,當(dāng)正負樣本的分布發(fā)生變化時,ROC曲線的形狀能夠基本保持不變,而P-R曲線的形狀一般會發(fā)生較劇烈的變化。

余弦距離的應(yīng)用

關(guān)注的是向量之間的角度關(guān)系,并不關(guān)心它們的絕對大小,其取值范圍是[?1,1]。當(dāng)一對文本相似度的長度差距很大、但內(nèi)容相近時,如果使用詞頻或詞向量作為特征,它們在特征空間中的的歐氏距離通常很大;而如果使用余弦相似度的話,它們之間的夾角可能很小,因而相似度高。此外,在文本、圖像、視頻等領(lǐng)域,研究的對象的特征維度往往很高,余弦相似度在高維情況下依然保持“相同時為1,正交時為0,相反時為?1”的性質(zhì),而歐氏距離的數(shù)值則受維度的影響,范圍不固定,并且含義也比較模糊。
在一些場景,例如Word2Vec中,其向量的模長是經(jīng)過歸一化的,此時歐氏距離與余弦距離有著單調(diào)的關(guān)系,即



其中|| A?B ||2表示歐氏距離,cos(A,B)表示余弦相似度(1?cos(A,B))表示余弦距離。在此場景下,如果選擇距離最小(相似度最大)的近鄰,那么使用余弦相似度和歐氏距離的結(jié)果是相同的。

AB測試

  1. 需要進行在線A/B測試的原因如下。
    (1)離線評估無法完全消除模型過擬合的影響,因此,得出的離線評估結(jié)果無法完全替代線上評估結(jié)果。
    (2)離線評估無法完全還原線上的工程環(huán)境。一般來講,離線評估往往不會考慮線上環(huán)境的延遲、數(shù)據(jù)丟失、標(biāo)簽數(shù)據(jù)缺失等情況。因此,離線評估的結(jié)果是理想工程環(huán)境下的結(jié)果。
    (3)線上系統(tǒng)的某些商業(yè)指標(biāo)在離線評估中無法計算。離線評估一般是針對模型本身進行評估,而與模型相關(guān)的其他指標(biāo),特別是商業(yè)指標(biāo),往往無法直接獲得。比如,上線了新的推薦算法,離線評估往往關(guān)注的是ROC曲線、P-R曲線等的改進,而線上評估可以全面了解該推薦算法帶來的用戶點擊率、留存時長、PV訪問量等的變化。這些都要由A/B測試來進行全面的評估。

  2. 如何進行AB測試
    進行A/B測試的主要手段是進行用戶分桶,即將用戶分成實驗組和對照組,對實驗組的用戶施以新模型,對對照組的用戶施以舊模型。在分桶的過程中,要注意樣本的獨立性和采樣方式的無偏性,確保同一個用戶每次只能分到同一個桶中,在分桶過程中所選取的user_id需要是一個隨機數(shù),這樣才能保證桶中的樣本是無偏的。

  3. 如何劃分實驗組和對照組
    無偏無稀釋

模型評估的方法

■ Holdout檢驗
Holdout 檢驗是最簡單也是最直接的驗證方法,它將原始的樣本集合隨機劃分成訓(xùn)練集和驗證集兩部分。比方說,對于一個點擊率預(yù)測模型,我們把樣本按照70%~30% 的比例分成兩部分,70% 的樣本用于模型訓(xùn)練;30% 的樣本用于模型驗證,包括繪制ROC曲線、計算精確率和召回率等指標(biāo)來評估模型性能。
Holdout 檢驗的缺點很明顯,即在驗證集上計算出來的最后評估指標(biāo)與原始分
組有很大關(guān)系。為了消除隨機性,研究者們引入了“交叉檢驗”的思想。
■ 交叉檢驗
k-fold交叉驗證:首先將全部樣本劃分成k個大小相等的樣本子集;依次遍歷這k個子集,每次把當(dāng)前子集作為驗證集,其余所有子集作為訓(xùn)練集,進行模型的訓(xùn)練和評估;最后把k次評估指標(biāo)的平均值作為最終的評估指標(biāo)。在實際實驗中,k經(jīng)常取10。
留一驗證:每次留下1個樣本作為驗證集,其余所有樣本作為測試集。樣本總數(shù)為n,依次對n個樣本進行遍歷,進行n次驗證,再將評估指標(biāo)求平均值得到最終的評估指標(biāo)。在樣本總數(shù)較多的情況下,留一驗證法的時間開銷極大。事實上,留一驗證是留p驗證的特例。留p驗證是每次留下p個樣本作為驗證集,而從n個元素中選擇p個元素有種可能,因此它的時間開銷更是遠遠高于留一驗證,故而很少在實際工程中被應(yīng)用。
■ 自助法
不管是Holdout檢驗還是交叉檢驗,都是基于劃分訓(xùn)練集和測試集的方法進行模型評估的。然而,當(dāng)樣本規(guī)模比較小時,將樣本集進行劃分會讓訓(xùn)練集進一步減小,這可能會影響模型訓(xùn)練效果。有沒有能維持訓(xùn)練集樣本規(guī)模的驗證方法呢?
自助法可以比較好地解決這個問題。
自助法是基于自助采樣法的檢驗方法。對于總數(shù)為n的樣本集合,進行n次有放回的隨機抽樣,得到大小為n的訓(xùn)練集。n次采樣過程中,有的樣本會被重復(fù)采樣,有的樣本沒有被抽出過,將這些沒有被抽出的樣本作為驗證集,進行模型驗證,這就是自助法的驗證過程。

超參數(shù)調(diào)優(yōu)

■ 網(wǎng)格搜索
網(wǎng)格搜索可能是最簡單、應(yīng)用最廣泛的超參數(shù)搜索算法,它通過查找搜索范圍內(nèi)的所有的點來確定最優(yōu)值。如果采用較大的搜索范圍以及較小的步長,網(wǎng)格搜索有很大概率找到全局最優(yōu)值。然而,這種搜索方案十分消耗計算資源和時間,特別是需要調(diào)優(yōu)的超參數(shù)比較多的時候。因此,在實際應(yīng)用中,網(wǎng)格搜索法一般會先使用較廣的搜索范圍和較大的步長,來尋找全局最優(yōu)值可能的位置;然后會逐漸縮小搜索范圍和步長,來尋找更精確的最優(yōu)值。這種操作方案可以降低所需的時間和計算量,但由于目標(biāo)函數(shù)一般是非凸的,所以很可能會錯過全局最優(yōu)值。
■ 隨機搜索
隨機搜索的思想與網(wǎng)格搜索比較相似,只是不再測試上界和下界之間的所有值,而是在搜索范圍中隨機選取樣本點。它的理論依據(jù)是,如果樣本點集足夠大,那么通過隨機采樣也能大概率地找到全局最優(yōu)值,或其近似值。隨機搜索一般會比網(wǎng)格搜索要快一些,但是和網(wǎng)格搜索的快速版一樣,它的結(jié)果也是沒法保證的。
■ 貝葉斯優(yōu)化算法
貝葉斯優(yōu)化算法在尋找最優(yōu)最值參數(shù)時,采用了與網(wǎng)格搜索、隨機搜索完全不同的方法。網(wǎng)格搜索和隨機搜索在測試一個新點時,會忽略前一個點的信息;而貝葉斯優(yōu)化算法則充分利用了之前的信息。貝葉斯優(yōu)化算法通過對目標(biāo)函數(shù)形狀進行學(xué)習(xí),找到使目標(biāo)函數(shù)向全局最優(yōu)值提升的參數(shù)。具體來說,它學(xué)習(xí)目標(biāo)函數(shù)形狀的方法是,首先根據(jù)先驗分布,假設(shè)一個搜集函數(shù);然后,每一次使用新的采樣點來測試目標(biāo)函數(shù)時,利用這個信息來更新目標(biāo)函數(shù)的先驗分布;最后,算法測試由后驗分布給出的全局最值最可能出現(xiàn)的位置的點。對于貝葉斯優(yōu)化算法,有一個需要注意的地方,一旦找到了一個局部最優(yōu)值,它會在該區(qū)域不斷采樣,所以很容易陷入局部最優(yōu)值。為了彌補這個缺陷,貝葉斯優(yōu)化算法會在探索和利用之間找到一個平衡點,“探索”就是在還未取樣的區(qū)域獲取采樣點;而“利用”則是根據(jù)后驗分布在最可能出現(xiàn)全局最值的區(qū)域進行采樣。

過擬合與欠擬合

■ 降低“過擬合”風(fēng)險的方法
(1)從數(shù)據(jù)入手,獲得更多的訓(xùn)練數(shù)據(jù)。使用更多的訓(xùn)練數(shù)據(jù)是決過擬合問題最有效的手段,因為更多的樣本能夠讓模型學(xué)習(xí)到更多更有效的特征,減小噪聲的影響。當(dāng)然,直接增加實驗數(shù)據(jù)一般是很困難的,但是可以通過一定的規(guī)則來擴充訓(xùn)練數(shù)據(jù)。比如,在圖像分類的問題上,可以通過圖像的平移、旋轉(zhuǎn)、縮放等方式擴充數(shù)據(jù);更進一步地,可以使用生成式對抗網(wǎng)絡(luò)來合成大量的新訓(xùn)練數(shù)據(jù)。
(2)降低模型復(fù)雜度。在數(shù)據(jù)較少時,模型過于復(fù)雜是產(chǎn)生過擬合的主要因素,適當(dāng)降低模型復(fù)雜度可以避免模型擬合過多的采樣噪聲。例如,在神經(jīng)網(wǎng)絡(luò)模型中減少網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)等;在決策樹模型中降低樹的深度、進行剪枝等。
(3)正則化方法。給模型的參數(shù)加上一定的正則約束,比如將權(quán)值的大小加入到損失函數(shù)中。以L2正則化為例:

這樣,在優(yōu)化原來的目標(biāo)函數(shù)C0的同時,也能避免權(quán)值過大帶來的過擬合風(fēng)險。
(4)集成學(xué)習(xí)方法。集成學(xué)習(xí)是把多個模型集成在一起,來降低單一模型的
過擬合風(fēng)險,如Bagging方法。
■ 降低“欠擬合”風(fēng)險的方法
(1)添加新特征。當(dāng)特征不足或者現(xiàn)有特征與樣本標(biāo)簽的相關(guān)性不強時,模型容易出現(xiàn)欠擬合。通過挖掘“上下文特征”“ID類特征”“組合特征”等新的特征,往往能夠取得更好的效果。在深度學(xué)習(xí)潮流中,有很多模型可以幫助完成特征工程,如因子分解機、梯度提升決策樹、Deep-crossing等都可以成為豐富特征的方法。
(2)增加模型復(fù)雜度。簡單模型的學(xué)習(xí)能力較差,通過增加模型的復(fù)雜度可以使模型擁有更強的擬合能力。例如,在線性模型中添加高次項,在神經(jīng)網(wǎng)絡(luò)模型中增加網(wǎng)絡(luò)層數(shù)或神經(jīng)元個數(shù)等。
(3)減小正則化系數(shù)。正則化是用來防止過擬合的,但當(dāng)模型出現(xiàn)欠擬合現(xiàn)象時,則需要有針對性地減小正則化系數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,837評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,196評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,688評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,654評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,456評論 6 406
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,955評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,044評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,195評論 0 287
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,725評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,608評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,802評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,318評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,048評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,422評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,673評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,424評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,762評論 2 372

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