1.1 評估指標
評估指標用於反映模型效果。在預測問題中,要評估模型的效果,就需要將模型的預測結果和真實標註進行比較,評估指標定義爲和的函數。
通常,線下使用的是機器學習評估指標,而線上使用的是業務指標(比如,在線支付的風控模型,線下使用的是風險交易筆數的準召率,而線上使用的業務指標卻是資損率,這就會導致線上、線下的不一致)。所以,在模型訓練的階段,要設法找到與線上業務指標相一致的線下指標,“一致”的意思是指標的變化趨勢一樣。
評估指標根據任務類型的不同,可以分爲分類指標、迴歸指標、聚類指標和排序指標等。
1.1.1 分類指標
1)精確率和召回率
精確率和召回率用於二分類問題,結合混淆矩陣
精確率和召回率的定義爲
精確率和召回率是此消彼長的(事實上,並不是嚴格的“此消彼長”。閾值越小,召回率越高,但是精確率卻未必越低,但是大多數時候精確率是越低的,因爲閾值越小,雖然TP和FP都會變大,但是對FP的影響往往要大於對TP的影響,即FP變大的更多,從而導致精確率下降。),計算精確率和召回率的前提是設定一個閾值,將預測概率大於閾值的樣本歸爲正樣本,預測概率小於閾值的樣本歸爲負樣本。實際中,精確率和召回率重要性不同,有時候精確率更重要,比如風控模型(誤殺太多會帶來糟糕的用戶體驗),有時候召回率更重要,比如推薦模型。
以召回率爲橫軸,以精確率爲縱軸可以畫P-R曲線。P-R曲線越靠近右上角越好。如果預測的結果,正樣本的預測概率均大於負樣本的預測概率,那麼P-R曲線將變成一條折線。
P-R曲線下的面積叫AP分數(Average Precision Score,平均精確率分數)。
AP分數能在一定程度上反映模型的精確率和召回率都高的比例。但計算起來並不方便,爲此人們提出了一些其他的綜合考慮精確率和召回率的指標。
值是常用的指標,其是精確率和召回率的調和平均值
值可以泛化爲精確率和召回率不同權重進行加權調和:
此外,準確率和錯誤率也是常用的評估指標
準確率(accuracy) =
錯誤率(error rate) =
精確率和準確率是有區別的,精確率是一個二分類指標,而準確率能應用於多分類。
2)ROC與AUC
用準確率、召回率對模型的效果進行評價時,需要對預測概率設置一個閾值,這樣就會額外引入一個超參數,並且這個超參數會影響模型的泛化能力。
ROC(Receiver Operating Characteristic)曲線不需要設定這樣的閾值。ROC曲線的縱座標是真正率,而橫座標是假正率。公式是
真正率(TPR) =
假正率(FPR) =
真正率與假正率變化趨勢是一致的。所以FPR-TPR是一條遞增的曲線。ROC曲線的繪製很簡單,只需要按模型的預測概率排序,然後以每一個樣本的預測概率爲閾值,計算該閾值下的TPR、FPR,就可以獲得大量離散的點(FPR,TPR),將這些離散的點連起來,就成了一條接近連續的曲線。
ROC越靠近左上角越好,最好的情況就是ROC曲線變成了一條與座標軸重合的折線,什麼時候ROC會是這樣的折線呢?就是當模型對正樣本的預測概率值都大於對負樣本的預測概率值。
AUC即ROC曲線下的面積,取值越大說明模型越可能將正樣本排在負樣本之前。統計學意義上,AUC等於隨機挑選一個正樣本和一個負樣本時,分類器將正樣本排前面的概率。當ROC曲線爲折線時,AUC取得最大值1,此時模型將全部的正樣本排在了負樣本前面(按預測概率)。
AUC的計算方法有多種,物理意義上,AUC是ROC曲線下的面積,那麼利用微元法,曲線下的面積,就是衆多的小梯形面積之和。
概率意義上,AUC衡量的是排序質量,
這裏排序問題的AUC範圍是(0,1),它對排序敏感,而對具體的預測概率不很敏感(改變預測概率,但不改變排序結果,ROC曲線形狀不會變)
3)對數損失
對數損失,即對數似然損失(Log-likelihood Loss),也就是交叉熵損失(cross-entropy Loss)
log loss =
對於二分類問題,對數損失爲
log loss =
其中,爲第個樣本預測爲1的概率。
多分類任務中的對數損失爲
log loss =
其中,爲樣本數,爲類別數,是一個二值指標,表示第個樣本的類別爲,爲第個樣本類別的概率。中只有一個取1,其餘全部取0,假設第個樣本屬於類別,那麼,預測概率越接近1越好(loss越小)。
log loss衡量的是預測概率分佈與真實概率分佈的差異性,取值越小越好。與AUC不同,log loss對預測概率敏感。
1.1.2 迴歸指標
1)平均絕對誤差
平均絕對誤差(Mean Absolute Error, MAE),也叫L1範數損失
2)平均絕對百分誤差(MAPE)
如果MAPE=10,這表明預測平均偏離真實值10%。MAPE是一個無量綱的量,所以在特定場景下不同問題具有一定可比性。
3)均方根誤差
RMSE對離羣點敏感,健壯性不如MAE。模型使用RMSE作爲損失函數是對數據分佈的平均值進行擬合。
1.1.3 排序指標
1)平均準確率均值(Mean Average Precision,MAP)
(沒看懂)
2)NDCG
先引入一個概念,相關等級。如在網頁搜索場景中,輸入一個詞,搜索引擎會返回若干網頁,每一個返回的網頁和搜索關鍵詞的相關性是不一樣的,可以用一些數值來表示相關性大小,2表示非常相關,1表示相關,0表示無關,-1表示垃圾文件。
用rel來表示相關等級,我們可以計算前個位置累計得到的收益(可以理解爲對返回的前個網頁好壞的衡量結果)爲
DCG (Discounted Cumulative Gain)
在CG中的計算沒有考慮到位置信息,比如檢索到了三個文檔相關度一次爲(3,-1,1)和(-1,1,3),顯然前面的排序好一點,但是兩個排名的CG值是相同的,所以要在CG運算中中加入位置信息的計算。假設每個位置按照從小到大排序,它們的價值依次遞減,如假設第個位置的價值爲,那麼DCG的公式即爲
另一種比較常用的,用來增加相關度影響比重的DCG計算方式是:
IDCG是理想狀態下的DCG,即DCG取得最大值的情況。公式爲:
其中|REL|表示文檔按照相關性從大到小的順序排序,取前p個文檔組成的集合。
NDCG (Normalize DCG)
由於每個查詢語句所能檢索到的結果文檔集合長度不一,p值的不同會對DCG的計算有較大的影響。所以不能對不同查詢語句的DCG進行求平均,需要進行歸一化處理。NDCG就是用IDCG進行歸一化處理,表示當前DCG比IDCG還差多大的距離。公式如下:
NDCG的值在(0,1)範圍內,不同查詢語句之間就可以做比較,就可以求多個查詢語句的平均NDCG。
1.2 樣本選擇
用較少量的訓練樣本,訓練效果不會變差。
做樣本選擇,有三個好處:
1)數據量過大時,需要花大量的計算資源以及計算時間,減少數據量,能夠縮減模型的運算時間。
2)相關度太低的數據對模型沒有幫助,可以去掉。
3)數據中難免有噪聲,去掉噪聲,可以提高訓練集的數據質量,改善模型效果。
樣本選擇的方法主要包括數據去噪、採樣、原型選擇、訓練集選擇。
1.2.1 數據去噪
噪聲數據的存在幾乎無法避免,噪聲的存在,會導致數據質量變低,影響到特徵提取,但通過在訓練集中引入噪聲數據也能起到提升模型健壯性的作用。可見,噪聲的存在,既可能帶來壞處,也可能帶來好處。如果選擇的模型對噪聲對噪聲敏感的時候,問題會更嚴重(例如,涉及距離度量的logistic regression就比樹模型對噪聲更敏感)。
噪聲數據在監督學習問題中影響比較明顯,會改變特徵和標註之間的關係,進而影響到特徵提取。爲了使得模型對噪聲不那麼敏感,在建模的時候,會權衡模型的健壯性與效果。
噪聲大致可以分爲兩類,一類是特徵值不對,比如特徵值缺失、超出特徵值域範圍等。另一類是標註不對,比如二分類正樣本標註成負樣本。實際中,兩種類型的噪聲對模型的影響是不一樣的,發現並去除標註帶噪聲的實例,通常對模型是有明顯的幫助的;而去除特徵帶噪聲的數據很多時候使得模型的效果變差。
針對錯誤標註帶來的噪聲,最常見的處理方案有集成過濾法、交叉驗證委員會過濾法、迭代分割過濾法。
R裏有一個包NoiseFiltersR,可以用來做標籤噪聲數據的過濾。
1.2.2 採樣
採樣分爲對樣本採樣和對特徵採樣。採樣能夠客服高維特徵以及大量數據導致的問題,有助於降低成本,縮短時間甚至提升效果。在不平衡分類問題中還能幫助平衡樣本比例。採樣時需要確定採樣方法和採樣比例。
常見的採樣方法有
1)無放回簡單隨機抽樣
2)有放回簡單抽樣
隨機森林中對樣本的採樣就是採樣的有放回的採樣。
3)平衡採樣
常用於不平衡分類問題中。如果正樣本的數目遠少於負樣本,可以對正樣本進行 上採樣,也可以對負樣本進行下采樣。ADASYN和SMOTE是上採樣裏兩個比較常用的方法。
4)整羣採樣
5)分層抽樣
在分類問題中,可以對每個類別,分別進行採樣。
參考資料:
https://blog.csdn.net/jiangyongy/article/details/78698096
https://en.wikipedia.org/wiki/Discounted_cumulative_gain
https://pdfs.semanticscholar.org/f4c8/58673231fb2e6d1eb53ad7e96a1bfbd58cfa.pdf
https://cran.r-project.org/web/packages/NoiseFiltersR/NoiseFiltersR.pdf