zenogantner / MyMediaLite

recommender system library for the CLR (.NET)
http://mymedialite.net
499 stars 192 forks source link

Using evaluating environment for Itemprediction with further informations. #462

Open aoberegg opened 8 years ago

aoberegg commented 8 years ago

Hey guys!

I'm currently working on a recommender that includes the impact of weather conditions on item choosing. Therefore I'd like to use the Evaluation of the ItemRecommender engine of MyMediaLite to test my recommender. For this reason I'd need a testing environment that calls a function like:

IList<Tuple<int, float>> Recommend(int user_id, IList current_weather, int n = -1, ICollection ignore_items = null, ICollection candidate_items = null);

this. So for giving a recommendation I'd need the current weather situation. Is that somehow possible with MyMediaLite?

Best regards,

Alexander Oberegger

zenogantner commented 8 years ago

Hi Alexander,

Modelling context (like weather) is currently not directly supported by MyMediaLite.

It could be added, though. If you have something nice, let me know.

One question, why is the current weather represented as a list?

By the way, LibFM does model context in a very nice way -- check it out: http://www.libfm.org/

Cheers, Z.

On Tue, Jan 5, 2016 at 5:40 PM, aoberegg notifications@github.com wrote:

Hey guys!

I'm currently working on a recommender that includes the impact of weather conditions on item choosing Therefore I'd like to use the Evaluation of the ItemRecommender engine of MyMediaLite to test my recommender For this reason I'd need a testing environment that calls a function like:

IList> Recommend(int user_id, IList current_weather, int n = -1, ICollection ignore_items = null, ICollection candidate_items = null);

this So for giving a recommendation I'd need the current weather situation Is that somehow possible with MyMediaLite?

Best regards,

Alexander Oberegger

— Reply to this email directly or view it on GitHub https://github.com/zenogantner/MyMediaLite/issues/462.

MyMediaLite Recommender System Library: http://mymedialite.net

aoberegg commented 8 years ago

Ok thanks for your reply.

Weather is in that case represented as a list of current temperature, precip intensity, windspeed,...

zenogantner commented 8 years ago

OK.

Then a nice, flexible API would be a list of fixed lenght containing float-valued context parameters.

Would that make sense?

Z.

On Tue, Jan 5, 2016 at 6:07 PM, aoberegg notifications@github.com wrote:

Ok thanks for your reply.

Weather is in that case represented as a list of current temperature, precip intensity, windspeed,...

— Reply to this email directly or view it on GitHub https://github.com/zenogantner/MyMediaLite/issues/462#issuecomment-169063394 .

MyMediaLite Recommender System Library: http://mymedialite.net

aoberegg commented 8 years ago

That's exactly what I would need yes. In my case it would be: [humidity, precip_intensity, temperature, cloud cover, moonphase, pressure, visibility, wind_speed]

On the other hand it would also be possible to hand the time and geolocation so that I can look up the weather data in a database. With that approach it's not fixed to weather data and maybe it would offer more flexibility for other contexts.