Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Сегодняшний проект отличается от остальных. Сначала я отложил этот рассказ, чтобы потом решить написать о нем или нет. Мне кажется, что он замечательный, но я не уверен насколько он «забавен» и насколько он выходит из принятых здесь рамок. Что меня подтолкнуло к публикации, так это мысль насколько этот проект оригинален и отличается от остальных, что здесь ранее не было чего-то подобного, что я не в состоянии увидеть подобных библиотек и мысль о том, какие клёвые вещи можно сделать с его помощью…
Библиотека системы рекомендаций MyMediaLite
MyMediaLite – это облегченная, многоцелевая библиотека алгоритмов системы рекомендаций.
Она предназначена для использования в двух самых общих сценариях совместной фильтрации:
· предсказание рейтинга (т. е. в диапазоне от одной до пяти звезд)
· предсказание элементов по неявному отзыву (т. е. по щелчкам мыши или по покупкам)
MyMediaLite – свободно доступное ПО (с открытым исходным кодом), и может использоваться и распространяться в условиях GNU General Public License (GPL) .
...
MyMediaLite предоставляет выбор среди множества методов рекомендации:
· дюжины различных рекомендателей
· методы, использующие совместные данные и атрибутов и содержимого
MyMediaLite готова к использованию :
- MyMediaLite включает процедуры оценки предсказания рейтингов и предсказания элементов; она может определять MAE , RMSE , AUC , prec@N, MAP и NDCG .
- Также в ее состав входит утилита командной строки, читающая простой текстовый формат входной информации.
MyMediaLite компактна : ядро библиотеки имеет размер около 150 Kб.
Переносимость: Написана на C# для платформы .NET; работает на любой архитектуре, поддерживаемой Mono : Linux, Windows, Mac OS X.
MyMediaLite наконференции ACM Recommender Systems 2011 вЧикаго
Вот пример фрагмента кода:
using System;
using MyMediaLite.Data;
using MyMediaLite.Eval;
using MyMediaLite.IO;
using MyMediaLite.ItemRecommendation;
public class ItemPrediction
{
public static void Main(string[] args)
{
// load the data
var user_mapping = new EntityMapping();
var item_mapping = new EntityMapping();
var training_data = ItemData.Read(args[0], user_mapping, item_mapping);
var test_users = training_data.AllUsers; // users that will be taken into account in the evaluation
var candidate_items = training_data.AllItems; // items that will be taken into account in the evaluation
var test_data = ItemData.Read(args[1], user_mapping, item_mapping);
// set up the recommender
var recommender = new MostPopular();
recommender.Feedback = training_data;
recommender.Train();
// measure the accuracy on the test data set
var results = Items.Evaluate(recommender, test_data, training_data, test_users, candidate_items);
foreach (var key in results.Keys)
Console.WriteLine("{0}={1}", key, results[key]);
// make a prediction for a certain user and item
Console.WriteLine(recommender.Predict(user_mapping.ToInternalID(1), item_mapping.ToInternalID(1)));
}
}
Несколько замечаний: Несмотря на то, что все ПО написано на C# основной проект прекрасно открывается и компилируется в VS2010 (по крайней мере, для меня), для многих может оказаться проблемой откомпилировать MovieDemo. Он основан на GTK-Sharp и в нем есть ряд ссылок, которые обычный разработчик в VS может не иметь. Однако если вы пользуетесь MonoDev, то это труда не составит...
Наконец, если вы уже задумывались о добавлении некоторых «рекомендательных» возможностей в свое приложение или сайт, но самостоятельная разработка такой функциональности напрягает ваш мозг, возможно, вы захотите ознакомиться с этим проектом.