0

У меня есть логический/двоичный код, где идентификатор клиента и продукта обнаружен, когда клиент действительно купил продукт и не найден, если клиент его не купил. Набор данные представлены следующим образом:Использование сходства косинуса с двоичными данными - Mahout

Dataset

Я пробовал различные подходы, как GenericBooleanPrefUserBasedRecommender с TanimotoCoefficient или LogLikelihood сходством, но я также попытался GenericUserBasedRecommender с Uncentered косинус подобием, и это дало мне самую высокую точность и отзывает 100% и 60% соответственно.

Я не уверен, имеет ли смысл использовать Uncentered Cosine сходство в этой ситуации, или это неправильная логика? и что делает Uncentered Cosine Similairty с таким набором данных.

Любые идеи были бы очень оценены.

спасибо.

ответ

0

100% точность невозможна, поэтому что-то не так. Все показатели сходства отлично работают с булевыми данными. Помните, что пространство имеет очень большую размерность.

Ваши данные образца имеют только два элемента (идентификаторы BTW должны быть основаны на старой версии Maho). Таким образом, набор данных, как показано, не даст достоверных результатов.

Я сделал это с большими наборами данных E-Com и значительно исказил вероятность входа в систему - выполняет другие показатели для булевых данных.

BTW Mahout перешел на Spark от Hadoop, и наш единственный показатель - LLR. Полный Универсальный Recommender с магазином событий и сервером прогнозирования на основе Mahout-Сансары реализуется здесь: http://templates.prediction.io/PredictionIO/template-scala-parallel-universal-recommendation Слайды с описанием его здесь: http://www.slideshare.net/pferrel/unified-recommender-39986309

+0

Спасибо так много. У меня нет проблем с высокой размерностью, так как мои данные не такие огромные, у меня всего около 3000 строк, и я использую SAP HANA, которая является вычислительной БД в памяти. Я тоже так думал, что точность никогда не может быть на 100%, моя самая большая проблема всегда связана с представлением данных, так как у меня есть все предпочтения 1. Можно ли представлять такие логические данные, как это, или Я включаю продукты, которые клиенты не покупали, и установили их в 0? Может быть, вы можете предоставить мне пример для бинарного набора данных, я бы очень признателен. – user2255207

+0

Использование универсального рекомендателя считается, что любой элемент, с которым пользователь не взаимодействует, считается 0. Все, что вам нужно сделать, это отправить события взаимодействия рекомендателю, привязанному к пользователю, периодически обучать данные, затем запрашивать идентификатор пользователя или элемента. Нет необходимости в переводе id, как старый код Mahout, и нет необходимости перечислять всех пользователей элементов. Они определяются из данных взаимодействия. Также вы можете использовать много событий, даже данные профиля пользователя. – pferrel

Смежные вопросы