Application of machine learning

You have stated a regression problem because you are trying to predict a continuous numerical value.

For each data instance, you can extract features and associate a value (1-5). The features can be the existence of a dish during the meal (e.g. has_cheesecake, has_orange_juice), where each feature is a boolean. Suppose there are N possible dishes; then each meal is a data instance (also known as a feature vector) with N features and an associated value. Below is an example with N=12, where the last (13th) column is the value.

0 0 0 1 1 0 0 0 1 0 0 0 5
1 0 0 1 0 1 0 0 0 0 0 0 3
0 0 0 0 0 0 1 1 0 0 0 1 4

You can then feed this into a machine learning program like Weka, and it will create a regression model for you. Then when you want to predict the user's ranking for a new meal, you feed in a new vector where the last column is unknown, like the following:

0 0 1 0 0 0 1 0 0 0 0 1 ?

The software will return a value to you, like 3.9.


What you're asking is basically sentiment detection, which has become very popular for doing things like predicting a user's attitude towards a product. Here's a seminal paper, depending on how academically inclined you are.

You could look at this as a regression problem, but a lot of the time people ignore the fact that there are ordinal relations between the classes. If you have no more information on the items in the meal than their names, I'm not sure I'd expect you to do very well at it. You should look for a feature-representation of the courses if at all possible, to improve your ability to predict values.