Я работаю над набором данных ML_100k
для прогнозирования с использованием CF
.Но я застрял на этапе оценки (точность, отзыв и т. Д.).Вместо того, чтобы использовать весь обучающий набор, я делю обучающий набор на три категории (подмножества) с оценками:
- Интересно (рейтинг = 4,5)
- Неинтересно (рейтинг = 1,2)
- NotInNorUn (Rating = 3)
Ниже приведены некоторые шаги для лучшего понимания:
Набор данных разбит на обучающие и тестовые наборы.Использование кластеризации для разделения тренировочного набора на три категории (подмножества) на основе рейтингов.Затем с помощью 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