機器學習 推薦系統常見指標計算

機器學習常見指標計算

Precision 、Recall 和F1 Score

精確率(Precision)和召回率(Recall)是機器學習中最常見的評估兩個分類模型性能的指標。

預測爲正 預測爲負
實際爲正 TP(真正例) FN(假反例)
實際爲負 FP(假正例) TN(真反例)

Precision=TPTP+FPPrecision = \frac{TP}{TP+FP}
Recall=TPTP+FNRecall= \frac{TP}{TP+FN}
然而兩個這指標是一對矛盾的指標,一般在不同的應用場景會關係不同的指標。F1 Score是基於Precision和Recall的調和平均:
1F1=12(1Precision+1Recall)\frac{1}{F1} = \frac{1}{2}(\frac{1}{Precision}+\frac{1}{Recall})

AUC 和 ROC

ROC曲線的橫軸爲假正例率FPR,表示的含義是:所有真實類別爲0的樣本中,預測類別爲1的比例
縱軸爲真正例率TPR,表示的含義是:所有真實類別爲1的樣本中,預測類別爲1的比例
兩者計算方式如下:
FPR=FPTN+FPFPR = \frac{FP}{TN+FP}
TPR=TPTP+FNTPR = \frac{TP}{TP+FN}
可以看到TPR=Recall,ROC曲線圖繪製如下:
在這裏插入圖片描述
首先兩個端點的含義:
AUC是ROC曲線下部分的面積。具體含義是任意給一個正類樣本和一個負類樣本,正類樣本的score有多大的概率大於負類樣本的score。或者,任意給定一個負樣本,所有正樣本的score中有多大比例是大於該負類樣本的score。
AUC<0.5則意味着該模型總是將正例分類成負例,負例分類成正例。
AUC=0.5意味着該模型隨機猜測樣本的類別。
AUC>0.5意味着真實類別爲1的樣本中,預測類別爲1的比例總是大於真實類別爲0的樣本中,預測類別爲1的比例。
理想情況下,AUC=1,也就是說每個正類都被正確分類。
AUC的優點在於:AUC的計算方法同時考慮了分類器對於正例和負例的分類能力在樣本不平衡的情況下,依然能夠對分類器作出合理的評價。

假設正樣本1個,負樣本99個,如果使用Precision作爲評測指標,那麼即使全部預測爲負樣本的情況下,Precision=0.99;如果選擇F1 score 作爲評測指標那麼,F1 score=0;

推薦系統常見指標計算

HR 和 NDCG

這兩個指標常見於Top-n推薦。一般都是計算在前n個推薦物品中的指標值,比如HR@n表示推薦的n個物品中命中的物品除以測試集中對應user的物品數量。
Hit Ratio和Recall是一樣計算的,對推薦物品的位置不敏感
歸一化折損累積增益(Normalized Discounted Cumulative Gain)對推薦物品位置敏感,計算方式如下:
NDCG@n=DCG@nIDCGNDCG@n = \frac{DCG@n}{IDCG}
DCG@n=i=1n2reli1log2(i+1)DCG@n = \sum_{i=1}^{n}\frac{2^{rel_{i}}-1}{log_{2}(i+1)}
其中relirel_{i}表示是第i個物品的相關性,一般相關的記爲1,不相關的記爲0。IDCG是所有推薦物品和測試集中物品都相關的條件下的DCG的值,顯然是用來做歸一化處理的。下面舉個例子計算:
假設推薦物品top-5爲[3,46,9,1],而測試集中的物品爲[8,64],那麼:
DCG@5 = 201log2(1+1)+211log2(2+1)+211log2(3+1)+201log2(4+1)+201log2(5+1)=1.13\frac{2^0-1}{log_{2}(1+1)}+\frac{2^1-1}{log_{2}(2+1)}+\frac{2^1-1}{log_{2}(3+1)}+\frac{2^0-1}{log_{2}(4+1)}+\frac{2^0-1}{log_{2}(5+1)}=1.13
IDCG= 211log2(1+1)+211log2(2+1)+211log2(3+1)+211log2(4+1)+211log2(5+1)=2.948\frac{2^1-1}{log_{2}(1+1)}+\frac{2^1-1}{log_{2}(2+1)}+\frac{2^1-1}{log_{2}(3+1)}+\frac{2^1-1}{log_{2}(4+1)}+\frac{2^1-1}{log_{2}(5+1)}=2.948
因此NDCG@5=0.383。
可以看出排序位置越靠前NDCG值越大。

MRR

平均倒數排序(Mean Reciprocal Rank)計算的是對用用戶i,推薦列表中第一個用戶感興趣的物品的位置的倒數:
MRR=1N1N1rankiMRR = \frac{1}{N}\sum_{1}^{N}\frac{1}{rank_{i}}
其中N代表用戶的個數。比如系統只有一個用戶,現在給用戶推薦了3個物品[movie1,movie2,movie3],用戶感興趣的是movie3,那麼MRR=13MRR = \frac{1}{3}

MSE、 RMSE和MAE

這些指標常見於迴歸預測模型,同時也是推薦系統中評分預測的指標。均方誤差(Mean Square Error)是預測值和真實值之差的平方的期望值:
MSE=1Ni=1N(yy^)2MSE = \frac{1}{N}\sum_{i=1}^{N}(y-\hat y)^{2}
均方根誤差(Root Mean Square Error)其實就是MSE的平方根:
RMSE=1Ni=1N(yy^)2RMSE = \sqrt{\frac{1}{N}\sum_{i=1}^{N}(y-\hat y)^{2}}
平均絕對誤差(Mean Absolute Error )是預測值和真實值之差的絕對值的期望值:
MAE=1Ni=1Nyy^MAE = \frac{1}{N}\sum_{i=1}^{N}|y-\hat y|

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章