Оценка Apache mahout чрезвычайно медленная - с измененным NearestNUserNeighborhoud

Я изменил NearestNUserNeighborhoud, чтобы добавить дополнительную ценность пользователям, принадлежащим к доверенной сети. Сеть доверия находится в базе данных (MySQL).

Когда я рекомендую элементы для определенных пользователей, это работает хорошо и предоставляет рекомендации.

Однако, когда я оцениваю, RMSE работает очень медленно, когда сравнивает пользователей, которые находятся в базе данных/доверенной сети пользователя. (Он запускает тысячи операторов select)

Первая модель данных находится в файле csv, и она находится в форме рейтинга идентификатора пользователя и идентификатора. В то время как в базе данных находится в форме доверительного управляющего.

Что бы вы предложили для оценки RMSE в разумные сроки?


person Nick    schedule 01.08.2014    source источник


Ответы (1)


Алгоритм оценки mahout может использовать преимущества параллельной обработки. Вы можете запустить его на более крупной машине с большим количеством ядер. Однако похоже, что у вас проблема с доступом к базе данных. Убедитесь, что у вас есть один оператор подготовки и просто вызовите базу данных. (Не делайте подготовку заявления все время).

Лучшим решением будет загрузка доверенных пользователей в память карты (используйте библиотеку Trove, она потребляет меньше памяти ) и выполняйте проверку в памяти, а не в базе данных.

person Dragan Milcevski    schedule 02.08.2014