1. 程式人生 > >估計標籤噪音 翻轉率 以及 在預測中翻轉率的應用

估計標籤噪音 翻轉率 以及 在預測中翻轉率的應用

很多資料集會出現標籤錯誤或者標籤缺失得情況,本文中說得方法可以粗略估計標籤在每個class錯誤得比率 已經 如何應用這個比率去更做一個更好的模型。

首先我們要明白什麼是翻轉率:

第一個正確標籤為+1 但是資料集中出現得標籤為-1,這種問題可以用rho+1 表示

第二個正確表情為-1, 但是資料集中出現標籤為+1,用rho-1表示

公式中第一個概率Dp 表示dirty probability 意思是樣本有錯誤標籤得概率情況下每個sample被正確預測的概率,D為無標籤錯誤情況下每個sample被正確預測的概率。 這兩個概率可以被粗略估計出來後就可以用數學方法去解這個公式得出rho+1 和rho-1.

至於初略估計兩個概率的方法,可以用adampling(我上一篇文章)做出乾淨probability table,用logisitc或者SVM去做dirty probability table。

有了翻轉率之後, 我們可以用於計算weight for each sample. 程式碼如下:

def estimateBeta(S,prob,rho0,rho1):     n = len(S)     beta = np.zeros((n,1))     for i in range(n):         if S[i]==1:             beta[i] = (prob[i][1]-rho0)/((1-rho0-rho1)*prob[i][1]+1e-5)         else:             beta[i] = (prob[i][0]-rho1)/((1-rho0-rho1)*(prob[i][0])+1e-5)          return beta

如果能準確知道rho+1 於rho-1的值,用此方法準確率比adasampling要搞一些。