假设总共有 50 件商品,有 35 件是用户喜欢的,有15件是用户不喜欢的,我们的model根据某些特征预测哪些商品是用户喜欢的,哪些是用户不喜欢的,最后给用户推荐相关商品。
预测结果 : model预测该user对 32 件商品是喜欢的,预测有 18 件商品是不喜欢的;实际 32 件预测喜欢的商品中有 2 件是预测错的是用户不喜欢的,预测的18件不喜欢商品中有5件是实际喜欢的。我们把喜欢的商品当正样本(positive),不喜欢的当负样本(negative),即model要预测哪些是正样本,哪些是负样本。
正类(预测正确) | 负类(预测错误) | |
---|---|---|
正样本(positive) | True Positve | False Positive |
负样本(negative) | True Negative | False Negative |
本例中预测正样本(喜欢)有32件,预测负样本(不喜欢)有18件.
TP
即检索出的正样本中预测正确的样本,即找到用户喜欢的商品而实际预测正确的数量,本例中正确预测了30件用户喜欢的商品;
TN
即检索出的负样本预测正确的样本,本例中正确预测了13件用户不喜欢的商品;
FP
即检索出的正样本实际预测错误的样本,本例中预测了32件喜欢的商品但实际有2件预测错误是不喜欢的;
FN
即检索出的负样本实际上预测错误的样本,本例中预测18件商品是用户不喜欢的但实际有5件预测错误是喜欢的;
Accuracy
预测正确的样本数 与 样本总数之比。即:(TP + TN) / ( ALL )
.
在本例中,正确预测了43件(喜欢30 + 不喜欢13),所以 Accuracy = 43 / 50 = 86%
只讨论全部样本里预测正确的样本数。
Precision(查准率)
预测正确的正样本数 与 预测的正样本总数之比。即:TP / (TP + FP)
.
在本例中,预测正确了30件喜欢的,总共预测到32件喜欢的,所以 Precision = 30 / 32 = 93.75%
.
只讨论预测正样本里预测正确的比例,评估预测正例的准确度。该指标可能会漏掉一些被预测为不喜欢的而实际喜欢的商品(FN 5个),「宁愿漏掉,不可错杀」,竟可能少的把不喜欢的预测成喜欢的,导致给用户推荐不感兴趣的商品。
Recall(查全率)
预测正确的正样本数 与 实际正样本总数之比。即:TP / (TP + FN)
.
评估所有实际正样本被预测出来的覆盖率占比多少, 所以叫查全率,本例中,预测正确的正样本30,还有5个正样本没预测出来,因此recall = 30 / 35 = 85.7%