I have a data set that contains data about restaurants in the United states including menu, foot traffic, type of cuisine, type of restaurant, and other restaurant attributes. I also have a small amount of sales data, approximately 20% of the restaurants in the united states, about what products they purchased. The problem is that the purchase of a product, say “hamburger” for a single restaurant may not be contained in the sales data. A restaurant typically buys products from multiple vendors. I want to train a model to predict whether a restaurant will buy a particular product. In order to create a boolean target variable I can assign all restaurants that bought hamburger from the sales data a “1”. My question is how do i assign a “0”. Because just because the restaurant didn't buy hamburger as defined in the sales data doesn't mean they didn't buy the hamburger from somebody else. I am thinking that I should training model to predict the probability of purchasing a hamburger from the sales data. Then, rank ordering all restaurants and picking out restaurants that have a low probability of purchasing and assigning those restaurants a 0 value. Does this approach makes sense? What are other ways of doing this? Is this Probability-Based Assignment the best approach?
I could use negative sampling and randomly assign a "0" to a subset of restaurants not shown to purchase hamburgers in your sales data, acknowledging that some of these assignments may be incorrect. I could use a semi-supervised learning where you train the model on the labeled data you have (restaurants known to purchase hamburgers) and let the model infer the labels for the unlabeled data (restaurants where purchase data is unknown).



Your Answer

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