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