1
$\begingroup$

I have multiple features and I want to predict three outcome scores.

Features:

  • Length in cm smallest is 40cm biggest is 209cm
  • Kilo: 39 till 302
  • Age: 19 till 111
  • Gender: Male, female, transgender
  • Diagnoses: numbers of different diseases
  • Medicines: numbers of different medicines
  • Urine level: 0 till 5

Scores:

  1. Scale of Happy 1 till 7
  2. Scale of depression 1 till 7
  3. Scale of health 1 till 7

I know I can use supervised learning and create models where I predict the scores individually. I already pre-trained three different models.

Do you have some feedback?

Happiness, depression and health are related. Are there algorithms that can deal with this? Based on historical data (the features and predictions) and the trained model I want to predict the scores for new patients based on their features and historical scores.

$\endgroup$
1
$\begingroup$

Do you have a labeled set? Any algorithm can do it in a supervised manner, as long as you have enough labeled data to train it on.

A tree-based model (Random Forests Classifier for instance) could do really well on this task, especially since you have categorical data. All you need to do is encode the data as numbers (for instance 0: male, 1: female, 2: transgender) and feed it into your model (applying random splits and cross-validation and all that).

In case you don't, then the best you can do without collecting new data is to find clusters of related patients in your dataset. The same rules for encoding variables apply, although you may have to pay some attention to how you scale your variables since clustering algorithms are sensitive to relative scaling of features. This happens because most clustering algorithms cluster data using distance metrics which lose meaning when you are dealing with categories. See this for more info on clustering categorical data:

| improve this answer | |
$\endgroup$
  • $\begingroup$ Hi Carlo indeed I do have a labeled set $\endgroup$ – Tanja Meeren Nov 1 '17 at 9:03
  • $\begingroup$ Would you suggest me to train tree times a tree? One for label happy, other for depression and other for health? $\endgroup$ – Tanja Meeren Nov 1 '17 at 9:08
  • $\begingroup$ No, you can train just one model and optimize hyper-parameters of that model only. That should yield good results by itself. The Random Forest Classifier will automatically distinguish the labels once you passe data to it. $\endgroup$ – Carlo Mazzaferro Nov 1 '17 at 13:56
  • $\begingroup$ Do you have an example of this somewhere on the web? $\endgroup$ – Tanja Meeren Nov 1 '17 at 19:15
  • $\begingroup$ chrisalbon.com/machine-learning/… this has all you need including encoding variables. $\endgroup$ – Carlo Mazzaferro Nov 1 '17 at 19:49
1
$\begingroup$

You can try the cascade model, e.g. you start by fitting three individual models

S1=F(x1,...,x7)

S2=F(x1,...,x7)

S3=F(x1,...,x7)

Next, you use the outcomes of these individual models to fit the second level models, e.g.

M1=F(x1,...,x7,S1,S2)

Or

M2=F(x1,...,x7,S1,S3) ...

The structure and order of fitting the models depends on your data.

You can either test the performance of some combinations or just set the structure based on expert judgement.

Of course, there is no guarantee that the performance of these stacked models will be better the performance of your individual models.

| improve this answer | |
$\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.