I'm very very new to data-science, so go easy on me.

I want to incorporate an SVD based game recommendation model (using the Surprise Python Lib) for a full-stack project I'm working on, but before I jump into it, I want to make sure that I have the right data. I've scraped a bunch of data from Steam using their API, and I have three main columns: user_id, game_id, and time_spent_playing (in minutes). I figure that I can create an 'score' for the game by calculating the standard deviation for each person's playtime, so if they've spent more time playing than the average person, they have a higher score. Is this sufficient for a SVD model? Or is there a better algorithm to use given the data I have?

Bonus question: One of the approaches I've thought about doing my application is to have users rank order their favorite games, and use that as a way to get a better idea as to what their preferences are. For the initial recommendation model, I was thinking that I could arrange the games the users from the training data have based on the score described above, and then use that as the score for the training model. Any thoughts on this would also be useful.

Edit: Calculate z-score, not standard deviation

  • $\begingroup$ Welcome to DataScienceSE. I don't understand what is your goal with SVD here? Are you going to use it in order to group similar users and/or games? Am I understanding correctly that you would have just have one feature, the playtime std. dev.? if yes I doubt SVD can do anything useful with a single feature, but I could be wrong. $\endgroup$ – Erwan Jan 2 at 15:30
  • $\begingroup$ Yeah so I'd like to recommend people games based on similar preferences or something along these lines. Would adding other features like genre and developer make these predictions more accurate? $\endgroup$ – Brandon-Perry Jan 2 at 19:50
  • $\begingroup$ Well, as far as I know SVD doesn't give you predictions, by itself it can only do clustering. You could probably use this clustering to obtain predictions in some way, but the first question is to design a system which returns what you want. For example you could imagine grouping players by the similarity of their tastes (clustering), then for each group obtain the games they like the most, and this could in turn be used to recommend new games to a player based on which group they belong to (or they are most similar to). Do you have such a design in mind? $\endgroup$ – Erwan Jan 2 at 20:49