前言
如果你能找到這里,真是我的幸運~這里是藍白絳的學(xué)習(xí)筆記,本集合主要針對《百面機器學(xué)習(xí)——算法工程師帶你去面試》這本書。主要記錄我認為重要的知識點,希望對大家有幫助。
第二章 模型評估
1、評估指標的局限性
準確率(Accuracy):分類正確的樣本占總樣本個數(shù)的比例。
當不同類別的樣本比例非常不均衡時,將準確率作為分類性能的指標非常局限,可以使用更加有效的平均準確率(每個類別下的樣本準確率的算數(shù)平均)作為模型評估的指標。精確率(Precision):分類正確的正樣本個數(shù)占分類器判定為正樣本個數(shù)的比例。
召回率(Recall):分類正確的正樣本個數(shù)占真正的正樣本個數(shù)的比例。
排序問題中,通常沒有一個確定的閾值把得到的結(jié)果判定為正樣本或負樣本,而是采用Top N返回結(jié)果(即模型判定的N個正樣本)計算Precision和Recall來衡量排序模型的性能。
Precision和Recall是即矛盾又統(tǒng)一的兩個指標。通常要繪制P-R曲線,單個點對應(yīng)的精確率和召回率并不能全面地衡量模型的性能,畫曲線能對模型進行更為全面的評估。
F1值和ROC曲線也能綜合反映一個排序模型的性能。ROC曲線后面一節(jié)再說,F(xiàn)1值是精確率和召回率的調(diào)和均值。
均方根誤差RMSE(Root Mean Square Error)通常用來衡量回歸模型的好壞,但是如果存在個別偏離程度特別大的離群點(Outlier),即使離群點非常少,也會讓RMSE指標變的很差。
例如在流量預(yù)測問題中,噪聲點是很容易產(chǎn)生的,甚至一些相關(guān)社交媒體突發(fā)事件帶來的流量,都很有可能造成離群點。
針對離群點的解決方案有:
- 如果認為這些離群點是“噪聲點”的話,就需要在數(shù)據(jù)預(yù)處理的階段將噪聲點過濾掉。
- 如果不認為離群點是“噪聲點”,就需要進一步提高模型的預(yù)測能力,將離群點產(chǎn)生的機制建模進去。(這就是一個宏大的話題了)
- 找一個更合適的指標來評估模型,如平均絕對百分比誤差(Mean Absolute Percent Error,MAPE)。它將每個點的誤差進行了歸一化,降低了個別離群點帶來的絕對誤差的影響。
2、ROC曲線
- ROC(Receiver Operating Characteristic Curve,受試者工作特征曲線),橫坐標為假陽性率(False Positive Rate,F(xiàn)PR),縱坐標為真陽性率(True Positive Rate,TPR)。
其中N為真實的負樣本個數(shù),P為真實的正樣本個數(shù)。
Confusion matrix - ROC曲線的繪制:二值分類問題中,模型的輸出一般都是預(yù)測樣本為正例的概率,概率大于該值則判為正例,小于該值判為負例,計算FPR和TPR,形成ROC曲線上的一點。通過不斷移動截斷點,則可繪制出ROC曲線。
- AUC:ROC曲線下的面積(沿橫軸積分),能夠量化地反映基于ROC曲線衡量出的模型性能。
- ROC曲線與P-R曲線:當正負樣本的分布發(fā)生變化時,ROC曲線形狀能保持基本不變,而P-R曲線形狀一般會發(fā)生劇烈的變化。ROC曲線能更加穩(wěn)定地反映模型本身的好壞,廣泛應(yīng)用于排序、推薦、廣告等領(lǐng)域。如果希望更多地看到模型在特定數(shù)據(jù)集上的表現(xiàn),P-R曲線能更直觀地反映其性能。
3、余弦距離的應(yīng)用
-
余弦相似度和余弦距離:余弦相似度取值范圍為
,余弦距離是1減余弦相似度,取值范圍為
。
- 余弦距離和歐式距離:
- 余弦距離關(guān)心的是向量的角度關(guān)系,并不關(guān)心它們的絕對大小。在文本、圖像、視頻領(lǐng)域,特征維度往往很高,余弦相似度在高維情況下依然能保持“相同為1,正交為0,相反為-1”。而歐式距離受維度影響,范圍不固定,含義也比較模糊。
- 在一些場景,歐式距離和余弦距離有著單調(diào)的關(guān)系,如果選擇距離最小(相似度最大)的近鄰,則使用歐式距離和余弦距離的結(jié)果是相同的。
- 總體來說,歐式距離體現(xiàn)數(shù)值上的絕對差異,余弦距離體現(xiàn)方向上的相對差異。
例如統(tǒng)計用戶看劇行為,A為(0,1), B為(1,0),此時余弦距離較大,歐式距離較小,我們分析兩個用戶對不同視頻的喜好,更關(guān)注相對差異,這里應(yīng)該用余弦距離。
再例如分析用戶活躍度,以登陸次數(shù)和平均觀看時長為特征,A為(1,10), B為(10,100),則余弦距離會認為他們非常近,但這兩個用戶的活躍度差別是非常大的,應(yīng)該選用歐式距離。
-
余弦距離并不是一個嚴格定義的距離。距離的定義是在一個集合中,每一對元素均可唯一確定一個實數(shù),使得正定性、對稱性、三角不等式成立,則該實數(shù)可稱為這對元素的距離。余弦距離滿足正定性和對稱性,但不滿足三角不等式。
在機器學(xué)習(xí)領(lǐng)域,被稱為距離但不滿足三條距離公理的還有KL距離(Kullback-Leibler Divergence),也叫做相對熵,常用于計算兩個分布之間的差異,它不滿足對稱性和三角不等式。
4、A/B測試的陷阱
- 在機器學(xué)習(xí)中A/B測試是驗證模型最終效果的主要手段。
- 已經(jīng)對模型進行充分的離線評估,還需要進行在線A/B測試的原因有:
- 離線評估無法完全消除模型過擬合的影響。
- 離線評估無法完全還原線上的工程環(huán)境。一般來講,離線評估往往沒有考慮線上環(huán)境的延遲、數(shù)據(jù)丟失、標簽數(shù)據(jù)缺失等情況。也就是說,離線評估是理想工程環(huán)境下的結(jié)果。
- 離線評估一般是針對模型本身進行評估,線上系統(tǒng)的某些商業(yè)指標在離線評估中無法計算。如推薦問題中,離線評估關(guān)注ROC曲線、P-R曲線,而弦上評估可以全面了解用戶點擊率、留存時長、PV訪問量等變化。
- 如何進行線上A/B測試:主要手段是進行用戶分桶,將用戶分成實驗組和對照組,對實驗組用戶用新模型,對對照組用戶用舊模型。分桶要保證樣本的獨立性和采樣方式的無偏性。
5、模型評估的方法
-
Holdout檢驗:最簡單直接的檢驗方法,它將原始樣本數(shù)據(jù)集隨機劃分成訓(xùn)練集和測試集。
缺點:驗證集上計算出來的最后評估指標原始分組有很大關(guān)系。 - 交叉檢驗:為了消除Holdout的隨機性,則有了交叉驗證。
- k-fold交叉驗證:將全部樣本分成k個大小相等的樣本子集,拿出其中一個子集作為驗證集,其余k-1個子集作為訓(xùn)練集,依次遍歷。通常把k次評估指標的平均值作為最終的評估指標。實際試驗中,k經(jīng)常取10。
-
留一驗證:每次留下一個樣本作為驗證集,其余所有樣本作為測試集,進行n次驗證,再將評估指標求平均值得到最終的評估指標。(n個值的平均)
留一驗證缺點:在樣本總數(shù)較多的情況下,時間開銷極大。留一驗證是留驗證的特例,但從
個元素中選擇
個元素有
種可能,時間開銷比留一驗證更多,在實際工程很少應(yīng)用。
- 自助法:Holdout和交叉驗證都是基于數(shù)據(jù)集的劃分,但是當樣本規(guī)模較小時,將樣本集進行劃分會讓訓(xùn)練集進一步減小,可能影響模型的訓(xùn)練效果。自助法是基于自助采樣的檢驗方法,對于總數(shù)為
的樣本集合,有放回地隨機抽樣
次,得到大小為
的訓(xùn)練集。其中有的樣本會重復(fù),有的樣本沒有被抽出過,將沒有被抽出的樣本作為驗證集進行驗證,就是自助法的驗證過程。當樣本數(shù)很大時,大約有
=36.8%的樣本從來沒有被采樣過,這里的計算用到高數(shù)中的重要極限。
6、超參數(shù)調(diào)優(yōu)
- 超參數(shù)搜索算法包括的幾個要素:
- 目標函數(shù),即算法需要最大化/最小化的目標。
- 搜索范圍,一般通過上限和下限來確定。
- 算法的其他參數(shù),如搜索步長。
- 超參數(shù)調(diào)優(yōu)方法有:
-
網(wǎng)格搜索:最簡單、應(yīng)用最廣泛的超參數(shù)搜索算法。通過查找搜索范圍內(nèi)所有的點來確定最優(yōu)值。
優(yōu)點:如果采用較大的搜索范圍以及較小的補償,則很大概率能找到全局最優(yōu)值。
缺點:十分消耗資源和時間,特別是需要調(diào)優(yōu)的超參數(shù)比較多的時候。
實際應(yīng)用中會先使用較大的搜索范圍和較大的搜索步長,尋找全局最優(yōu)值可能的位置,然后逐漸縮小搜索范圍和步長來尋找更精確的最優(yōu)值。優(yōu)點是可以降低所需時間和計算量,缺點是目標函數(shù)一般是非凸的,可能會錯過全局最優(yōu)值。 -
隨機搜索:隨機搜索不再測試上界和下界之間的所有值,而是在搜索范圍內(nèi)隨機選取樣本點。其理論依據(jù)是,如果樣本足夠多,那么隨機采樣也能大概率找到全局最優(yōu)值,或其近似值。
優(yōu)點:比網(wǎng)格搜索快。
缺點:并不能保證找到全局最優(yōu)值。
注:隨機搜索有非常多種優(yōu)化方法,如爬山算法、模擬退火(Simulated Annealing,SA)、遺傳算法(Genetic Algorithm,GA)等。 -
貝葉斯優(yōu)化算法:
網(wǎng)格搜索和隨機搜索在測試新點時會忽略前一個點的信息,而貝葉斯優(yōu)化算法充分利用了之前的信息,通過對目標函數(shù)形狀進行學(xué)習(xí),找到使目標函數(shù)向全局最優(yōu)值提升的參數(shù)。
貝葉斯優(yōu)化算法學(xué)習(xí)目標函數(shù)形狀的方法:首先,根據(jù)先驗分布,假設(shè)一個搜集函數(shù);然后,每一次使用新的采樣點來測試目標函數(shù)時,利用這個信息來更新目標函數(shù)的先驗分布;最后,算法測試由后驗分布給出全局最優(yōu)值可能出現(xiàn)的位置。
優(yōu)點:比網(wǎng)格搜索、隨機搜索更高效。
缺點:貝葉斯優(yōu)化算法一旦找到了一個局部最優(yōu)值,會在該區(qū)域不斷采樣,很容易陷入局部最優(yōu)。
為了彌補貝葉斯優(yōu)化的的缺陷,需要在搜索和利用之間找到一個平衡點,“搜索”即是在未取樣的區(qū)域獲取采樣點,“利用”則是根據(jù)后驗分布在最可能出現(xiàn)全局最優(yōu)值的區(qū)域進行采樣。
7、過擬合與欠擬合
- 過擬合:模型對訓(xùn)練數(shù)據(jù)擬合過當。如模型過于復(fù)雜,把噪聲數(shù)據(jù)的特征也學(xué)習(xí)到模型中,導(dǎo)致模型泛化能力下降。反映到評估指標上,就是模型在訓(xùn)練集上表現(xiàn)很好,但測試集和新數(shù)據(jù)上表現(xiàn)較差。
- 欠擬合:模型沒有很好地捕捉到數(shù)據(jù)的特征,不能很好地擬合數(shù)據(jù)。反映到評估指標上,就是模型訓(xùn)練和預(yù)測表現(xiàn)都不好。
- 降低過擬合風險的方法:
- 從數(shù)據(jù)入手:獲得更多的訓(xùn)練數(shù)據(jù),更多的訓(xùn)練數(shù)據(jù)是解決過擬合最有效的手段。一般實驗數(shù)據(jù)有限,可以通過一定的規(guī)則來擴充訓(xùn)練集,如圖像分類中可以用數(shù)據(jù)增強,用GAN來合成大量的新訓(xùn)練數(shù)據(jù)。
- 降低模型復(fù)雜度。數(shù)據(jù)較少時,模型過于復(fù)雜是產(chǎn)生過擬合的主要因素,適當降低模型復(fù)雜度可以避免模型擬合過多的采樣噪聲。例如神經(jīng)網(wǎng)絡(luò)模型中減少網(wǎng)絡(luò)層數(shù)、神經(jīng)元個數(shù)等;決策樹模型中降低樹的深度、進行剪枝等。
- 正則化方法。給模型的參數(shù)加上一定的正則約束,例如將權(quán)值的大小加入到損失函數(shù)中,如L1/L2正則化。
- 集成學(xué)習(xí)方法。將多個模型集成在一起,來降低單一模型的過擬合風險,如Bagging方法。
- 降低欠擬合風險的方法:
- 添加新特征。當特征不足或者現(xiàn)有特征與樣本標簽的相關(guān)性不強時,模型容易出現(xiàn)欠擬合。通過挖掘“上下文特征”“ID類特征”“組合特征”等新特征,往往能取得更好的效果。在深度學(xué)習(xí)潮流中,由很多模型可以幫助完成特征工程,如因子分解機、梯度提升決策樹、Deep-crossing等都可以成為豐富特征的方法。
- 增加模型復(fù)雜度。例如在線性模型中添加高次項,在神經(jīng)網(wǎng)絡(luò)模型中增加網(wǎng)絡(luò)層數(shù)或神經(jīng)元個數(shù)等。
- 減小正則化系數(shù)。正則化是用來防止過擬合的,但當模型出現(xiàn)欠擬合現(xiàn)象時,需要有針對性地減少正則化系數(shù)。
小結(jié)
本節(jié)關(guān)于模型評估也講得非常清楚,除了一些之前就了解過的知識點之外,這節(jié)主要學(xué)到了余弦距離不滿足三角不等式,以及關(guān)于A/B測試的知識。
結(jié)尾
如果您發(fā)現(xiàn)我的文章有任何錯誤,或?qū)ξ业奈恼掠惺裁春玫慕ㄗh,請聯(lián)系我!如果您喜歡我的文章,請點喜歡~*我是藍白絳,感謝你的閱讀!
