So I have a problem where I have a dataset that includes a list of Tools that are tied to Tasks. The data is structured as follows:

  1. The users do not rate the Tools, they simply use them in a method that adds the tools to a Task. Every entry in the dataset is a history of the users adding the tool to a Task, so there can be multiple entries of one Tool being added to a different Task
  2. As of right now, there is no data coming in that shows what user added the Tool. There is only a database of Tools associated with Tasks, giving information about the Task such as how much the task may cost, what Asset the Task is tied to, etc.
  3. Each Task has a specific code, and Tasks can have many Tools.

I have two questions:

  1. A k-means cluster analysis would tell me that certain Tools are related to each other by the parameters given in the analysis, but would a recommendation system based on suggesting parts that fit into the cluster work if I had enough parameters?

  2. This sounds like a setup for a cold-start problem since there are no user ratings, but I do have data, so is it possible to implement this as a binary classification task at runtime, where I populate the fields of the Tools with specific user information (not ratings, but other things akin to implicit filtering), and then create a new list of parts that are classified as "suggested" or "not-suggested?" If this is possible, are there any algorithms that keep track of user preference parameters in case they update and change the weights of the fields I deem relevant?

Last question, as a sanity check - am I even on the right path here?

  • 2
    $\begingroup$ Is this a Data Scientist interview question? :) $\endgroup$ Feb 24, 2016 at 18:32
  • $\begingroup$ Not at all, this is a question for a real life project with real users. I'm an ML newbie and am learning as I go. I just put it in simpler terms to make it easier to understand. $\endgroup$
    – frei
    Feb 24, 2016 at 18:38

1 Answer 1


The issue you are running into is called the cold start problem, "How do I make a decision without any data". I would start with the following:

  1. Bayesian Methods - specify a prior and update as new data comes in. This could be a combination of both business and psychological profiling.


  • $\begingroup$ Thanks - could you be a little more specific? I'm trying to implement a recommendation system at the end of it. Does a "prior" refer to having a criteria for desirable data? Because part of the issue is that there isn't any new data. I am not trying to classify a Tool when a new Tool comes, I'm trying to create a list of suggested Tools for each user, based on no prior user ratings. Eventually I will have a history of usages, but now I'm thinking that having some custom defined objective criteria that will allow me to do a binary classification of an already existing dataset might work $\endgroup$
    – frei
    Feb 24, 2016 at 19:11
  • $\begingroup$ Your question is not clearly phrased - you asked for what to do, not how to do it. For a walkthough, I would suggest the link above on Bayesian inference. You have multiple questions as well which are beyond the scope of your original question. $\endgroup$ Feb 24, 2016 at 19:20
  • $\begingroup$ Okay, so to phrase it as the latter, how do I build a recommendation system that doesn't have any history of user ratings and where the items themselves aren't associated with specific users at all? My original question was more like, is the type of problem I have already some type of model or does it have a specific name. you linked me to the wikipedia page for bayesian inference, which I don't think is a very precise way of addressing my questions. But I'm looking at the cold start problem, so thanks. $\endgroup$
    – frei
    Feb 24, 2016 at 19:41
  • $\begingroup$ I am not sure of what you mean by not precise as I have answered the original question of what to do. Yes, the answer to your new question would still be to use Bayesian inference. At a high level, you a creating data based upon your own professionalism judgement, and as new information comes in, you update your model to take that into account. Your judgement is your "hypothesis". Since I have answered your initial question, please mark the question as having been answered or rephrase your original post and break up your questions into separate questions. $\endgroup$ Feb 24, 2016 at 19:47
  • $\begingroup$ Ok, I'll clarify the question in the OP. $\endgroup$
    – frei
    Feb 25, 2016 at 13:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.