1
$\begingroup$

I am trying to build a model that delivers a prediction for which food a person may like based on information the person has entered into the system beforehand, e.g. they input that they like (beef, chicken, curry, rice, chili, peas, onions etc.) and get recommended a dish that they might like.

The dataset was gathered from a survey asking participants to list ingredients they like, and to rate dishes on a scale from 1-5 (5 beeing best).

The prediction should return a dish from the dishes rated in the survey for the ingredients a new user entered.

So far I am trying to solve the problem with a multinomial logistic regression. Am I right in this assumption or is there a model significantly better suited for the problem?

I fear that the interpretation will be a problem, as I have around 40 dishes, meaning 40 categorical dependent variables. Can this be problematic? Statistical significance is not of utmost importance, as this is a proof of concept trial run with small sample size (n below 100), to test the data structure and the suitability of the model. Once these are set, collection of data will be outsourced.

$\endgroup$
0
$\begingroup$

If you want to enforce sparsity, you can use a regularized regression to help zero out some of the coefficients if they're not impactful.

You can also use a decision tree if a linear model is not a requirement. This can help if you have many categorical variables.

$\endgroup$
0
$\begingroup$

If you care more about predictive accuracy you are better off using a machine learning method (e.g. regression trees, support vector machines, etc.). Multinomial regression is difficult to interpret at the best of times, while something like a regression tree can give you more easily interpretable statistics like variable importance.

However, I think there might be a conceptual problem with your approach. Is your goal to create a model that will take in a list of ingredients a person likes and then predict a single dish that they would like to eat?

If so, you won't have 40 dependent categorical variables. Rather your will have a one categorical variable with 40 levels. This is a problem that either multinomial regression or a classification algorithm (as mentioned above) can handle. The output would be a single a single dish that the model predicts the individual would like the most.

If you want to create a model that will take in a list of ingredients a person likes and then predict for each dish the probability the individual would like to eat it, then you actually have a multivariate problem. It would become multivariate as there would be 40 categorical variables with each one having a score for being liked (1-5) that the model needs to predict. In this case you could use something like a multivariate analysis of variance (MANOVA) or its permutational variant (PERMANOVA) and then predict the score for each variable. Since your response variables are all ordinal and ranked 1 - 5 they are basically on a likert scale, which MANOVAs are robust enough to handle.

Let me know if anything is unclear or I have misunderstood your question!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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