自己在網上查詢了很多推薦指標包括準確率,精確率,召回率,p-r曲線,auc曲線,map,mrr,ndcg評價指標。
但是分類模型的評價指標和推薦系統的指標的計算方法是不一樣的,分類模型評價指標計算是根據混淆矩陣進行計算,而推薦模型是根據推薦列表和分割的20%測試集作為真實值進行計算。
在分類模型中,是明確知道分類的明確資訊,比如哪個屬於正樣本,哪些屬於負樣本,而在推薦系統中我們只是將測試集作為正樣本進行計算,分類模型中的假陽性等資訊並不知道。因為推薦列表不像分類問題一樣,將不出現測試集中的樣本看成是負樣本(因為我們無法判斷使用者對於沒訪問過的專案是不是真的不感興趣),因此準確率(正確分類樣本數/樣本總數,正確分類數包括正負樣本),p-r曲線,auc曲線這些評價指標無法或很少在推薦系統使用
推薦系統的常用指標:精確率,召回率,f1-score,map,ndcg
推薦系統準確率計算方法:
精確率=||推薦集 並 測試集||/||測試集|| #又叫查全率,用於評價模型查的全不全
召回率=||推薦集 並 測試集||/||推薦集|| #又叫查準率,用於評價模型查的資訊準不准
上面兩個評價指標會相互制約,最好的情況是兩者結果都為1,。通常另乙個大會導致領乙個小。
舉個極端的例子,如果推薦集包含全部元素了,而測試集包括很少,這時候精確率為1,而召回率為幾乎為0.
最好的情況是推薦集和測試集的專案一模一樣,這時候是最好的情況,都為1.
map和ndcg的計算:
map和ndcg理解:
map只是希望我們想要的資訊專案靠前,比如我們想要(a1,a2,a3),乙個推薦列表【a1,a2,a3,b1,b2,b3】要比【,b1,b2,b3,a1,a2,a3】的分數高。但是【a1,a2,a3,b1,b2,b3】和【a3,a2,a1,b1,b2,b3】得到的結果一樣,顯然第一種情況好,因此這種評價指標無法解決這個問題
針對上面map存在的問題,提出了ndcg評價指標,該指標通常用於網頁的搜尋排名中,不僅讓想要的資訊的排名資訊靠前,也讓和資訊(比如搜尋關鍵字)更相關的資訊排名靠前的推薦列表的分數也越大。
評價推薦系統指標
評價指標 名稱符號 偏好是否依賴於推薦列表長度備註準 確度 評分準確度 平均絕對誤差 mae 小否 適用於比較關注精確的 評分的系統 平均平方誤差 mse 小均方根誤差 rmse 小 標準平均絕對誤差 nmae 小 評分關聯 pearson關聯 pcc 大適用於不關注精確 評分的系統,其中ndmp適...
搜尋 推薦評價指標
這裡面有三個常用的概念 正確率,精確率,召回率。正確率 precision,簡稱為p 定義為 p 返回結果中相關文件個數 返回結果的數目。精確率 accuracy,簡稱為a 定義為 a 判斷結果正確的文件數目 所有文件數目。召回率 recall,簡稱為r 定義為 r 返回結果中相關文件數目 所有相關...
推薦系統 NDCG評價指標及其Python實現方法
ndcg defget dcg y pred,y true,k 注意y pred與y true必須是一一對應的,並且y pred越大越接近label 1 用相關性的說法就是,與label 1越相關 df pd.dataframe df df.sort values by y pred ascendi...