推薦系統(tǒng)評測指標(biāo)2-預(yù)測準(zhǔn)確度

1 評分預(yù)測:預(yù)測用戶對物品的評分

RMSE均方根誤差=實際評分差的平方的平均數(shù),再開根號
MAE均方根誤差=實際評分差的平均數(shù)
RSME 加大了對預(yù)測不準(zhǔn)的用戶物品評分的懲罰,因而對系統(tǒng)的懲罰更加苛刻。

def RSME(records):
      allsum= sum(pow(real - predict,2) for real, predict in records) 
      avg = allsum / float(len(records))
      return math.sqrt(avg)   

def MAE(records):
      allsum = sum(abs(real - predict) for real, predict in records) 
      avg = allsum  / float(len(records))
      return math.sqrt(avg)   

2 TopN 推薦的預(yù)測準(zhǔn)確率

網(wǎng)站在提供服務(wù)時,一般會給用戶一個個性化的推薦列表。
召回率: 準(zhǔn)確的有多少個被預(yù)測出來了
預(yù)測集中個數(shù)^實際集中個數(shù)/實際集中個數(shù)
準(zhǔn)確率: 預(yù)測中有多少個準(zhǔn)確的
預(yù)測集中個數(shù)^實際集中個數(shù)/預(yù)測集中個數(shù)

def recall(tests, N):
     for user,items in tests.items():
           topN = GetTopN(User,N)
           Hit += useritems & topN     # set 交集 累加 
           real_total  += items  # 實際集中數(shù)目累加
           predict_total += N  # 預(yù)測集中累加,每次預(yù)測N ,則每次加 N  
     recall =  hit/ real_total  
     precision =  hit / predict_total 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容