Оценка набора данных MovieLens 100k - PullRequest
0 голосов
/ 21 апреля 2019

Я работаю над набором данных ML_100k для прогнозирования с использованием CF. Но я застрял на этапе оценки (точность, отзыв и т. Д.). Вместо использования всего обучающего набора я использую кластеризацию, чтобы разделить обучающий набор на три категории: Интересный (Рейтинг = 4,5). Неинтересный (Рейтинг = 1,2) .NotInNorUn (Рейтинг = 3).

Ниже приведены некоторые шаги для лучшего понимания:

  1. Набор данных разбит на тренировочные и тестовые наборы.
  2. Использование кластеризации для разделения тренировочного набора на три категории на основе рейтингов.
  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
...