我正在处理ML_100k
数据集,以便使用CF
进行预测。但是我坚持评估步骤(准确性,召回率等)。我没有使用整个训练集,而是将训练集分为三个类别(子集)并进行评分:
下面给出了一些步骤以便更好地理解:
数据集分为训练和测试集。
使用聚类将训练集基于等级划分为三个类别(子集)。
然后使用PCC
或CF
(基于用户)方法分别查找类别(子集)上的相似性。
我需要有关评估发现accuracy
,recall
,precision
的帮助。如何对这类数据进行评估?
到目前为止,我发现下面给出了它,但是没有给出预期的结果。
for user in predicted_dictionary:
if user in total_test:
for item in predicted_dictionary[user]:
if item in total_test[user]:
tp += 1
else:
fp += 1
fn += float(
set(total_test[user]).__len__() - (set(total_test[user]) & set(predicted_dictionary[user])).__len__())
try:
recall = tp / (tp + fn)
precision = tp / (tp + fp)
f1_measure = (precision * recall) / (precision + recall)
return recall, precision, f1_measure
except:
return 0, 0, 0