Вопрос или проблема
Я новичок в системе рекомендаций и пытаюсь создать одну из них, используя метод коллаборативной фильтрации на основе предметов. В настоящее время я пытаюсь оценить/измерить результаты, используя MAE. У меня есть один шаг, который неясен (после того как я смог разделить обучающий набор данных и тестовый набор данных и вычислил матрицу сходства между предметами). Я понимаю, что теперь могу делать прогнозы для данного предмета для конкретного пользователя. Допустим, из тестового набора данных есть Пользователь A с 10 уже оцененными предметами. Что мне делать с этим пользователем? Случайным образом выбрать один предмет и притвориться, что я не знаю оценки, которую Пользователь A поставил предмету? Затем вычислить предсказанную оценку, используя взвешенную сумму остальных 9 предметов?
Или мне на самом деле следует перечислить все 10 предметов, которые оценил Пользователь A. Затем каждый раз убирать только целевой предмет и использовать остальные 9 предметов для прогнозирования?
Я думаю, что правильный ответ может заключаться в том, чтобы предсказать все 10 предметов, которые оценил Пользователь A. И вычислить MAE, используя все их.
Обновление: Только что узнал, что вышеуказанный подход называется “Оценка качества модели по остаткам”, есть и другие, такие как Кросс-валидация
Ответ или решение
Чтобы оценить алгоритм системы рекомендаций с использованием тестового набора данных, необходимо следовать определенному процессу, который позволит точно измерить производительность и качество рекомендаций. В данной статье мы рассмотрим, как реализовать этот процесс, направленный на максимальное снижение ошибки предсказания с использованием MAE (средней абсолютной ошибки).
Основные этапы оценки системы рекомендаций
1. Разделение данных
Перед тем, как оценивать модель, необходимо разделить данные на обучающий и тестовый наборы. Это позволит избежать утечек данных и гарантировать, что модель будет оценена на материалах, которые не использовались при обучении.
2. Построение матрицы сходства
После разделения данных на обучающую и тестовую выборки необходимо вычислить матрицу сходства, используя метод item-to-item collaborative filtering (CF). Для этого можно использовать различные метрики, такие как косинусное сходство или корреляцию Пирсона, в зависимости от типа данных и требований к результатам.
3. Оценка предсказаний
Теперь, когда у вас есть матрица сходства, можно начать оценку предсказаний для пользователей из тестового набора. Для этого необходимо выполнить следующие шаги:
3.1 Выбор пользователя
Рассмотрим конкретного пользователя, например, Пользователя A, у которого есть 10 оцененных элементов. Это важно, поскольку мы будем использовать эти данные для проверки точности наших предсказаний.
3.2 Методика предсказания
Существует два подхода к предсказанию оценок:
-
Метод случайного выбора: случайным образом выберите один из элементов, оцененных Пользователем A, и предположите, что его рейтинг вам неизвестен. Далее, используя оставшиеся 9 элементов, рассчитайте предсказанный рейтинг для выбранного элемента.
-
Метод перебора всех элементов: более распространенный и, как правило, более надежный метод. Каждый раз берите один элемент из 10 оцененных и используйте остальные 9 для предсказания его рейтинга. Таким образом, вы получите 10 различных предсказаний – по одному для каждого элемента.
4. Расчет MAE
После получения предсказанных значений важно рассчитать MAE для оценки точности модели. MAE определяется как среднее значение абсолютных ошибок между предсказанными и фактическими рейтингами:
[ MAE = \frac{1}{n} \sum_{i=1}^{n} |y_i – \hat{y}_i| ]
где ( y_i ) – фактический рейтинг элемента, а ( \hat{y}_i ) – предсказанный рейтинг.
5. Другие методы оценки
Хотя метод "Residuals" является доброй практикой, также стоит рассмотреть использование кросс-валидации. Он позволяет разбить ваш обучающий набор на несколько частей, тем самым обеспечивая более надежную оценку производительности вашего алгоритма.
Заключение
Резюмируя, для оценки алгоритма системы рекомендаций с использованием тестового набора данных:
- Разделите данные на обучающую и тестовую выборки.
- Постройте матрицу сходства элементов.
- Примените один из методов предсказания для рейтингов пользователей.
- Рассчитайте MAE для объективной оценки точности предсказаний.
- Рассмотрите альтернативные методы, такие как кросс-валидация, для более глубокого анализа.
Следуя этим рекомендациям, вы сможете эффективно измерять производительность вашего алгоритма системы рекомендаций и улучшать его на основе полученных результатов.